diff --git a/dashboard-ui/scripts/librarymenu.js b/dashboard-ui/scripts/librarymenu.js index f6102ccc36..40ac1ef3e0 100644 --- a/dashboard-ui/scripts/librarymenu.js +++ b/dashboard-ui/scripts/librarymenu.js @@ -66,14 +66,14 @@ } } - function addUserToHeader(user) { + function updateUserInHeader(user) { var header = document.querySelector('.viewMenuBar'); var headerUserButton = header.querySelector('.headerUserButton'); var hasImage; - - if (user.name) { + + if (user && user.name) { if (user.imageUrl && AppInfo.enableUserImage) { var userButtonHeight = 26; @@ -93,13 +93,21 @@ } } - if (hasUserButton && !hasImage) { - headerUserButton.icon = 'person'; + if (headerUserButton && !hasImage) { + headerUserButton.icon = 'person'; headerUserButton.src = null; headerUserButton.classList.remove('headerUserButtonRound'); + + // Looks like a bug in paper-icon-button that this doesn't get removed + var headerUserButtonImg = headerUserButton.querySelector('img'); + if (headerUserButtonImg) { + headerUserButtonImg.parentNode.removeChild(headerUserButtonImg); + } + } + if (user) { + updateLocalUser(user.localUser); } - updateLocalUser(user.localUser); requiresUserRefresh = false; } @@ -149,11 +157,6 @@ } } - function removeUserFromHeader() { - - updateLocalUser(null); - } - function bindMenuEvents() { var mainDrawerButton = document.querySelector('.mainDrawerButton'); @@ -788,7 +791,7 @@ } if (requiresUserRefresh) { - ConnectionManager.user(window.ApiClient).then(addUserToHeader); + ConnectionManager.user(window.ApiClient).then(updateUserInHeader); } } @@ -947,13 +950,13 @@ Events.on(ConnectionManager, 'localusersignedin', function (e, user) { requiresLibraryMenuRefresh = true; requiresDrawerRefresh = true; - ConnectionManager.user(ConnectionManager.getApiClient(user.ServerId)).then(addUserToHeader); + ConnectionManager.user(ConnectionManager.getApiClient(user.ServerId)).then(updateUserInHeader); }); Events.on(ConnectionManager, 'localusersignedout', function () { requiresLibraryMenuRefresh = true; requiresDrawerRefresh = true; - removeUserFromHeader(); + updateUserInHeader(); }); Events.on(MediaController, 'playerchange', function () {