diff --git a/dashboard-ui/scripts/aboutpage.js b/dashboard-ui/scripts/aboutpage.js
index ddedc476f1..313faa2026 100644
--- a/dashboard-ui/scripts/aboutpage.js
+++ b/dashboard-ui/scripts/aboutpage.js
@@ -1,10 +1,27 @@
define([], function () {
+ function getTabs() {
+ return [
+ {
+ href: 'about.html',
+ name: Globalize.translate('TabAbout')
+ },
+ {
+ href: 'log.html',
+ name: Globalize.translate('TabLogs')
+ },
+ {
+ href: 'supporterkey.html',
+ name: Globalize.translate('TabEmbyPremiere')
+ }];
+ }
+
return function (view, params) {
var self = this;
view.addEventListener('viewbeforeshow', function (e) {
+ LibraryMenu.setTabs('helpadmin', 0, getTabs);
var elem = view.querySelector('#appVersionNumber');
elem.innerHTML = elem.innerHTML.replace('{0}', ConnectionManager.appVersion());
diff --git a/dashboard-ui/scripts/autoorganizelog.js b/dashboard-ui/scripts/autoorganizelog.js
index 8ee8773095..2a02171776 100644
--- a/dashboard-ui/scripts/autoorganizelog.js
+++ b/dashboard-ui/scripts/autoorganizelog.js
@@ -293,6 +293,22 @@
}
}
+ function getTabs() {
+ return [
+ {
+ href: 'autoorganizelog.html',
+ name: Globalize.translate('TabActivityLog')
+ },
+ {
+ href: 'autoorganizetv.html',
+ name: Globalize.translate('TabTV')
+ },
+ {
+ href: 'autoorganizesmart.html',
+ name: Globalize.translate('TabSmartMatches')
+ }];
+ }
+
$(document).on('pageinit', "#libraryFileOrganizerLogPage", function () {
var page = this;
@@ -307,6 +323,8 @@
}).on('pageshow', "#libraryFileOrganizerLogPage", function () {
+ LibraryMenu.setTabs('autoorganize', 0, getTabs);
+
var page = this;
reloadItems(page);
diff --git a/dashboard-ui/scripts/autoorganizesmart.js b/dashboard-ui/scripts/autoorganizesmart.js
index d2f68c0c1a..543c596643 100644
--- a/dashboard-ui/scripts/autoorganizesmart.js
+++ b/dashboard-ui/scripts/autoorganizesmart.js
@@ -105,6 +105,22 @@
});
}
+ function getTabs() {
+ return [
+ {
+ href: 'autoorganizelog.html',
+ name: Globalize.translate('TabActivityLog')
+ },
+ {
+ href: 'autoorganizetv.html',
+ name: Globalize.translate('TabTV')
+ },
+ {
+ href: 'autoorganizesmart.html',
+ name: Globalize.translate('TabSmartMatches')
+ }];
+ }
+
$(document).on('pageinit', "#libraryFileOrganizerSmartMatchPage", function () {
var page = this;
@@ -134,6 +150,8 @@
var page = this;
+ LibraryMenu.setTabs('autoorganize', 2, getTabs);
+
Dashboard.showLoadingMsg();
reloadList(page);
diff --git a/dashboard-ui/scripts/autoorganizetv.js b/dashboard-ui/scripts/autoorganizetv.js
index 1510130b74..cf781c4c4e 100644
--- a/dashboard-ui/scripts/autoorganizetv.js
+++ b/dashboard-ui/scripts/autoorganizetv.js
@@ -109,6 +109,22 @@
return false;
}
+ function getTabs() {
+ return [
+ {
+ href: 'autoorganizelog.html',
+ name: Globalize.translate('TabActivityLog')
+ },
+ {
+ href: 'autoorganizetv.html',
+ name: Globalize.translate('TabTV')
+ },
+ {
+ href: 'autoorganizesmart.html',
+ name: Globalize.translate('TabSmartMatches')
+ }];
+ }
+
$(document).on('pageinit', "#libraryFileOrganizerPage", function () {
var page = this;
@@ -160,6 +176,8 @@
var page = this;
+ LibraryMenu.setTabs('autoorganize', 1, getTabs);
+
ApiClient.getNamedConfiguration('autoorganize').then(function (config) {
loadPage(page, config);
});
diff --git a/dashboard-ui/scripts/cinemamodeconfiguration.js b/dashboard-ui/scripts/cinemamodeconfiguration.js
index d393dc9f6c..db2451b457 100644
--- a/dashboard-ui/scripts/cinemamodeconfiguration.js
+++ b/dashboard-ui/scripts/cinemamodeconfiguration.js
@@ -53,6 +53,26 @@
return false;
}
+ function getTabs() {
+ return [
+ {
+ href: 'cinemamodeconfiguration.html',
+ name: Globalize.translate('TabCinemaMode')
+ },
+ {
+ href: 'playbackconfiguration.html',
+ name: Globalize.translate('TabResumeSettings')
+ },
+ {
+ href: 'streamingsettings.html',
+ name: Globalize.translate('TabStreaming')
+ },
+ {
+ href: 'encodingsettings.html',
+ name: Globalize.translate('TabTranscoding')
+ }];
+ }
+
$(document).on('pageinit', "#cinemaModeConfigurationPage", function () {
var page = this;
@@ -111,6 +131,8 @@
}).on('pageshow', "#cinemaModeConfigurationPage", function () {
+ LibraryMenu.setTabs('playback', 0, getTabs);
+
Dashboard.showLoadingMsg();
var page = this;
diff --git a/dashboard-ui/scripts/devicesupload.js b/dashboard-ui/scripts/devicesupload.js
index 0688c93115..41453390ba 100644
--- a/dashboard-ui/scripts/devicesupload.js
+++ b/dashboard-ui/scripts/devicesupload.js
@@ -111,6 +111,22 @@
return false;
}
+ function getTabs() {
+ return [
+ {
+ href: 'syncactivity.html',
+ name: Globalize.translate('TabSyncJobs')
+ },
+ {
+ href: 'devicesupload.html',
+ name: Globalize.translate('TabCameraUpload')
+ },
+ {
+ href: 'syncsettings.html',
+ name: Globalize.translate('TabSettings')
+ }];
+ }
+
$(document).on('pageinit', "#devicesUploadPage", function () {
var page = this;
@@ -141,6 +157,7 @@
}).on('pageshow', "#devicesUploadPage", function () {
+ LibraryMenu.setTabs('syncadmin', 1, getTabs);
var page = this;
loadData(page);
diff --git a/dashboard-ui/scripts/dlnaprofiles.js b/dashboard-ui/scripts/dlnaprofiles.js
index 4c9e1eb7ad..6151b55d3c 100644
--- a/dashboard-ui/scripts/dlnaprofiles.js
+++ b/dashboard-ui/scripts/dlnaprofiles.js
@@ -100,8 +100,21 @@
});
}
+ function getTabs() {
+ return [
+ {
+ href: 'dlnasettings.html',
+ name: Globalize.translate('TabSettings')
+ },
+ {
+ href: 'dlnaprofiles.html',
+ name: Globalize.translate('TabProfiles')
+ }];
+ }
+
$(document).on('pageshow', "#dlnaProfilesPage", function () {
+ LibraryMenu.setTabs('dlna', 1, getTabs);
var page = this;
loadProfiles(page);
diff --git a/dashboard-ui/scripts/dlnasettings.js b/dashboard-ui/scripts/dlnasettings.js
index 2cc982bca6..e8e6e80de4 100644
--- a/dashboard-ui/scripts/dlnasettings.js
+++ b/dashboard-ui/scripts/dlnasettings.js
@@ -49,12 +49,25 @@
return false;
}
+ function getTabs() {
+ return [
+ {
+ href: 'dlnasettings.html',
+ name: Globalize.translate('TabSettings')
+ },
+ {
+ href: 'dlnaprofiles.html',
+ name: Globalize.translate('TabProfiles')
+ }];
+ }
+
$(document).on('pageinit', "#dlnaSettingsPage", function () {
$('.dlnaSettingsForm').off('submit', onSubmit).on('submit', onSubmit);
}).on('pageshow', "#dlnaSettingsPage", function () {
+ LibraryMenu.setTabs('dlna', 0, getTabs);
Dashboard.showLoadingMsg();
var page = this;
diff --git a/dashboard-ui/scripts/encodingsettings.js b/dashboard-ui/scripts/encodingsettings.js
index 258224397b..b62c0eea2c 100644
--- a/dashboard-ui/scripts/encodingsettings.js
+++ b/dashboard-ui/scripts/encodingsettings.js
@@ -50,6 +50,26 @@
return false;
}
+ function getTabs() {
+ return [
+ {
+ href: 'cinemamodeconfiguration.html',
+ name: Globalize.translate('TabCinemaMode')
+ },
+ {
+ href: 'playbackconfiguration.html',
+ name: Globalize.translate('TabResumeSettings')
+ },
+ {
+ href: 'streamingsettings.html',
+ name: Globalize.translate('TabStreaming')
+ },
+ {
+ href: 'encodingsettings.html',
+ name: Globalize.translate('TabTranscoding')
+ }];
+ }
+
$(document).on('pageinit', "#encodingSettingsPage", function () {
var page = this;
@@ -84,6 +104,7 @@
Dashboard.showLoadingMsg();
+ LibraryMenu.setTabs('playback',3, getTabs);
var page = this;
ApiClient.getNamedConfiguration("encoding").then(function (config) {
diff --git a/dashboard-ui/scripts/librarymenu.js b/dashboard-ui/scripts/librarymenu.js
index a3092af251..413dc51fa4 100644
--- a/dashboard-ui/scripts/librarymenu.js
+++ b/dashboard-ui/scripts/librarymenu.js
@@ -6,6 +6,7 @@
var html = '';
+ html += '
';
var backIcon = browserInfo.safari ? 'chevron-left' : 'arrow-back';
html += '';
@@ -43,6 +44,10 @@
html += '';
}
+ html += '
';
+ html += '
';
+
+ html += '';
var viewMenuBar = document.createElement('div');
@@ -432,20 +437,12 @@
if (selected) {
link.classList.add('selectedSidebarLink');
- var collapsible = parentWithTag(link, 'EMBY-COLLAPSIBLE');
- if (collapsible) {
- collapsible.expanded = true;
- }
-
var title = '';
- title += collapsible.title || '';
- title += '
–';
-
var secondaryTitle = (link.innerText || link.textContent).trim();
title += secondaryTitle;
- var documentTitle = collapsible.title || secondaryTitle;
+ var documentTitle = secondaryTitle;
Dashboard.setPageTitle(title, documentTitle);
@@ -456,30 +453,28 @@
}
function createDashboardMenu() {
- require(['emby-collapsible'], function () {
- var html = '';
+ var html = '';
- //html += '';
+ //html += '';
- html += '
'
- html += '
';
- html += ''
+ html += '
'
+ html += '
';
+ html += '';
- html += Dashboard.getToolsMenuHtml();
+ html += Dashboard.getToolsMenuHtml();
- html = html.split('href=').join('onclick="return LibraryMenu.onLinkClicked(event, this);" href=');
+ html = html.split('href=').join('onclick="return LibraryMenu.onLinkClicked(event, this);" href=');
- mainDrawerPanel.querySelector('.mainDrawer').innerHTML = html;
+ mainDrawerPanel.querySelector('.mainDrawer').innerHTML = html;
- updateDashboardMenuSelectedItem();
- });
+ updateDashboardMenuSelectedItem();
}
function onSidebarLinkClick() {
@@ -723,6 +718,47 @@
return false;
},
+ setTabs: function (type, selectedIndex, builder) {
+
+ var viewMenuBarTabs;
+
+ if (!type) {
+ if (LibraryMenu.tabType) {
+
+ mainDrawerPanel.classList.remove('withTallToolbar');
+ viewMenuBarTabs = document.querySelector('.viewMenuBarTabs');
+ viewMenuBarTabs.innerHTML = '';
+ viewMenuBarTabs.classList.add('hide');
+ LibraryMenu.tabType = null;
+ }
+ return;
+ }
+
+ viewMenuBarTabs = document.querySelector('.viewMenuBarTabs');
+
+ if (!LibraryMenu.tabType) {
+ viewMenuBarTabs.classList.remove('hide');
+ }
+
+ if (LibraryMenu.tabType != type) {
+
+ require(['paper-tabs'], function () {
+
+ viewMenuBarTabs.innerHTML = '
' + builder().map(function (t) {
+
+ return '' + t.name + '
';
+
+ }).join('') + '';
+ mainDrawerPanel.classList.add('withTallToolbar');
+ LibraryMenu.tabType = type;
+ });
+ return;
+ }
+
+ viewMenuBarTabs.querySelector('paper-tabs').selected = selectedIndex;
+ LibraryMenu.tabType = type;
+ },
+
setTitle: function (title) {
var html = title;
@@ -885,7 +921,7 @@
}
}
- function buildViewMenuBar(page) {
+ function updateViewMenuBar(page) {
var viewMenuBar = document.querySelector('.viewMenuBar');
@@ -895,6 +931,12 @@
viewMenuBar.classList.remove('hide');
}
+ if (page.classList.contains('type-interior')) {
+ viewMenuBar.classList.add('headroomDisabled');
+ } else {
+ viewMenuBar.classList.remove('headroomDisabled');
+ }
+
if (requiresUserRefresh) {
ConnectionManager.user(window.ApiClient).then(updateUserInHeader);
}
@@ -915,6 +957,15 @@
}
});
+ pageClassOn('pagebeforeshow', 'page', function (e) {
+
+ var page = this;
+
+ if (!page.classList.contains('withTabs')) {
+ LibraryMenu.setTabs(null);
+ }
+ });
+
pageClassOn('pageshow', 'page', function (e) {
var page = this;
@@ -935,7 +986,7 @@
setDrawerClass(page);
- buildViewMenuBar(page);
+ updateViewMenuBar(page);
updateTabLinks(page);
if (!e.detail.isRestored) {
@@ -1023,7 +1074,6 @@
});
// initialise
headroom.init();
- elem.classList.add('headroomEnabled');
});
}
diff --git a/dashboard-ui/scripts/livetvsettings.js b/dashboard-ui/scripts/livetvsettings.js
index 76579f57e3..becba5ee6e 100644
--- a/dashboard-ui/scripts/livetvsettings.js
+++ b/dashboard-ui/scripts/livetvsettings.js
@@ -43,6 +43,22 @@
return false;
}
+ function getTabs() {
+ return [
+ {
+ href: 'livetvstatus.html',
+ name: Globalize.translate('TabDevices')
+ },
+ {
+ href: 'livetvsettings.html',
+ name: Globalize.translate('TabSettings')
+ },
+ {
+ href: 'appservices.html?context=livetv',
+ name: Globalize.translate('TabServices')
+ }];
+ }
+
$(document).on('pageinit', "#liveTvSettingsPage", function () {
var page = this;
@@ -70,6 +86,7 @@
}).on('pageshow', "#liveTvSettingsPage", function () {
+ LibraryMenu.setTabs('livetvadmin', 1, getTabs);
Dashboard.showLoadingMsg();
var page = this;
diff --git a/dashboard-ui/scripts/livetvstatus.js b/dashboard-ui/scripts/livetvstatus.js
index 62aa6bfdae..d6f77fb928 100644
--- a/dashboard-ui/scripts/livetvstatus.js
+++ b/dashboard-ui/scripts/livetvstatus.js
@@ -491,6 +491,22 @@
});
}
+ function getTabs() {
+ return [
+ {
+ href: 'livetvstatus.html',
+ name: Globalize.translate('TabDevices')
+ },
+ {
+ href: 'livetvsettings.html',
+ name: Globalize.translate('TabSettings')
+ },
+ {
+ href: 'appservices.html?context=livetv',
+ name: Globalize.translate('TabServices')
+ }];
+ }
+
$(document).on('pageinit', "#liveTvStatusPage", function () {
var page = this;
@@ -510,6 +526,7 @@
}).on('pageshow', "#liveTvStatusPage", function () {
+ LibraryMenu.setTabs('livetvadmin', 0, getTabs);
var page = this;
reload(page);
diff --git a/dashboard-ui/scripts/logpage.js b/dashboard-ui/scripts/logpage.js
index c44a549ddb..46b3e59885 100644
--- a/dashboard-ui/scripts/logpage.js
+++ b/dashboard-ui/scripts/logpage.js
@@ -1,5 +1,21 @@
define(['jQuery', 'paper-fab', 'paper-item-body', 'paper-icon-item'], function ($) {
+ function getTabs() {
+ return [
+ {
+ href: 'about.html',
+ name: Globalize.translate('TabAbout')
+ },
+ {
+ href: 'log.html',
+ name: Globalize.translate('TabLogs')
+ },
+ {
+ href: 'supporterkey.html',
+ name: Globalize.translate('TabEmbyPremiere')
+ }];
+ }
+
return function (view, params) {
view.querySelector('#chkDebugLog').addEventListener('change', function () {
@@ -14,6 +30,7 @@
view.addEventListener('viewbeforeshow', function () {
+ LibraryMenu.setTabs('helpadmin', 1, getTabs);
Dashboard.showLoadingMsg();
var apiClient = ApiClient;
diff --git a/dashboard-ui/scripts/metadataconfigurationpage.js b/dashboard-ui/scripts/metadataconfigurationpage.js
index b0e7939644..c70aaae9d1 100644
--- a/dashboard-ui/scripts/metadataconfigurationpage.js
+++ b/dashboard-ui/scripts/metadataconfigurationpage.js
@@ -32,6 +32,22 @@
return false;
}
+ function getTabs() {
+ return [
+ {
+ href: 'metadata.html',
+ name: Globalize.translate('TabSettings')
+ },
+ {
+ href: 'metadataimages.html',
+ name: Globalize.translate('TabServices')
+ },
+ {
+ href: 'metadatanfo.html',
+ name: Globalize.translate('TabNfoSettings')
+ }];
+ }
+
$(document).on('pageinit', "#metadataConfigurationPage", function () {
Dashboard.showLoadingMsg();
@@ -40,6 +56,7 @@
}).on('pageshow', "#metadataConfigurationPage", function () {
+ LibraryMenu.setTabs('metadata', 0, getTabs);
Dashboard.showLoadingMsg();
var page = this;
diff --git a/dashboard-ui/scripts/metadataimagespage.js b/dashboard-ui/scripts/metadataimagespage.js
index de4c10e6f1..5c6a52e231 100644
--- a/dashboard-ui/scripts/metadataimagespage.js
+++ b/dashboard-ui/scripts/metadataimagespage.js
@@ -513,6 +513,22 @@
return false;
}
+ function getTabs() {
+ return [
+ {
+ href: 'metadata.html',
+ name: Globalize.translate('TabSettings')
+ },
+ {
+ href: 'metadataimages.html',
+ name: Globalize.translate('TabServices')
+ },
+ {
+ href: 'metadatanfo.html',
+ name: Globalize.translate('TabNfoSettings')
+ }];
+ }
+
$(document).on('pageinit', "#metadataImagesConfigurationPage", function () {
var page = this;
@@ -555,6 +571,7 @@
}).on('pageshow', "#metadataImagesConfigurationPage", function () {
+ LibraryMenu.setTabs('metadata', 1, getTabs);
Dashboard.showLoadingMsg();
var page = this;
diff --git a/dashboard-ui/scripts/metadatanfo.js b/dashboard-ui/scripts/metadatanfo.js
index e64c6fcb39..6ebe1b4dae 100644
--- a/dashboard-ui/scripts/metadatanfo.js
+++ b/dashboard-ui/scripts/metadatanfo.js
@@ -41,12 +41,29 @@
return false;
}
+ function getTabs() {
+ return [
+ {
+ href: 'metadata.html',
+ name: Globalize.translate('TabSettings')
+ },
+ {
+ href: 'metadataimages.html',
+ name: Globalize.translate('TabServices')
+ },
+ {
+ href: 'metadatanfo.html',
+ name: Globalize.translate('TabNfoSettings')
+ }];
+ }
+
$(document).on('pageinit', "#metadataNfoPage", function () {
$('.metadataNfoForm').off('submit', onSubmit).on('submit', onSubmit);
}).on('pageshow', "#metadataNfoPage", function () {
+ LibraryMenu.setTabs('metadata', 2, getTabs);
Dashboard.showLoadingMsg();
var page = this;
diff --git a/dashboard-ui/scripts/notificationsettings.js b/dashboard-ui/scripts/notificationsettings.js
index 35f1a2b2f9..386e7aa7b0 100644
--- a/dashboard-ui/scripts/notificationsettings.js
+++ b/dashboard-ui/scripts/notificationsettings.js
@@ -62,13 +62,27 @@
});
}
- $(document).on('pageshow', "#notificationSettingsPage", function () {
+ function getTabs() {
+ return [
+ {
+ href: 'notificationsettings.html',
+ name: Globalize.translate('TabNotifications')
+ },
+ {
+ href: 'appservices.html?context=notifications',
+ name: Globalize.translate('TabServices')
+ }];
+ }
- var page = this;
+ return function (view, params) {
- require(['paper-fab', 'paper-item-body', 'paper-icon-item'], function () {
- reload(page);
+ view.addEventListener('viewshow', function () {
+
+ LibraryMenu.setTabs('notifications', 0, getTabs);
+
+ require(['paper-fab', 'paper-item-body', 'paper-icon-item'], function () {
+ reload(view);
+ });
});
- });
-
+ };
});
\ No newline at end of file
diff --git a/dashboard-ui/scripts/playbackconfiguration.js b/dashboard-ui/scripts/playbackconfiguration.js
index f0f2555d26..f613f7daae 100644
--- a/dashboard-ui/scripts/playbackconfiguration.js
+++ b/dashboard-ui/scripts/playbackconfiguration.js
@@ -27,12 +27,33 @@
return false;
}
+ function getTabs() {
+ return [
+ {
+ href: 'cinemamodeconfiguration.html',
+ name: Globalize.translate('TabCinemaMode')
+ },
+ {
+ href: 'playbackconfiguration.html',
+ name: Globalize.translate('TabResumeSettings')
+ },
+ {
+ href: 'streamingsettings.html',
+ name: Globalize.translate('TabStreaming')
+ },
+ {
+ href: 'encodingsettings.html',
+ name: Globalize.translate('TabTranscoding')
+ }];
+ }
+
$(document).on('pageinit', "#playbackConfigurationPage", function () {
$('.playbackConfigurationForm').off('submit', onSubmit).on('submit', onSubmit);
}).on('pageshow', "#playbackConfigurationPage", function () {
+ LibraryMenu.setTabs('playback', 1, getTabs);
Dashboard.showLoadingMsg();
var page = this;
diff --git a/dashboard-ui/scripts/plugincatalogpage.js b/dashboard-ui/scripts/plugincatalogpage.js
index 7f66e099e5..65518c6d05 100644
--- a/dashboard-ui/scripts/plugincatalogpage.js
+++ b/dashboard-ui/scripts/plugincatalogpage.js
@@ -243,6 +243,18 @@
return html;
}
+ function getTabs() {
+ return [
+ {
+ href: 'plugins.html',
+ name: Globalize.translate('TabMyPlugins')
+ },
+ {
+ href: 'plugincatalog.html',
+ name: Globalize.translate('TabCatalog')
+ }];
+ }
+
$(document).on('pageinit', "#pluginCatalogPage", function () {
var page = this;
@@ -261,6 +273,7 @@
}).on('pageshow', "#pluginCatalogPage", function () {
+ LibraryMenu.setTabs('plugins', 1, getTabs);
var page = this;
reloadList(page);
diff --git a/dashboard-ui/scripts/pluginspage.js b/dashboard-ui/scripts/pluginspage.js
index cca463743c..7767e621a4 100644
--- a/dashboard-ui/scripts/pluginspage.js
+++ b/dashboard-ui/scripts/pluginspage.js
@@ -224,8 +224,21 @@
});
}
+ function getTabs() {
+ return [
+ {
+ href: 'plugins.html',
+ name: Globalize.translate('TabMyPlugins')
+ },
+ {
+ href: 'plugincatalog.html',
+ name: Globalize.translate('TabCatalog')
+ }];
+ }
+
$(document).on('pageshow', "#pluginsPage", function () {
+ LibraryMenu.setTabs('plugins', 0, getTabs);
reloadList(this);
});
diff --git a/dashboard-ui/scripts/site.js b/dashboard-ui/scripts/site.js
index 5d6a84a12e..9c9b3fba75 100644
--- a/dashboard-ui/scripts/site.js
+++ b/dashboard-ui/scripts/site.js
@@ -684,6 +684,10 @@ var Dashboard = {
item = items[i];
+ if (item.divider) {
+ menuHtml += "";
+ }
+
if (item.items) {
var style = item.color ? ' iconstyle="color:' + item.color + '"' : '';
@@ -714,254 +718,121 @@ var Dashboard = {
getToolsMenuLinks: function () {
return [{
- name: Globalize.translate('TabServer'),
- icon: 'dashboard',
- color: '#38c',
- expanded: true,
- items: [
- {
- name: Globalize.translate('TabDashboard'),
- href: "dashboard.html",
- pageIds: ['dashboardPage'],
- icon: 'dashboard'
- }, {
- name: Globalize.translate('TabSettings'),
- href: "dashboardgeneral.html",
- pageIds: ['dashboardGeneralPage'],
- icon: 'settings'
- }, {
- name: Globalize.translate('TabDevices'),
- href: "devices.html",
- pageIds: ['devicesPage'],
- icon: 'tablet'
- }, {
- name: Globalize.translate('TabUsers'),
- href: "userprofiles.html",
- pageIds: ['userProfilesPage'],
- icon: 'people'
- }
- ]
+ name: Globalize.translate('TabServer')
}, {
- name: Globalize.translate('TabLibrary'),
+ name: Globalize.translate('TabDashboard'),
+ href: "dashboard.html",
+ pageIds: ['dashboardPage'],
+ icon: 'dashboard'
+ }, {
+ name: Globalize.translate('TabSettings'),
+ href: "dashboardgeneral.html",
+ pageIds: ['dashboardGeneralPage'],
+ icon: 'settings'
+ }, {
+ name: Globalize.translate('TabDevices'),
+ href: "devices.html",
+ pageIds: ['devicesPage'],
+ icon: 'tablet'
+ }, {
+ name: Globalize.translate('TabUsers'),
+ href: "userprofiles.html",
+ pageIds: ['userProfilesPage'],
+ icon: 'people'
+ }, {
+ divider: true,
+ name: Globalize.translate('TabLibrary')
+ }, {
+ name: Globalize.translate('TabFolders'),
+ href: "library.html",
+ pageIds: ['mediaLibraryPage'],
icon: 'folder',
- color: '#ECA403',
- expanded: true,
- items: [
- {
- name: Globalize.translate('TabFolders'),
- href: "library.html",
- pageIds: ['mediaLibraryPage'],
- icon: 'folder'
- },
- {
- name: Globalize.translate('TabMetadata'),
- href: "metadata.html",
- pageIds: ['metadataConfigurationPage'],
- icon: 'insert-drive-file'
- },
- {
- name: Globalize.translate('TabServices'),
- href: "metadataimages.html",
- pageIds: ['metadataImagesConfigurationPage'],
- icon: 'insert-drive-file'
- },
- {
- name: Globalize.translate('TabNfoSettings'),
- href: "metadatanfo.html",
- pageIds: ['metadataNfoPage'],
- icon: 'insert-drive-file'
- },
- {
- name: Globalize.translate('TabPathSubstitution'),
- href: "librarypathmapping.html",
- pageIds: ['libraryPathMappingPage'],
- icon: 'mode-edit'
- },
- {
- name: Globalize.translate('TabSubtitles'),
- href: "metadatasubtitles.html",
- pageIds: ['metadataSubtitlesPage'],
- icon: 'closed-caption'
- },
- {
- name: Globalize.translate('TabAdvanced'),
- href: "librarysettings.html",
- pageIds: ['librarySettingsPage'],
- icon: 'settings'
- }
- ]
+ color: '#009688'
}, {
- name: Globalize.translate('DLNA'),
- icon: 'live-tv',
- color: '#E5342E',
- items: [
- {
- name: Globalize.translate('TabSettings'),
- href: "dlnasettings.html",
- pageIds: ['dlnaSettingsPage'],
- icon: 'settings'
- },
- {
- name: Globalize.translate('TabProfiles'),
- href: "dlnaprofiles.html",
- pageIds: ['dlnaProfilesPage', 'dlnaProfilePage'],
- icon: 'live-tv'
- }
- ]
+ name: Globalize.translate('TabMetadata'),
+ href: "metadata.html",
+ pageIds: ['metadataConfigurationPage', 'metadataImagesConfigurationPage', 'metadataNfoPage'],
+ icon: 'insert-drive-file',
+ color: '#FF9800'
}, {
- name: Globalize.translate('TabLiveTV'),
- icon: 'dvr',
- color: '#293AAE',
- items: [
- {
- name: Globalize.translate('TabSettings'),
- href: "livetvstatus.html",
- pageIds: ['liveTvStatusPage'],
- icon: 'settings'
- },
- {
- name: Globalize.translate('TabAdvanced'),
- href: "livetvsettings.html",
- pageIds: ['liveTvSettingsPage'],
- icon: 'settings'
- },
- {
- name: Globalize.translate('TabServices'),
- href: "appservices.html?context=livetv",
- //selected: (isServicesPage && context == 'livetv'),
- icon: 'add-shopping-cart'
- }
- ]
+ name: Globalize.translate('TabPathSubstitution'),
+ href: "librarypathmapping.html",
+ pageIds: ['libraryPathMappingPage'],
+ icon: 'mode-edit'
}, {
- name: Globalize.translate('TabNotifications'),
- icon: 'notifications',
- color: 'brown',
- href: "notificationsettings.html"
+ name: Globalize.translate('TabSubtitles'),
+ href: "metadatasubtitles.html",
+ pageIds: ['metadataSubtitlesPage'],
+ icon: 'closed-caption'
+ }, {
+ name: Globalize.translate('TabAdvanced'),
+ href: "librarysettings.html",
+ pageIds: ['librarySettingsPage'],
+ icon: 'settings'
}, {
name: Globalize.translate('TabPlayback'),
icon: 'play-circle-filled',
color: '#E5342E',
- items: [
- {
- name: Globalize.translate('TabCinemaMode'),
- href: "cinemamodeconfiguration.html",
- pageIds: ['cinemaModeConfigurationPage'],
- icon: 'local-movies'
- },
- {
- name: Globalize.translate('TabResumeSettings'),
- href: "playbackconfiguration.html",
- pageIds: ['playbackConfigurationPage'],
- icon: 'play-circle-filled'
- },
- {
- name: Globalize.translate('TabStreaming'),
- href: "streamingsettings.html",
- pageIds: ['streamingSettingsPage'],
- icon: 'wifi'
- },
- {
- name: Globalize.translate('TabTranscoding'),
- href: "encodingsettings.html",
- pageIds: ['encodingSettingsPage'],
- icon: 'play-circle-filled'
- }
- ]
+ href: "cinemamodeconfiguration.html",
+ pageIds: ['cinemaModeConfigurationPage', 'playbackConfigurationPage', 'streamingSettingsPage', 'encodingSettingsPage']
+ }, {
+ name: Globalize.translate('TabSync'),
+ icon: 'sync',
+ href: "syncactivity.html",
+ pageIds: ['syncActivityPage', 'syncJobPage', 'devicesUploadPage', 'syncSettingsPage']
+ }, {
+ divider: true,
+ name: Globalize.translate('TabExtras')
+ }, {
+ name: Globalize.translate('TabAutoOrganize'),
+ color: '#01C0DD',
+ href: "autoorganizelog.html",
+ pageIds: ['libraryFileOrganizerPage', 'libraryFileOrganizerSmartMatchPage', 'libraryFileOrganizerLogPage'],
+ icon: 'folder'
+ }, {
+ name: Globalize.translate('DLNA'),
+ href: "dlnasettings.html",
+ pageIds: ['dlnaSettingsPage', 'dlnaProfilesPage', 'dlnaProfilePage'],
+ icon: 'settings'
+ }, {
+ name: Globalize.translate('TabLiveTV'),
+ href: "livetvstatus.html",
+ pageIds: ['liveTvStatusPage', 'liveTvSettingsPage', 'liveTvTunerProviderHdHomerunPage', 'liveTvTunerProviderM3UPage', 'liveTvTunerProviderSatPage'],
+ icon: 'dvr'
+ }, {
+ name: Globalize.translate('TabNotifications'),
+ icon: 'notifications',
+ color: 'brown',
+ href: "notificationsettings.html",
+ pageIds: ['notificationSettingsPage', 'notificationSettingPage']
}, {
name: Globalize.translate('TabPlugins'),
icon: 'add-shopping-cart',
color: '#9D22B1',
- items: [
- {
- name: Globalize.translate('TabMyPlugins'),
- href: "plugins.html",
- pageIds: ['pluginsPage'],
- icon: 'file-download'
- }, {
- name: Globalize.translate('TabCatalog'),
- href: "plugincatalog.html",
- pageIds: ['pluginCatalogPage'],
- icon: 'add-shopping-cart'
- }
- ]
+ href: "plugins.html",
+ pageIds: ['pluginsPage', 'pluginCatalogPage']
}, {
- name: Globalize.translate('TabSync'),
- icon: 'sync',
- items: [
- {
- name: Globalize.translate('TabSyncJobs'),
- href: "syncactivity.html",
- pageIds: ['syncActivityPage', 'syncJobPage'],
- icon: 'menu'
- }, {
- name: Globalize.translate('TabCameraUpload'),
- href: "devicesupload.html",
- pageIds: ['devicesUploadPage'],
- icon: 'photo'
- }, {
- name: Globalize.translate('TabServices'),
- href: "appservices.html?context=sync",
- //selected: (isServicesPage && context == 'sync'),
- icon: 'add-shopping-cart'
- }, {
- name: Globalize.translate('TabSettings'),
- href: "syncsettings.html",
- pageIds: ['syncSettingsPage'],
- icon: 'settings'
- }
- ]
+ divider: true,
+ name: Globalize.translate('TabExpert')
}, {
name: Globalize.translate('TabAdvanced'),
icon: 'settings',
+ href: "dashboardhosting.html",
color: '#F16834',
- items: [
- {
- name: Globalize.translate('TabAutoOrganize'),
- href: "autoorganizelog.html",
- pageIds: ['libraryFileOrganizerPage', 'libraryFileOrganizerSmartMatchPage', 'libraryFileOrganizerLogPage'],
- icon: 'folder'
- },
- {
- name: Globalize.translate('TabHosting'),
- href: "dashboardhosting.html",
- pageIds: ['dashboardHostingPage'],
- icon: 'wifi'
- }, {
- name: Globalize.translate('TabScheduledTasks'),
- href: "scheduledtasks.html",
- pageIds: ['scheduledTasksPage', 'scheduledTaskPage'],
- icon: 'schedule'
- },
- {
- name: Globalize.translate('TabSecurity'),
- href: "serversecurity.html",
- pageIds: ['serverSecurityPage'],
- icon: 'lock'
- }
- ]
+ pageIds: ['dashboardHostingPage', 'serverSecurityPage']
+ }, {
+ name: Globalize.translate('TabScheduledTasks'),
+ color: '#38c',
+ href: "scheduledtasks.html",
+ pageIds: ['scheduledTasksPage', 'scheduledTaskPage'],
+ icon: 'schedule'
}, {
name: Globalize.translate('TabHelp'),
- icon: 'info',
- items: [
- {
- name: Globalize.translate('TabAbout'),
- href: "about.html",
- pageIds: ['aboutPage'],
- icon: 'info'
- },
- {
- name: Globalize.translate('TabLogs'),
- href: "log.html",
- pageIds: ['logPage'],
- icon: 'menu'
- },
- {
- name: Globalize.translate('TabEmbyPremiere'),
- href: "supporterkey.html",
- pageIds: ['supporterKeyPage'],
- icon: 'add-circle'
- }
- ]
+ href: "about.html",
+ icon: 'help',
+ color: '#679C34',
+ divider: true,
+ pageIds: ['supporterKeyPage', 'logPage', 'aboutPage']
}];
},
@@ -2767,6 +2638,7 @@ var AppInfo = {};
defineRoute({
path: '/notificationsettings.html',
+ controller: 'scripts/notificationsettings',
dependencies: [],
autoFocus: false,
roles: 'admin'
diff --git a/dashboard-ui/scripts/streamingsettings.js b/dashboard-ui/scripts/streamingsettings.js
index 8c8f2cd164..8ed0f0e9e8 100644
--- a/dashboard-ui/scripts/streamingsettings.js
+++ b/dashboard-ui/scripts/streamingsettings.js
@@ -37,6 +37,26 @@
return false;
}
+ function getTabs() {
+ return [
+ {
+ href: 'cinemamodeconfiguration.html',
+ name: Globalize.translate('TabCinemaMode')
+ },
+ {
+ href: 'playbackconfiguration.html',
+ name: Globalize.translate('TabResumeSettings')
+ },
+ {
+ href: 'streamingsettings.html',
+ name: Globalize.translate('TabStreaming')
+ },
+ {
+ href: 'encodingsettings.html',
+ name: Globalize.translate('TabTranscoding')
+ }];
+ }
+
$(document).on('pageinit', "#streamingSettingsPage", function () {
var page = this;
@@ -70,6 +90,7 @@
Dashboard.showLoadingMsg();
+ LibraryMenu.setTabs('playback', 2, getTabs);
var page = this;
ApiClient.getServerConfiguration().then(function (config) {
diff --git a/dashboard-ui/scripts/supporterkeypage.js b/dashboard-ui/scripts/supporterkeypage.js
index ef85dd381a..37b37a4973 100644
--- a/dashboard-ui/scripts/supporterkeypage.js
+++ b/dashboard-ui/scripts/supporterkeypage.js
@@ -146,6 +146,22 @@
}
};
+ function getTabs() {
+ return [
+ {
+ href: 'about.html',
+ name: Globalize.translate('TabAbout')
+ },
+ {
+ href: 'log.html',
+ name: Globalize.translate('TabLogs')
+ },
+ {
+ href: 'supporterkey.html',
+ name: Globalize.translate('TabEmbyPremiere')
+ }];
+ }
+
$(document).on('pageinit', "#supporterKeyPage", function () {
var page = this;
@@ -156,6 +172,9 @@
$('.benefits', page).html(Globalize.translate('HeaderSupporterBenefit', '
', ''));
}).on('pageshow', "#supporterKeyPage", function () {
+
+ LibraryMenu.setTabs('helpadmin', 2, getTabs);
+
var page = this;
loadUserInfo(page);
load(page);
diff --git a/dashboard-ui/scripts/syncactivity.js b/dashboard-ui/scripts/syncactivity.js
index 6597adee91..39a11d88cd 100644
--- a/dashboard-ui/scripts/syncactivity.js
+++ b/dashboard-ui/scripts/syncactivity.js
@@ -382,6 +382,22 @@
}
+ function getTabs() {
+ return [
+ {
+ href: 'syncactivity.html',
+ name: Globalize.translate('TabSyncJobs')
+ },
+ {
+ href: 'devicesupload.html',
+ name: Globalize.translate('TabCameraUpload')
+ },
+ {
+ href: 'syncsettings.html',
+ name: Globalize.translate('TabSettings')
+ }];
+ }
+
$(document).on('pageinit', ".syncActivityPage", function () {
var page = this;
@@ -396,6 +412,7 @@
}).on('pageshow', ".syncActivityPage", function () {
+ LibraryMenu.setTabs('syncadmin', 0, getTabs);
var page = this;
Dashboard.getPluginSecurityInfo().then(function (pluginSecurityInfo) {
diff --git a/dashboard-ui/scripts/syncsettings.js b/dashboard-ui/scripts/syncsettings.js
index 9e2e55fda5..1d2e872a0f 100644
--- a/dashboard-ui/scripts/syncsettings.js
+++ b/dashboard-ui/scripts/syncsettings.js
@@ -29,6 +29,22 @@
return false;
}
+ function getTabs() {
+ return [
+ {
+ href: 'syncactivity.html',
+ name: Globalize.translate('TabSyncJobs')
+ },
+ {
+ href: 'devicesupload.html',
+ name: Globalize.translate('TabCameraUpload')
+ },
+ {
+ href: 'syncsettings.html',
+ name: Globalize.translate('TabSettings')
+ }];
+ }
+
$(document).on('pageinit', "#syncSettingsPage", function () {
var page = this;
@@ -58,6 +74,7 @@
Dashboard.showLoadingMsg();
+ LibraryMenu.setTabs('syncadmin', 2, getTabs);
var page = this;
ApiClient.getNamedConfiguration("sync").then(function (config) {
diff --git a/dashboard-ui/streamingsettings.html b/dashboard-ui/streamingsettings.html
index 86812c083d..42c6164454 100644
--- a/dashboard-ui/streamingsettings.html
+++ b/dashboard-ui/streamingsettings.html
@@ -1,4 +1,4 @@
-
+
diff --git a/dashboard-ui/supporterkey.html b/dashboard-ui/supporterkey.html
index ff328b8734..7d7b175b39 100644
--- a/dashboard-ui/supporterkey.html
+++ b/dashboard-ui/supporterkey.html
@@ -1,4 +1,4 @@
-
+
diff --git a/dashboard-ui/syncactivity.html b/dashboard-ui/syncactivity.html
index 646e2c9f4b..e43aec1f38 100644
--- a/dashboard-ui/syncactivity.html
+++ b/dashboard-ui/syncactivity.html
@@ -1,4 +1,4 @@
-
+
diff --git a/dashboard-ui/syncjob.html b/dashboard-ui/syncjob.html
index 402d4a193c..53c2c2535c 100644
--- a/dashboard-ui/syncjob.html
+++ b/dashboard-ui/syncjob.html
@@ -1,4 +1,4 @@
-
+
diff --git a/dashboard-ui/syncsettings.html b/dashboard-ui/syncsettings.html
index 084bf8dd5c..819222dd7c 100644
--- a/dashboard-ui/syncsettings.html
+++ b/dashboard-ui/syncsettings.html
@@ -1,4 +1,4 @@
-