diff --git a/src/scripts/librarymenu.js b/src/scripts/librarymenu.js index 9c303d3bde..6b64041966 100644 --- a/src/scripts/librarymenu.js +++ b/src/scripts/librarymenu.js @@ -105,6 +105,7 @@ define(["dom", "layoutManager", "inputManager", "connectionManager", "events", " function bindMenuEvents() { mainDrawerButton = document.querySelector(".mainDrawerButton"); + if (mainDrawerButton) { mainDrawerButton.addEventListener("click", toggleMainDrawer); } @@ -198,18 +199,20 @@ define(["dom", "layoutManager", "inputManager", "connectionManager", "events", " html += '

'; html += globalize.translate("HeaderUser"); html += "

"; + if (appHost.supports("multiserver")) { html += 'wifi' + globalize.translate("ButtonSelectServer") + ""; } + html += 'exit_to_app' + globalize.translate("ButtonSignOut") + ""; html += ""; - } + } // add buttons to navigation drawer - // add buttons to navigation drawer - navDrawerScrollContainer.innerHTML = html; - // bind logout button click to method + navDrawerScrollContainer.innerHTML = html; // bind logout button click to method + var btnLogout = navDrawerScrollContainer.querySelector(".btnLogout"); + if (btnLogout) { btnLogout.addEventListener("click", onLogoutClick); } @@ -250,6 +253,7 @@ define(["dom", "layoutManager", "inputManager", "connectionManager", "events", " pageUrls = pageUrls.split("|"); selected = pageUrls.filter(isUrlInCurrentView).length > 0; } + if (selected) { link.classList.add("navMenuOption-selected"); var title = ""; @@ -377,6 +381,7 @@ define(["dom", "layoutManager", "inputManager", "connectionManager", "events", " function addPluginPagesToMainMenu(links, pluginItems, section) { for (var i = 0, length = pluginItems.length; i < length; i++) { var pluginItem = pluginItems[i]; + if (pluginItem.EnableInMainMenu && pluginItem.MenuSection === section) { links.push({ name: pluginItem.DisplayName, @@ -416,15 +421,14 @@ define(["dom", "layoutManager", "inputManager", "connectionManager", "events", " return getToolsMenuLinks(apiClient).then(function (items) { var item; var menuHtml = ""; - menuHtml += '
'; + for (var i = 0; i < items.length; i++) { item = items[i]; if (item.href) { menuHtml += getToolsLinkHtml(item); - } - else if (item.name) { + } else if (item.name) { menuHtml += '

'; menuHtml += item.name; menuHtml += "

"; @@ -460,8 +464,8 @@ define(["dom", "layoutManager", "inputManager", "connectionManager", "events", " for (var i = 0, length = items.length; i < length; i++) { var view = items[i]; - list.push(view); + if ("livetv" == view.CollectionType) { view.ImageTags = {}; view.icon = "live_tv"; @@ -484,8 +488,7 @@ define(["dom", "layoutManager", "inputManager", "connectionManager", "events", " if (elem) { if (show) { elem.classList.remove("hide"); - } - else { + } else { elem.classList.add("hide"); } } @@ -498,20 +501,18 @@ define(["dom", "layoutManager", "inputManager", "connectionManager", "events", " showBySelector(".libraryMenuDownloads", false); showBySelector(".lnkSyncToOtherDevices", false); return void showBySelector(".userMenuOptions", false); - } + } // FIXME: Potentially the same as above + - // FIXME: Potentially the same as above if (user.Policy.EnableContentDownloading) { showBySelector(".lnkSyncToOtherDevices", true); - } - else { + } else { showBySelector(".lnkSyncToOtherDevices", false); } if (user.Policy.EnableContentDownloading && appHost.supports("sync")) { showBySelector(".libraryMenuDownloads", true); - } - else { + } else { showBySelector(".libraryMenuDownloads", false); } @@ -529,9 +530,11 @@ define(["dom", "layoutManager", "inputManager", "connectionManager", "events", " html += items.map(function (i) { var icon = i.icon || imageHelper.getLibraryIcon(i.CollectionType); var itemId = i.Id; + if (i.onclick) { i.onclick; } + return '' + icon + '' + i.Name + ""; }).join(""); libraryMenuOptions.innerHTML = html; @@ -592,23 +595,17 @@ define(["dom", "layoutManager", "inputManager", "connectionManager", "events", " if (isChannelsPage && "channels" === itemId) { lnkMediaFolder.classList.add("navMenuOption-selected"); - } - else if (isLiveTvPage && "livetv" === itemId) { + } else if (isLiveTvPage && "livetv" === itemId) { lnkMediaFolder.classList.add("navMenuOption-selected"); - } - else if (isEditorPage && "editor" === itemId) { + } else if (isEditorPage && "editor" === itemId) { lnkMediaFolder.classList.add("navMenuOption-selected"); - } - else if (isMySyncPage && "manageoffline" === itemId && -1 != window.location.href.toString().indexOf("mode=download")) { + } else if (isMySyncPage && "manageoffline" === itemId && -1 != window.location.href.toString().indexOf("mode=download")) { lnkMediaFolder.classList.add("navMenuOption-selected"); - } - else if (isMySyncPage && "syncotherdevices" === itemId && -1 == window.location.href.toString().indexOf("mode=download")) { + } else if (isMySyncPage && "syncotherdevices" === itemId && -1 == window.location.href.toString().indexOf("mode=download")) { lnkMediaFolder.classList.add("navMenuOption-selected"); - } - else if (id && itemId == id) { + } else if (id && itemId == id) { lnkMediaFolder.classList.add("navMenuOption-selected"); - } - else { + } else { lnkMediaFolder.classList.remove("navMenuOption-selected"); } } @@ -667,8 +664,7 @@ define(["dom", "layoutManager", "inputManager", "connectionManager", "events", " if (title) { LibraryMenu.setTitle(title); - } - else if (page.classList.contains("standalonePage")) { + } else if (page.classList.contains("standalonePage")) { LibraryMenu.setDefaultTitle(); } } @@ -697,6 +693,7 @@ define(["dom", "layoutManager", "inputManager", "connectionManager", "events", " function refreshLibraryDrawer(user) { loadNavDrawer(); currentDrawerType = "library"; + if (user) { Promise.resolve(user); } else { @@ -729,9 +726,11 @@ define(["dom", "layoutManager", "inputManager", "connectionManager", "events", " return new Promise(function (resolve, reject) { require(["navdrawer"], function (navdrawer) { navDrawerInstance = new navdrawer(getNavDrawerOptions()); + if (!layoutManager.tv) { navDrawerElement.classList.remove("hide"); } + resolve(navDrawerInstance); }); });