]> git.wh0rd.org - chrome-ext/music-player-client.git/blobdiff - main.js
playlist/metadata: do not crash whilst connecting
[chrome-ext/music-player-client.git] / main.js
diff --git a/main.js b/main.js
index a5bf7841f730014dac609bb68e3145552b829e82..266bb1e60f6b242ff3108ae858d3d9322281f9b2 100644 (file)
--- a/main.js
+++ b/main.js
@@ -157,12 +157,15 @@ function show_page(page) {
        if (typeof(page) != 'string')
                page = this.id.split('.')[1];
 
        if (typeof(page) != 'string')
                page = this.id.split('.')[1];
 
+       // We might not be connected in which case 'mpc' will be undefined.
        switch (page) {
        case 'playlist':
        switch (page) {
        case 'playlist':
-               mpc.playlistinfo();
+               if (mpc)
+                       mpc.playlistinfo();
                // Fallthrough.
        case 'metadata':
                // Fallthrough.
        case 'metadata':
-               mpc.currentsong();
+               if (mpc)
+                       mpc.currentsong();
                break;
        }
 
                break;
        }
 
@@ -310,13 +313,16 @@ function update_ui(state, cmd) {
        }
 
        /* Update the metadata tab only when things have changed. */
        }
 
        /* Update the metadata tab only when things have changed. */
-       if ('Currentsong' in state && ui_mpc_metadata_file.lastUpdate != state.Currentsong.lastUpdate) {
-               var currentsong = state.Currentsong;
-               ui_mpc_metadata_album.innerText = currentsong.Album;
-               ui_mpc_metadata_artist.innerText = currentsong.Artist;
-               ui_mpc_metadata_title.innerText = currentsong.Title;
-               ui_mpc_metadata_date.innerText = currentsong.Date;
-               ui_mpc_metadata_file.innerText = currentsong.file;
+       var currentsong;
+       if ('Currentsong' in state) {
+               currentsong = state.Currentsong;
+               if (ui_mpc_metadata_file.lastUpdate != state.Currentsong.lastUpdate) {
+                       ui_mpc_metadata_album.innerText = currentsong.Album;
+                       ui_mpc_metadata_artist.innerText = currentsong.Artist;
+                       ui_mpc_metadata_title.innerText = currentsong.Title;
+                       ui_mpc_metadata_date.innerText = currentsong.Date;
+                       ui_mpc_metadata_file.innerText = currentsong.file;
+               }
        }
 
        /* Update the playlist tab only when things have changed. */
        }
 
        /* Update the playlist tab only when things have changed. */
@@ -326,7 +332,7 @@ function update_ui(state, cmd) {
                ui_mpc_playlist.innerHTML = '';
                playlist.forEach(function(song) {
                        var cell, row = ui_mpc_playlist.insertRow(-1);
                ui_mpc_playlist.innerHTML = '';
                playlist.forEach(function(song) {
                        var cell, row = ui_mpc_playlist.insertRow(-1);
-                       if (song.Pos == currentsong.Pos)
+                       if (currentsong && song.Pos == currentsong.Pos)
                                row.style.fontWeight = 'bold';
 
                        cell = row.insertCell(-1);
                                row.style.fontWeight = 'bold';
 
                        cell = row.insertCell(-1);