From 8ba393c549427a6fb2f23cd174372f8081c2e559 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Mon, 22 Aug 2016 16:47:16 -0400 Subject: [PATCH] update now playing bar --- dashboard-ui/camerauploadsettings.html | 2 +- .../components/appfooter/appfooter.js | 6 +- dashboard-ui/css/nowplayingbar.css | 3 - dashboard-ui/legacy/selectmenu.js | 12 ++-- dashboard-ui/mypreferencesmenu.html | 38 ++++++---- dashboard-ui/mysyncsettings.html | 2 +- dashboard-ui/scripts/camerauploadsettings.js | 22 +----- dashboard-ui/scripts/librarymenu.js | 9 +-- dashboard-ui/scripts/mypreferencescommon.js | 72 ++++++++++--------- dashboard-ui/scripts/mysyncsettings.js | 6 +- dashboard-ui/scripts/nowplayingbar.js | 18 ++--- dashboard-ui/scripts/site.js | 18 ++--- .../thirdparty/paper-button-style.css | 16 ----- 13 files changed, 101 insertions(+), 123 deletions(-) diff --git a/dashboard-ui/camerauploadsettings.html b/dashboard-ui/camerauploadsettings.html index 3cade19b9b..cc46870724 100644 --- a/dashboard-ui/camerauploadsettings.html +++ b/dashboard-ui/camerauploadsettings.html @@ -7,9 +7,9 @@ ${HeaderCameraUpload} +

${SelectCameraUploadServers}

-
diff --git a/dashboard-ui/components/appfooter/appfooter.js b/dashboard-ui/components/appfooter/appfooter.js index 4c21e5cb44..a3be8707f2 100644 --- a/dashboard-ui/components/appfooter/appfooter.js +++ b/dashboard-ui/components/appfooter/appfooter.js @@ -20,7 +20,7 @@ }); } - function dockedTabs(options) { + function appFooter(options) { var self = this; @@ -41,7 +41,7 @@ initHeadRoom(self, self.element); } - dockedTabs.prototype.destroy = function () { + appFooter.prototype.destroy = function () { var self = this; if (self.headroom) { @@ -52,5 +52,5 @@ self.element = null; }; - return dockedTabs; + return appFooter; }); \ No newline at end of file diff --git a/dashboard-ui/css/nowplayingbar.css b/dashboard-ui/css/nowplayingbar.css index 0bb7a5e4ba..da9a5a7224 100644 --- a/dashboard-ui/css/nowplayingbar.css +++ b/dashboard-ui/css/nowplayingbar.css @@ -56,7 +56,6 @@ bottom: 0; left: 0; right: 0; - top : 100%; /* Above everything, except for the video player and popup overlays */ z-index: 1097; color: #fff; @@ -65,8 +64,6 @@ /*box-shadow: 0 -2px 2px 0 rgba(0,0,0,.14),-1px 5px 1px rgba(0,0,0,.12);*/ will-change: transform; contain: layout style; - height: 100%; - transform: translateY(-64px); } .hiddenNowPlayingBar .nowPlayingBar { diff --git a/dashboard-ui/legacy/selectmenu.js b/dashboard-ui/legacy/selectmenu.js index cc230fd682..959b8d617d 100644 --- a/dashboard-ui/legacy/selectmenu.js +++ b/dashboard-ui/legacy/selectmenu.js @@ -1,5 +1,7 @@ -// TODO: This needs to be deprecated, but it's used heavily by plugins -$.fn.selectmenu = function () { - // No-op. This implementation only exists to prevent script errors - return this; -}; \ No newline at end of file +define(['jQuery'], function ($) { + // TODO: This needs to be deprecated, but it's used heavily by plugins + $.fn.selectmenu = function () { + // No-op. This implementation only exists to prevent script errors + return this; + }; +}); \ No newline at end of file diff --git a/dashboard-ui/mypreferencesmenu.html b/dashboard-ui/mypreferencesmenu.html index 5ad8f2bd8b..ea89e1b18f 100644 --- a/dashboard-ui/mypreferencesmenu.html +++ b/dashboard-ui/mypreferencesmenu.html @@ -1,4 +1,4 @@ -
+
@@ -6,7 +6,7 @@
- + tv
${ButtonDisplaySettings}
${ButtonDisplaySettingsHelp}
@@ -16,7 +16,7 @@
- + home
${ButtonHomeScreenSettings}
${ButtonHomeScreenSettingsHelp}
@@ -26,7 +26,7 @@
- + play_circle_filled
${ButtonPlaybackSettings}
${ButtonPlaybackSettingsHelp}
@@ -36,7 +36,7 @@
- + person
${ButtonProfile}
${ButtonProfileHelp}
@@ -44,12 +44,20 @@
+ +
+ photo +
+
${TabCameraUpload}
+
+
+
+
- -
-
${ButtonSyncSettings}
-
${ButtonSyncSettingsHelp}
+ file_download +
+
${HeaderOfflineSync}
@@ -60,15 +68,15 @@
- -
+ wifi +
${HeaderSelectServer}
- -
+ lock +
${ButtonSignOut}
@@ -81,8 +89,8 @@
- -
+ settings +
${ButtonServerDashboard}
diff --git a/dashboard-ui/mysyncsettings.html b/dashboard-ui/mysyncsettings.html index bdf8156180..fe6d060a1a 100644 --- a/dashboard-ui/mysyncsettings.html +++ b/dashboard-ui/mysyncsettings.html @@ -4,7 +4,7 @@

- ${HeaderSync} + ${HeaderOfflineSync}


diff --git a/dashboard-ui/scripts/camerauploadsettings.js b/dashboard-ui/scripts/camerauploadsettings.js index 9a7bf2c0ba..680656bb05 100644 --- a/dashboard-ui/scripts/camerauploadsettings.js +++ b/dashboard-ui/scripts/camerauploadsettings.js @@ -1,4 +1,4 @@ -define(['appSettings'], function (appSettings) { +define(['appSettings', 'emby-checkbox'], function (appSettings) { function loadForm(page, user) { @@ -34,7 +34,7 @@ toast(Globalize.translate('SettingsSaved')); }); - if (cameraUploadServers.length || syncPath) { + if (cameraUploadServers.length) { if (window.MainActivity) { MainActivity.authorizeStorage(); } @@ -60,18 +60,6 @@ return false; }); - view.querySelector('#btnSelectSyncPath').addEventListener('click', function () { - - require(['nativedirectorychooser'], function () { - NativeDirectoryChooser.chooseDirectory().then(function (path) { - - if (path) { - view.querySelector('#txtSyncPath').value = path; - } - }); - }); - }); - view.addEventListener('viewshow', function () { var page = this; @@ -83,12 +71,6 @@ loadForm(page, user); }); - - if (AppInfo.supportsSyncPathSetting) { - page.querySelector('.fldSyncPath').classList.remove('hide'); - } else { - page.querySelector('.fldSyncPath').classList.add('hide'); - } }); }; diff --git a/dashboard-ui/scripts/librarymenu.js b/dashboard-ui/scripts/librarymenu.js index 23baf529cf..7e310528cb 100644 --- a/dashboard-ui/scripts/librarymenu.js +++ b/dashboard-ui/scripts/librarymenu.js @@ -1046,12 +1046,9 @@ setDrawerClass(); - //require(['appfooter'], function (appfooter) { - // var footer = new appfooter({}); - // require(['dockedtabs'], function (dockedtabs) { - // new dockedtabs({ - // appFooter: footer - // }); + //require(['appfooter-shared', 'dockedtabs'], function (footer, dockedtabs) { + // new dockedtabs({ + // appFooter: footer // }); //}); }); \ No newline at end of file diff --git a/dashboard-ui/scripts/mypreferencescommon.js b/dashboard-ui/scripts/mypreferencescommon.js index fd1647cb68..c427220838 100644 --- a/dashboard-ui/scripts/mypreferencescommon.js +++ b/dashboard-ui/scripts/mypreferencescommon.js @@ -1,47 +1,53 @@ -pageIdOn('pageinit', 'myPreferencesMenuPage', function () { +define(['apphost', 'listViewStyle'], function (appHost) { - var page = this; + return function (view, params) { - page.querySelector('.btnLogout').addEventListener('click', function () { + view.querySelector('.btnLogout').addEventListener('click', function () { - Dashboard.logout(); - }); + Dashboard.logout(); + }); -}); + view.addEventListener('viewshow', function () { -pageIdOn('pageshow', 'myPreferencesMenuPage', function () { + var page = this; - var page = this; + var userId = params.userId || Dashboard.getCurrentUserId(); - var userId = getParameterByName('userId') || Dashboard.getCurrentUserId(); + page.querySelector('.lnkDisplayPreferences').setAttribute('href', 'mypreferencesdisplay.html?userId=' + userId); + page.querySelector('.lnkLanguagePreferences').setAttribute('href', 'mypreferenceslanguages.html?userId=' + userId); + page.querySelector('.lnkHomeScreenPreferences').setAttribute('href', 'mypreferenceshome.html?userId=' + userId); + page.querySelector('.lnkMyProfile').setAttribute('href', 'myprofile.html?userId=' + userId); + page.querySelector('.lnkSync').setAttribute('href', 'mysyncsettings.html?userId=' + userId); + page.querySelector('.lnkCameraUpload').setAttribute('href', 'camerauploadsettings.html?userId=' + userId); - page.querySelector('.lnkDisplayPreferences').setAttribute('href', 'mypreferencesdisplay.html?userId=' + userId); - page.querySelector('.lnkLanguagePreferences').setAttribute('href', 'mypreferenceslanguages.html?userId=' + userId); - page.querySelector('.lnkHomeScreenPreferences').setAttribute('href', 'mypreferenceshome.html?userId=' + userId); - page.querySelector('.lnkMyProfile').setAttribute('href', 'myprofile.html?userId=' + userId); - page.querySelector('.lnkSync').setAttribute('href', 'mysyncsettings.html?userId=' + userId); + if (appHost.supports('cameraupload')) { + page.querySelector('.lnkCameraUpload').classList.remove('hide'); + } else { + page.querySelector('.lnkCameraUpload').classList.add('hide'); + } - if (Dashboard.capabilities().SupportsSync) { - page.querySelector('.lnkSync').classList.remove('hide'); - } else { - page.querySelector('.lnkSync').classList.add('hide'); - } + if (appHost.supports('sync')) { + page.querySelector('.lnkSync').classList.remove('hide'); + } else { + page.querySelector('.lnkSync').classList.add('hide'); + } - Dashboard.getCurrentUser().then(function (user) { + Dashboard.getCurrentUser().then(function (user) { - page.querySelector('.headerUser').innerHTML = user.Name; + page.querySelector('.headerUser').innerHTML = user.Name; - if (user.Policy.IsAdministrator) { - page.querySelector('.adminSection').classList.remove('hide'); - } else { - page.querySelector('.adminSection').classList.add('hide'); - } - }); - - if (Dashboard.isConnectMode()) { - page.querySelector('.selectServer').classList.remove('hide'); - } else { - page.querySelector('.selectServer').classList.add('hide'); - } + if (user.Policy.IsAdministrator) { + page.querySelector('.adminSection').classList.remove('hide'); + } else { + page.querySelector('.adminSection').classList.add('hide'); + } + }); + if (Dashboard.isConnectMode()) { + page.querySelector('.selectServer').classList.remove('hide'); + } else { + page.querySelector('.selectServer').classList.add('hide'); + } + }); + }; }); \ No newline at end of file diff --git a/dashboard-ui/scripts/mysyncsettings.js b/dashboard-ui/scripts/mysyncsettings.js index a45d085630..a7f98dbb63 100644 --- a/dashboard-ui/scripts/mysyncsettings.js +++ b/dashboard-ui/scripts/mysyncsettings.js @@ -1,4 +1,4 @@ -define(['appSettings'], function (appSettings) { +define(['appSettings', 'apphost'], function (appSettings, appHost) { function loadForm(page, user) { @@ -20,7 +20,7 @@ toast(Globalize.translate('SettingsSaved')); }); - if (cameraUploadServers.length || syncPath) { + if (syncPath) { if (window.MainActivity) { MainActivity.authorizeStorage(); } @@ -70,7 +70,7 @@ loadForm(page, user); }); - if (AppInfo.supportsSyncPathSetting) { + if (appHost.supports('customsyncpath')) { page.querySelector('.fldSyncPath').classList.remove('hide'); } else { page.querySelector('.fldSyncPath').classList.add('hide'); diff --git a/dashboard-ui/scripts/nowplayingbar.js b/dashboard-ui/scripts/nowplayingbar.js index 28eda53682..312bb02b85 100644 --- a/dashboard-ui/scripts/nowplayingbar.js +++ b/dashboard-ui/scripts/nowplayingbar.js @@ -75,7 +75,6 @@ return html; } - var translateY = '-64px'; function slideDown(elem) { if (elem.classList.contains('hide')) { @@ -93,8 +92,8 @@ requestAnimationFrame(function () { var keyframes = [ - { transform: 'translateY(' + translateY + ')', offset: 0 }, - { transform: 'none', offset: 1 }]; + { transform: 'none', offset: 0 }, + { transform: 'translateY(100%)', offset: 1 }]; var timing = { duration: 200, iterations: 1, fill: 'both', easing: 'ease-out' }; elem.animate(keyframes, timing).onfinish = onfinish; }); @@ -115,8 +114,8 @@ requestAnimationFrame(function () { var keyframes = [ - { transform: 'none', offset: 0 }, - { transform: 'translateY(' + translateY + ')', offset: 1 }]; + { transform: 'translateY(100%)', offset: 0 }, + { transform: 'none', offset: 1 }]; var timing = { duration: 200, iterations: 1, fill: 'both', easing: 'ease-out' }; elem.animate(keyframes, timing); }); @@ -308,17 +307,18 @@ return new Promise(function (resolve, reject) { - require(['itemShortcuts', 'css!css/nowplayingbar.css', 'emby-slider'], function (itemShortcuts) { + require(['appfooter-shared', 'itemShortcuts', 'css!css/nowplayingbar.css', 'emby-slider'], function (appfooter, itemShortcuts) { - nowPlayingBarElement = document.querySelector('.nowPlayingBar'); + var parentContainer = appfooter.element; + nowPlayingBarElement = parentContainer.querySelector('.nowPlayingBar'); if (nowPlayingBarElement) { resolve(nowPlayingBarElement); return; } - document.body.insertAdjacentHTML('beforeend', getNowPlayingBarHtml()); - nowPlayingBarElement = document.querySelector('.nowPlayingBar'); + parentContainer.insertAdjacentHTML('beforeend', getNowPlayingBarHtml()); + nowPlayingBarElement = parentContainer.querySelector('.nowPlayingBar'); if (browser.safari && browser.slow) { // Not handled well here. The wrong elements receive events, bar doesn't update quickly enough, etc. diff --git a/dashboard-ui/scripts/site.js b/dashboard-ui/scripts/site.js index 3856112f9f..474fd1ce58 100644 --- a/dashboard-ui/scripts/site.js +++ b/dashboard-ui/scripts/site.js @@ -861,7 +861,7 @@ var Dashboard = { if (enableVlcAudio) { profile.DirectPlayProfiles.push({ - Container: "aac,mp3,mpa,wav,wma,mp2,ogg,oga,webma,ape,opus", + Container: "aac,mp3,mpa,wav,wma,mp2,ogg,oga,webma,ape,m4a,opus,flac", Type: 'Audio' }); @@ -987,8 +987,6 @@ var AppInfo = {}; AppInfo.enableBackButton = isIOS && (window.navigator.standalone || AppInfo.isNativeApp); - AppInfo.supportsSyncPathSetting = isCordova && isAndroid; - if (isCordova && isIOS) { AppInfo.moreIcon = 'more-horiz'; } else { @@ -1206,6 +1204,11 @@ var AppInfo = {}; return hammer; } + function createSharedAppFooter(appFooter) { + var footer = new appFooter({}); + return footer; + } + function initRequire() { var urlArgs = "v=" + (window.dashboardVersion || new Date().getDate()); @@ -1503,6 +1506,7 @@ var AppInfo = {}; define("headroom-window", ['headroom'], createWindowHeadroom); define("hammer-main", ['hammer'], createMainContentHammer); + define("appfooter-shared", ['appfooter'], createSharedAppFooter); // mock this for now. not used in this app define("playbackManager", [], function () { @@ -2330,7 +2334,8 @@ var AppInfo = {}; path: '/mypreferencesmenu.html', dependencies: ['emby-button'], autoFocus: false, - transition: 'fade' + transition: 'fade', + controller: 'scripts/mypreferencescommon' }); defineRoute({ @@ -2753,10 +2758,7 @@ var AppInfo = {}; postInitDependencies.push('cordova/ios/orientation'); postInitDependencies.push('cordova/ios/remotecontrols'); - if (Dashboard.capabilities().SupportsSync) { - - postInitDependencies.push('cordova/ios/backgroundfetch'); - } + //postInitDependencies.push('cordova/ios/backgroundfetch'); } } else if (browserInfo.chrome) { diff --git a/dashboard-ui/thirdparty/paper-button-style.css b/dashboard-ui/thirdparty/paper-button-style.css index 7087b16112..1429fe4418 100644 --- a/dashboard-ui/thirdparty/paper-button-style.css +++ b/dashboard-ui/thirdparty/paper-button-style.css @@ -6,10 +6,6 @@ background: #e1f5f3; } -button.emby-button.fab.blue { - background: #03a9f4; -} - button.emby-button.menuButton { color: #212121; text-align: left; @@ -126,18 +122,6 @@ button.emby-button.notext { padding-right: .25em !important; } -.fab.green { - background-color: #81c784 !important; -} - -.fab.orange { - background-color: #ffd54f !important; -} - -.fab.red { - background-color: #e57373 !important; -} - .ui-body-b .paperListLabel, .ui-body-b .fieldDescription, .ui-body-b .selectLabelUnfocused, .ui-body-b .inputLabelUnfocused, .ui-body-b .textareaLabelUnfocused { color: #ccc; }