mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
update header user button
This commit is contained in:
parent
ea6332ed7d
commit
7e84d5786e
1 changed files with 36 additions and 13 deletions
|
@ -33,7 +33,7 @@
|
|||
|
||||
html += '<paper-button class="headerButton headerButtonRight btnNotifications subdued" type="button" title="Notifications"><div class="btnNotificationsInner">0</div></paper-button>';
|
||||
|
||||
html += '<paper-icon-button icon="person" class="headerButton headerButtonRight headerUserButton" onclick="return Dashboard.showUserFlyout(this);"></paper-icon-button>';
|
||||
html += '<paper-icon-button icon="person" class="headerButton headerButtonRight headerUserButton"></paper-icon-button>';
|
||||
|
||||
if (!browserInfo.mobile && !Dashboard.isConnectMode()) {
|
||||
html += '<paper-icon-button icon="settings" class="headerButton headerButtonRight dashboardEntryHeaderButton" onclick="return LibraryMenu.onSettingsClicked(event);"></paper-icon-button>';
|
||||
|
@ -83,25 +83,15 @@
|
|||
}
|
||||
|
||||
if (headerUserButton) {
|
||||
headerUserButton.src = url;
|
||||
headerUserButton.icon = null;
|
||||
headerUserButton.classList.add('headerUserButtonRound');
|
||||
updateHeaderUserButton(headerUserButton, url, null);
|
||||
hasImage = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (headerUserButton && !hasImage) {
|
||||
headerUserButton.icon = 'person';
|
||||
headerUserButton.src = null;
|
||||
headerUserButton.removeAttribute('src');
|
||||
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);
|
||||
}
|
||||
updateHeaderUserButton(headerUserButton, null, 'person');
|
||||
}
|
||||
if (user) {
|
||||
updateLocalUser(user.localUser);
|
||||
|
@ -110,6 +100,30 @@
|
|||
requiresUserRefresh = false;
|
||||
}
|
||||
|
||||
function updateHeaderUserButton(headerUserButton, src, icon) {
|
||||
|
||||
var oldButton = headerUserButton;
|
||||
|
||||
// There seems to be a bug in paper-icon-button where it doesn't refresh it's display after switching between icon and src image
|
||||
// So work around that by just replacing the element altogether
|
||||
|
||||
var headerUserButton = document.createElement('paper-icon-button');
|
||||
headerUserButton.className = oldButton.className;
|
||||
headerUserButton.addEventListener('click', onHeaderUserButtonClick);
|
||||
|
||||
if (src) {
|
||||
headerUserButton.classList.add('headerUserButtonRound');
|
||||
headerUserButton.src = src;
|
||||
} else if (icon) {
|
||||
headerUserButton.classList.remove('headerUserButtonRound');
|
||||
header.icon = icon;
|
||||
} else {
|
||||
headerUserButton.classList.remove('headerUserButtonRound');
|
||||
}
|
||||
|
||||
oldButton.parentNode.replaceChild(headerUserButton, oldButton);
|
||||
}
|
||||
|
||||
function updateLocalUser(user) {
|
||||
|
||||
var header = document.querySelector('.viewMenuBar');
|
||||
|
@ -162,6 +176,10 @@
|
|||
});
|
||||
}
|
||||
|
||||
function onHeaderUserButtonClick(e) {
|
||||
Dashboard.showUserFlyout(e.target);
|
||||
}
|
||||
|
||||
function bindMenuEvents() {
|
||||
|
||||
var mainDrawerButton = document.querySelector('.mainDrawerButton');
|
||||
|
@ -180,6 +198,11 @@
|
|||
headerVoiceButton.addEventListener('click', showVoice);
|
||||
}
|
||||
|
||||
var headerUserButton = document.querySelector('.headerUserButton');
|
||||
if (headerUserButton) {
|
||||
headerUserButton.addEventListener('click', onHeaderUserButtonClick);
|
||||
}
|
||||
|
||||
var viewMenuBar = document.querySelector(".viewMenuBar");
|
||||
initHeadRoom(viewMenuBar);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue