diff --git a/dashboard-ui/scripts/indexpage.js b/dashboard-ui/scripts/indexpage.js
index 385845f54a..ef17ec6d2e 100644
--- a/dashboard-ui/scripts/indexpage.js
+++ b/dashboard-ui/scripts/indexpage.js
@@ -1,4 +1,4 @@
-define(['libraryBrowser'], function (LibraryBrowser) {
+define(['libraryBrowser'], function (libraryBrowser) {
var defaultFirstSection = 'smalllibrarytiles';
@@ -212,7 +212,7 @@
function loadHomeTab(page, tabContent) {
- if (LibraryBrowser.needsRefresh(tabContent)) {
+ if (libraryBrowser.needsRefresh(tabContent)) {
if (window.ApiClient) {
var userId = Dashboard.getCurrentUserId();
Dashboard.showLoadingMsg();
@@ -228,7 +228,7 @@
}
Dashboard.hideLoadingMsg();
- LibraryBrowser.setLastRefreshed(tabContent);
+ libraryBrowser.setLastRefreshed(tabContent);
});
});
@@ -297,7 +297,7 @@
var pages = view.querySelector('neon-animated-pages');
- LibraryBrowser.configurePaperLibraryTabs(view, view.querySelector('paper-tabs'), pages, 'home.html');
+ libraryBrowser.configurePaperLibraryTabs(view, view.querySelector('paper-tabs'), pages, 'home.html');
pages.addEventListener('tabchange', function (e) {
loadTab(view, parseInt(e.target.selected));
@@ -322,5 +322,5 @@
view.addEventListener('viewbeforehide', function (e) {
Events.off(MediaController, 'playbackstop', onPlaybackStop);
});
- }
+ };
});
\ No newline at end of file
diff --git a/dashboard-ui/scripts/librarybrowser.js b/dashboard-ui/scripts/librarybrowser.js
index c403cc1303..6f393e98ed 100644
--- a/dashboard-ui/scripts/librarybrowser.js
+++ b/dashboard-ui/scripts/librarybrowser.js
@@ -1,4 +1,4 @@
-define(['playlistManager', 'appSettings', 'appStorage', 'jQuery'], function (playlistManager, appSettings, appStorage, $) {
+define(['playlistManager', 'appSettings', 'appStorage'], function (playlistManager, appSettings, appStorage) {
var libraryBrowser = (function (window, document, screen) {
@@ -310,6 +310,7 @@
tabs.noink = true;
}
+ var libraryViewNav = ownerpage.querySelector('.libraryViewNav');
if (LibraryBrowser.enableFullPaperTabs()) {
if (browserInfo.safari) {
@@ -319,22 +320,36 @@
LibraryBrowser.configureSwipeTabs(ownerpage, tabs, pages);
}
- $('.libraryViewNav', ownerpage).addClass('paperLibraryViewNav').removeClass('libraryViewNavWithMinHeight');
+ if (libraryViewNav) {
+ libraryViewNav.classList.add('paperLibraryViewNav');
+ libraryViewNav.classList.remove('libraryViewNavWithMinHeight');
+ }
} else {
tabs.noSlide = true;
tabs.noBar = true;
- var legacyTabs = $('.legacyTabs', ownerpage);
+ var legacyTabs = ownerpage.querySelector('.legacyTabs');
- pages.addEventListener('iron-select', function (e) {
+ if (legacyTabs) {
+ pages.addEventListener('iron-select', function (e) {
- var selected = pages.selected;
- $('a', legacyTabs).removeClass('ui-btn-active')[selected].classList.add('ui-btn-active');
- });
+ var selected = pages.selected;
+ var anchors = legacyTabs.querySelectorAll('a');
+ for (var i = 0, length = anchors.length; i < length; i++) {
+ if (i == selected) {
+ anchors[i].classList.add('ui-btn-active');
+ } else {
+ anchors[i].classList.remove('ui-btn-active');
+ }
+ }
+ });
+ }
- $('.libraryViewNav', ownerpage).removeClass('libraryViewNavWithMinHeight');
+ if (libraryViewNav) {
+ libraryViewNav.classList.remove('libraryViewNavWithMinHeight');
+ }
}
ownerpage.addEventListener('viewbeforeshow', LibraryBrowser.onTabbedpagebeforeshow);
@@ -460,6 +475,8 @@
}
var afterNavigate = function () {
+
+ document.removeEventListener('pagebeforeshow', afterNavigate);
if (window.location.href.toLowerCase().indexOf(url.toLowerCase()) != -1) {
var pages = this.querySelector('neon-animated-pages');
@@ -494,7 +511,7 @@
afterNavigate.call($.mobile.activePage);
} else {
- $(document).one('pagebeforeshow', '.page', afterNavigate);
+ pageClassOn('pagebeforeshow', 'page', afterNavigate);
Dashboard.navigate(url);
}
},
@@ -1662,19 +1679,48 @@
return itemCommands;
},
- screenWidth: function () {
-
- var screenWidth = $(window).width();
-
- return screenWidth;
- },
-
shapes: ['square', 'portrait', 'banner', 'smallBackdrop', 'homePageSmallBackdrop', 'backdrop', 'overflowBackdrop', 'overflowPortrait', 'overflowSquare'],
getPostersPerRow: function (screenWidth) {
var cache = true;
function getValue(shape) {
+
+ switch (shape) {
+
+ case 'portrait':
+ if (screenWidth >= 2200) return 10;
+ if (screenWidth >= 2100) return 9;
+ if (screenWidth >= 1600) return 8;
+ if (screenWidth >= 1400) return 7;
+ if (screenWidth >= 1200) return 6;
+ if (screenWidth >= 800) return 5;
+ if (screenWidth >= 640) return 4;
+ return 3;
+ case 'square':
+ if (screenWidth >= 2100) return 9;
+ if (screenWidth >= 1800) return 8;
+ if (screenWidth >= 1400) return 7;
+ if (screenWidth >= 1200) return 6;
+ if (screenWidth >= 900) return 5;
+ if (screenWidth >= 700) return 4;
+ if (screenWidth >= 500) return 3;
+ return 2;
+ case 'banner':
+ if (screenWidth >= 2200) return 4;
+ if (screenWidth >= 1200) return 3;
+ if (screenWidth >= 800) return 2;
+ return 1;
+ case 'backdrop':
+ if (screenWidth >= 2500) return 6;
+ if (screenWidth >= 2100) return 5;
+ if (screenWidth >= 1200) return 4;
+ if (screenWidth >= 770) return 3;
+ if (screenWidth >= 420) return 2;
+ return 1;
+ default:
+ break;
+ }
var div = $('
').appendTo(document.body);
var innerWidth = $('.cardImage', div).innerWidth();
@@ -1702,7 +1748,7 @@
getPosterViewInfo: function () {
- var screenWidth = LibraryBrowser.screenWidth();
+ var screenWidth = window.innerWidth;
var cachedResults = LibraryBrowser.posterSizes;
@@ -2762,11 +2808,10 @@
html = Globalize.translate('ValueLinks', html);
linksElem.innerHTML = html;
- $(linksElem);
- $(linksElem).show();
+ linksElem.classList.remove('hide');
} else {
- $(linksElem).hide();
+ linksElem.classList.add('hide');
}
},
@@ -2797,7 +2842,10 @@
positionTo: button,
callback: function (id) {
- $(button).trigger('layoutchange', [id]);
+ // TODO: remove jQuery
+ require(['jQuery'], function ($) {
+ $(button).trigger('layoutchange', [id]);
+ });
}
});
@@ -3102,63 +3150,72 @@
markFavorite: function (link) {
- var id = link.getAttribute('data-itemid');
+ // TODO: remove jQuery
+ require(['jQuery'], function ($) {
+ var id = link.getAttribute('data-itemid');
- var $link = $(link);
+ var $link = $(link);
- var markAsFavorite = !$link.hasClass('btnUserItemRatingOn');
+ var markAsFavorite = !$link.hasClass('btnUserItemRatingOn');
- ApiClient.updateFavoriteStatus(Dashboard.getCurrentUserId(), id, markAsFavorite);
+ ApiClient.updateFavoriteStatus(Dashboard.getCurrentUserId(), id, markAsFavorite);
- if (markAsFavorite) {
- $link.addClass('btnUserItemRatingOn');
- } else {
- $link.removeClass('btnUserItemRatingOn');
- }
+ if (markAsFavorite) {
+ $link.addClass('btnUserItemRatingOn');
+ } else {
+ $link.removeClass('btnUserItemRatingOn');
+ }
+ });
},
markLike: function (link) {
- var id = link.getAttribute('data-itemid');
+ // TODO: remove jQuery
+ require(['jQuery'], function ($) {
+ var id = link.getAttribute('data-itemid');
- var $link = $(link);
+ var $link = $(link);
- if (!$link.hasClass('btnUserItemRatingOn')) {
+ if (!$link.hasClass('btnUserItemRatingOn')) {
- ApiClient.updateUserItemRating(Dashboard.getCurrentUserId(), id, true);
+ ApiClient.updateUserItemRating(Dashboard.getCurrentUserId(), id, true);
- $link.addClass('btnUserItemRatingOn');
+ $link.addClass('btnUserItemRatingOn');
- } else {
+ } else {
- ApiClient.clearUserItemRating(Dashboard.getCurrentUserId(), id);
+ ApiClient.clearUserItemRating(Dashboard.getCurrentUserId(), id);
- $link.removeClass('btnUserItemRatingOn');
- }
+ $link.removeClass('btnUserItemRatingOn');
+ }
- $link.prev().removeClass('btnUserItemRatingOn');
+ $link.prev().removeClass('btnUserItemRatingOn');
+ });
},
markDislike: function (link) {
- var id = link.getAttribute('data-itemid');
+ // TODO: remove jQuery
+ require(['jQuery'], function($) {
+ var id = link.getAttribute('data-itemid');
- var $link = $(link);
+ var $link = $(link);
- if (!$link.hasClass('btnUserItemRatingOn')) {
+ if (!$link.hasClass('btnUserItemRatingOn')) {
- ApiClient.updateUserItemRating(Dashboard.getCurrentUserId(), id, false);
+ ApiClient.updateUserItemRating(Dashboard.getCurrentUserId(), id, false);
- $link.addClass('btnUserItemRatingOn');
+ $link.addClass('btnUserItemRatingOn');
- } else {
+ } else {
- ApiClient.clearUserItemRating(Dashboard.getCurrentUserId(), id);
+ ApiClient.clearUserItemRating(Dashboard.getCurrentUserId(), id);
- $link.removeClass('btnUserItemRatingOn');
- }
+ $link.removeClass('btnUserItemRatingOn');
+ }
- $link.next().removeClass('btnUserItemRatingOn');
+ $link.next().removeClass('btnUserItemRatingOn');
+ });
},
renderDetailImage: function (elem, item, editable, preferThumb) {
@@ -3548,25 +3605,26 @@
renderOverview: function (elems, item) {
- $(elems).each(function () {
- var elem = this;
+ for (var i = 0, length = elems.length; i < length; i++) {
+ var elem = elems[i];
var overview = item.Overview || '';
- $('a', elem).each(function () {
- this.setAttribute("target", "_blank");
- });
-
if (overview) {
elem.innerHTML = overview;
elem.classList.remove('empty');
+
+ var anchors = elem.querySelectorAll('a');
+ for (var j = 0, length2 = anchors.length; j < length2; j++) {
+ anchors[j].setAttribute("target", "_blank");
+ }
+
} else {
elem.innerHTML = '';
elem.classList.add('empty');
}
- });
-
+ }
},
renderStudios: function (elem, item, isStatic) {
@@ -3665,6 +3723,8 @@
var imgUrl;
var hasbackdrop = false;
+ var itemBackdropElement = page.querySelector('#itemBackdrop');
+
if (item.BackdropImageTags && item.BackdropImageTags.length) {
imgUrl = ApiClient.getScaledImageUrl(item.Id, {
@@ -3674,7 +3734,9 @@
tag: item.BackdropImageTags[0]
});
- ImageLoader.lazyImage($('#itemBackdrop', page).addClass('noFade').removeClass('noBackdrop')[0], imgUrl);
+ itemBackdropElement.classList.add('noFade');
+ itemBackdropElement.classList.remove('noBackdrop');
+ ImageLoader.lazyImage(itemBackdropElement, imgUrl);
hasbackdrop = true;
}
else if (item.ParentBackdropItemId && item.ParentBackdropImageTags && item.ParentBackdropImageTags.length) {
@@ -3686,12 +3748,15 @@
maxWidth: screenWidth
});
- ImageLoader.lazyImage($('#itemBackdrop', page).addClass('noFade').removeClass('noBackdrop')[0], imgUrl);
+ itemBackdropElement.classList.add('noFade');
+ itemBackdropElement.classList.remove('noBackdrop');
+ ImageLoader.lazyImage(itemBackdropElement, imgUrl);
hasbackdrop = true;
}
else {
- $('#itemBackdrop', page).addClass('noBackdrop').css('background-image', 'none');
+ itemBackdropElement.classList.add('noBackdrop');
+ itemBackdropElement.style.backgroundImage = '';
}
return hasbackdrop;
diff --git a/dashboard-ui/scripts/site.js b/dashboard-ui/scripts/site.js
index 4115a2dcc7..39be58e382 100644
--- a/dashboard-ui/scripts/site.js
+++ b/dashboard-ui/scripts/site.js
@@ -1541,10 +1541,6 @@ var AppInfo = {};
defineConnectionManager(window.ConnectionManager);
bindConnectionManagerEvents(window.ConnectionManager, Events);
- if (window.location.href.toLowerCase().indexOf('wizardstart.html') != -1) {
- window.ConnectionManager.clearData();
- }
-
console.log('binding to apiclientcreated');
Events.on(ConnectionManager, 'apiclientcreated', onApiClientCreated);
@@ -1565,6 +1561,7 @@ var AppInfo = {};
ConnectionManager.addApiClient(apiClient);
Dashboard.importCss(apiClient.getUrl('Branding/Css'));
window.ApiClient = apiClient;
+ localApiClient = apiClient;
console.log('loaded ApiClient singleton');
});
}
@@ -2210,42 +2207,49 @@ var AppInfo = {};
path: '/about.html',
dependencies: ['jQuery'],
autoFocus: false,
- controller: 'scripts/aboutpage'
+ controller: 'scripts/aboutpage',
+ roles: 'admin'
});
defineRoute({
path: '/addplugin.html',
dependencies: ['jQuery'],
- autoFocus: false
+ autoFocus: false,
+ roles: 'admin'
});
defineRoute({
path: '/advanced.html',
dependencies: ['jQuery'],
- autoFocus: false
+ autoFocus: false,
+ roles: 'admin'
});
defineRoute({
path: '/appservices.html',
dependencies: ['jQuery'],
- autoFocus: false
+ autoFocus: false,
+ roles: 'admin'
});
defineRoute({
path: '/autoorganizelog.html',
- dependencies: ['jQuery']
+ dependencies: ['jQuery'],
+ roles: 'admin'
});
defineRoute({
path: '/autoorganizesmart.html',
dependencies: ['jQuery'],
- autoFocus: false
+ autoFocus: false,
+ roles: 'admin'
});
defineRoute({
path: '/autoorganizetv.html',
dependencies: ['jQuery'],
- autoFocus: false
+ autoFocus: false,
+ roles: 'admin'
});
defineRoute({
@@ -2263,13 +2267,15 @@ var AppInfo = {};
defineRoute({
path: '/channelsettings.html',
dependencies: ['jQuery'],
- autoFocus: false
+ autoFocus: false,
+ roles: 'admin'
});
defineRoute({
path: '/cinemamodeconfiguration.html',
dependencies: ['jQuery'],
- autoFocus: false
+ autoFocus: false,
+ roles: 'admin'
});
defineRoute({
@@ -2288,61 +2294,71 @@ var AppInfo = {};
defineRoute({
path: '/dashboard.html',
dependencies: ['jQuery'],
- autoFocus: false
+ autoFocus: false,
+ roles: 'admin'
});
defineRoute({
path: '/dashboardgeneral.html',
dependencies: ['jQuery'],
- autoFocus: false
+ autoFocus: false,
+ roles: 'admin'
});
defineRoute({
path: '/dashboardhosting.html',
dependencies: ['jQuery'],
- autoFocus: false
+ autoFocus: false,
+ roles: 'admin'
});
defineRoute({
path: '/device.html',
dependencies: ['jQuery'],
- autoFocus: false
+ autoFocus: false,
+ roles: 'admin'
});
defineRoute({
path: '/devices.html',
dependencies: ['jQuery'],
- autoFocus: false
+ autoFocus: false,
+ roles: 'admin'
});
defineRoute({
path: '/devicesupload.html',
dependencies: ['jQuery'],
- autoFocus: false
+ autoFocus: false,
+ roles: 'admin'
});
defineRoute({
path: '/dlnaprofile.html',
dependencies: ['jQuery'],
- autoFocus: false
+ autoFocus: false,
+ roles: 'admin'
});
defineRoute({
path: '/dlnaprofiles.html',
dependencies: ['jQuery'],
- autoFocus: false
+ autoFocus: false,
+ roles: 'admin'
});
defineRoute({
path: '/dlnaserversettings.html',
dependencies: ['jQuery'],
- autoFocus: false
+ autoFocus: false,
+ roles: 'admin'
});
defineRoute({
path: '/dlnasettings.html',
dependencies: ['jQuery'],
- autoFocus: false
+ autoFocus: false,
+ roles: 'admin'
});
defineRoute({
@@ -2354,7 +2370,8 @@ var AppInfo = {};
defineRoute({
path: '/encodingsettings.html',
dependencies: ['jQuery'],
- autoFocus: false
+ autoFocus: false,
+ roles: 'admin'
});
defineRoute({
@@ -2441,19 +2458,22 @@ var AppInfo = {};
defineRoute({
path: '/library.html',
dependencies: ['jQuery'],
- autoFocus: false
+ autoFocus: false,
+ roles: 'admin'
});
defineRoute({
path: '/librarypathmapping.html',
dependencies: ['jQuery'],
- autoFocus: false
+ autoFocus: false,
+ roles: 'admin'
});
defineRoute({
path: '/librarysettings.html',
dependencies: ['jQuery'],
- autoFocus: false
+ autoFocus: false,
+ roles: 'admin'
});
defineRoute({
@@ -2465,7 +2485,8 @@ var AppInfo = {};
defineRoute({
path: '/livetvguideprovider.html',
dependencies: ['jQuery'],
- autoFocus: false
+ autoFocus: false,
+ roles: 'admin'
});
defineRoute({
@@ -2495,7 +2516,8 @@ var AppInfo = {};
defineRoute({
path: '/livetvstatus.html',
dependencies: ['jQuery'],
- autoFocus: false
+ autoFocus: false,
+ roles: 'admin'
});
defineRoute({
@@ -2507,25 +2529,29 @@ var AppInfo = {};
defineRoute({
path: '/livetvtunerprovider-hdhomerun.html',
dependencies: ['jQuery'],
- autoFocus: false
+ autoFocus: false,
+ roles: 'admin'
});
defineRoute({
path: '/livetvtunerprovider-m3u.html',
dependencies: ['jQuery'],
- autoFocus: false
+ autoFocus: false,
+ roles: 'admin'
});
defineRoute({
path: '/livetvtunerprovider-satip.html',
dependencies: ['jQuery'],
- autoFocus: false
+ autoFocus: false,
+ roles: 'admin'
});
defineRoute({
path: '/log.html',
dependencies: ['jQuery'],
- autoFocus: false
+ autoFocus: false,
+ roles: 'admin'
});
defineRoute({
@@ -2538,31 +2564,36 @@ var AppInfo = {};
defineRoute({
path: '/metadata.html',
dependencies: ['jQuery'],
- autoFocus: false
+ autoFocus: false,
+ roles: 'admin'
});
defineRoute({
path: '/metadataadvanced.html',
dependencies: ['jQuery'],
- autoFocus: false
+ autoFocus: false,
+ roles: 'admin'
});
defineRoute({
path: '/metadataimages.html',
dependencies: ['jQuery'],
- autoFocus: false
+ autoFocus: false,
+ roles: 'admin'
});
defineRoute({
path: '/metadatanfo.html',
dependencies: ['jQuery'],
- autoFocus: false
+ autoFocus: false,
+ roles: 'admin'
});
defineRoute({
path: '/metadatasubtitles.html',
dependencies: ['jQuery'],
- autoFocus: false
+ autoFocus: false,
+ roles: 'admin'
});
defineRoute({
@@ -2634,13 +2665,15 @@ var AppInfo = {};
defineRoute({
path: '/notificationsetting.html',
dependencies: ['jQuery'],
- autoFocus: false
+ autoFocus: false,
+ roles: 'admin'
});
defineRoute({
path: '/notificationsettings.html',
dependencies: ['jQuery'],
- autoFocus: false
+ autoFocus: false,
+ roles: 'admin'
});
defineRoute({
@@ -2658,7 +2691,8 @@ var AppInfo = {};
defineRoute({
path: '/playbackconfiguration.html',
dependencies: ['jQuery'],
- autoFocus: false
+ autoFocus: false,
+ roles: 'admin'
});
defineRoute({
@@ -2670,13 +2704,15 @@ var AppInfo = {};
defineRoute({
path: '/plugincatalog.html',
dependencies: ['jQuery'],
- autoFocus: false
+ autoFocus: false,
+ roles: 'admin'
});
defineRoute({
path: '/plugins.html',
dependencies: ['jQuery'],
- autoFocus: false
+ autoFocus: false,
+ roles: 'admin'
});
defineRoute({
@@ -2688,13 +2724,15 @@ var AppInfo = {};
defineRoute({
path: '/scheduledtask.html',
dependencies: ['jQuery'],
- autoFocus: false
+ autoFocus: false,
+ roles: 'admin'
});
defineRoute({
path: '/scheduledtasks.html',
dependencies: ['jQuery'],
- autoFocus: false
+ autoFocus: false,
+ roles: 'admin'
});
defineRoute({
@@ -2719,7 +2757,8 @@ var AppInfo = {};
defineRoute({
path: '/serversecurity.html',
dependencies: ['jQuery'],
- autoFocus: false
+ autoFocus: false,
+ roles: 'admin'
});
defineRoute({
@@ -2732,19 +2771,22 @@ var AppInfo = {};
defineRoute({
path: '/streamingsettings.html',
dependencies: ['jQuery'],
- autoFocus: false
+ autoFocus: false,
+ roles: 'admin'
});
defineRoute({
path: '/support.html',
dependencies: ['jQuery'],
- autoFocus: false
+ autoFocus: false,
+ roles: 'admin'
});
defineRoute({
path: '/supporterkey.html',
dependencies: ['jQuery'],
- autoFocus: false
+ autoFocus: false,
+ roles: 'admin'
});
defineRoute({
@@ -2767,32 +2809,37 @@ var AppInfo = {};
defineRoute({
path: '/tv.html',
- dependencies: ['jQuery'],
- autoFocus: false
+ dependencies: ['paper-tabs', 'neon-animated-pages', 'paper-checkbox'],
+ autoFocus: false,
+ controller: 'scripts/tvrecommended'
});
defineRoute({
path: '/useredit.html',
dependencies: ['jQuery'],
- autoFocus: false
+ autoFocus: false,
+ roles: 'admin'
});
defineRoute({
path: '/userlibraryaccess.html',
dependencies: ['jQuery'],
- autoFocus: false
+ autoFocus: false,
+ roles: 'admin'
});
defineRoute({
path: '/usernew.html',
dependencies: ['jQuery'],
- autoFocus: false
+ autoFocus: false,
+ roles: 'admin'
});
defineRoute({
path: '/userparentalcontrol.html',
dependencies: ['jQuery'],
- autoFocus: false
+ autoFocus: false,
+ roles: 'admin'
});
defineRoute({
@@ -2804,7 +2851,8 @@ var AppInfo = {};
defineRoute({
path: '/userprofiles.html',
dependencies: ['jQuery'],
- autoFocus: false
+ autoFocus: false,
+ roles: 'admin'
});
defineRoute({
@@ -2875,7 +2923,8 @@ var AppInfo = {};
dependencies: ['jQuery'],
autoFocus: false,
enableCache: false,
- enableContentQueryString: true
+ enableContentQueryString: true,
+ roles: 'admin'
});
defineRoute({
@@ -3241,18 +3290,9 @@ pageClassOn('viewshow', "page", function () {
if (apiClient && apiClient.isLoggedIn()) {
- var isSettingsPage = page.classList.contains('type-interior');
-
- if (isSettingsPage) {
+ if (page.classList.contains('type-interior')) {
Dashboard.ensureToolsMenu(page);
-
- Dashboard.getCurrentUser().then(function (user) {
-
- if (!user.Policy.IsAdministrator) {
- Dashboard.logout();
- }
- });
}
}
diff --git a/dashboard-ui/scripts/tvrecommended.js b/dashboard-ui/scripts/tvrecommended.js
index ca83dd812d..75e5c737c6 100644
--- a/dashboard-ui/scripts/tvrecommended.js
+++ b/dashboard-ui/scripts/tvrecommended.js
@@ -1,4 +1,4 @@
-(function ($, document) {
+define(['libraryBrowser', 'scripts/alphapicker'], function (libraryBrowser) {
function getView() {
@@ -14,16 +14,7 @@
Dashboard.showLoadingMsg();
- if (LibraryMenu.getTopParentId()) {
-
- $('.scopedContent', page).show();
-
- loadResume(page);
-
- } else {
- $('.scopedContent', page).hide();
- }
-
+ loadResume(page);
loadNextUp(page);
}
@@ -47,9 +38,9 @@
ApiClient.getNextUpEpisodes(query).then(function (result) {
if (result.Items.length) {
- $('.noNextUpItems', page).hide();
+ page.querySelector('.noNextUpItems').classList.add('hide');
} else {
- $('.noNextUpItems', page).show();
+ page.querySelector('.noNextUpItems').classList.remove('hide');
}
var view = getView();
@@ -57,7 +48,7 @@
if (view == 'ThumbCard') {
- html += LibraryBrowser.getPosterViewHtml({
+ html += libraryBrowser.getPosterViewHtml({
items: result.Items,
shape: "backdrop",
showTitle: true,
@@ -70,7 +61,7 @@
} else if (view == 'Thumb') {
- html += LibraryBrowser.getPosterViewHtml({
+ html += libraryBrowser.getPosterViewHtml({
items: result.Items,
shape: "backdrop",
showTitle: true,
@@ -89,7 +80,7 @@
ImageLoader.lazyChildren(elem);
Dashboard.hideLoadingMsg();
- LibraryBrowser.setLastRefreshed(page);
+ libraryBrowser.setLastRefreshed(page);
});
}
@@ -125,9 +116,9 @@
ApiClient.getItems(Dashboard.getCurrentUserId(), options).then(function (result) {
if (result.Items.length) {
- $('#resumableSection', page).show();
+ page.querySelector('#resumableSection').classList.remove('hide');
} else {
- $('#resumableSection', page).hide();
+ page.querySelector('#resumableSection').classList.add('hide');
}
var view = getResumeView();
@@ -135,7 +126,7 @@
if (view == 'PosterCard') {
- html += LibraryBrowser.getPosterViewHtml({
+ html += libraryBrowser.getPosterViewHtml({
items: result.Items,
shape: getThumbShape(),
showTitle: true,
@@ -148,7 +139,7 @@
} else if (view == 'Poster') {
- html += LibraryBrowser.getPosterViewHtml({
+ html += libraryBrowser.getPosterViewHtml({
items: result.Items,
shape: getThumbShape(),
showTitle: true,
@@ -174,12 +165,12 @@
} else {
tabContent.querySelector('#resumableItems').classList.remove('hiddenScrollX');
}
- $(tabContent.querySelector('#resumableItems')).createCardMenus();
+ libraryBrowser.createCardMenus(tabContent.querySelector('#resumableItems'));
}
function loadSuggestionsTab(page, tabContent) {
- if (LibraryBrowser.needsRefresh(tabContent)) {
+ if (libraryBrowser.needsRefresh(tabContent)) {
reload(tabContent);
}
}
@@ -245,14 +236,20 @@
window.TvPage.renderSuggestedTab = loadSuggestionsTab;
window.TvPage.initSuggestedTab = initSuggestedTab;
- pageIdOn('pageinit', "tvRecommendedPage", function () {
+ function onPlaybackStop(e, state) {
- var page = this;
+ if (state.NowPlayingItem && state.NowPlayingItem.MediaType == 'Video') {
+ var page = $.mobile.activePage;
+ var pages = page.querySelector('neon-animated-pages');
- $('.recommendations', page).createCardMenus();
+ pages.dispatchEvent(new CustomEvent("tabchange", {}));
+ }
+ }
- var tabs = page.querySelector('paper-tabs');
- var pages = page.querySelector('neon-animated-pages');
+ return function (view, params) {
+
+ var tabs = view.querySelector('paper-tabs');
+ var pages = view.querySelector('neon-animated-pages');
var baseUrl = 'tv.html';
var topParentId = LibraryMenu.getTopParentId();
@@ -261,60 +258,48 @@
}
if (enableScrollX()) {
- page.querySelector('#resumableItems').classList.add('hiddenScrollX');
+ view.querySelector('#resumableItems').classList.add('hiddenScrollX');
} else {
- page.querySelector('#resumableItems').classList.remove('hiddenScrollX');
+ view.querySelector('#resumableItems').classList.remove('hiddenScrollX');
}
- $(page.querySelector('#resumableItems')).createCardMenus();
+ libraryBrowser.createCardMenus(view.querySelector('#resumableItems'));
- LibraryBrowser.configurePaperLibraryTabs(page, tabs, pages, baseUrl);
+ libraryBrowser.configurePaperLibraryTabs(view, tabs, pages, baseUrl);
pages.addEventListener('tabchange', function (e) {
- loadTab(page, parseInt(this.selected));
+ loadTab(view, parseInt(this.selected));
});
- });
- pageIdOn('pagebeforeshow', "tvRecommendedPage", function () {
+ view.addEventListener('viewbeforeshow', function (e) {
- var page = this;
+ var page = this;
- if (!page.getAttribute('data-title')) {
+ if (!page.getAttribute('data-title')) {
- var parentId = LibraryMenu.getTopParentId();
+ var parentId = LibraryMenu.getTopParentId();
- if (parentId) {
+ if (parentId) {
- ApiClient.getItem(Dashboard.getCurrentUserId(), parentId).then(function (item) {
+ ApiClient.getItem(Dashboard.getCurrentUserId(), parentId).then(function (item) {
- page.setAttribute('data-title', item.Name);
- LibraryMenu.setTitle(item.Name);
- });
+ page.setAttribute('data-title', item.Name);
+ LibraryMenu.setTitle(item.Name);
+ });
- } else {
- page.setAttribute('data-title', Globalize.translate('TabShows'));
- LibraryMenu.setTitle(Globalize.translate('TabShows'));
+ } else {
+ page.setAttribute('data-title', Globalize.translate('TabShows'));
+ LibraryMenu.setTitle(Globalize.translate('TabShows'));
+ }
}
- }
- Events.on(MediaController, 'playbackstop', onPlaybackStop);
- });
+ Events.on(MediaController, 'playbackstop', onPlaybackStop);
+ });
- pageIdOn('pagebeforehide', "tvRecommendedPage", function () {
+ view.addEventListener('viewbeforehide', function (e) {
- var page = this;
- Events.off(MediaController, 'playbackstop', onPlaybackStop);
- });
-
- function onPlaybackStop(e, state) {
-
- if (state.NowPlayingItem && state.NowPlayingItem.MediaType == 'Video') {
- var page = $($.mobile.activePage)[0];
- var pages = page.querySelector('neon-animated-pages');
-
- pages.dispatchEvent(new CustomEvent("tabchange", {}));
- }
- }
-
-
-})(jQuery, document);
\ No newline at end of file
+ var page = this;
+ Events.off(MediaController, 'playbackstop', onPlaybackStop);
+ });
+ };
+});
\ No newline at end of file
diff --git a/dashboard-ui/scripts/wizardstartpage.js b/dashboard-ui/scripts/wizardstartpage.js
index 3e69c3346d..4cd469042b 100644
--- a/dashboard-ui/scripts/wizardstartpage.js
+++ b/dashboard-ui/scripts/wizardstartpage.js
@@ -46,6 +46,9 @@
$('.wizardStartForm').off('submit', onSubmit).on('submit', onSubmit);
+ window.ConnectionManager.clearData();
+
+
}).on('pageshow', "#wizardStartPage", function () {
Dashboard.showLoadingMsg();
diff --git a/dashboard-ui/tv.html b/dashboard-ui/tv.html
index ddedb56d23..753f49b9b6 100644
--- a/dashboard-ui/tv.html
+++ b/dashboard-ui/tv.html
@@ -1,4 +1,4 @@
-