diff --git a/dashboard-ui/bower_components/emby-webcomponents/cardbuilder/card.css b/dashboard-ui/bower_components/emby-webcomponents/cardbuilder/card.css index dc2d025541..c199706649 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/cardbuilder/card.css +++ b/dashboard-ui/bower_components/emby-webcomponents/cardbuilder/card.css @@ -71,7 +71,7 @@ button { .cardBox { padding: 0 !important; - margin: 0; + margin: 2px; transition: none; border: 3px solid transparent; /* Needed in case cardBox is a button */ @@ -91,10 +91,6 @@ button { transform: scale(1.16, 1.16); } -.cardBox-mobile { - margin: 2px; -} - .card:focus { position: relative !important; z-index: 10 !important; @@ -202,6 +198,11 @@ button { } .coveredImage-img { + width: 100%; + height: 100%; +} + +.coveredImage-noscale-img { max-height: none; max-width: none; } diff --git a/dashboard-ui/bower_components/emby-webcomponents/cardbuilder/cardbuilder.js b/dashboard-ui/bower_components/emby-webcomponents/cardbuilder/cardbuilder.js index b5d8c93293..d9d226ce62 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/cardbuilder/cardbuilder.js +++ b/dashboard-ui/bower_components/emby-webcomponents/cardbuilder/cardbuilder.js @@ -2,32 +2,7 @@ define(['datetime', 'imageLoader', 'connectionManager', 'itemHelper', 'mediaInfo function (datetime, imageLoader, connectionManager, itemHelper, mediaInfo, focusManager, indicators, globalize, layoutManager, appHost, dom) { 'use strict'; - // Regular Expressions for parsing tags and attributes - var SURROGATE_PAIR_REGEXP = /[\uD800-\uDBFF][\uDC00-\uDFFF]/g, - // Match everything outside of normal chars and " (quote character) - NON_ALPHANUMERIC_REGEXP = /([^\#-~| |!])/g; - - /** - * Escapes all potentially dangerous characters, so that the - * resulting string can be safely inserted into attribute or - * element text. - * @param value - * @returns {string} escaped text - */ - function htmlEncode(value) { - return value. - replace(/&/g, '&'). - replace(SURROGATE_PAIR_REGEXP, function (value) { - var hi = value.charCodeAt(0); - var low = value.charCodeAt(1); - return '&#' + (((hi - 0xD800) * 0x400) + (low - 0xDC00) + 0x10000) + ';'; - }). - replace(NON_ALPHANUMERIC_REGEXP, function (value) { - return '&#' + value.charCodeAt(0) + ';'; - }). - replace(//g, '>'); - } + var devicePixelRatio = window.devicePixelRatio || 1; function getCardsHtml(items, options) { @@ -1202,9 +1177,7 @@ define(['datetime', 'imageLoader', 'connectionManager', 'itemHelper', 'mediaInfo var separateCardBox = scalable; var cardBoxClass = options.cardLayout ? 'cardBox visualCardBox' : 'cardBox'; - if (!layoutManager.tv) { - cardBoxClass += ' cardBox-mobile'; - } else { + if (layoutManager.tv) { cardBoxClass += ' cardBox-focustransform'; } @@ -1300,7 +1273,11 @@ define(['datetime', 'imageLoader', 'connectionManager', 'itemHelper', 'mediaInfo var imgClass = 'cardImage cardImage-img lazy'; if (coveredImage) { - imgClass += ' coveredImage-img'; + if (devicePixelRatio === 1) { + imgClass += ' coveredImage-noscale-img'; + } else { + imgClass += ' coveredImage-img'; + } } cardImageContainerOpen += ''; diff --git a/dashboard-ui/bower_components/emby-webcomponents/images/imagehelper.js b/dashboard-ui/bower_components/emby-webcomponents/images/imagehelper.js index b13f0f1061..28728978be 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/images/imagehelper.js +++ b/dashboard-ui/bower_components/emby-webcomponents/images/imagehelper.js @@ -176,7 +176,8 @@ define(['visibleinviewport', 'imageFetcher', 'layoutManager', 'events', 'browser url = url.split('?')[0]; - var cacheKey = 'vibrant21'; + var cacheKey = 'vibrant25'; + //cacheKey = 'vibrant' + new Date().getTime(); return cacheKey + url; } diff --git a/dashboard-ui/components/apphost.js b/dashboard-ui/components/apphost.js index 0c4c8f7132..640926919a 100644 --- a/dashboard-ui/components/apphost.js +++ b/dashboard-ui/components/apphost.js @@ -155,7 +155,6 @@ define(['appStorage', 'browser'], function (appStorage, browser) { return features; }(); - var appInfo; var version = window.dashboardVersion || '3.0'; diff --git a/dashboard-ui/components/dockedtabs/dockedtabs.js b/dashboard-ui/components/dockedtabs/dockedtabs.js index 0cdcc8a099..961644ecda 100644 --- a/dashboard-ui/components/dockedtabs/dockedtabs.js +++ b/dashboard-ui/components/dockedtabs/dockedtabs.js @@ -98,6 +98,11 @@ var commands = []; + commands.push({ + name: globalize.translate('ButtonRemoteControl'), + id: 'remotecontrol' + }); + // manage server, metadata manager, reports, sync to other devices if (currentUser.Policy.IsAdministrator) { commands.push({ @@ -118,11 +123,6 @@ }); } - commands.push({ - name: globalize.translate('ButtonRemoteControl'), - id: 'remotecontrol' - }); - if (Dashboard.isConnectMode()) { commands.push({ name: globalize.translate('HeaderSelectServer'), diff --git a/dashboard-ui/dashboard/wizardcomponents.js b/dashboard-ui/dashboard/wizardcomponents.js index 875e92bc1c..8ebc48a1a7 100644 --- a/dashboard-ui/dashboard/wizardcomponents.js +++ b/dashboard-ui/dashboard/wizardcomponents.js @@ -1,9 +1,7 @@ define([], function () { function goNext() { - require(['scripts/wizardcontroller'], function (wizardcontroller) { - wizardcontroller.navigateToService(); - }); + Dashboard.navigate('wizardagreement.html'); } function loadDownloadInfo(view) { diff --git a/dashboard-ui/scripts/site.js b/dashboard-ui/scripts/site.js index c50a7a761a..5b6f298f89 100644 --- a/dashboard-ui/scripts/site.js +++ b/dashboard-ui/scripts/site.js @@ -2588,13 +2588,6 @@ var AppInfo = {}; anonymous: true }); - defineRoute({ - path: '/wizardservice.html', - dependencies: ['dashboardcss'], - autoFocus: false, - anonymous: true - }); - defineRoute({ path: '/wizardsettings.html', dependencies: ['dashboardcss'], diff --git a/dashboard-ui/scripts/wizardcontroller.js b/dashboard-ui/scripts/wizardcontroller.js index d98bdfb2ba..aa770f4d6d 100644 --- a/dashboard-ui/scripts/wizardcontroller.js +++ b/dashboard-ui/scripts/wizardcontroller.js @@ -6,7 +6,7 @@ apiClient.getJSON(apiClient.getUrl('Startup/Info')).then(function (info) { if (info.HasMediaEncoder) { - navigateToService(); + Dashboard.navigate('wizardagreement.html'); } else { Dashboard.navigate('wizardcomponents.html'); @@ -14,22 +14,7 @@ }); } - function navigateToService() { - var apiClient = ApiClient; - - apiClient.getJSON(apiClient.getUrl('Startup/Info')).then(function (info) { - - if (info.SupportsRunningAsService) { - Dashboard.navigate('wizardservice.html'); - - } else { - Dashboard.navigate('wizardagreement.html'); - } - }); - } - return { - navigateToComponents: navigateToComponents, - navigateToService: navigateToService + navigateToComponents: navigateToComponents }; }); \ No newline at end of file diff --git a/dashboard-ui/scripts/wizardservice.js b/dashboard-ui/scripts/wizardservice.js deleted file mode 100644 index 49dcc6f54a..0000000000 --- a/dashboard-ui/scripts/wizardservice.js +++ /dev/null @@ -1,13 +0,0 @@ -define(['jQuery'], function ($) { - - $(document).on('pageinit', "#wizardServicePage", function () { - - var page = this; - - $('#btnNextPage', page).on('click', function () { - - Dashboard.navigate('wizardagreement.html'); - }); - }); - -}); diff --git a/dashboard-ui/themes/halloween/style.css b/dashboard-ui/themes/halloween/style.css index 60fb7ebc1a..9feb2f9458 100644 --- a/dashboard-ui/themes/halloween/style.css +++ b/dashboard-ui/themes/halloween/style.css @@ -15,8 +15,8 @@ color: #FF9100 !important; } -paper-button[raised].more { - background: #FF9100; +.button-submit, .button-accent { + background: #FF9100 !important; } .channelTimeslotHeader, .timeslotHeader { @@ -26,3 +26,16 @@ paper-button[raised].more { .channelTimeslotHeader { border-right-color: #FF9100 !important; } + +.emby-tab-button-active, .ui-body-b .emby-tab-button-active { + color: #FF9100 !important; + border-color: #FF9100 !important; +} + +.darkDrawer .sidebarLink.selectedSidebarLink, .darkDrawer .selectedMediaFolder { + color: #FF9100 !important; +} + +.visualCardBox-cardFooter { + color: #FF9100; +} \ No newline at end of file diff --git a/dashboard-ui/themes/halloween/theme.js b/dashboard-ui/themes/halloween/theme.js index 5c6421c856..2e534ad276 100644 --- a/dashboard-ui/themes/halloween/theme.js +++ b/dashboard-ui/themes/halloween/theme.js @@ -1,4 +1,4 @@ -(function () { +define(['appSettings', 'backdrop', 'browser', 'globalize', 'css!./style.css', 'paper-icon-button-light'], function (appSettings, backdrop, browser, globalize) { var lastSound = 0; var iconCreated; @@ -12,18 +12,16 @@ if (!destroyed) { - if (appStorage.getItem(cancelKey) == cancelValue) { + if (appSettings.get(cancelKey) == cancelValue) { destroyed = true; return; } - require(['css!themes/halloween/style.css']); - - if (!browserInfo.mobile) { + if (!browser.mobile) { if (!page.classList.contains('itemDetailPage')) { - Backdrops.setBackdropUrl(page, 'themes/halloween/bg.jpg'); + backdrop.setBackdrop('themes/halloween/bg.jpg'); } if (lastSound == 0) { @@ -45,37 +43,45 @@ iconCreated = true; - var elem = document.createElement('paper-icon-button'); - elem.icon = 'info'; - elem.classList.add('halloweenInfoButton'); - $(elem).on('click', onIconClick); - var viewMenuSecondary = document.querySelector('.viewMenuSecondary'); if (viewMenuSecondary) { - viewMenuSecondary.insertBefore(elem, viewMenuSecondary.childNodes[0]); + + var html = ''; + + viewMenuSecondary.insertAdjacentHTML('afterbegin', html); + + viewMenuSecondary.querySelector('.halloweenInfoButton').addEventListener('click', onIconClick); } } function onIconClick() { - // todo: switch this to action sheet + require(['dialog'], function (dialog) { + dialog({ - //require(['dialog'], function (dialog) { - // dialog({ + title: "Happy Halloween", + text: "Happy Halloween from the Emby Team. We hope your Halloween is spooktacular! Would you like to allow the Halloween theme to continue?", - // title: "Happy Halloween", - // message: "Happy Halloween from the Emby Team. We hope your Halloween is spooktacular! Would you like to allow the Halloween theme to continue?", - // callback: function (result) { + buttons: [ + { + id: 'yes', + name: globalize.translate('ButtonYes'), + type: 'submit' + }, + { + id: 'no', + name: globalize.translate('ButtonNo'), + type: 'cancel' + } + ] - // if (result == 1) { - // destroyTheme(); - // } - // }, - - // buttons: [Globalize.translate('ButtonYes'), Globalize.translate('ButtonNo')] - // }); - //}); + }).then(function (result) { + if (result == 'no') { + destroyTheme(); + } + }); + }); } function destroyTheme() { @@ -92,15 +98,15 @@ } Dashboard.removeStylesheet('themes/halloween/style.css'); - Backdrops.clear(); - appStorage.setItem(cancelKey, cancelValue); + backdrop.clear(); + appSettings.set(cancelKey, cancelValue); } pageClassOn('pageshow', "libraryPage", onPageShow); - if ($($.mobile.activePage)[0].classList.contains('libraryPage')) { - onPageShow.call($($.mobile.activePage)[0]); - } + //if ($($.mobile.activePage)[0].classList.contains('libraryPage')) { + // onPageShow.call($($.mobile.activePage)[0]); + //} function playSound(path, volume) { @@ -117,4 +123,4 @@ }); } -})(); \ No newline at end of file +}); \ No newline at end of file diff --git a/dashboard-ui/wizardfinish.html b/dashboard-ui/wizardfinish.html index 089805e0f6..5a662fa5bc 100644 --- a/dashboard-ui/wizardfinish.html +++ b/dashboard-ui/wizardfinish.html @@ -10,7 +10,7 @@

${WizardCompleted}

diff --git a/dashboard-ui/wizardservice.html b/dashboard-ui/wizardservice.html deleted file mode 100644 index d1b533306b..0000000000 --- a/dashboard-ui/wizardservice.html +++ /dev/null @@ -1,23 +0,0 @@ -
- -
- -
-

- ${LabelWindowsService} -

- -

${AWindowsServiceHasBeenInstalled}

- -

${WindowsServiceIntro1}

- -

${WindowsServiceIntro2}

- -
- - -
-
- -
-
\ No newline at end of file