';
+
+ return html;
}
function getTheaterInfo() {
@@ -225,13 +248,32 @@
html += '
';
html += '
Try Emby Premiere
';
+ var cardTarget = AppInfo.isNativeApp ? '' : 'https://emby.media/premiere';
var learnMoreText = AppInfo.isNativeApp ? '' : 'Learn more';
html += '
Design beautiful Cover Art, enjoy free access to Emby apps, and more. ' + learnMoreText + '
';
html += '
';
- html += getCard('https://raw.githubusercontent.com/MediaBrowser/Emby.Resources/master/apps/theater1.png', 'https://emby.media/premiere');
- html += getCard('https://raw.githubusercontent.com/MediaBrowser/Emby.Resources/master/apps/theater2.png', 'https://emby.media/premiere');
- html += getCard('https://raw.githubusercontent.com/MediaBrowser/Emby.Resources/master/apps/theater3.png', 'https://emby.media/premiere');
+ html += getCard('https://raw.githubusercontent.com/MediaBrowser/Emby.Resources/master/apps/theater1.png', cardTarget);
+ html += getCard('https://raw.githubusercontent.com/MediaBrowser/Emby.Resources/master/apps/theater2.png', cardTarget);
+ html += getCard('https://raw.githubusercontent.com/MediaBrowser/Emby.Resources/master/apps/theater3.png', cardTarget);
+ html += '
';
+ html += ' ';
+ html += '
';
+ return html;
+ }
+
+ function getUpgradeMobileLayoutsInfo() {
+ var html = '';
+ html += '
';
+ html += '
Unlock Improved Layouts with Emby Premiere
';
+
+ var cardTarget = AppInfo.isNativeApp ? '' : 'https://emby.media/premiere';
+ var learnMoreText = AppInfo.isNativeApp ? '' : 'Learn more';
+
+ html += '
Combined horizontal and vertical swiping, better detail layouts, and more. ' + learnMoreText + '
';
+ html += '
';
+ html += getCard('https://raw.githubusercontent.com/MediaBrowser/Emby.Resources/master/apps/ms1.png', cardTarget, 'portraitCard');
+ html += getCard('https://raw.githubusercontent.com/MediaBrowser/Emby.Resources/master/apps/ms2.png', cardTarget, 'portraitCard');
html += '
';
html += ' ';
html += '
';
diff --git a/dashboard-ui/scripts/site.js b/dashboard-ui/scripts/site.js
index 38624867ea..64d4a3c2fd 100644
--- a/dashboard-ui/scripts/site.js
+++ b/dashboard-ui/scripts/site.js
@@ -3242,9 +3242,20 @@ var AppInfo = {};
}
require(postInitDependencies);
+ upgradeLayouts();
});
}
+ function upgradeLayouts() {
+ if (!AppInfo.enableAppLayouts && browserInfo.mobile) {
+ Dashboard.getPluginSecurityInfo().then(function (info) {
+ if (info.IsMBSupporter) {
+ AppInfo.enableAppLayouts = true;
+ }
+ });
+ }
+ }
+
initRequire();
function onWebComponentsReady() {
diff --git a/dashboard-ui/scripts/tvshows.js b/dashboard-ui/scripts/tvshows.js
index 91f56dccd6..ae170ad40d 100644
--- a/dashboard-ui/scripts/tvshows.js
+++ b/dashboard-ui/scripts/tvshows.js
@@ -1,4 +1,4 @@
-define(['events', 'libraryBrowser', 'imageLoader', 'jQuery', 'alphaPicker'], function (events, libraryBrowser, imageLoader, $, alphaPicker) {
+define(['events', 'libraryBrowser', 'imageLoader', 'alphaPicker'], function (events, libraryBrowser, imageLoader, alphaPicker) {
return function (view, params, tabContent) {
@@ -141,20 +141,30 @@
}
var i, length;
- var pagingElems = tabContent.querySelectorAll('.paging');
- for (i = 0, length = pagingElems.length; i < length; i++) {
- pagingElems[i].innerHTML = pagingHtml;
+ var elems = tabContent.querySelectorAll('.paging');
+ for (i = 0, length = elems.length; i < length; i++) {
+ elems[i].innerHTML = pagingHtml;
}
- $('.btnNextPage', tabContent).on('click', function () {
+ function onNextPageClick() {
query.StartIndex += query.Limit;
reloadItems(tabContent);
- });
+ }
- $('.btnPreviousPage', tabContent).on('click', function () {
+ function onPreviousPageClick() {
query.StartIndex -= query.Limit;
reloadItems(tabContent);
- });
+ }
+
+ elems = tabContent.querySelectorAll('.btnNextPage');
+ for (i = 0, length = elems.length; i < length; i++) {
+ elems[i].addEventListener('click', onNextPageClick);
+ }
+
+ elems = tabContent.querySelectorAll('.btnPreviousPage');
+ for (i = 0, length = elems.length; i < length; i++) {
+ elems[i].addEventListener('click', onPreviousPageClick);
+ }
var itemsContainer = tabContent.querySelector('.itemsContainer');
itemsContainer.innerHTML = html;