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}
-
+
@@ -19,7 +19,7 @@
-
+
@@ -28,10 +28,10 @@
-
+
-
+
${AWindowsServiceHasBeenInstalled}
- -${WindowsServiceIntro1}
- -${WindowsServiceIntro2}
- - -