1
0
Fork 0
mirror of https://github.com/jellyfin/jellyfin-web synced 2025-03-30 19:56:21 +00:00

fix anonymous pages

This commit is contained in:
Luke Pulverenti 2016-03-17 01:04:32 -04:00
parent b53f6c1d3f
commit d004fd3960
6 changed files with 293 additions and 200 deletions

View file

@ -1,4 +1,4 @@
define(['libraryBrowser'], function (LibraryBrowser) { define(['libraryBrowser'], function (libraryBrowser) {
var defaultFirstSection = 'smalllibrarytiles'; var defaultFirstSection = 'smalllibrarytiles';
@ -212,7 +212,7 @@
function loadHomeTab(page, tabContent) { function loadHomeTab(page, tabContent) {
if (LibraryBrowser.needsRefresh(tabContent)) { if (libraryBrowser.needsRefresh(tabContent)) {
if (window.ApiClient) { if (window.ApiClient) {
var userId = Dashboard.getCurrentUserId(); var userId = Dashboard.getCurrentUserId();
Dashboard.showLoadingMsg(); Dashboard.showLoadingMsg();
@ -228,7 +228,7 @@
} }
Dashboard.hideLoadingMsg(); Dashboard.hideLoadingMsg();
LibraryBrowser.setLastRefreshed(tabContent); libraryBrowser.setLastRefreshed(tabContent);
}); });
}); });
@ -297,7 +297,7 @@
var pages = view.querySelector('neon-animated-pages'); 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) { pages.addEventListener('tabchange', function (e) {
loadTab(view, parseInt(e.target.selected)); loadTab(view, parseInt(e.target.selected));
@ -322,5 +322,5 @@
view.addEventListener('viewbeforehide', function (e) { view.addEventListener('viewbeforehide', function (e) {
Events.off(MediaController, 'playbackstop', onPlaybackStop); Events.off(MediaController, 'playbackstop', onPlaybackStop);
}); });
} };
}); });

View file

@ -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) { var libraryBrowser = (function (window, document, screen) {
@ -310,6 +310,7 @@
tabs.noink = true; tabs.noink = true;
} }
var libraryViewNav = ownerpage.querySelector('.libraryViewNav');
if (LibraryBrowser.enableFullPaperTabs()) { if (LibraryBrowser.enableFullPaperTabs()) {
if (browserInfo.safari) { if (browserInfo.safari) {
@ -319,22 +320,36 @@
LibraryBrowser.configureSwipeTabs(ownerpage, tabs, pages); LibraryBrowser.configureSwipeTabs(ownerpage, tabs, pages);
} }
$('.libraryViewNav', ownerpage).addClass('paperLibraryViewNav').removeClass('libraryViewNavWithMinHeight'); if (libraryViewNav) {
libraryViewNav.classList.add('paperLibraryViewNav');
libraryViewNav.classList.remove('libraryViewNavWithMinHeight');
}
} else { } else {
tabs.noSlide = true; tabs.noSlide = true;
tabs.noBar = 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; var selected = pages.selected;
$('a', legacyTabs).removeClass('ui-btn-active')[selected].classList.add('ui-btn-active'); 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); ownerpage.addEventListener('viewbeforeshow', LibraryBrowser.onTabbedpagebeforeshow);
@ -460,6 +475,8 @@
} }
var afterNavigate = function () { var afterNavigate = function () {
document.removeEventListener('pagebeforeshow', afterNavigate);
if (window.location.href.toLowerCase().indexOf(url.toLowerCase()) != -1) { if (window.location.href.toLowerCase().indexOf(url.toLowerCase()) != -1) {
var pages = this.querySelector('neon-animated-pages'); var pages = this.querySelector('neon-animated-pages');
@ -494,7 +511,7 @@
afterNavigate.call($.mobile.activePage); afterNavigate.call($.mobile.activePage);
} else { } else {
$(document).one('pagebeforeshow', '.page', afterNavigate); pageClassOn('pagebeforeshow', 'page', afterNavigate);
Dashboard.navigate(url); Dashboard.navigate(url);
} }
}, },
@ -1662,19 +1679,48 @@
return itemCommands; return itemCommands;
}, },
screenWidth: function () {
var screenWidth = $(window).width();
return screenWidth;
},
shapes: ['square', 'portrait', 'banner', 'smallBackdrop', 'homePageSmallBackdrop', 'backdrop', 'overflowBackdrop', 'overflowPortrait', 'overflowSquare'], shapes: ['square', 'portrait', 'banner', 'smallBackdrop', 'homePageSmallBackdrop', 'backdrop', 'overflowBackdrop', 'overflowPortrait', 'overflowSquare'],
getPostersPerRow: function (screenWidth) { getPostersPerRow: function (screenWidth) {
var cache = true; var cache = true;
function getValue(shape) { 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 = $('<div class="card ' + shape + 'Card"><div class="cardBox"><div class="cardImage"></div></div></div>').appendTo(document.body); var div = $('<div class="card ' + shape + 'Card"><div class="cardBox"><div class="cardImage"></div></div></div>').appendTo(document.body);
var innerWidth = $('.cardImage', div).innerWidth(); var innerWidth = $('.cardImage', div).innerWidth();
@ -1702,7 +1748,7 @@
getPosterViewInfo: function () { getPosterViewInfo: function () {
var screenWidth = LibraryBrowser.screenWidth(); var screenWidth = window.innerWidth;
var cachedResults = LibraryBrowser.posterSizes; var cachedResults = LibraryBrowser.posterSizes;
@ -2762,11 +2808,10 @@
html = Globalize.translate('ValueLinks', html); html = Globalize.translate('ValueLinks', html);
linksElem.innerHTML = html; linksElem.innerHTML = html;
$(linksElem); linksElem.classList.remove('hide');
$(linksElem).show();
} else { } else {
$(linksElem).hide(); linksElem.classList.add('hide');
} }
}, },
@ -2797,7 +2842,10 @@
positionTo: button, positionTo: button,
callback: function (id) { callback: function (id) {
$(button).trigger('layoutchange', [id]); // TODO: remove jQuery
require(['jQuery'], function ($) {
$(button).trigger('layoutchange', [id]);
});
} }
}); });
@ -3102,63 +3150,72 @@
markFavorite: function (link) { 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) { if (markAsFavorite) {
$link.addClass('btnUserItemRatingOn'); $link.addClass('btnUserItemRatingOn');
} else { } else {
$link.removeClass('btnUserItemRatingOn'); $link.removeClass('btnUserItemRatingOn');
} }
});
}, },
markLike: function (link) { 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) { 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) { renderDetailImage: function (elem, item, editable, preferThumb) {
@ -3548,25 +3605,26 @@
renderOverview: function (elems, item) { renderOverview: function (elems, item) {
$(elems).each(function () { for (var i = 0, length = elems.length; i < length; i++) {
var elem = this; var elem = elems[i];
var overview = item.Overview || ''; var overview = item.Overview || '';
$('a', elem).each(function () {
this.setAttribute("target", "_blank");
});
if (overview) { if (overview) {
elem.innerHTML = overview; elem.innerHTML = overview;
elem.classList.remove('empty'); 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 { } else {
elem.innerHTML = ''; elem.innerHTML = '';
elem.classList.add('empty'); elem.classList.add('empty');
} }
}); }
}, },
renderStudios: function (elem, item, isStatic) { renderStudios: function (elem, item, isStatic) {
@ -3665,6 +3723,8 @@
var imgUrl; var imgUrl;
var hasbackdrop = false; var hasbackdrop = false;
var itemBackdropElement = page.querySelector('#itemBackdrop');
if (item.BackdropImageTags && item.BackdropImageTags.length) { if (item.BackdropImageTags && item.BackdropImageTags.length) {
imgUrl = ApiClient.getScaledImageUrl(item.Id, { imgUrl = ApiClient.getScaledImageUrl(item.Id, {
@ -3674,7 +3734,9 @@
tag: item.BackdropImageTags[0] 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; hasbackdrop = true;
} }
else if (item.ParentBackdropItemId && item.ParentBackdropImageTags && item.ParentBackdropImageTags.length) { else if (item.ParentBackdropItemId && item.ParentBackdropImageTags && item.ParentBackdropImageTags.length) {
@ -3686,12 +3748,15 @@
maxWidth: screenWidth 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; hasbackdrop = true;
} }
else { else {
$('#itemBackdrop', page).addClass('noBackdrop').css('background-image', 'none'); itemBackdropElement.classList.add('noBackdrop');
itemBackdropElement.style.backgroundImage = '';
} }
return hasbackdrop; return hasbackdrop;

View file

@ -1541,10 +1541,6 @@ var AppInfo = {};
defineConnectionManager(window.ConnectionManager); defineConnectionManager(window.ConnectionManager);
bindConnectionManagerEvents(window.ConnectionManager, Events); bindConnectionManagerEvents(window.ConnectionManager, Events);
if (window.location.href.toLowerCase().indexOf('wizardstart.html') != -1) {
window.ConnectionManager.clearData();
}
console.log('binding to apiclientcreated'); console.log('binding to apiclientcreated');
Events.on(ConnectionManager, 'apiclientcreated', onApiClientCreated); Events.on(ConnectionManager, 'apiclientcreated', onApiClientCreated);
@ -1565,6 +1561,7 @@ var AppInfo = {};
ConnectionManager.addApiClient(apiClient); ConnectionManager.addApiClient(apiClient);
Dashboard.importCss(apiClient.getUrl('Branding/Css')); Dashboard.importCss(apiClient.getUrl('Branding/Css'));
window.ApiClient = apiClient; window.ApiClient = apiClient;
localApiClient = apiClient;
console.log('loaded ApiClient singleton'); console.log('loaded ApiClient singleton');
}); });
} }
@ -2210,42 +2207,49 @@ var AppInfo = {};
path: '/about.html', path: '/about.html',
dependencies: ['jQuery'], dependencies: ['jQuery'],
autoFocus: false, autoFocus: false,
controller: 'scripts/aboutpage' controller: 'scripts/aboutpage',
roles: 'admin'
}); });
defineRoute({ defineRoute({
path: '/addplugin.html', path: '/addplugin.html',
dependencies: ['jQuery'], dependencies: ['jQuery'],
autoFocus: false autoFocus: false,
roles: 'admin'
}); });
defineRoute({ defineRoute({
path: '/advanced.html', path: '/advanced.html',
dependencies: ['jQuery'], dependencies: ['jQuery'],
autoFocus: false autoFocus: false,
roles: 'admin'
}); });
defineRoute({ defineRoute({
path: '/appservices.html', path: '/appservices.html',
dependencies: ['jQuery'], dependencies: ['jQuery'],
autoFocus: false autoFocus: false,
roles: 'admin'
}); });
defineRoute({ defineRoute({
path: '/autoorganizelog.html', path: '/autoorganizelog.html',
dependencies: ['jQuery'] dependencies: ['jQuery'],
roles: 'admin'
}); });
defineRoute({ defineRoute({
path: '/autoorganizesmart.html', path: '/autoorganizesmart.html',
dependencies: ['jQuery'], dependencies: ['jQuery'],
autoFocus: false autoFocus: false,
roles: 'admin'
}); });
defineRoute({ defineRoute({
path: '/autoorganizetv.html', path: '/autoorganizetv.html',
dependencies: ['jQuery'], dependencies: ['jQuery'],
autoFocus: false autoFocus: false,
roles: 'admin'
}); });
defineRoute({ defineRoute({
@ -2263,13 +2267,15 @@ var AppInfo = {};
defineRoute({ defineRoute({
path: '/channelsettings.html', path: '/channelsettings.html',
dependencies: ['jQuery'], dependencies: ['jQuery'],
autoFocus: false autoFocus: false,
roles: 'admin'
}); });
defineRoute({ defineRoute({
path: '/cinemamodeconfiguration.html', path: '/cinemamodeconfiguration.html',
dependencies: ['jQuery'], dependencies: ['jQuery'],
autoFocus: false autoFocus: false,
roles: 'admin'
}); });
defineRoute({ defineRoute({
@ -2288,61 +2294,71 @@ var AppInfo = {};
defineRoute({ defineRoute({
path: '/dashboard.html', path: '/dashboard.html',
dependencies: ['jQuery'], dependencies: ['jQuery'],
autoFocus: false autoFocus: false,
roles: 'admin'
}); });
defineRoute({ defineRoute({
path: '/dashboardgeneral.html', path: '/dashboardgeneral.html',
dependencies: ['jQuery'], dependencies: ['jQuery'],
autoFocus: false autoFocus: false,
roles: 'admin'
}); });
defineRoute({ defineRoute({
path: '/dashboardhosting.html', path: '/dashboardhosting.html',
dependencies: ['jQuery'], dependencies: ['jQuery'],
autoFocus: false autoFocus: false,
roles: 'admin'
}); });
defineRoute({ defineRoute({
path: '/device.html', path: '/device.html',
dependencies: ['jQuery'], dependencies: ['jQuery'],
autoFocus: false autoFocus: false,
roles: 'admin'
}); });
defineRoute({ defineRoute({
path: '/devices.html', path: '/devices.html',
dependencies: ['jQuery'], dependencies: ['jQuery'],
autoFocus: false autoFocus: false,
roles: 'admin'
}); });
defineRoute({ defineRoute({
path: '/devicesupload.html', path: '/devicesupload.html',
dependencies: ['jQuery'], dependencies: ['jQuery'],
autoFocus: false autoFocus: false,
roles: 'admin'
}); });
defineRoute({ defineRoute({
path: '/dlnaprofile.html', path: '/dlnaprofile.html',
dependencies: ['jQuery'], dependencies: ['jQuery'],
autoFocus: false autoFocus: false,
roles: 'admin'
}); });
defineRoute({ defineRoute({
path: '/dlnaprofiles.html', path: '/dlnaprofiles.html',
dependencies: ['jQuery'], dependencies: ['jQuery'],
autoFocus: false autoFocus: false,
roles: 'admin'
}); });
defineRoute({ defineRoute({
path: '/dlnaserversettings.html', path: '/dlnaserversettings.html',
dependencies: ['jQuery'], dependencies: ['jQuery'],
autoFocus: false autoFocus: false,
roles: 'admin'
}); });
defineRoute({ defineRoute({
path: '/dlnasettings.html', path: '/dlnasettings.html',
dependencies: ['jQuery'], dependencies: ['jQuery'],
autoFocus: false autoFocus: false,
roles: 'admin'
}); });
defineRoute({ defineRoute({
@ -2354,7 +2370,8 @@ var AppInfo = {};
defineRoute({ defineRoute({
path: '/encodingsettings.html', path: '/encodingsettings.html',
dependencies: ['jQuery'], dependencies: ['jQuery'],
autoFocus: false autoFocus: false,
roles: 'admin'
}); });
defineRoute({ defineRoute({
@ -2441,19 +2458,22 @@ var AppInfo = {};
defineRoute({ defineRoute({
path: '/library.html', path: '/library.html',
dependencies: ['jQuery'], dependencies: ['jQuery'],
autoFocus: false autoFocus: false,
roles: 'admin'
}); });
defineRoute({ defineRoute({
path: '/librarypathmapping.html', path: '/librarypathmapping.html',
dependencies: ['jQuery'], dependencies: ['jQuery'],
autoFocus: false autoFocus: false,
roles: 'admin'
}); });
defineRoute({ defineRoute({
path: '/librarysettings.html', path: '/librarysettings.html',
dependencies: ['jQuery'], dependencies: ['jQuery'],
autoFocus: false autoFocus: false,
roles: 'admin'
}); });
defineRoute({ defineRoute({
@ -2465,7 +2485,8 @@ var AppInfo = {};
defineRoute({ defineRoute({
path: '/livetvguideprovider.html', path: '/livetvguideprovider.html',
dependencies: ['jQuery'], dependencies: ['jQuery'],
autoFocus: false autoFocus: false,
roles: 'admin'
}); });
defineRoute({ defineRoute({
@ -2495,7 +2516,8 @@ var AppInfo = {};
defineRoute({ defineRoute({
path: '/livetvstatus.html', path: '/livetvstatus.html',
dependencies: ['jQuery'], dependencies: ['jQuery'],
autoFocus: false autoFocus: false,
roles: 'admin'
}); });
defineRoute({ defineRoute({
@ -2507,25 +2529,29 @@ var AppInfo = {};
defineRoute({ defineRoute({
path: '/livetvtunerprovider-hdhomerun.html', path: '/livetvtunerprovider-hdhomerun.html',
dependencies: ['jQuery'], dependencies: ['jQuery'],
autoFocus: false autoFocus: false,
roles: 'admin'
}); });
defineRoute({ defineRoute({
path: '/livetvtunerprovider-m3u.html', path: '/livetvtunerprovider-m3u.html',
dependencies: ['jQuery'], dependencies: ['jQuery'],
autoFocus: false autoFocus: false,
roles: 'admin'
}); });
defineRoute({ defineRoute({
path: '/livetvtunerprovider-satip.html', path: '/livetvtunerprovider-satip.html',
dependencies: ['jQuery'], dependencies: ['jQuery'],
autoFocus: false autoFocus: false,
roles: 'admin'
}); });
defineRoute({ defineRoute({
path: '/log.html', path: '/log.html',
dependencies: ['jQuery'], dependencies: ['jQuery'],
autoFocus: false autoFocus: false,
roles: 'admin'
}); });
defineRoute({ defineRoute({
@ -2538,31 +2564,36 @@ var AppInfo = {};
defineRoute({ defineRoute({
path: '/metadata.html', path: '/metadata.html',
dependencies: ['jQuery'], dependencies: ['jQuery'],
autoFocus: false autoFocus: false,
roles: 'admin'
}); });
defineRoute({ defineRoute({
path: '/metadataadvanced.html', path: '/metadataadvanced.html',
dependencies: ['jQuery'], dependencies: ['jQuery'],
autoFocus: false autoFocus: false,
roles: 'admin'
}); });
defineRoute({ defineRoute({
path: '/metadataimages.html', path: '/metadataimages.html',
dependencies: ['jQuery'], dependencies: ['jQuery'],
autoFocus: false autoFocus: false,
roles: 'admin'
}); });
defineRoute({ defineRoute({
path: '/metadatanfo.html', path: '/metadatanfo.html',
dependencies: ['jQuery'], dependencies: ['jQuery'],
autoFocus: false autoFocus: false,
roles: 'admin'
}); });
defineRoute({ defineRoute({
path: '/metadatasubtitles.html', path: '/metadatasubtitles.html',
dependencies: ['jQuery'], dependencies: ['jQuery'],
autoFocus: false autoFocus: false,
roles: 'admin'
}); });
defineRoute({ defineRoute({
@ -2634,13 +2665,15 @@ var AppInfo = {};
defineRoute({ defineRoute({
path: '/notificationsetting.html', path: '/notificationsetting.html',
dependencies: ['jQuery'], dependencies: ['jQuery'],
autoFocus: false autoFocus: false,
roles: 'admin'
}); });
defineRoute({ defineRoute({
path: '/notificationsettings.html', path: '/notificationsettings.html',
dependencies: ['jQuery'], dependencies: ['jQuery'],
autoFocus: false autoFocus: false,
roles: 'admin'
}); });
defineRoute({ defineRoute({
@ -2658,7 +2691,8 @@ var AppInfo = {};
defineRoute({ defineRoute({
path: '/playbackconfiguration.html', path: '/playbackconfiguration.html',
dependencies: ['jQuery'], dependencies: ['jQuery'],
autoFocus: false autoFocus: false,
roles: 'admin'
}); });
defineRoute({ defineRoute({
@ -2670,13 +2704,15 @@ var AppInfo = {};
defineRoute({ defineRoute({
path: '/plugincatalog.html', path: '/plugincatalog.html',
dependencies: ['jQuery'], dependencies: ['jQuery'],
autoFocus: false autoFocus: false,
roles: 'admin'
}); });
defineRoute({ defineRoute({
path: '/plugins.html', path: '/plugins.html',
dependencies: ['jQuery'], dependencies: ['jQuery'],
autoFocus: false autoFocus: false,
roles: 'admin'
}); });
defineRoute({ defineRoute({
@ -2688,13 +2724,15 @@ var AppInfo = {};
defineRoute({ defineRoute({
path: '/scheduledtask.html', path: '/scheduledtask.html',
dependencies: ['jQuery'], dependencies: ['jQuery'],
autoFocus: false autoFocus: false,
roles: 'admin'
}); });
defineRoute({ defineRoute({
path: '/scheduledtasks.html', path: '/scheduledtasks.html',
dependencies: ['jQuery'], dependencies: ['jQuery'],
autoFocus: false autoFocus: false,
roles: 'admin'
}); });
defineRoute({ defineRoute({
@ -2719,7 +2757,8 @@ var AppInfo = {};
defineRoute({ defineRoute({
path: '/serversecurity.html', path: '/serversecurity.html',
dependencies: ['jQuery'], dependencies: ['jQuery'],
autoFocus: false autoFocus: false,
roles: 'admin'
}); });
defineRoute({ defineRoute({
@ -2732,19 +2771,22 @@ var AppInfo = {};
defineRoute({ defineRoute({
path: '/streamingsettings.html', path: '/streamingsettings.html',
dependencies: ['jQuery'], dependencies: ['jQuery'],
autoFocus: false autoFocus: false,
roles: 'admin'
}); });
defineRoute({ defineRoute({
path: '/support.html', path: '/support.html',
dependencies: ['jQuery'], dependencies: ['jQuery'],
autoFocus: false autoFocus: false,
roles: 'admin'
}); });
defineRoute({ defineRoute({
path: '/supporterkey.html', path: '/supporterkey.html',
dependencies: ['jQuery'], dependencies: ['jQuery'],
autoFocus: false autoFocus: false,
roles: 'admin'
}); });
defineRoute({ defineRoute({
@ -2767,32 +2809,37 @@ var AppInfo = {};
defineRoute({ defineRoute({
path: '/tv.html', path: '/tv.html',
dependencies: ['jQuery'], dependencies: ['paper-tabs', 'neon-animated-pages', 'paper-checkbox'],
autoFocus: false autoFocus: false,
controller: 'scripts/tvrecommended'
}); });
defineRoute({ defineRoute({
path: '/useredit.html', path: '/useredit.html',
dependencies: ['jQuery'], dependencies: ['jQuery'],
autoFocus: false autoFocus: false,
roles: 'admin'
}); });
defineRoute({ defineRoute({
path: '/userlibraryaccess.html', path: '/userlibraryaccess.html',
dependencies: ['jQuery'], dependencies: ['jQuery'],
autoFocus: false autoFocus: false,
roles: 'admin'
}); });
defineRoute({ defineRoute({
path: '/usernew.html', path: '/usernew.html',
dependencies: ['jQuery'], dependencies: ['jQuery'],
autoFocus: false autoFocus: false,
roles: 'admin'
}); });
defineRoute({ defineRoute({
path: '/userparentalcontrol.html', path: '/userparentalcontrol.html',
dependencies: ['jQuery'], dependencies: ['jQuery'],
autoFocus: false autoFocus: false,
roles: 'admin'
}); });
defineRoute({ defineRoute({
@ -2804,7 +2851,8 @@ var AppInfo = {};
defineRoute({ defineRoute({
path: '/userprofiles.html', path: '/userprofiles.html',
dependencies: ['jQuery'], dependencies: ['jQuery'],
autoFocus: false autoFocus: false,
roles: 'admin'
}); });
defineRoute({ defineRoute({
@ -2875,7 +2923,8 @@ var AppInfo = {};
dependencies: ['jQuery'], dependencies: ['jQuery'],
autoFocus: false, autoFocus: false,
enableCache: false, enableCache: false,
enableContentQueryString: true enableContentQueryString: true,
roles: 'admin'
}); });
defineRoute({ defineRoute({
@ -3241,18 +3290,9 @@ pageClassOn('viewshow', "page", function () {
if (apiClient && apiClient.isLoggedIn()) { if (apiClient && apiClient.isLoggedIn()) {
var isSettingsPage = page.classList.contains('type-interior'); if (page.classList.contains('type-interior')) {
if (isSettingsPage) {
Dashboard.ensureToolsMenu(page); Dashboard.ensureToolsMenu(page);
Dashboard.getCurrentUser().then(function (user) {
if (!user.Policy.IsAdministrator) {
Dashboard.logout();
}
});
} }
} }

View file

@ -1,4 +1,4 @@
(function ($, document) { define(['libraryBrowser', 'scripts/alphapicker'], function (libraryBrowser) {
function getView() { function getView() {
@ -14,16 +14,7 @@
Dashboard.showLoadingMsg(); Dashboard.showLoadingMsg();
if (LibraryMenu.getTopParentId()) { loadResume(page);
$('.scopedContent', page).show();
loadResume(page);
} else {
$('.scopedContent', page).hide();
}
loadNextUp(page); loadNextUp(page);
} }
@ -47,9 +38,9 @@
ApiClient.getNextUpEpisodes(query).then(function (result) { ApiClient.getNextUpEpisodes(query).then(function (result) {
if (result.Items.length) { if (result.Items.length) {
$('.noNextUpItems', page).hide(); page.querySelector('.noNextUpItems').classList.add('hide');
} else { } else {
$('.noNextUpItems', page).show(); page.querySelector('.noNextUpItems').classList.remove('hide');
} }
var view = getView(); var view = getView();
@ -57,7 +48,7 @@
if (view == 'ThumbCard') { if (view == 'ThumbCard') {
html += LibraryBrowser.getPosterViewHtml({ html += libraryBrowser.getPosterViewHtml({
items: result.Items, items: result.Items,
shape: "backdrop", shape: "backdrop",
showTitle: true, showTitle: true,
@ -70,7 +61,7 @@
} else if (view == 'Thumb') { } else if (view == 'Thumb') {
html += LibraryBrowser.getPosterViewHtml({ html += libraryBrowser.getPosterViewHtml({
items: result.Items, items: result.Items,
shape: "backdrop", shape: "backdrop",
showTitle: true, showTitle: true,
@ -89,7 +80,7 @@
ImageLoader.lazyChildren(elem); ImageLoader.lazyChildren(elem);
Dashboard.hideLoadingMsg(); Dashboard.hideLoadingMsg();
LibraryBrowser.setLastRefreshed(page); libraryBrowser.setLastRefreshed(page);
}); });
} }
@ -125,9 +116,9 @@
ApiClient.getItems(Dashboard.getCurrentUserId(), options).then(function (result) { ApiClient.getItems(Dashboard.getCurrentUserId(), options).then(function (result) {
if (result.Items.length) { if (result.Items.length) {
$('#resumableSection', page).show(); page.querySelector('#resumableSection').classList.remove('hide');
} else { } else {
$('#resumableSection', page).hide(); page.querySelector('#resumableSection').classList.add('hide');
} }
var view = getResumeView(); var view = getResumeView();
@ -135,7 +126,7 @@
if (view == 'PosterCard') { if (view == 'PosterCard') {
html += LibraryBrowser.getPosterViewHtml({ html += libraryBrowser.getPosterViewHtml({
items: result.Items, items: result.Items,
shape: getThumbShape(), shape: getThumbShape(),
showTitle: true, showTitle: true,
@ -148,7 +139,7 @@
} else if (view == 'Poster') { } else if (view == 'Poster') {
html += LibraryBrowser.getPosterViewHtml({ html += libraryBrowser.getPosterViewHtml({
items: result.Items, items: result.Items,
shape: getThumbShape(), shape: getThumbShape(),
showTitle: true, showTitle: true,
@ -174,12 +165,12 @@
} else { } else {
tabContent.querySelector('#resumableItems').classList.remove('hiddenScrollX'); tabContent.querySelector('#resumableItems').classList.remove('hiddenScrollX');
} }
$(tabContent.querySelector('#resumableItems')).createCardMenus(); libraryBrowser.createCardMenus(tabContent.querySelector('#resumableItems'));
} }
function loadSuggestionsTab(page, tabContent) { function loadSuggestionsTab(page, tabContent) {
if (LibraryBrowser.needsRefresh(tabContent)) { if (libraryBrowser.needsRefresh(tabContent)) {
reload(tabContent); reload(tabContent);
} }
} }
@ -245,14 +236,20 @@
window.TvPage.renderSuggestedTab = loadSuggestionsTab; window.TvPage.renderSuggestedTab = loadSuggestionsTab;
window.TvPage.initSuggestedTab = initSuggestedTab; 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'); return function (view, params) {
var pages = page.querySelector('neon-animated-pages');
var tabs = view.querySelector('paper-tabs');
var pages = view.querySelector('neon-animated-pages');
var baseUrl = 'tv.html'; var baseUrl = 'tv.html';
var topParentId = LibraryMenu.getTopParentId(); var topParentId = LibraryMenu.getTopParentId();
@ -261,60 +258,48 @@
} }
if (enableScrollX()) { if (enableScrollX()) {
page.querySelector('#resumableItems').classList.add('hiddenScrollX'); view.querySelector('#resumableItems').classList.add('hiddenScrollX');
} else { } 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) { 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); page.setAttribute('data-title', item.Name);
LibraryMenu.setTitle(item.Name); LibraryMenu.setTitle(item.Name);
}); });
} else { } else {
page.setAttribute('data-title', Globalize.translate('TabShows')); page.setAttribute('data-title', Globalize.translate('TabShows'));
LibraryMenu.setTitle(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; var page = this;
Events.off(MediaController, 'playbackstop', onPlaybackStop); 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);

View file

@ -46,6 +46,9 @@
$('.wizardStartForm').off('submit', onSubmit).on('submit', onSubmit); $('.wizardStartForm').off('submit', onSubmit).on('submit', onSubmit);
window.ConnectionManager.clearData();
}).on('pageshow', "#wizardStartPage", function () { }).on('pageshow', "#wizardStartPage", function () {
Dashboard.showLoadingMsg(); Dashboard.showLoadingMsg();

View file

@ -1,4 +1,4 @@
<div id="tvRecommendedPage" data-dom-cache="true" data-role="page" class="page libraryPage backdropPage pageWithAbsoluteTabs" data-backdroptype="series" data-require="scripts/tvrecommended,paper-tabs,neon-animated-pages,paper-checkbox,scripts/alphapicker"> <div id="tvRecommendedPage" data-dom-cache="true" data-role="page" class="page libraryPage backdropPage pageWithAbsoluteTabs" data-backdroptype="series">
<div class="libraryViewNav libraryViewNavWithMinHeight"> <div class="libraryViewNav libraryViewNavWithMinHeight">
<paper-tabs hidescrollbuttons noink> <paper-tabs hidescrollbuttons noink>
@ -25,7 +25,7 @@
<neon-animated-pages> <neon-animated-pages>
<neon-animatable> <neon-animatable>
<div class="pageTabContent" data-index="0"> <div class="pageTabContent" data-index="0">
<div id="resumableSection" style="display: none;" class="scopedContent homePageSection"> <div id="resumableSection" class="homePageSection">
<div> <div>
<h1 class="listHeader" style="display: inline-block; vertical-align: middle;">${HeaderResume}</h1> <h1 class="listHeader" style="display: inline-block; vertical-align: middle;">${HeaderResume}</h1>
<paper-button raised class="submit mini categorySyncButton" data-category="Resume"><iron-icon icon="sync"></iron-icon><span>${ButtonSync}</span></paper-button> <paper-button raised class="submit mini categorySyncButton" data-category="Resume"><iron-icon icon="sync"></iron-icon><span>${ButtonSync}</span></paper-button>