mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
update unveils
This commit is contained in:
parent
8c2b65740f
commit
95a647e0df
63 changed files with 745 additions and 584 deletions
|
@ -20,8 +20,8 @@
|
|||
|
||||
var pos = $(options.positionTo).offset();
|
||||
|
||||
pos.top += $(options.positionTo).innerHeight() / 2;
|
||||
pos.left += $(options.positionTo).innerWidth() / 2;
|
||||
pos.top += options.positionTo.innerHeight / 2;
|
||||
pos.left += options.positionTo.innerWidth / 2;
|
||||
|
||||
// Account for margins
|
||||
pos.top -= 24;
|
||||
|
|
|
@ -39,28 +39,30 @@
|
|||
|
||||
var page = this;
|
||||
|
||||
var picker = $('.alphabetPicker', page);
|
||||
var picker = page.querySelector('.alphabetPicker');
|
||||
|
||||
if (!picker.length) {
|
||||
if (!picker) {
|
||||
return;
|
||||
}
|
||||
|
||||
$('.itemsContainer', page).addClass('itemsContainerWithAlphaPicker');
|
||||
|
||||
picker.html(getPickerHtml()).trigger('create').on('click', 'a', function () {
|
||||
picker.innerHTML = getPickerHtml();
|
||||
|
||||
var elem = $(this);
|
||||
Events.on(picker, 'click', 'a', function () {
|
||||
|
||||
var isSelected = elem.hasClass('selectedCharacter');
|
||||
var elem = this;
|
||||
|
||||
var isSelected = elem.classList.contains('selectedCharacter');
|
||||
|
||||
$('.selectedCharacter', picker).removeClass('selectedCharacter');
|
||||
|
||||
if (!isSelected) {
|
||||
|
||||
elem.addClass('selectedCharacter');
|
||||
picker.trigger('alphaselect', [this.innerHTML]);
|
||||
elem.classList.add('selectedCharacter');
|
||||
Events.trigger(picker, 'alphaselect', [this.innerHTML]);
|
||||
} else {
|
||||
picker.trigger('alphaclear');
|
||||
Events.trigger(picker, 'alphaclear');
|
||||
}
|
||||
});
|
||||
});
|
||||
|
@ -79,10 +81,10 @@
|
|||
|
||||
if (this.innerHTML.toLowerCase() == val) {
|
||||
|
||||
$(this).addClass('selectedCharacter');
|
||||
this.classList.add('selectedCharacter');
|
||||
|
||||
} else {
|
||||
$(this).removeClass('selectedCharacter');
|
||||
this.classList.remove('selectedCharacter');
|
||||
}
|
||||
|
||||
});
|
||||
|
|
|
@ -293,7 +293,7 @@
|
|||
updatePageSizeSetting: false
|
||||
});
|
||||
|
||||
$('.listTopPaging', page).html(pagingHtml).trigger('create');
|
||||
page.querySelector('.listTopPaging').innerHTML = pagingHtml;
|
||||
|
||||
if (result.TotalRecordCount > query.Limit && result.TotalRecordCount > 50) {
|
||||
$('.listBottomPaging', page).html(pagingHtml).trigger('create');
|
||||
|
|
|
@ -9,7 +9,17 @@
|
|||
// elem = $('<div class="backdropContainer"></div>').prependTo(document.body);
|
||||
//}
|
||||
|
||||
return $(document.documentElement).addClass('backdropContainer');
|
||||
var elem = document.documentElement;
|
||||
|
||||
elem.classList.add('backdropContainer');
|
||||
return elem;
|
||||
}
|
||||
|
||||
function clearBackdrop() {
|
||||
|
||||
var elem = document.documentElement;
|
||||
elem.classList.remove('backdropContainer');
|
||||
elem.style.backgroundImage = '';
|
||||
}
|
||||
|
||||
function getRandom(min, max) {
|
||||
|
@ -61,7 +71,7 @@
|
|||
|
||||
function setBackdropImage(elem, url) {
|
||||
|
||||
elem.lazyImage(url);
|
||||
ImageLoader.lazyImage(elem, url);
|
||||
}
|
||||
|
||||
function showBackdrop(type, parentId) {
|
||||
|
@ -101,12 +111,7 @@
|
|||
|
||||
getElement().css('backgroundImage', 'url(css/images/splash.jpg)');
|
||||
|
||||
$(page).addClass('backdropPage staticBackdropPage');
|
||||
}
|
||||
|
||||
function clearBackdrop() {
|
||||
|
||||
$('.backdropContainer').css('backgroundImage', '').removeClass('backdropContainer');
|
||||
page.classList.add('backdropPage staticBackdropPage');
|
||||
}
|
||||
|
||||
function isEnabledByDefault() {
|
||||
|
@ -151,7 +156,7 @@
|
|||
});
|
||||
|
||||
if (images.length) {
|
||||
$(page).addClass('backdropPage');
|
||||
page.classList.add('backdropPage');
|
||||
|
||||
var index = getRandom(0, images.length - 1);
|
||||
var item = images[index];
|
||||
|
@ -168,42 +173,40 @@
|
|||
setBackdropImage(getElement(), imgUrl);
|
||||
|
||||
} else {
|
||||
$(page).removeClass('backdropPage');
|
||||
page.classList.remove('backdropPage');
|
||||
}
|
||||
}
|
||||
|
||||
function setBackdropUrl(page, url) {
|
||||
|
||||
if (url) {
|
||||
$(page).addClass('backdropPage');
|
||||
page.classList.add('backdropPage');
|
||||
|
||||
setBackdropImage(getElement(), url);
|
||||
|
||||
} else {
|
||||
$(page).removeClass('backdropPage');
|
||||
page.classList.remove('backdropPage');
|
||||
clearBackdrop();
|
||||
}
|
||||
}
|
||||
|
||||
$(document).on('pagebeforeshowready', ".page", function () {
|
||||
Events.on(document, 'pagebeforeshowready', ".page", function () {
|
||||
|
||||
var page = this;
|
||||
|
||||
var $page = $(page);
|
||||
if (!page.classList.contains('staticBackdropPage')) {
|
||||
|
||||
if (!$page.hasClass('staticBackdropPage')) {
|
||||
|
||||
if ($page.hasClass('backdropPage')) {
|
||||
if (page.classList.contains('backdropPage')) {
|
||||
|
||||
if (enabled()) {
|
||||
var type = page.getAttribute('data-backdroptype');
|
||||
|
||||
var parentId = $page.hasClass('globalBackdropPage') ? '' : LibraryMenu.getTopParentId();
|
||||
var parentId = page.classList.contains('globalBackdropPage') ? '' : LibraryMenu.getTopParentId();
|
||||
|
||||
showBackdrop(type, parentId);
|
||||
|
||||
} else {
|
||||
$page.removeClass('backdropPage');
|
||||
page.classList.remove('backdropPage');
|
||||
clearBackdrop();
|
||||
}
|
||||
} else {
|
||||
|
|
|
@ -124,7 +124,7 @@
|
|||
ApiClient.getJSON(ApiClient.getUrl("Channels/" + channelId + "/Items", query)).done(function (result) {
|
||||
|
||||
// Scroll back up so they can see the results from the beginning
|
||||
$(document).scrollTop(0);
|
||||
window.scrollTo(0, 0);
|
||||
|
||||
var html = '';
|
||||
var pagingHtml = LibraryBrowser.getQueryPagingHtml({
|
||||
|
@ -136,7 +136,7 @@
|
|||
updatePageSizeSetting: false
|
||||
});
|
||||
|
||||
$('.listTopPaging', page).html(pagingHtml).trigger('create');
|
||||
page.querySelector('.listTopPaging').innerHTML = pagingHtml;
|
||||
|
||||
updateFilterControls(page);
|
||||
|
||||
|
@ -152,9 +152,9 @@
|
|||
centerText: true
|
||||
});
|
||||
|
||||
var elem = $('#items', page).html(html).lazyChildren();
|
||||
|
||||
$(pagingHtml).appendTo(elem).trigger('create');
|
||||
var elem = page.querySelector('#items');
|
||||
elem.innerHTML = html + pagingHtml;
|
||||
ImageLoader.lazyChildren(elem);
|
||||
|
||||
$('.btnNextPage', page).on('click', function () {
|
||||
query.StartIndex += query.Limit;
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
ApiClient.getJSON(ApiClient.getUrl("Channels", query)).done(function (result) {
|
||||
|
||||
// Scroll back up so they can see the results from the beginning
|
||||
$(document).scrollTop(0);
|
||||
window.scrollTo(0, 0);
|
||||
|
||||
var html = '';
|
||||
|
||||
|
@ -49,7 +49,9 @@
|
|||
});
|
||||
}
|
||||
|
||||
$('#items', page).html(html).lazyChildren();
|
||||
var elem = page.querySelector('#items');
|
||||
elem.innerHTML = html;
|
||||
ImageLoader.lazyChildren(elem);
|
||||
|
||||
LibraryBrowser.saveQueryValues('channels', query);
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
function reloadItems(page) {
|
||||
|
||||
Sections.loadLatestChannelItems($(".items", page), Dashboard.getCurrentUserId());
|
||||
Sections.loadLatestChannelItems(page.querySelector('.items'), Dashboard.getCurrentUserId());
|
||||
}
|
||||
|
||||
$(document).on('pagebeforeshowready', "#channelsLatestPage", function () {
|
||||
|
|
|
@ -96,7 +96,7 @@
|
|||
}).done(function (result) {
|
||||
|
||||
// Scroll back up so they can see the results from the beginning
|
||||
$(document).scrollTop(0);
|
||||
window.scrollTo(0, 0);
|
||||
|
||||
var html = result.Items.map(getTitleHtml).join('');
|
||||
|
||||
|
|
|
@ -29,7 +29,7 @@
|
|||
ApiClient.getItems(Dashboard.getCurrentUserId(), query).done(function (result) {
|
||||
|
||||
// Scroll back up so they can see the results from the beginning
|
||||
$(document).scrollTop(0);
|
||||
window.scrollTo(0, 0);
|
||||
|
||||
var html = '';
|
||||
var pagingHtml = LibraryBrowser.getQueryPagingHtml({
|
||||
|
@ -41,7 +41,7 @@
|
|||
addSelectionButton: true
|
||||
});
|
||||
|
||||
$('.listTopPaging', page).html(pagingHtml).trigger('create');
|
||||
page.querySelector('.listTopPaging').innerHTML = pagingHtml;
|
||||
|
||||
updateFilterControls();
|
||||
var trigger = false;
|
||||
|
@ -80,14 +80,14 @@
|
|||
});
|
||||
}
|
||||
|
||||
var elem = $('.itemsContainer', page).html(html).lazyChildren();
|
||||
var elem = page.querySelector('.itemsContainer');
|
||||
elem.innerHTML = html + pagingHtml;
|
||||
ImageLoader.lazyChildren(elem);
|
||||
|
||||
if (trigger) {
|
||||
elem.trigger('create');
|
||||
$(elem).trigger('create');
|
||||
}
|
||||
|
||||
$(pagingHtml).appendTo(elem).trigger('create');
|
||||
|
||||
$('.btnNextPage', page).on('click', function () {
|
||||
query.StartIndex += query.Limit;
|
||||
reloadItems(page);
|
||||
|
|
|
@ -60,8 +60,9 @@
|
|||
}
|
||||
}
|
||||
|
||||
elem = $(elem).html(html).lazyChildren();
|
||||
elem.createCardMenus();
|
||||
elem.innerHTML = html;
|
||||
ImageLoader.lazyChildren(elem);
|
||||
$(elem).createCardMenus();
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -100,7 +101,7 @@
|
|||
|
||||
var section = sections[i];
|
||||
|
||||
elem = $('.section' + section.id, page);
|
||||
elem = page.querySelector('.section' + section.id);
|
||||
|
||||
promises.push(loadSection(elem, userId, section, sections.length == 1));
|
||||
}
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
ApiClient.getGameGenres(Dashboard.getCurrentUserId(), query).done(function (result) {
|
||||
|
||||
// Scroll back up so they can see the results from the beginning
|
||||
$(document).scrollTop(0);
|
||||
window.scrollTo(0, 0);
|
||||
|
||||
var html = '';
|
||||
|
||||
|
@ -46,7 +46,9 @@
|
|||
lazy: true
|
||||
});
|
||||
|
||||
$('#items', page).html(html).lazyChildren();
|
||||
var elem = page.querySelector('#items');
|
||||
elem.innerHTML = html;
|
||||
ImageLoader.lazyChildren(elem);
|
||||
|
||||
$('.btnNextPage', page).on('click', function () {
|
||||
query.StartIndex += query.Limit;
|
||||
|
|
|
@ -28,7 +28,7 @@
|
|||
ApiClient.getItems(Dashboard.getCurrentUserId(), query).done(function (result) {
|
||||
|
||||
// Scroll back up so they can see the results from the beginning
|
||||
$(document).scrollTop(0);
|
||||
window.scrollTo(0, 0);
|
||||
|
||||
var html = '';
|
||||
|
||||
|
@ -73,10 +73,12 @@
|
|||
});
|
||||
}
|
||||
|
||||
$('#items', page).html(html).lazyChildren();
|
||||
var elem = page.querySelector('#items');
|
||||
elem.innerHTML = html;
|
||||
ImageLoader.lazyChildren(elem);
|
||||
|
||||
if (trigger) {
|
||||
$('#items', page).trigger('create');
|
||||
$(elem).trigger('create');
|
||||
}
|
||||
|
||||
$('.btnNextPage', page).on('click', function () {
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
ApiClient.getStudios(Dashboard.getCurrentUserId(), query).done(function (result) {
|
||||
|
||||
// Scroll back up so they can see the results from the beginning
|
||||
$(document).scrollTop(0);
|
||||
window.scrollTo(0, 0);
|
||||
|
||||
var html = '';
|
||||
|
||||
|
@ -48,7 +48,9 @@
|
|||
|
||||
});
|
||||
|
||||
$('#items', page).html(html).lazyChildren();
|
||||
var elem = page.querySelector('#items');
|
||||
elem.innerHTML = html;
|
||||
ImageLoader.lazyChildren(elem);
|
||||
|
||||
$('.btnNextPage', page).on('click', function () {
|
||||
query.StartIndex += query.Limit;
|
||||
|
|
|
@ -25,7 +25,7 @@
|
|||
ApiClient.getItems(Dashboard.getCurrentUserId(), query).done(function (result) {
|
||||
|
||||
// Scroll back up so they can see the results from the beginning
|
||||
$(document).scrollTop(0);
|
||||
window.scrollTo(0, 0);
|
||||
|
||||
updateFilterControls(page);
|
||||
|
||||
|
@ -39,7 +39,9 @@
|
|||
|
||||
});
|
||||
|
||||
$('#items', page).html(html).lazyChildren();
|
||||
var elem = page.querySelector('#items');
|
||||
elem.innerHTML = html;
|
||||
ImageLoader.lazyChildren(elem);
|
||||
|
||||
LibraryBrowser.saveQueryValues(getSavedQueryKey(), query);
|
||||
|
||||
|
|
|
@ -32,7 +32,7 @@
|
|||
|
||||
var showLibraryTileNames = displayPreferences.CustomPrefs.enableLibraryTileNames != '0';
|
||||
|
||||
var elem = $('.section' + index, page);
|
||||
var elem = page.querySelector('.section' + index);
|
||||
|
||||
if (section == 'latestmedia') {
|
||||
return Sections.loadRecentlyAdded(elem, user);
|
||||
|
@ -77,16 +77,16 @@
|
|||
var i, length;
|
||||
var sectionCount = 4;
|
||||
|
||||
var elem = $('.sections', page);
|
||||
var elem = page.querySelector('.sections');
|
||||
|
||||
if (!elem.html().length) {
|
||||
if (!elem.innerHTML.length) {
|
||||
var html = '';
|
||||
for (i = 0, length = sectionCount; i < length; i++) {
|
||||
|
||||
html += '<div class="homePageSection section' + i + '"></div>';
|
||||
}
|
||||
|
||||
elem.html(html);
|
||||
elem.innerHTML = html;
|
||||
}
|
||||
|
||||
var promises = [];
|
||||
|
@ -166,7 +166,7 @@
|
|||
|
||||
var page = this;
|
||||
|
||||
$('.btnTakeTour', page).on('click', function () {
|
||||
Events.on(page.querySelector('.btnTakeTour'), 'click', function () {
|
||||
takeTour(page, Dashboard.getCurrentUserId());
|
||||
});
|
||||
|
||||
|
|
|
@ -448,7 +448,7 @@
|
|||
updatePageSizeSetting: false
|
||||
});
|
||||
|
||||
$('.listTopPaging', page).html(pagingHtml);
|
||||
page.querySelector('.listTopPaging').innerHTML = pagingHtml;
|
||||
|
||||
$('.viewSettings', page).show();
|
||||
} else {
|
||||
|
@ -527,7 +527,12 @@
|
|||
updatePageSizeSetting: false
|
||||
});
|
||||
|
||||
$('#items', page).html(html).trigger('create').lazyChildren();
|
||||
var elem = page.querySelector('#items');
|
||||
elem.innerHTML = html;
|
||||
ImageLoader.lazyChildren(elem);
|
||||
|
||||
// Do we still need this?
|
||||
$(elem).trigger('create');
|
||||
|
||||
$('.btnNextPage', page).on('click', function () {
|
||||
|
||||
|
|
|
@ -852,10 +852,12 @@
|
|||
});
|
||||
}
|
||||
|
||||
var elem = $('.childrenItemsContainer', page).html(html).lazyChildren();
|
||||
var elem = page.querySelector('.childrenItemsContainer');
|
||||
elem.innerHTML = html;
|
||||
ImageLoader.lazyChildren(elem);
|
||||
|
||||
if (trigger) {
|
||||
elem.trigger('create');
|
||||
$(elem).trigger('create');
|
||||
}
|
||||
|
||||
if (item.Type == "BoxSet") {
|
||||
|
@ -873,19 +875,19 @@
|
|||
});
|
||||
|
||||
if (item.Type == "Season") {
|
||||
$('#childrenTitle', page).html(Globalize.translate('HeaderEpisodes'));
|
||||
page.querySelector('#childrenTitle').innerHTML = Globalize.translate('HeaderEpisodes');
|
||||
}
|
||||
else if (item.Type == "Series") {
|
||||
$('#childrenTitle', page).html(Globalize.translate('HeaderSeasons'));
|
||||
page.querySelector('#childrenTitle').innerHTML = Globalize.translate('HeaderSeasons');
|
||||
}
|
||||
else if (item.Type == "MusicAlbum") {
|
||||
$('#childrenTitle', page).html(Globalize.translate('HeaderTracks'));
|
||||
page.querySelector('#childrenTitle').innerHTML = Globalize.translate('HeaderTracks');
|
||||
}
|
||||
else if (item.Type == "GameSystem") {
|
||||
$('#childrenTitle', page).html(Globalize.translate('HeaderGames'));
|
||||
page.querySelector('#childrenTitle').innerHTML = Globalize.translate('HeaderGames');
|
||||
}
|
||||
else {
|
||||
$('#childrenTitle', page).html(Globalize.translate('HeaderItems'));
|
||||
page.querySelector('#childrenTitle').innerHTML = Globalize.translate('HeaderItems');
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -961,7 +963,9 @@
|
|||
|
||||
html += '</div>';
|
||||
|
||||
$('.collectionItems', page).append(html).lazyChildren();
|
||||
var collectionItems = page.querySelector('.collectionItems');
|
||||
$(collectionItems).append(html);
|
||||
ImageLoader.lazyChildren(collectionItems);
|
||||
}
|
||||
|
||||
function renderUserDataIcons(page, item) {
|
||||
|
@ -1062,7 +1066,8 @@
|
|||
html += '<p style="margin: 0;"><paper-button raised class="more moreCriticReviews">' + Globalize.translate('ButtonMoreItems') + '</paper-button></p>';
|
||||
}
|
||||
|
||||
$('#criticReviewsContent', page).html(html).trigger('create');
|
||||
var criticReviewsContent = page.querySelector('#criticReviewsContent');
|
||||
criticReviewsContent.innerHTML = html;
|
||||
}
|
||||
|
||||
function renderThemeMedia(page, item) {
|
||||
|
@ -1220,7 +1225,9 @@
|
|||
html += '<p style="margin: 0;"><paper-button raised class="more moreScenes">' + Globalize.translate('ButtonMoreItems') + '</paper-button></p>';
|
||||
}
|
||||
|
||||
$('#scenesContent', page).html(html).trigger('create').lazyChildren();
|
||||
var scenesContent = page.querySelector('#scenesContent');
|
||||
scenesContent.innerHTML = html;
|
||||
ImageLoader.lazyChildren(scenesContent);
|
||||
}
|
||||
|
||||
function renderMediaSources(page, item) {
|
||||
|
@ -1235,7 +1242,8 @@
|
|||
html = '<br/>' + html;
|
||||
}
|
||||
|
||||
$('#mediaInfoContent', page).html(html).trigger('create');
|
||||
var mediaInfoContent = page.querySelector('#mediaInfoContent');
|
||||
mediaInfoContent.innerHTML = html;
|
||||
}
|
||||
|
||||
function getMediaSourceHtml(item, version) {
|
||||
|
@ -1459,7 +1467,9 @@
|
|||
|
||||
ApiClient.getSpecialFeatures(user.Id, item.Id).done(function (specials) {
|
||||
|
||||
$('#specialsContent', page).html(getVideosHtml(specials, user, limit, "moreSpecials")).lazyChildren().trigger('create');
|
||||
var specialsContent = page.querySelector('#specialsContent');
|
||||
specialsContent.innerHTML = getVideosHtml(specials, user, limit, "moreSpecials");
|
||||
ImageLoader.lazyChildren(specialsContent);
|
||||
|
||||
});
|
||||
}
|
||||
|
@ -1529,7 +1539,9 @@
|
|||
html += '<p style="margin: 0;padding-left:5px;"><paper-button raised class="more morePeople">' + Globalize.translate('ButtonMoreItems') + '</paper-button></p>';
|
||||
}
|
||||
|
||||
$('#castContent', page).html(html).lazyChildren().trigger('create');
|
||||
var castContent = page.querySelector('#castContent');
|
||||
castContent.innerHTML = html;
|
||||
ImageLoader.lazyChildren(castContent);
|
||||
}
|
||||
|
||||
function play(startPosition) {
|
||||
|
@ -1653,9 +1665,9 @@
|
|||
|
||||
reload(page);
|
||||
|
||||
$(ApiClient).on('websocketmessage', onWebSocketMessage);
|
||||
Events.on(ApiClient, 'websocketmessage', onWebSocketMessage);
|
||||
|
||||
$(LibraryBrowser).on('itemdeleting.detailpage', function (e, itemId) {
|
||||
Events.on(LibraryBrowser, 'itemdeleting.detailpage', function (e, itemId) {
|
||||
|
||||
if (currentItem && currentItem.Id == itemId) {
|
||||
Dashboard.navigate('index.html');
|
||||
|
@ -1664,7 +1676,7 @@
|
|||
|
||||
}).on('pagebeforehide', "#itemDetailPage", function () {
|
||||
|
||||
$(LibraryBrowser).off('itemdeleting.detailpage');
|
||||
Events.off(LibraryBrowser, 'itemdeleting.detailpage');
|
||||
|
||||
currentItem = null;
|
||||
|
||||
|
@ -1672,7 +1684,7 @@
|
|||
|
||||
$(page).off("click.moreScenes").off("click.morePeople").off("click.moreSpecials").off("click.moreCriticReviews");
|
||||
|
||||
$(ApiClient).off('websocketmessage', onWebSocketMessage);
|
||||
Events.off(ApiClient, 'websocketmessage', onWebSocketMessage);
|
||||
});
|
||||
|
||||
function itemDetailPage() {
|
||||
|
|
|
@ -34,7 +34,7 @@
|
|||
var result = r2[0];
|
||||
|
||||
// Scroll back up so they can see the results from the beginning
|
||||
$(document).scrollTop(0);
|
||||
window.scrollTo(0, 0);
|
||||
|
||||
var html = '';
|
||||
var pagingHtml = LibraryBrowser.getQueryPagingHtml({
|
||||
|
@ -45,7 +45,7 @@
|
|||
showLimit: false
|
||||
});
|
||||
|
||||
$('.listTopPaging', page).html(pagingHtml).trigger('create');
|
||||
page.querySelector('.listTopPaging').innerHTML = pagingHtml;
|
||||
|
||||
updateFilterControls(page);
|
||||
|
||||
|
@ -86,9 +86,9 @@
|
|||
});
|
||||
}
|
||||
|
||||
var elem = $('#items', page).html(html).lazyChildren();
|
||||
|
||||
$(pagingHtml).appendTo(elem).trigger('create');
|
||||
var elem = page.querySelector('#items');
|
||||
elem.innerHTML = html + pagingHtml;
|
||||
ImageLoader.lazyChildren(elem);
|
||||
|
||||
$('.btnNextPage', page).on('click', function () {
|
||||
query.StartIndex += query.Limit;
|
||||
|
|
|
@ -336,10 +336,6 @@
|
|||
});
|
||||
},
|
||||
|
||||
closePlayMenu: function () {
|
||||
$('.playFlyout').popup("close").remove();
|
||||
},
|
||||
|
||||
getMoreCommands: function (item, user) {
|
||||
|
||||
var commands = [];
|
||||
|
@ -406,7 +402,7 @@
|
|||
if (result) {
|
||||
ApiClient.deleteItem(itemId);
|
||||
|
||||
$(LibraryBrowser).trigger('itemdeleting', [itemId]);
|
||||
Events.trigger(LibraryBrowser, 'itemdeleting', [itemId]);
|
||||
}
|
||||
});
|
||||
|
||||
|
@ -2208,7 +2204,7 @@
|
|||
|
||||
html += '</div>';
|
||||
|
||||
if (showControls && options.showLimit !== false) {
|
||||
if (showControls && options.showLimit) {
|
||||
|
||||
require(['jqmicons']);
|
||||
var id = "selectPageSize";
|
||||
|
@ -2353,16 +2349,14 @@
|
|||
|
||||
var id = link.getAttribute('data-itemid');
|
||||
|
||||
var $link = $(link);
|
||||
|
||||
var markAsPlayed = !$link.hasClass('btnUserItemRatingOn');
|
||||
var markAsPlayed = !link.classList.contains('btnUserItemRatingOn');
|
||||
|
||||
if (markAsPlayed) {
|
||||
ApiClient.markPlayed(Dashboard.getCurrentUserId(), id);
|
||||
$link.addClass('btnUserItemRatingOn');
|
||||
link.classList.add('btnUserItemRatingOn');
|
||||
} else {
|
||||
ApiClient.markUnplayed(Dashboard.getCurrentUserId(), id);
|
||||
$link.removeClass('btnUserItemRatingOn');
|
||||
link.classList.remove('btnUserItemRatingOn');
|
||||
}
|
||||
},
|
||||
|
||||
|
@ -2668,31 +2662,31 @@
|
|||
|
||||
elem.html(html);
|
||||
|
||||
var page = $(elem).parents('.page');
|
||||
var page = $(elem).parents('.page')[0];
|
||||
|
||||
var detailContentEffectedByImage = $('.detailContentEffectedByImage', page);
|
||||
var detailContentEffectedByImage = page.querySelector('.detailContentEffectedByImage');
|
||||
|
||||
if (shape == 'thumb') {
|
||||
detailContentEffectedByImage.addClass('detailContentEffectedByThumbImage');
|
||||
detailContentEffectedByImage.removeClass('detailContentEffectedBySquareImage');
|
||||
detailContentEffectedByImage.removeClass('detailContentEffectedByPortraitImage');
|
||||
detailContentEffectedByImage.classList.add('detailContentEffectedByThumbImage');
|
||||
detailContentEffectedByImage.classList.remove('detailContentEffectedBySquareImage');
|
||||
detailContentEffectedByImage.classList.remove('detailContentEffectedByPortraitImage');
|
||||
|
||||
elem.addClass('thumbDetailImageContainer');
|
||||
elem.removeClass('portraitDetailImageContainer');
|
||||
elem.removeClass('squareDetailImageContainer');
|
||||
}
|
||||
else if (shape == 'square') {
|
||||
detailContentEffectedByImage.removeClass('detailContentEffectedByThumbImage');
|
||||
detailContentEffectedByImage.addClass('detailContentEffectedBySquareImage');
|
||||
detailContentEffectedByImage.removeClass('detailContentEffectedByPortraitImage');
|
||||
detailContentEffectedByImage.classList.remove('detailContentEffectedByThumbImage');
|
||||
detailContentEffectedByImage.classList.add('detailContentEffectedBySquareImage');
|
||||
detailContentEffectedByImage.classList.remove('detailContentEffectedByPortraitImage');
|
||||
|
||||
elem.removeClass('thumbDetailImageContainer');
|
||||
elem.removeClass('portraitDetailImageContainer');
|
||||
elem.addClass('squareDetailImageContainer');
|
||||
} else {
|
||||
detailContentEffectedByImage.removeClass('detailContentEffectedByThumbImage');
|
||||
detailContentEffectedByImage.removeClass('detailContentEffectedBySquareImage');
|
||||
detailContentEffectedByImage.addClass('detailContentEffectedByPortraitImage');
|
||||
detailContentEffectedByImage.classList.remove('detailContentEffectedByThumbImage');
|
||||
detailContentEffectedByImage.classList.remove('detailContentEffectedBySquareImage');
|
||||
detailContentEffectedByImage.classList.add('detailContentEffectedByPortraitImage');
|
||||
|
||||
elem.removeClass('thumbDetailImageContainer');
|
||||
elem.addClass('portraitDetailImageContainer');
|
||||
|
@ -2875,16 +2869,17 @@
|
|||
|
||||
var overview = item.Overview || '';
|
||||
|
||||
elem.html(overview).trigger('create');
|
||||
elem = elem[0];
|
||||
elem.innerHTML = overview;
|
||||
|
||||
$('a', elem).each(function () {
|
||||
$(this).attr("target", "_blank");
|
||||
this.setAttribute("target", "_blank");
|
||||
});
|
||||
|
||||
if (overview) {
|
||||
elem.removeClass('empty');
|
||||
elem.classList.remove('empty');
|
||||
} else {
|
||||
elem.addClass('empty');
|
||||
elem.classList.add('empty');
|
||||
}
|
||||
|
||||
},
|
||||
|
@ -3005,7 +3000,7 @@
|
|||
tag: item.BackdropImageTags[0]
|
||||
});
|
||||
|
||||
$('#itemBackdrop', page).removeClass('noBackdrop').lazyImage(imgUrl);
|
||||
ImageLoader.lazyImage($('#itemBackdrop', page).removeClass('noBackdrop')[0], imgUrl);
|
||||
}
|
||||
else if (item.ParentBackdropItemId && item.ParentBackdropImageTags && item.ParentBackdropImageTags.length) {
|
||||
|
||||
|
@ -3016,7 +3011,7 @@
|
|||
maxWidth: screenWidth
|
||||
});
|
||||
|
||||
$('#itemBackdrop', page).removeClass('noBackdrop').lazyImage(imgUrl);
|
||||
ImageLoader.lazyImage($('#itemBackdrop', page).removeClass('noBackdrop')[0], imgUrl);
|
||||
|
||||
}
|
||||
else {
|
||||
|
|
|
@ -138,12 +138,6 @@
|
|||
return html;
|
||||
}
|
||||
|
||||
function closeContextMenu() {
|
||||
|
||||
// Used by the tab menu, not the slide up
|
||||
$('.tapHoldMenu').popup('close');
|
||||
}
|
||||
|
||||
function onTrailerButtonClick() {
|
||||
|
||||
var id = this.getAttribute('data-itemid');
|
||||
|
@ -152,8 +146,6 @@
|
|||
MediaController.play({ items: trailers });
|
||||
});
|
||||
|
||||
closeContextMenu();
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -165,8 +157,6 @@
|
|||
var mediaType = this.getAttribute('data-mediatype');
|
||||
var resumePosition = parseInt(this.getAttribute('data-resumeposition'));
|
||||
|
||||
closeContextMenu();
|
||||
|
||||
LibraryBrowser.showPlayMenu(this, id, type, isFolder, mediaType, resumePosition);
|
||||
|
||||
return false;
|
||||
|
@ -176,8 +166,6 @@
|
|||
|
||||
var card = $(this).parents('.card')[0];
|
||||
|
||||
closeContextMenu();
|
||||
|
||||
showContextMenu(card, {
|
||||
showPlayOptions: false
|
||||
});
|
||||
|
@ -195,11 +183,9 @@
|
|||
|
||||
function showContextMenu(card, options) {
|
||||
|
||||
closeContextMenu();
|
||||
|
||||
var displayContextItem = card;
|
||||
|
||||
if ($(card).hasClass('listviewMenuButton')) {
|
||||
if (card.classList.contains('listviewMenuButton')) {
|
||||
card = $(card).parents('.listItem,.card')[0];
|
||||
}
|
||||
|
||||
|
@ -365,7 +351,14 @@
|
|||
});
|
||||
}
|
||||
|
||||
var href = card.getAttribute('data-href') || card.href || $('a', card).attr('href');
|
||||
var href = card.getAttribute('data-href') || card.href;
|
||||
|
||||
if (!href) {
|
||||
var link = card.getElementsByTagName('a');
|
||||
if (link) {
|
||||
href = link.href;
|
||||
}
|
||||
}
|
||||
|
||||
require(['actionsheet'], function () {
|
||||
|
||||
|
@ -493,12 +486,12 @@
|
|||
GroupItems: false
|
||||
};
|
||||
|
||||
var target = $(e.target);
|
||||
if (target.is('a') || target.is('button')) {
|
||||
var target = e.target;
|
||||
if (target.tagName == 'A' || target.tagName == 'BUTTON') {
|
||||
return;
|
||||
}
|
||||
|
||||
var buttonParents = target.parents('a:not(.card,.cardContent),button:not(.card,.cardContent)');
|
||||
var buttonParents = $(target).parents('a:not(.card,.cardContent),button:not(.card,.cardContent)');
|
||||
if (buttonParents.length) {
|
||||
return;
|
||||
}
|
||||
|
@ -549,18 +542,18 @@
|
|||
var elem = $('.detailsMenu').popup().trigger('create').popup("open").on("popupafterclose", function () {
|
||||
|
||||
$(this).off("popupafterclose").remove();
|
||||
});
|
||||
})[0];
|
||||
|
||||
$('.detailsMenuLeftButton', elem).on('click', function () {
|
||||
|
||||
var overlay = $(this).parents('.detailsMenu');
|
||||
setItemIntoOverlay(overlay, parseInt(overlay.attr('data-index')) - 1, context);
|
||||
var overlay = $(this).parents('.detailsMenu')[0];
|
||||
setItemIntoOverlay(overlay, parseInt(overlay.getAttribute('data-index') || '0') - 1, context);
|
||||
});
|
||||
|
||||
$('.detailsMenuRightButton', elem).on('click', function () {
|
||||
|
||||
var overlay = $(this).parents('.detailsMenu');
|
||||
setItemIntoOverlay(overlay, parseInt(overlay.attr('data-index')) + 1, context);
|
||||
var overlay = $(this).parents('.detailsMenu')[0];
|
||||
setItemIntoOverlay(overlay, parseInt(overlay.getAttribute('data-index') || '0') + 1, context);
|
||||
});
|
||||
|
||||
return elem;
|
||||
|
@ -568,12 +561,12 @@
|
|||
|
||||
function setItemIntoOverlay(elem, index) {
|
||||
|
||||
var ids = elem.attr('data-ids').split(',');
|
||||
var ids = elem.getAttribute('data-ids').split(',');
|
||||
var itemId = ids[index];
|
||||
var userId = Dashboard.getCurrentUserId();
|
||||
var context = elem.attr('data-context');
|
||||
var context = elem.getAttribute('data-context');
|
||||
|
||||
elem.attr('data-index', index);
|
||||
elem.setAttribute('data-index', index);
|
||||
|
||||
if (index > 0) {
|
||||
$('.detailsMenuLeftButton', elem).show();
|
||||
|
@ -699,7 +692,7 @@
|
|||
|
||||
$('.btnSync', elem).on('click', function () {
|
||||
|
||||
elem.popup('close');
|
||||
$(elem).popup('close');
|
||||
|
||||
SyncManager.showMenu({
|
||||
items: [item]
|
||||
|
@ -708,7 +701,7 @@
|
|||
|
||||
$('.btnPlay', elem).on('click', function () {
|
||||
|
||||
elem.popup('close');
|
||||
$(elem).popup('close');
|
||||
|
||||
MediaController.play({
|
||||
items: [item]
|
||||
|
@ -717,7 +710,7 @@
|
|||
|
||||
$('.btnResume', elem).on('click', function () {
|
||||
|
||||
elem.popup('close');
|
||||
$(elem).popup('close');
|
||||
|
||||
MediaController.play({
|
||||
items: [item],
|
||||
|
@ -738,8 +731,8 @@
|
|||
|
||||
function onCardClick(e) {
|
||||
|
||||
var target = $(e.target);
|
||||
if (target.is('.itemSelectionPanel') || $('.itemSelectionPanel', this).length) {
|
||||
var targetElem = e.target;
|
||||
if (targetElem.classList.contains('itemSelectionPanel') || this.querySelector('.itemSelectionPanel')) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -747,28 +740,29 @@
|
|||
var itemId = info.id;
|
||||
var context = info.context;
|
||||
|
||||
var card = $(this);
|
||||
var card = this;
|
||||
|
||||
if (card.hasClass('itemWithAction')) {
|
||||
if (card.classList.contains('itemWithAction')) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!card.hasClass('card')) {
|
||||
card = $(card).parents('.card');
|
||||
if (!card.classList.contains('card')) {
|
||||
card = $(card).parents('.card')[0];
|
||||
}
|
||||
|
||||
if (card.hasClass('groupedCard')) {
|
||||
if (card.classList.contains('groupedCard')) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (card.attr('data-detailsmenu') != 'true') {
|
||||
if (card.getAttribute('data-detailsmenu') != 'true') {
|
||||
return;
|
||||
}
|
||||
|
||||
if (target.is('a') || target.is('button')) {
|
||||
if (targetElem.tagName == 'A' || targetElem.tagName == 'BUTTON') {
|
||||
return;
|
||||
}
|
||||
|
||||
var target = $(targetElem);
|
||||
if (target.parents('a').length || target.parents('button').length) {
|
||||
return;
|
||||
}
|
||||
|
@ -789,13 +783,13 @@
|
|||
|
||||
function onShowTimerExpired(elem) {
|
||||
|
||||
elem = $('a', elem)[0];
|
||||
elem = elem.querySelector('a');
|
||||
|
||||
if ($('.itemSelectionPanel:visible', elem).length) {
|
||||
return;
|
||||
}
|
||||
|
||||
var innerElem = $('.cardOverlayTarget', elem);
|
||||
var innerElem = elem.querySelector('.cardOverlayTarget');
|
||||
|
||||
var dataElement = elem;
|
||||
while (dataElement && !dataElement.getAttribute('data-itemid')) {
|
||||
|
@ -813,20 +807,20 @@
|
|||
var item = response1[0];
|
||||
var user = response2[0];
|
||||
|
||||
var card = $(elem);
|
||||
var card = elem;
|
||||
|
||||
if (!card.hasClass('card')) {
|
||||
card = card.parents('.card');
|
||||
while (!card.classList.contains('card')) {
|
||||
card = card.parentNode;
|
||||
}
|
||||
|
||||
innerElem.html(getOverlayHtml(item, user, card[0], commands)).trigger('create');
|
||||
innerElem.innerHTML = getOverlayHtml(item, user, card, commands);
|
||||
|
||||
$('.btnPlayItem', innerElem).on('click', onPlayItemButtonClick);
|
||||
$('.btnPlayTrailer', innerElem).on('click', onTrailerButtonClick);
|
||||
$('.btnMoreCommands', innerElem).on('click', onMoreButtonClick);
|
||||
});
|
||||
|
||||
innerElem.show().each(function () {
|
||||
$(innerElem).show().each(function () {
|
||||
|
||||
this.style.height = 0;
|
||||
|
||||
|
@ -912,9 +906,15 @@
|
|||
|
||||
function hideSelections(page) {
|
||||
|
||||
$('.selectionCommands', page).hide();
|
||||
var selectionCommands = page.querySelector('.selectionCommands');
|
||||
if (selectionCommands) {
|
||||
selectionCommands.style.display = 'none';
|
||||
}
|
||||
|
||||
$('.itemSelectionPanel', page).hide();
|
||||
var elems = page.getElementsByClassName('itemSelectionPanel');
|
||||
for (var i = 0, length = elems.length; i < length; i++) {
|
||||
elems[i].style.display = 'none';
|
||||
}
|
||||
}
|
||||
|
||||
function getSelectedItems(page) {
|
||||
|
@ -947,7 +947,9 @@
|
|||
items: selection
|
||||
});
|
||||
|
||||
$(SyncManager).off('jobsubmit.librarylist').on('jobsubmit.librarylist', function () {
|
||||
Events.off(SyncManager, 'jobsubmit.librarylist');
|
||||
|
||||
Events.on(SyncManager, 'jobsubmit.librarylist', function () {
|
||||
|
||||
hideSelections(page);
|
||||
});
|
||||
|
@ -1067,43 +1069,48 @@
|
|||
index = elemWithAttributes.getAttribute('data-index');
|
||||
itemsContainer = $(elem).parents('.itemsContainer');
|
||||
|
||||
closeContextMenu();
|
||||
|
||||
itemsContainer.trigger('playallfromhere', [index]);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
function resetImages(page) {
|
||||
|
||||
$('.cardImage', page).remove();
|
||||
}
|
||||
|
||||
$(document).on('pageinitdepends', ".libraryPage", function () {
|
||||
|
||||
var page = this;
|
||||
|
||||
$('.btnAddToPlaylist', page).on('click', function () {
|
||||
var btnAddToPlaylist = page.querySelector('.btnAddToPlaylist');
|
||||
if (btnAddToPlaylist) {
|
||||
Events.on(btnAddToPlaylist, 'click', function () {
|
||||
addToPlaylist(page);
|
||||
});
|
||||
}
|
||||
|
||||
$('.btnMergeVersions', page).on('click', function () {
|
||||
var btnMergeVersions = page.querySelector('.btnMergeVersions');
|
||||
if (btnMergeVersions) {
|
||||
Events.on(btnMergeVersions, 'click', function () {
|
||||
combineVersions(page);
|
||||
});
|
||||
}
|
||||
|
||||
$('.btnSyncItems', page).on('click', function () {
|
||||
var btnSyncItems = page.querySelector('.btnSyncItems');
|
||||
if (btnSyncItems) {
|
||||
Events.on(btnSyncItems, 'click', function () {
|
||||
sync(page);
|
||||
});
|
||||
}
|
||||
|
||||
$('.btnAddToCollection', page).on('click', function () {
|
||||
var btnAddToCollection = page.querySelector('.btnAddToCollection');
|
||||
if (btnAddToCollection) {
|
||||
Events.on(btnAddToCollection, 'click', function () {
|
||||
addToCollection(page);
|
||||
});
|
||||
}
|
||||
|
||||
$('.viewTabButton', page).on('click', function () {
|
||||
$(page.getElementsByClassName('viewTabButton')).on('click', function () {
|
||||
|
||||
$('.viewTabButton', page).removeClass('ui-btn-active');
|
||||
$(this).addClass('ui-btn-active');
|
||||
this.classList.add('ui-btn-active');
|
||||
|
||||
$('.viewTab', page).hide();
|
||||
$('.' + this.getAttribute('data-tab'), page).show();
|
||||
|
@ -1123,7 +1130,10 @@
|
|||
|
||||
}).on('click', '.itemWithAction', onItemWithActionClick).on('click', '.listviewSubLink', onListviewSubLinkClick);
|
||||
|
||||
$('.itemsContainer', page).createCardMenus();
|
||||
var itemsContainers = page.getElementsByClassName('itemsContainer');
|
||||
for (var i = 0, length = itemsContainers.length; i < length; i++) {
|
||||
$(itemsContainers[i]).createCardMenus();
|
||||
}
|
||||
|
||||
}).on('pagebeforeshowready', ".libraryPage", function () {
|
||||
|
||||
|
@ -1131,12 +1141,11 @@
|
|||
|
||||
hideSelections(page);
|
||||
|
||||
$('.viewTabButton:first', page).trigger('click');
|
||||
var elem = page.querySelector('.viewTabButton');
|
||||
if (elem) {
|
||||
Events.trigger(elem, 'click');
|
||||
}
|
||||
|
||||
}).on('pagebeforehide', ".libraryPage", function () {
|
||||
|
||||
var page = this;
|
||||
resetImages(page);
|
||||
});
|
||||
|
||||
function renderUserDataChanges(card, userData) {
|
||||
|
|
|
@ -46,9 +46,9 @@
|
|||
html += '</div>';
|
||||
|
||||
$(document.body).append(html);
|
||||
$('.viewMenuBar').lazyChildren();
|
||||
ImageLoader.lazyChildren(document.querySelector('.viewMenuBar'));
|
||||
|
||||
$(document).trigger('headercreated');
|
||||
Events.trigger(document, 'headercreated');
|
||||
bindMenuEvents();
|
||||
}
|
||||
|
||||
|
@ -67,7 +67,7 @@
|
|||
|
||||
function addUserToHeader(user) {
|
||||
|
||||
var header = $('.viewMenuBar');
|
||||
var header = document.querySelector('.viewMenuBar');
|
||||
|
||||
if (user.localUser) {
|
||||
$('.btnCast', header).visible(true);
|
||||
|
@ -112,7 +112,12 @@
|
|||
} else {
|
||||
userButtonHtml += '<div class="fa fa-user"></div>';
|
||||
}
|
||||
$('.headerUserButton', header).html(userButtonHtml).lazyChildren();
|
||||
|
||||
var headerUserButton = header.querySelector('.headerUserButton');
|
||||
if (headerUserButton) {
|
||||
headerUserButton.innerHTML = userButtonHtml;
|
||||
ImageLoader.lazyChildren(headerUserButton);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -146,11 +151,11 @@
|
|||
|
||||
function updateViewMenuBarHeadroom(page, viewMenuBar) {
|
||||
|
||||
if ($(page).hasClass('libraryPage')) {
|
||||
if (page.classList.contains('libraryPage')) {
|
||||
// Don't like this timeout at all but if headroom is activated during the page events it will jump and flicker on us
|
||||
setTimeout(reEnableHeadroom, 700);
|
||||
} else {
|
||||
viewMenuBar.addClass('headroomDisabled');
|
||||
viewMenuBar.classList.add('headroomDisabled');
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -169,17 +174,17 @@
|
|||
|
||||
function openMainDrawer() {
|
||||
|
||||
var drawerPanel = $('.mainDrawerPanel')[0];
|
||||
var drawerPanel = document.querySelector('.mainDrawerPanel');
|
||||
drawerPanel.openDrawer();
|
||||
lastOpenTime = new Date().getTime();
|
||||
}
|
||||
function onMainDrawerOpened() {
|
||||
|
||||
if ($.browser.mobile) {
|
||||
$(document.body).addClass('bodyWithPopupOpen');
|
||||
document.body.classList.add('bodyWithPopupOpen');
|
||||
}
|
||||
|
||||
var drawer = $('.mainDrawerPanel .mainDrawer');
|
||||
var drawer = document.querySelector('.mainDrawerPanel .mainDrawer');
|
||||
|
||||
ConnectionManager.user(window.ApiClient).done(function (user) {
|
||||
|
||||
|
@ -190,26 +195,28 @@
|
|||
refreshLibraryInfoInDrawer(user, drawer);
|
||||
refreshBottomUserInfoInDrawer(user, drawer);
|
||||
|
||||
$(document).trigger('libraryMenuCreated');
|
||||
Events.trigger(document, 'libraryMenuCreated');
|
||||
updateLibraryMenu(user.localUser);
|
||||
}
|
||||
|
||||
var pageElem = $($.mobile.activePage)[0];
|
||||
|
||||
if (requiresDrawerRefresh || requiresDashboardDrawerRefresh) {
|
||||
refreshDashboardInfoInDrawer($.mobile.activePage, user, drawer);
|
||||
refreshDashboardInfoInDrawer(pageElem, user, drawer);
|
||||
requiresDashboardDrawerRefresh = false;
|
||||
}
|
||||
|
||||
requiresDrawerRefresh = false;
|
||||
|
||||
updateLibraryNavLinks($.mobile.activePage);
|
||||
updateLibraryNavLinks(pageElem);
|
||||
});
|
||||
|
||||
$('.mainDrawerPanel #drawer').addClass('verticalScrollingDrawer');
|
||||
document.querySelector('.mainDrawerPanel #drawer').classList.add('verticalScrollingDrawer');
|
||||
}
|
||||
function onMainDrawerClosed() {
|
||||
|
||||
$(document.body).removeClass('bodyWithPopupOpen');
|
||||
$('.mainDrawerPanel #drawer').removeClass('verticalScrollingDrawer');
|
||||
document.body.classList.remove('bodyWithPopupOpen');
|
||||
document.querySelector('.mainDrawerPanel #drawer').classList.remove('verticalScrollingDrawer');
|
||||
}
|
||||
function closeMainDrawer() {
|
||||
|
||||
|
@ -218,7 +225,7 @@
|
|||
|
||||
function ensureDrawerStructure(drawer) {
|
||||
|
||||
if ($('.mainDrawerContent', drawer).length) {
|
||||
if (drawer.querySelector('.mainDrawerContent')) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -235,7 +242,7 @@
|
|||
|
||||
html += '</div>';
|
||||
|
||||
$(drawer).html(html);
|
||||
drawer.innerHTML = html;
|
||||
}
|
||||
|
||||
function refreshUserInfoInDrawer(user, drawer) {
|
||||
|
@ -287,9 +294,11 @@
|
|||
|
||||
html += '<a class="sidebarLink lnkMediaFolder" data-itemid="remote" href="nowplaying.html" onclick="return LibraryMenu.onLinkClicked(this);"><iron-icon icon="tablet-android" class="sidebarLinkIcon" style="color:#673AB7;"></iron-icon><span class="sidebarLinkText">' + Globalize.translate('ButtonRemote') + '</span></a>';
|
||||
|
||||
var elem = $('.userheader', drawer).html(html);
|
||||
var userHeader = drawer.querySelector('.userheader');
|
||||
|
||||
$('.lazy', elem).fillImages();
|
||||
userHeader.innerHTML = html;
|
||||
|
||||
ImageLoader.fillImages(userHeader.getElementsByClassName('lazy'));
|
||||
}
|
||||
|
||||
function refreshLibraryInfoInDrawer(user, drawer) {
|
||||
|
@ -301,7 +310,7 @@
|
|||
html += '<div class="libraryMenuOptions">';
|
||||
html += '</div>';
|
||||
|
||||
$('.libraryDrawerContent', drawer).html(html);
|
||||
drawer.querySelector('.libraryDrawerContent').innerHTML = html;
|
||||
}
|
||||
|
||||
function refreshDashboardInfoInDrawer(page, user, drawer) {
|
||||
|
@ -314,7 +323,7 @@
|
|||
|
||||
html = html.split('href=').join('onclick="return LibraryMenu.onLinkClicked(this);" href=');
|
||||
|
||||
$('.dashboardDrawerContent', drawer).html(html);
|
||||
drawer.querySelector('.dashboardDrawerContent').innerHTML = html;
|
||||
}
|
||||
|
||||
function replaceAll(string, find, replace) {
|
||||
|
@ -364,9 +373,9 @@
|
|||
|
||||
html += '</div>';
|
||||
|
||||
$('.userFooter', drawer).html(html);
|
||||
drawer.querySelector('.userFooter').innerHTML = html;
|
||||
|
||||
$('.lnkManageServer', drawer).on('click', onManageServerClicked);
|
||||
Events.on(drawer.querySelector('.lnkManageServer'), 'click', onManageServerClicked);
|
||||
}
|
||||
|
||||
function updateLibraryMenu(user) {
|
||||
|
@ -449,14 +458,16 @@
|
|||
|
||||
}).join('');
|
||||
|
||||
var elem = $('.libraryMenuOptions').html(html);
|
||||
var libraryMenuOptions = document.querySelector('.libraryMenuOptions');
|
||||
libraryMenuOptions.innerHTML = html;
|
||||
var elem = libraryMenuOptions;
|
||||
|
||||
$('.sidebarLink', elem).off('click.updateText').on('click.updateText', function () {
|
||||
|
||||
var section = $('.sectionName', this)[0];
|
||||
var section = this.getElementsByClassName('sectionName')[0];
|
||||
var text = section ? section.innerHTML : this.innerHTML;
|
||||
|
||||
$('.libraryMenuButtonText').html(text);
|
||||
document.querySelector('.libraryMenuButtonText').innerHTML = text;
|
||||
|
||||
});
|
||||
});
|
||||
|
@ -496,8 +507,7 @@
|
|||
|
||||
function setLibraryMenuText(text) {
|
||||
|
||||
$('.libraryMenuButtonText').html('<span>' + text + '</span>');
|
||||
|
||||
document.querySelector('.libraryMenuButtonText').innerHTML = '<span>' + text + '</span>';
|
||||
}
|
||||
|
||||
function getTopParentId() {
|
||||
|
@ -565,77 +575,80 @@
|
|||
|
||||
function updateLibraryNavLinks(page) {
|
||||
|
||||
page = $(page);
|
||||
var isLiveTvPage = page.classList.contains('liveTvPage');
|
||||
var isChannelsPage = page.classList.contains('channelsPage');
|
||||
var isEditorPage = page.classList.contains('metadataEditorPage');
|
||||
var isReportsPage = page.classList.contains('reportsPage');
|
||||
var isMySyncPage = page.classList.contains('mySyncPage');
|
||||
|
||||
var isLiveTvPage = page.hasClass('liveTvPage');
|
||||
var isChannelsPage = page.hasClass('channelsPage');
|
||||
var isEditorPage = page.hasClass('metadataEditorPage');
|
||||
var isReportsPage = page.hasClass('reportsPage');
|
||||
var isMySyncPage = page.hasClass('mySyncPage');
|
||||
|
||||
var id = isLiveTvPage || isChannelsPage || isEditorPage || isReportsPage || isMySyncPage || page.hasClass('allLibraryPage') ?
|
||||
var id = isLiveTvPage || isChannelsPage || isEditorPage || isReportsPage || isMySyncPage || page.classList.contains('allLibraryPage') ?
|
||||
'' :
|
||||
getTopParentId() || '';
|
||||
|
||||
$('.lnkMediaFolder').each(function () {
|
||||
var i, length;
|
||||
var elems = document.getElementsByClassName('lnkMediaFolder');
|
||||
|
||||
var itemId = this.getAttribute('data-itemid');
|
||||
for (i = 0, length = elems.length; i < length; i++) {
|
||||
|
||||
var lnkMediaFolder = elems[i];
|
||||
var itemId = lnkMediaFolder.getAttribute('data-itemid');
|
||||
|
||||
if (isChannelsPage && itemId == 'channels') {
|
||||
$(this).addClass('selectedMediaFolder');
|
||||
lnkMediaFolder.classList.add('selectedMediaFolder');
|
||||
}
|
||||
else if (isLiveTvPage && itemId == 'livetv') {
|
||||
$(this).addClass('selectedMediaFolder');
|
||||
lnkMediaFolder.classList.add('selectedMediaFolder');
|
||||
}
|
||||
else if (isEditorPage && itemId == 'editor') {
|
||||
$(this).addClass('selectedMediaFolder');
|
||||
lnkMediaFolder.classList.add('selectedMediaFolder');
|
||||
}
|
||||
else if (isReportsPage && itemId == 'reports') {
|
||||
$(this).addClass('selectedMediaFolder');
|
||||
lnkMediaFolder.classList.add('selectedMediaFolder');
|
||||
}
|
||||
else if (isMySyncPage && itemId == 'mysync') {
|
||||
$(this).addClass('selectedMediaFolder');
|
||||
lnkMediaFolder.classList.add('selectedMediaFolder');
|
||||
}
|
||||
else if (id && itemId == id) {
|
||||
$(this).addClass('selectedMediaFolder');
|
||||
lnkMediaFolder.classList.add('selectedMediaFolder');
|
||||
}
|
||||
else {
|
||||
$(this).removeClass('selectedMediaFolder');
|
||||
lnkMediaFolder.classList.remove('selectedMediaFolder');
|
||||
}
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
var context = getParameterByName('context');
|
||||
|
||||
if (context !== 'playlists') {
|
||||
$('.scopedLibraryViewNav a', page).each(function () {
|
||||
|
||||
var src = this.href;
|
||||
elems = page.querySelectorAll('.scopedLibraryViewNav a');
|
||||
|
||||
for (i = 0, length = elems.length; i < length; i++) {
|
||||
|
||||
var lnk = elems[i];
|
||||
var src = lnk.href;
|
||||
|
||||
if (src.indexOf('#') != -1) {
|
||||
return;
|
||||
continue;
|
||||
}
|
||||
|
||||
src = replaceQueryString(src, 'topParentId', id);
|
||||
|
||||
this.href = src;
|
||||
});
|
||||
lnk.href = src;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function updateContextText(page) {
|
||||
|
||||
var jPage = $(page);
|
||||
|
||||
var name = jPage.attr('data-contextname');
|
||||
var name = page.getAttribute('data-contextname');
|
||||
|
||||
if (name) {
|
||||
|
||||
$('.libraryMenuButtonText').html('<span>' + name + '</span>');
|
||||
document.querySelector('.libraryMenuButtonText').innerHTML = '<span>' + name + '</span>';
|
||||
|
||||
}
|
||||
else if (jPage.hasClass('allLibraryPage') || jPage.hasClass('type-interior')) {
|
||||
$('.libraryMenuButtonText').html(Globalize.translate('ButtonHome'));
|
||||
else if (page.classList.contains('allLibraryPage') || page.classList.contains('type-interior')) {
|
||||
document.querySelector('.libraryMenuButtonText').innerHTML = Globalize.translate('ButtonHome');
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -654,20 +667,24 @@
|
|||
|
||||
function buildViewMenuBar(page) {
|
||||
|
||||
if ($(page).hasClass('standalonePage')) {
|
||||
if (page.classList.contains('standalonePage')) {
|
||||
$('.viewMenuBar').visible(false);
|
||||
return;
|
||||
}
|
||||
|
||||
var viewMenuBar = document.querySelector('.viewMenuBar');
|
||||
|
||||
if (requiresViewMenuRefresh) {
|
||||
$('.viewMenuBar').remove();
|
||||
if (viewMenuBar) {
|
||||
$(viewMenuBar).remove();
|
||||
viewMenuBar = null;
|
||||
}
|
||||
}
|
||||
|
||||
var viewMenuBar = $('.viewMenuBar').visible(true);
|
||||
if (!$('.viewMenuBar').length) {
|
||||
if (!viewMenuBar) {
|
||||
|
||||
renderHeader();
|
||||
updateViewMenuBarHeadroom(page, $('.viewMenuBar'));
|
||||
updateViewMenuBarHeadroom(page, document.querySelector('.viewMenuBar'));
|
||||
|
||||
updateCastIcon();
|
||||
|
||||
|
@ -678,6 +695,7 @@
|
|||
ConnectionManager.user(window.ApiClient).done(addUserToHeader);
|
||||
|
||||
} else {
|
||||
$(viewMenuBar).visible(true);
|
||||
updateContextText(page);
|
||||
updateLibraryNavLinks(page);
|
||||
updateViewMenuBarHeadroom(page, viewMenuBar);
|
||||
|
@ -731,21 +749,21 @@
|
|||
|
||||
buildViewMenuBar(page);
|
||||
|
||||
var jpage = $(page);
|
||||
|
||||
var isLibraryPage = jpage.hasClass('libraryPage');
|
||||
var isLibraryPage = page.classList.contains('libraryPage');
|
||||
var darkDrawer = false;
|
||||
|
||||
if (isLibraryPage) {
|
||||
|
||||
$(document.body).addClass('libraryDocument').removeClass('dashboardDocument').removeClass('hideMainDrawer');
|
||||
document.body.classList.add('libraryDocument');
|
||||
document.body.classList.remove('dashboardDocument');
|
||||
document.body.classList.remove('hideMainDrawer');
|
||||
|
||||
if (AppInfo.enableBottomTabs) {
|
||||
$(page).addClass('noSecondaryNavPage');
|
||||
page.classList.add('noSecondaryNavPage');
|
||||
|
||||
$(function () {
|
||||
|
||||
$('.footer').addClass('footerOverBottomTabs');
|
||||
document.querySelector('.footer').classList.add('footerOverBottomTabs');
|
||||
});
|
||||
|
||||
} else {
|
||||
|
@ -760,16 +778,23 @@
|
|||
darkDrawer = true;
|
||||
}
|
||||
}
|
||||
else if (jpage.hasClass('type-interior')) {
|
||||
$(document.body).addClass('dashboardDocument').removeClass('libraryDocument').removeClass('hideMainDrawer');
|
||||
else if (page.classList.contains('type-interior')) {
|
||||
|
||||
document.body.classList.remove('libraryDocument');
|
||||
document.body.classList.add('dashboardDocument');
|
||||
document.body.classList.remove('hideMainDrawer');
|
||||
|
||||
} else {
|
||||
$(document.body).removeClass('dashboardDocument').removeClass('libraryDocument').addClass('hideMainDrawer');
|
||||
|
||||
document.body.classList.remove('libraryDocument');
|
||||
document.body.classList.remove('dashboardDocument');
|
||||
document.body.classList.add('hideMainDrawer');
|
||||
}
|
||||
|
||||
if (darkDrawer) {
|
||||
$('.mainDrawerPanel #drawer').addClass('darkDrawer');
|
||||
document.querySelector('.mainDrawerPanel #drawer').classList.add('darkDrawer');
|
||||
} else {
|
||||
$('.mainDrawerPanel #drawer').removeClass('darkDrawer');
|
||||
document.querySelector('.mainDrawerPanel #drawer').classList.remove('darkDrawer');
|
||||
}
|
||||
|
||||
if (AppInfo.enableBackButton) {
|
||||
|
@ -779,36 +804,36 @@
|
|||
|
||||
function updateBackButton(page) {
|
||||
|
||||
var jPage = $(page);
|
||||
|
||||
var canGoBack = backStack.length > 0 && jPage.is('.itemDetailPage');
|
||||
var canGoBack = backStack.length > 0 && page.classList.contains('itemDetailPage');
|
||||
|
||||
$('.headerBackButton').visible(canGoBack);
|
||||
|
||||
jPage.off('swiperight', onPageSwipeLeft);
|
||||
Events.off(page, 'swiperight', onPageSwipeLeft);
|
||||
|
||||
if (canGoBack) {
|
||||
jPage.on('swiperight', onPageSwipeLeft);
|
||||
Events.on(page, 'swiperight', onPageSwipeLeft);
|
||||
}
|
||||
}
|
||||
|
||||
function onPageSwipeLeft(e) {
|
||||
|
||||
var target = $(e.target);
|
||||
var target = e.target;
|
||||
|
||||
if (!target.is('.hiddenScrollX') && !target.parents('.hiddenScrollX').length) {
|
||||
if (!target.classList.contains('hiddenScrollX') && !$(target).parents('.hiddenScrollX').length) {
|
||||
history.back();
|
||||
}
|
||||
}
|
||||
|
||||
function onPageShowDocumentReady(page) {
|
||||
var elem = $('.libraryViewNav .ui-btn-active:visible', page);
|
||||
|
||||
if (elem.length) {
|
||||
elem[0].scrollIntoView();
|
||||
var elems = page.querySelectorAll('.libraryViewNav .ui-btn-active');
|
||||
elems = $(elems).filter(':visible');
|
||||
|
||||
if (elems.length) {
|
||||
elems[0].scrollIntoView();
|
||||
|
||||
// Scroll back up so in case vertical scroll was messed with
|
||||
$(document).scrollTop(0);
|
||||
window.scrollTo(0, 0);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -830,14 +855,16 @@
|
|||
});
|
||||
// initialise
|
||||
headroom.init();
|
||||
$(elem).addClass('headroomEnabled');
|
||||
elem.classList.add('headroomEnabled');
|
||||
});
|
||||
}
|
||||
|
||||
function initializeApiClient(apiClient) {
|
||||
|
||||
requiresLibraryMenuRefresh = true;
|
||||
$(apiClient).off('websocketmessage.librarymenu', onWebSocketMessage).on('websocketmessage.librarymenu', onWebSocketMessage);
|
||||
Events.off(apiClient, 'websocketmessage.librarymenu', onWebSocketMessage);
|
||||
|
||||
Events.on(apiClient, 'websocketmessage.librarymenu', onWebSocketMessage);
|
||||
}
|
||||
|
||||
Dashboard.ready(function () {
|
||||
|
@ -846,20 +873,24 @@
|
|||
initializeApiClient(window.ApiClient);
|
||||
}
|
||||
|
||||
$(ConnectionManager).on('apiclientcreated', function (e, apiClient) {
|
||||
Events.on(ConnectionManager, 'apiclientcreated', function (e, apiClient) {
|
||||
initializeApiClient(apiClient);
|
||||
|
||||
}).on('localusersignedin localusersignedout', function () {
|
||||
});
|
||||
|
||||
Events.on(ConnectionManager, 'localusersignedin localusersignedout', function () {
|
||||
requiresLibraryMenuRefresh = true;
|
||||
requiresViewMenuRefresh = true;
|
||||
requiresDrawerRefresh = true;
|
||||
});
|
||||
|
||||
$(MediaController).on('playerchange', function () {
|
||||
Events.on(MediaController, 'playerchange', function () {
|
||||
updateCastIcon();
|
||||
});
|
||||
|
||||
$('.mainDrawerPanel').on('paper-drawer-panel-open', onMainDrawerOpened).on('paper-drawer-panel-close', onMainDrawerClosed);
|
||||
var mainDrawerPanel = document.querySelector('.mainDrawerPanel');
|
||||
Events.on(mainDrawerPanel, 'paper-drawer-panel-open', onMainDrawerOpened);
|
||||
Events.on(mainDrawerPanel, 'paper-drawer-panel-close', onMainDrawerClosed);
|
||||
});
|
||||
|
||||
})(window, document, jQuery, window.devicePixelRatio);
|
||||
|
@ -875,7 +906,7 @@ $.fn.createHoverTouch = function () {
|
|||
|
||||
timerId = setTimeout(function () {
|
||||
|
||||
$(elem).trigger('hovertouch');
|
||||
Events.trigger(elem, 'hovertouch');
|
||||
}, 300);
|
||||
}
|
||||
|
||||
|
@ -909,7 +940,7 @@ $.fn.createHoverTouch = function () {
|
|||
preventHover = true;
|
||||
|
||||
if (preventHover) {
|
||||
$(this).trigger('hovertouch');
|
||||
Events.trigger(this, 'hovertouch');
|
||||
stopTimer(this);
|
||||
preventHover = false;
|
||||
}
|
||||
|
|
|
@ -39,7 +39,9 @@
|
|||
|
||||
var html = getChannelsHtml(result.Items);
|
||||
|
||||
$('#items', page).html(html).lazyChildren();
|
||||
var elem = page.querySelector('#items');
|
||||
elem.innerHTML = html;
|
||||
ImageLoader.lazyChildren(elem);
|
||||
|
||||
$('.btnNextPage', page).on('click', function () {
|
||||
query.StartIndex += query.Limit;
|
||||
|
|
|
@ -76,22 +76,25 @@
|
|||
startIndex: channelQuery.StartIndex,
|
||||
limit: channelQuery.Limit,
|
||||
totalRecordCount: channelsResult.TotalRecordCount,
|
||||
updatePageSizeSetting: false
|
||||
updatePageSizeSetting: false,
|
||||
showLimit: true
|
||||
});
|
||||
|
||||
$('.channelPaging', page).html(channelPagingHtml).trigger('create');
|
||||
var channelPaging = page.querySelector('.channelPaging');
|
||||
channelPaging.innerHTML = channelPagingHtml;
|
||||
$(channelPaging).trigger('create');
|
||||
|
||||
$('.btnNextPage', page).on('click', function () {
|
||||
Events.on(page.querySelector('.btnNextPage'), 'click', function () {
|
||||
channelQuery.StartIndex += channelQuery.Limit;
|
||||
reloadChannels(page);
|
||||
});
|
||||
|
||||
$('.btnPreviousPage', page).on('click', function () {
|
||||
Events.on(page.querySelector('.btnPreviousPage'), 'click', function () {
|
||||
channelQuery.StartIndex -= channelQuery.Limit;
|
||||
reloadChannels(page);
|
||||
});
|
||||
|
||||
$('.selectPageSize', page).on('change', function () {
|
||||
Events.on(page.querySelector('#selectPageSize'), 'change', function () {
|
||||
channelQuery.Limit = parseInt(this.value);
|
||||
channelQuery.StartIndex = 0;
|
||||
reloadChannels(page);
|
||||
|
@ -260,7 +263,10 @@
|
|||
html.push(getChannelProgramsHtml(page, date, channels[i], programs));
|
||||
}
|
||||
|
||||
$('.programGrid', page).html(html.join('')).scrollTop(0).scrollLeft(0)
|
||||
var programGrid = page.querySelector('.programGrid');
|
||||
programGrid.innerHTML = html.join('');
|
||||
|
||||
$(programGrid).scrollTop(0).scrollLeft(0)
|
||||
.createGuideHoverMenu('.programCellInner');
|
||||
}
|
||||
|
||||
|
@ -297,7 +303,7 @@
|
|||
html += '</div>';
|
||||
}
|
||||
|
||||
$('.channelList', page).html(html);
|
||||
page.querySelector('.channelList').innerHTML = html;
|
||||
}
|
||||
|
||||
function renderGuide(page, date, channels, programs) {
|
||||
|
@ -306,7 +312,7 @@
|
|||
|
||||
var startDate = date;
|
||||
var endDate = new Date(startDate.getTime() + msPerDay);
|
||||
$('.timeslotHeaders', page).html(getTimeslotHeadersHtml(startDate, endDate));
|
||||
page.querySelector('.timeslotHeaders').innerHTML = getTimeslotHeadersHtml(startDate, endDate);
|
||||
renderPrograms(page, date, channels, programs);
|
||||
}
|
||||
|
||||
|
@ -316,9 +322,8 @@
|
|||
|
||||
if (!headersScrolling) {
|
||||
gridScrolling = true;
|
||||
var grid = $(elem);
|
||||
|
||||
$('.timeslotHeaders', page).scrollLeft(grid.scrollLeft());
|
||||
$(page.querySelector('.timeslotHeaders')).scrollLeft($(elem).scrollLeft());
|
||||
gridScrolling = false;
|
||||
}
|
||||
}
|
||||
|
@ -327,8 +332,7 @@
|
|||
|
||||
if (!gridScrolling) {
|
||||
headersScrolling = true;
|
||||
elem = $(elem);
|
||||
$('.programGrid', page).scrollLeft(elem.scrollLeft());
|
||||
$(page.querySelector('.programGrid')).scrollLeft($(elem).scrollLeft());
|
||||
headersScrolling = false;
|
||||
}
|
||||
}
|
||||
|
@ -341,7 +345,7 @@
|
|||
|
||||
var text = LibraryBrowser.getFutureDateText(date);
|
||||
text = '<span class="currentDay">' + text.replace(' ', ' </span>');
|
||||
$('.currentDate', page).html(text);
|
||||
page.querySelector('.currentDate').innerHTML = text;
|
||||
}
|
||||
|
||||
var dateOptions = [];
|
||||
|
@ -418,7 +422,7 @@
|
|||
|
||||
function selectDate(page) {
|
||||
|
||||
require(['actionsheet'], function() {
|
||||
require(['actionsheet'], function () {
|
||||
|
||||
ActionSheetElement.show({
|
||||
items: dateOptions,
|
||||
|
@ -439,18 +443,18 @@
|
|||
|
||||
var page = this;
|
||||
|
||||
$('.programGrid', page).on('scroll', function () {
|
||||
Events.on(page.querySelector('.programGrid'), 'scroll', function () {
|
||||
|
||||
onProgramGridScroll(page, this);
|
||||
});
|
||||
|
||||
if ($.browser.mobile) {
|
||||
$('.tvGuide', page).addClass('mobileGuide');
|
||||
page.querySelector('.tvGuide').classList.add('mobileGuide');
|
||||
} else {
|
||||
|
||||
$('.tvGuide', page).removeClass('mobileGuide');
|
||||
page.querySelector('.tvGuide').classList.remove('mobileGuide');
|
||||
|
||||
$('.timeslotHeaders', page).on('scroll', function () {
|
||||
Events.on(page.querySelector('.timeslotHeaders'), 'scroll', function () {
|
||||
|
||||
onTimeslotHeadersScroll(page, this);
|
||||
});
|
||||
|
@ -459,14 +463,10 @@
|
|||
if (AppInfo.enableHeadRoom) {
|
||||
requirejs(["thirdparty/headroom"], function () {
|
||||
|
||||
$('.tvGuideHeader', page).each(function () {
|
||||
|
||||
// construct an instance of Headroom, passing the element
|
||||
var headroom = new Headroom(this);
|
||||
var headroom = new Headroom(page.querySelector('.tvGuideHeader'));
|
||||
// initialise
|
||||
headroom.init();
|
||||
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
@ -31,7 +31,7 @@
|
|||
ApiClient.getLiveTvPrograms(query).done(function (result) {
|
||||
|
||||
// Scroll back up so they can see the results from the beginning
|
||||
$(document).scrollTop(0);
|
||||
window.scrollTo(0, 0);
|
||||
|
||||
var html = '';
|
||||
var pagingHtml = LibraryBrowser.getQueryPagingHtml({
|
||||
|
@ -42,7 +42,7 @@
|
|||
showLimit: false
|
||||
});
|
||||
|
||||
$('.listTopPaging', page).html(pagingHtml).trigger('create');
|
||||
page.querySelector('.listTopPaging').innerHTML = pagingHtml;
|
||||
|
||||
updateFilterControls(page);
|
||||
|
||||
|
@ -72,9 +72,9 @@
|
|||
});
|
||||
}
|
||||
|
||||
var elem = $('.itemsContainer', page).html(html).lazyChildren();
|
||||
|
||||
$(pagingHtml).appendTo(elem).trigger('create');
|
||||
var elem = page.querySelector('.itemsContainer');
|
||||
elem.innerHTML = html + pagingHtml;
|
||||
ImageLoader.lazyChildren(elem);
|
||||
|
||||
$('.btnNextPage', page).on('click', function () {
|
||||
query.StartIndex += query.Limit;
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
ApiClient.getLiveTvRecordings(query).done(function (result) {
|
||||
|
||||
// Scroll back up so they can see the results from the beginning
|
||||
$(document).scrollTop(0);
|
||||
window.scrollTo(0, 0);
|
||||
|
||||
var html = '';
|
||||
|
||||
|
@ -49,7 +49,9 @@
|
|||
updatePageSizeSetting: false
|
||||
});
|
||||
|
||||
$('#items', page).html(html).lazyChildren();
|
||||
var elem = page.querySelector('#items');
|
||||
elem.innerHTML = html;
|
||||
ImageLoader.lazyChildren(elem);
|
||||
|
||||
$('.btnNextPage', page).on('click', function () {
|
||||
query.StartIndex += query.Limit;
|
||||
|
|
|
@ -24,7 +24,9 @@
|
|||
|
||||
});
|
||||
|
||||
$('.activeProgramItems', page).html(html).lazyChildren();
|
||||
var elem = page.querySelector('.activeProgramItems');
|
||||
elem.innerHTML = html;
|
||||
ImageLoader.lazyChildren(elem);
|
||||
Dashboard.hideLoadingMsg();
|
||||
});
|
||||
}
|
||||
|
@ -56,7 +58,9 @@
|
|||
|
||||
});
|
||||
|
||||
$('.upcomingProgramItems', page).html(html).lazyChildren();
|
||||
var elem = page.querySelector('.upcomingProgramItems');
|
||||
elem.innerHTML = html;
|
||||
ImageLoader.lazyChildren(elem);
|
||||
});
|
||||
|
||||
ApiClient.getLiveTvRecommendedPrograms({
|
||||
|
@ -78,7 +82,9 @@
|
|||
lazy: true
|
||||
});
|
||||
|
||||
$('.upcomingTvMovieItems', page).html(html).lazyChildren();
|
||||
var elem = page.querySelector('.upcomingTvMovieItems');
|
||||
elem.innerHTML = html;
|
||||
ImageLoader.lazyChildren(elem);
|
||||
});
|
||||
|
||||
ApiClient.getLiveTvRecommendedPrograms({
|
||||
|
@ -100,7 +106,9 @@
|
|||
lazy: true
|
||||
});
|
||||
|
||||
$('.upcomingSportsItems', page).html(html).lazyChildren();
|
||||
var elem = page.querySelector('.upcomingSportsItems');
|
||||
elem.innerHTML = html;
|
||||
ImageLoader.lazyChildren(elem);
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
@ -39,7 +39,7 @@
|
|||
|
||||
function monitorPlayer(player) {
|
||||
|
||||
$(player).on('playbackstart.mediacontroller', function (e, state) {
|
||||
Events.on(player, 'playbackstart.mediacontroller', function (e, state) {
|
||||
|
||||
var info = {
|
||||
QueueableMediaTypes: state.NowPlayingItem.MediaType,
|
||||
|
@ -51,7 +51,9 @@
|
|||
|
||||
ApiClient.reportPlaybackStart(info);
|
||||
|
||||
}).on('playbackstop.mediacontroller', function (e, state) {
|
||||
});
|
||||
|
||||
Events.on(player, 'playbackstop.mediacontroller', function (e, state) {
|
||||
|
||||
var stopInfo = {
|
||||
itemId: state.NowPlayingItem.Id,
|
||||
|
@ -190,7 +192,7 @@
|
|||
|
||||
});
|
||||
|
||||
if ($('.radioSelectPlayerTarget:checked', elem).attr('data-mirror') == 'true') {
|
||||
if ($('.radioSelectPlayerTarget:checked', elem)[0].getAttribute('data-mirror') == 'true') {
|
||||
$('.fldMirrorMode', elem).show();
|
||||
} else {
|
||||
$('.fldMirrorMode', elem).hide();
|
||||
|
|
|
@ -1178,23 +1178,28 @@
|
|||
var index = self.currentPlaylistIndex(null);
|
||||
var length = self.playlist.length;
|
||||
var requiresNativeControls = !self.enableCustomVideoControls();
|
||||
var controls = $(requiresNativeControls ? '.videoAdvancedControls' : '.videoControls');
|
||||
|
||||
if (length < 2) {
|
||||
$('.videoTrackControl').hide();
|
||||
return;
|
||||
}
|
||||
|
||||
var controls = requiresNativeControls ? '.videoAdvancedControls' : '.videoControls';
|
||||
controls = document.getElementsByClassName(controls)[0];
|
||||
|
||||
var previousTrackButton = controls.getElementsByClassName('previousTrackButton')[0];
|
||||
var nextTrackButton = controls.getElementsByClassName('nextTrackButton')[0];
|
||||
|
||||
if (index === 0) {
|
||||
$('.previousTrackButton', controls).attr('disabled', 'disabled');
|
||||
previousTrackButton.setAttribute('disabled', 'disabled');
|
||||
} else {
|
||||
$('.previousTrackButton', controls).removeAttr('disabled');
|
||||
previousTrackButton.removeAttribute('disabled');
|
||||
}
|
||||
|
||||
if ((index + 1) >= length) {
|
||||
$('.nextTrackButton', controls).attr('disabled', 'disabled');
|
||||
nextTrackButton.setAttribute('disabled', 'disabled');
|
||||
} else {
|
||||
$('.nextTrackButton', controls).removeAttr('disabled');
|
||||
nextTrackButton.removeAttribute('disabled');
|
||||
}
|
||||
|
||||
$('.videoTrackControl', controls).show();
|
||||
|
|
|
@ -557,11 +557,15 @@
|
|||
|
||||
clearProgressInterval();
|
||||
|
||||
$(mediaRenderer).off('ended.playbackstopped').off('ended.playnext').one("play", function () {
|
||||
Events.off(mediaRenderer, 'ended.playbackstopped').off('ended.playnext');
|
||||
|
||||
$(mediaRenderer).one("play", function () {
|
||||
|
||||
self.updateCanClientSeek(this);
|
||||
|
||||
$(this).on('ended.playbackstopped', self.onPlaybackStopped).one('ended.playnext', self.playNextAfterEnded);
|
||||
Events.on(this, 'ended.playbackstopped', self.onPlaybackStopped);
|
||||
|
||||
$(this).one('ended.playnext', self.playNextAfterEnded);
|
||||
|
||||
self.startProgressInterval();
|
||||
sendProgressUpdate();
|
||||
|
@ -616,7 +620,7 @@
|
|||
|
||||
var state = self.getPlayerStateInternal(self.currentMediaRenderer, self.currentItem, self.currentMediaSource);
|
||||
|
||||
$(self).trigger('positionchange', [state]);
|
||||
Events.trigger(self, 'positionchange', [state]);
|
||||
};
|
||||
|
||||
self.canQueueMediaType = function (mediaType) {
|
||||
|
@ -1353,9 +1357,11 @@
|
|||
|
||||
mediaRenderer.stop();
|
||||
|
||||
$(mediaRenderer).off("ended.playnext").one("ended", function () {
|
||||
Events.off(mediaRenderer, "ended.playnext");
|
||||
|
||||
$(this).off();
|
||||
$(mediaRenderer).one("ended", function() {
|
||||
|
||||
Events.off(this);
|
||||
|
||||
this.cleanup(destroyRenderer);
|
||||
|
||||
|
@ -1363,7 +1369,9 @@
|
|||
self.currentItem = null;
|
||||
self.currentMediaSource = null;
|
||||
|
||||
}).trigger("ended");
|
||||
});
|
||||
|
||||
Events.trigger(mediaRenderer, "ended");
|
||||
|
||||
} else {
|
||||
self.currentMediaRenderer = null;
|
||||
|
@ -1531,7 +1539,7 @@
|
|||
|
||||
var state = self.getPlayerStateInternal(mediaRenderer, item, mediaSource);
|
||||
|
||||
$(self).trigger('playbackstart', [state]);
|
||||
Events.trigger(self, 'playbackstart', [state]);
|
||||
|
||||
self.startProgressInterval();
|
||||
};
|
||||
|
@ -1542,7 +1550,7 @@
|
|||
|
||||
var state = self.getPlayerStateInternal(mediaRenderer, self.currentItem, self.currentMediaSource);
|
||||
|
||||
$(self).trigger('volumechange', [state]);
|
||||
Events.trigger(self, 'volumechange', [state]);
|
||||
};
|
||||
|
||||
self.cleanup = function () {
|
||||
|
@ -1553,11 +1561,13 @@
|
|||
|
||||
Logger.log('playback stopped');
|
||||
|
||||
$(document.body).removeClass('bodyWithPopupOpen');
|
||||
document.body.classList.remove('bodyWithPopupOpen');
|
||||
|
||||
var mediaRenderer = this;
|
||||
|
||||
$(mediaRenderer).off('.mediaplayerevent').off('ended.playbackstopped');
|
||||
Events.off(mediaRenderer, '.mediaplayerevent');
|
||||
|
||||
Events.off(mediaRenderer, 'ended.playbackstopped');
|
||||
|
||||
self.cleanup(mediaRenderer);
|
||||
|
||||
|
@ -1576,17 +1586,17 @@
|
|||
|
||||
var state = self.getPlayerStateInternal(mediaRenderer, item, mediaSource);
|
||||
|
||||
$(self).trigger('playbackstop', [state]);
|
||||
Events.trigger(self, 'playbackstop', [state]);
|
||||
};
|
||||
|
||||
self.onPlaystateChange = function (mediaRenderer) {
|
||||
|
||||
var state = self.getPlayerStateInternal(mediaRenderer, self.currentItem, self.currentMediaSource);
|
||||
|
||||
$(self).trigger('playstatechange', [state]);
|
||||
Events.trigger(self, 'playstatechange', [state]);
|
||||
};
|
||||
|
||||
$(window).on("beforeunload", function () {
|
||||
Events.on(window, "beforeunload", function () {
|
||||
|
||||
// Try to report playback stopped before the browser closes
|
||||
if (self.currentItem && self.currentMediaRenderer && currentProgressInterval) {
|
||||
|
@ -1673,18 +1683,22 @@
|
|||
mediaRenderer.setPoster(self.getPosterUrl(item));
|
||||
mediaRenderer.setCurrentSrc(audioUrl, item, mediaSource);
|
||||
|
||||
$(mediaRenderer).on("volumechange.mediaplayerevent", function () {
|
||||
Events.on(mediaRenderer, "volumechange.mediaplayerevent", function() {
|
||||
|
||||
Logger.log('audio element event: volumechange');
|
||||
|
||||
self.onVolumeChanged(this);
|
||||
|
||||
}).one("playing.mediaplayerevent", function () {
|
||||
});
|
||||
|
||||
$(mediaRenderer).one("playing.mediaplayerevent", function () {
|
||||
|
||||
Logger.log('audio element event: playing');
|
||||
|
||||
// For some reason this is firing at the start, so don't bind until playback has begun
|
||||
$(this).on("ended.playbackstopped", self.onPlaybackStopped).one('ended.playnext', self.playNextAfterEnded);
|
||||
Events.on(this, "ended.playbackstopped", self.onPlaybackStopped);
|
||||
|
||||
$(this).one('ended.playnext', self.playNextAfterEnded);
|
||||
|
||||
self.onPlaybackStart(this, item, mediaSource);
|
||||
|
||||
|
|
|
@ -33,7 +33,7 @@
|
|||
var user = response2[0];
|
||||
|
||||
// Scroll back up so they can see the results from the beginning
|
||||
$(document).scrollTop(0);
|
||||
window.scrollTo(0, 0);
|
||||
|
||||
var html = '';
|
||||
|
||||
|
@ -111,10 +111,12 @@
|
|||
$('.noItemsMessage', page).show();
|
||||
}
|
||||
|
||||
$('.itemsContainer', page).html(html).lazyChildren();
|
||||
var elem = page.querySelector('.itemsContainer');
|
||||
elem.innerHTML = html;
|
||||
ImageLoader.lazyChildren(elem);
|
||||
|
||||
if (trigger) {
|
||||
$('.itemsContainer', page).trigger('create');
|
||||
$(elem).trigger('create');
|
||||
}
|
||||
|
||||
$('.btnNextPage', page).on('click', function () {
|
||||
|
|
|
@ -25,7 +25,7 @@
|
|||
ApiClient.getGenres(Dashboard.getCurrentUserId(), query).done(function (result) {
|
||||
|
||||
// Scroll back up so they can see the results from the beginning
|
||||
$(document).scrollTop(0);
|
||||
window.scrollTo(0, 0);
|
||||
|
||||
var html = '';
|
||||
|
||||
|
@ -85,7 +85,9 @@
|
|||
});
|
||||
}
|
||||
|
||||
$('#items', page).html(html).lazyChildren();
|
||||
var elem = page.querySelector('#items');
|
||||
elem.innerHTML = html;
|
||||
ImageLoader.lazyChildren(elem);
|
||||
|
||||
$('.btnNextPage', page).on('click', function () {
|
||||
query.StartIndex += query.Limit;
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
ApiClient.getPeople(Dashboard.getCurrentUserId(), query).done(function (result) {
|
||||
|
||||
// Scroll back up so they can see the results from the beginning
|
||||
$(document).scrollTop(0);
|
||||
window.scrollTo(0, 0);
|
||||
|
||||
var html = '';
|
||||
var pagingHtml = LibraryBrowser.getQueryPagingHtml({
|
||||
|
@ -40,7 +40,7 @@
|
|||
pageSizeKey: pageSizeKey
|
||||
});
|
||||
|
||||
$('.listTopPaging', page).html(pagingHtml).trigger('create');
|
||||
page.querySelector('.listTopPaging').innerHTML = pagingHtml;
|
||||
|
||||
updateFilterControls(page);
|
||||
|
||||
|
@ -54,9 +54,9 @@
|
|||
lazy: true
|
||||
});
|
||||
|
||||
var elem = $('#items', page).html(html).lazyChildren();
|
||||
|
||||
$(pagingHtml).appendTo(elem).trigger('create');
|
||||
var elem = page.querySelector('#items');
|
||||
elem.innerHTML = html + pagingHtml;
|
||||
ImageLoader.lazyChildren(elem);
|
||||
|
||||
$('.btnNextPage', page).on('click', function () {
|
||||
query.StartIndex += query.Limit;
|
||||
|
|
|
@ -29,7 +29,7 @@
|
|||
ApiClient.getItems(userId, query).done(function (result) {
|
||||
|
||||
// Scroll back up so they can see the results from the beginning
|
||||
$(document).scrollTop(0);
|
||||
window.scrollTo(0, 0);
|
||||
|
||||
var html = '';
|
||||
|
||||
|
@ -43,7 +43,7 @@
|
|||
|
||||
});
|
||||
|
||||
$('.listTopPaging', page).html(pagingHtml).trigger('create');
|
||||
page.querySelector('.listTopPaging').innerHTML = pagingHtml;
|
||||
|
||||
updateFilterControls(page);
|
||||
var trigger = false;
|
||||
|
@ -129,14 +129,14 @@
|
|||
});
|
||||
}
|
||||
|
||||
var elem = $('.itemsContainer', page).html(html).lazyChildren();
|
||||
var elem = page.querySelector('.itemsContainer');
|
||||
elem.innerHTML = html + pagingHtml;
|
||||
ImageLoader.lazyChildren(elem);
|
||||
|
||||
if (trigger) {
|
||||
$(elem).trigger('create');
|
||||
Events.trigger(elem, 'create');
|
||||
}
|
||||
|
||||
$(pagingHtml).appendTo(elem).trigger('create');
|
||||
|
||||
$('.btnNextPage', page).on('click', function () {
|
||||
query.StartIndex += query.Limit;
|
||||
reloadItems(page);
|
||||
|
|
|
@ -242,10 +242,11 @@
|
|||
var page = this;
|
||||
var userId = Dashboard.getCurrentUserId();
|
||||
|
||||
var containers = page.querySelectorAll('.itemsContainer');
|
||||
if (enableScrollX()) {
|
||||
$('.itemsContainer', page).addClass('hiddenScrollX');
|
||||
$(containers).addClass('hiddenScrollX');
|
||||
} else {
|
||||
$('.itemsContainer', page).removeClass('hiddenScrollX');
|
||||
$(containers).removeClass('hiddenScrollX');
|
||||
}
|
||||
|
||||
loadResume(page, userId, parentId);
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
ApiClient.getStudios(Dashboard.getCurrentUserId(), query).done(function (result) {
|
||||
|
||||
// Scroll back up so they can see the results from the beginning
|
||||
$(document).scrollTop(0);
|
||||
window.scrollTo(0, 0);
|
||||
|
||||
var html = '';
|
||||
var pagingHtml = LibraryBrowser.getQueryPagingHtml({
|
||||
|
@ -34,7 +34,7 @@
|
|||
showLimit: false
|
||||
});
|
||||
|
||||
$('.listTopPaging', page).html(pagingHtml).trigger('create');
|
||||
page.querySelector('.listTopPaging').innerHTML = pagingHtml;
|
||||
|
||||
updateFilterControls(page);
|
||||
|
||||
|
@ -48,9 +48,9 @@
|
|||
lazy: true
|
||||
});
|
||||
|
||||
var elem = $('#items', page).html(html).lazyChildren().trigger('create');
|
||||
|
||||
$(pagingHtml).appendTo(elem).trigger('create');
|
||||
var elem = page.querySelector('#items');
|
||||
elem.innerHTML = html + pagingHtml;
|
||||
ImageLoader.lazyChildren(elem);
|
||||
|
||||
$('.btnNextPage', page).on('click', function () {
|
||||
query.StartIndex += query.Limit;
|
||||
|
|
|
@ -28,7 +28,7 @@
|
|||
ApiClient.getJSON(ApiClient.getUrl('Trailers', query)).done(function (result) {
|
||||
|
||||
// Scroll back up so they can see the results from the beginning
|
||||
$(document).scrollTop(0);
|
||||
window.scrollTo(0, 0);
|
||||
|
||||
if (result.Items.length) {
|
||||
$('.noItemsMessage', page).hide();
|
||||
|
@ -46,7 +46,7 @@
|
|||
showLimit: false
|
||||
});
|
||||
|
||||
$('.listTopPaging', page).html(pagingHtml).trigger('create');
|
||||
page.querySelector('.listTopPaging').innerHTML = pagingHtml;
|
||||
|
||||
updateFilterControls(page);
|
||||
|
||||
|
@ -58,9 +58,9 @@
|
|||
showDetailsMenu: true
|
||||
});
|
||||
|
||||
var elem = $('.itemsContainer', page).html(html).lazyChildren();
|
||||
|
||||
$(pagingHtml).appendTo(elem).trigger('create');
|
||||
var elem = page.querySelector('.itemsContainer');
|
||||
elem.innerHTML = html + pagingHtml;
|
||||
ImageLoader.lazyChildren(elem);
|
||||
|
||||
$('.btnNextPage', page).on('click', function () {
|
||||
query.StartIndex += query.Limit;
|
||||
|
|
|
@ -28,7 +28,7 @@
|
|||
ApiClient.getAlbumArtists(Dashboard.getCurrentUserId(), query).done(function (result) {
|
||||
|
||||
// Scroll back up so they can see the results from the beginning
|
||||
$(document).scrollTop(0);
|
||||
window.scrollTo(0, 0);
|
||||
|
||||
var html = '';
|
||||
var pagingHtml = LibraryBrowser.getQueryPagingHtml({
|
||||
|
@ -41,7 +41,7 @@
|
|||
pageSizeKey: pageSizeKey
|
||||
});
|
||||
|
||||
$('.listTopPaging', page).html(pagingHtml).trigger('create');
|
||||
page.querySelector('.listTopPaging').innerHTML = pagingHtml;
|
||||
|
||||
updateFilterControls(page);
|
||||
var trigger = false;
|
||||
|
@ -80,14 +80,14 @@
|
|||
});
|
||||
}
|
||||
|
||||
var elem = $('#items', page).html(html).lazyChildren();
|
||||
var elem = page.querySelector('#items');
|
||||
elem.innerHTML = html + pagingHtml;
|
||||
ImageLoader.lazyChildren(elem);
|
||||
|
||||
if (trigger) {
|
||||
elem.trigger('create');
|
||||
$(elem).trigger('create');
|
||||
}
|
||||
|
||||
$(pagingHtml).appendTo(elem).trigger('create');
|
||||
|
||||
$('.btnNextPage', page).on('click', function () {
|
||||
query.StartIndex += query.Limit;
|
||||
reloadItems(page);
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
ApiClient.getItems(Dashboard.getCurrentUserId(), query).done(function (result) {
|
||||
|
||||
// Scroll back up so they can see the results from the beginning
|
||||
$(document).scrollTop(0);
|
||||
window.scrollTo(0, 0);
|
||||
|
||||
var html = '';
|
||||
var pagingHtml = LibraryBrowser.getQueryPagingHtml({
|
||||
|
@ -39,7 +39,7 @@
|
|||
addSelectionButton: true
|
||||
});
|
||||
|
||||
$('.listTopPaging', page).html(pagingHtml).trigger('create');
|
||||
page.querySelector('.listTopPaging').innerHTML = pagingHtml;
|
||||
|
||||
updateFilterControls(page);
|
||||
var trigger = false;
|
||||
|
@ -88,14 +88,14 @@
|
|||
});
|
||||
}
|
||||
|
||||
var elem = $('#items', page).html(html).lazyChildren();
|
||||
var elem = page.querySelector('#items');
|
||||
elem.innerHTML = html + pagingHtml;
|
||||
ImageLoader.lazyChildren(elem);
|
||||
|
||||
if (trigger) {
|
||||
elem.trigger('create');
|
||||
$(elem).trigger('create');
|
||||
}
|
||||
|
||||
$(pagingHtml).appendTo(elem).trigger('create');
|
||||
|
||||
$('.btnNextPage', page).on('click', function () {
|
||||
query.StartIndex += query.Limit;
|
||||
reloadItems(page);
|
||||
|
|
|
@ -28,7 +28,7 @@
|
|||
ApiClient.getArtists(Dashboard.getCurrentUserId(), query).done(function (result) {
|
||||
|
||||
// Scroll back up so they can see the results from the beginning
|
||||
$(document).scrollTop(0);
|
||||
window.scrollTo(0, 0);
|
||||
|
||||
var html = '';
|
||||
|
||||
|
@ -42,7 +42,7 @@
|
|||
pageSizeKey: pageSizeKey
|
||||
});
|
||||
|
||||
$('.listTopPaging', page).html(pagingHtml).trigger('create');
|
||||
page.querySelector('.listTopPaging').innerHTML = pagingHtml;
|
||||
|
||||
updateFilterControls(page);
|
||||
var trigger = false;
|
||||
|
@ -81,14 +81,14 @@
|
|||
});
|
||||
}
|
||||
|
||||
var elem = $('.itemsContainer', page).html(html).lazyChildren();
|
||||
var elem = page.querySelector('.itemsContainer');
|
||||
elem.innerHTML = html + pagingHtml;
|
||||
ImageLoader.lazyChildren(elem);
|
||||
|
||||
if (trigger) {
|
||||
elem.trigger('create');
|
||||
$(elem).trigger('create');
|
||||
}
|
||||
|
||||
$(pagingHtml).appendTo(elem).trigger('create');
|
||||
|
||||
$('.btnNextPage', page).on('click', function () {
|
||||
query.StartIndex += query.Limit;
|
||||
reloadItems(page);
|
||||
|
|
|
@ -25,7 +25,7 @@
|
|||
ApiClient.getMusicGenres(Dashboard.getCurrentUserId(), query).done(function (result) {
|
||||
|
||||
// Scroll back up so they can see the results from the beginning
|
||||
$(document).scrollTop(0);
|
||||
window.scrollTo(0, 0);
|
||||
|
||||
var html = '';
|
||||
|
||||
|
@ -65,7 +65,9 @@
|
|||
});
|
||||
}
|
||||
|
||||
$('#items', page).html(html).lazyChildren();
|
||||
var elem = page.querySelector('#items');
|
||||
elem.innerHTML = html;
|
||||
ImageLoader.lazyChildren(elem);
|
||||
|
||||
$('.btnNextPage', page).on('click', function () {
|
||||
query.StartIndex += query.Limit;
|
||||
|
|
|
@ -178,10 +178,11 @@
|
|||
loadRecentlyPlayed(page, parentId);
|
||||
loadFrequentlyPlayed(page, parentId);
|
||||
|
||||
var containers = page.querySelectorAll('.itemsContainer');
|
||||
if (enableScrollX()) {
|
||||
$('.itemsContainer', page).addClass('hiddenScrollX');
|
||||
$(containers).addClass('hiddenScrollX');
|
||||
} else {
|
||||
$('.itemsContainer', page).removeClass('hiddenScrollX');
|
||||
$(containers).removeClass('hiddenScrollX');
|
||||
}
|
||||
});
|
||||
|
||||
|
|
|
@ -25,7 +25,7 @@
|
|||
ApiClient.getItems(Dashboard.getCurrentUserId(), query).done(function (result) {
|
||||
|
||||
// Scroll back up so they can see the results from the beginning
|
||||
$(document).scrollTop(0);
|
||||
window.scrollTo(0, 0);
|
||||
|
||||
var html = '';
|
||||
|
||||
|
@ -65,7 +65,9 @@
|
|||
});
|
||||
}
|
||||
|
||||
$('#items', page).html(html).trigger('create').lazyChildren();
|
||||
var elem = page.querySelector('#items');
|
||||
elem.innerHTML = html;
|
||||
ImageLoader.lazyChildren(elem);
|
||||
|
||||
$('.btnNextPage', page).on('click', function () {
|
||||
query.StartIndex += query.Limit;
|
||||
|
|
|
@ -167,17 +167,17 @@
|
|||
|
||||
function getNowPlayingBar() {
|
||||
|
||||
var elem = $('.nowPlayingBar');
|
||||
var elem = document.querySelector('.nowPlayingBar');
|
||||
|
||||
if (elem.length) {
|
||||
if (elem) {
|
||||
return elem;
|
||||
}
|
||||
|
||||
elem = $(getNowPlayingBarHtml()).insertBefore('#footerNotifications').trigger('create');
|
||||
elem = $(getNowPlayingBarHtml()).insertBefore('#footerNotifications')[0];
|
||||
|
||||
if ($.browser.safari && $.browser.mobile) {
|
||||
// Not handled well here. The wrong elements receive events, bar doesn't update quickly enough, etc.
|
||||
elem.addClass('noMediaProgress');
|
||||
elem.classList.add('noMediaProgress');
|
||||
}
|
||||
|
||||
bindEvents(elem);
|
||||
|
@ -408,7 +408,7 @@
|
|||
|
||||
var nowPlayingBar = getNowPlayingBar();
|
||||
|
||||
nowPlayingBar.show();
|
||||
$(nowPlayingBar).show();
|
||||
}
|
||||
|
||||
function hideNowPlayingBar() {
|
||||
|
@ -417,7 +417,10 @@
|
|||
// in the event of a stop->play command
|
||||
|
||||
// Don't call getNowPlayingBar here because we don't want to end up creating it just to hide it
|
||||
$('.nowPlayingBar').hide();
|
||||
var elem = document.getElementsByClassName('nowPlayingBar')[0];
|
||||
if (elem) {
|
||||
elem.style.display = 'none';
|
||||
}
|
||||
}
|
||||
|
||||
function onPlaybackStopped(e, state) {
|
||||
|
@ -446,7 +449,7 @@
|
|||
|
||||
if (currentPlayer) {
|
||||
|
||||
$(currentPlayer).off('.nowplayingbar');
|
||||
Events.off(currentPlayer, '.nowplayingbar');
|
||||
currentPlayer.endPlayerUpdates();
|
||||
currentPlayer = null;
|
||||
|
||||
|
@ -492,7 +495,7 @@
|
|||
|
||||
Dashboard.ready(function () {
|
||||
|
||||
$(MediaController).on('playerchange', function () {
|
||||
Events.on(MediaController, 'playerchange', function () {
|
||||
|
||||
bindToPlayer(MediaController.getCurrentPlayer());
|
||||
});
|
||||
|
|
|
@ -374,7 +374,7 @@
|
|||
|
||||
function onStateChanged(e, state) {
|
||||
|
||||
updatePlayerState($.mobile.activePage, state);
|
||||
updatePlayerState($($.mobile.activePage)[0], state);
|
||||
}
|
||||
|
||||
function showButton(button) {
|
||||
|
|
|
@ -25,7 +25,7 @@
|
|||
ApiClient.getItems(Dashboard.getCurrentUserId(), query).done(function (result) {
|
||||
|
||||
// Scroll back up so they can see the results from the beginning
|
||||
$(document).scrollTop(0);
|
||||
window.scrollTo(0, 0);
|
||||
|
||||
var html = '';
|
||||
var pagingHtml = LibraryBrowser.getQueryPagingHtml({
|
||||
|
@ -36,7 +36,7 @@
|
|||
showLimit: false
|
||||
});
|
||||
|
||||
$('.listTopPaging', page).html(pagingHtml).trigger('create');
|
||||
page.querySelector('.listTopPaging').innerHTML = pagingHtml;
|
||||
|
||||
updateFilterControls(page);
|
||||
|
||||
|
@ -65,9 +65,9 @@
|
|||
});
|
||||
}
|
||||
|
||||
var elem = $('#items', page).html(html).lazyChildren();
|
||||
|
||||
$(pagingHtml).appendTo(elem).trigger('create');
|
||||
var elem = page.querySelector('#items');
|
||||
elem.innerHTML = html + pagingHtml;
|
||||
ImageLoader.lazyChildren(elem);
|
||||
|
||||
$('.btnNextPage', page).on('click', function () {
|
||||
query.StartIndex += query.Limit;
|
||||
|
|
|
@ -73,7 +73,7 @@
|
|||
}
|
||||
|
||||
// Scroll back up so they can see the results from the beginning
|
||||
$(document).scrollTop(0);
|
||||
window.scrollTo(0, 0);
|
||||
|
||||
var html = '';
|
||||
|
||||
|
@ -112,7 +112,9 @@
|
|||
$('.noItemsMessage', page).show();
|
||||
}
|
||||
|
||||
$('.itemsContainer', page).html(html).trigger('create').lazyChildren();
|
||||
var elem = page.querySelector('.itemsContainer');
|
||||
elem.innerHTML = html;
|
||||
ImageLoader.lazyChildren(elem);
|
||||
|
||||
$('.btnNextPage', page).on('click', function () {
|
||||
query.StartIndex += query.Limit;
|
||||
|
|
|
@ -40,7 +40,7 @@
|
|||
var user = response2[0];
|
||||
|
||||
// Scroll back up so they can see the results from the beginning
|
||||
$(document).scrollTop(0);
|
||||
window.scrollTo(0, 0);
|
||||
|
||||
var html = '';
|
||||
|
||||
|
@ -86,10 +86,12 @@
|
|||
$('.noItemsMessage', page).show();
|
||||
}
|
||||
|
||||
$('.itemsContainer', page).html(html).lazyChildren();
|
||||
var elem = page.querySelector('.itemsContainer');
|
||||
elem.innerHTML = html;
|
||||
ImageLoader.lazyChildren(elem);
|
||||
|
||||
if (trigger) {
|
||||
$('.itemsContainer', page).trigger('create');
|
||||
$(elem).trigger('create');
|
||||
}
|
||||
|
||||
$('.btnNextPage', page).on('click', function () {
|
||||
|
|
|
@ -260,7 +260,7 @@
|
|||
|
||||
function renderItems(page, result) {
|
||||
|
||||
$(document).scrollTop(0);
|
||||
window.scrollTo(0, 0);
|
||||
var html = '';
|
||||
|
||||
if (SelectedReportView === "ReportData") {
|
||||
|
@ -274,7 +274,7 @@
|
|||
showLimit: false
|
||||
});
|
||||
|
||||
$('.listTopPaging', page).html(pagingHtml).trigger('create');
|
||||
page.querySelector('.listTopPaging').innerHTML = pagingHtml;
|
||||
$('.listTopPaging', page).show();
|
||||
|
||||
$('.listBottomPaging', page).html(pagingHtml).trigger('create');
|
||||
|
|
|
@ -151,12 +151,12 @@
|
|||
|
||||
if (val) {
|
||||
updateSearchOverlay(getSearchOverlay(true).fadeIn('fast'), val);
|
||||
$(document.body).addClass('bodyWithPopupOpen');
|
||||
document.body.classList.add('bodyWithPopupOpen');
|
||||
|
||||
} else {
|
||||
|
||||
updateSearchOverlay(getSearchOverlay(false).fadeOut('fast'), val);
|
||||
$(document.body).removeClass('bodyWithPopupOpen');
|
||||
document.body.classList.remove('bodyWithPopupOpen');
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -123,7 +123,7 @@
|
|||
html += getLibraryButtonsHtml(items);
|
||||
html += '</div>';
|
||||
|
||||
$(elem).html(html);
|
||||
elem.innerHTML = html;
|
||||
|
||||
handleLibraryLinkNavigations(elem);
|
||||
});
|
||||
|
@ -177,7 +177,9 @@
|
|||
html += '</div>';
|
||||
}
|
||||
|
||||
$(elem).html(html).lazyChildren().createCardMenus();
|
||||
elem.innerHTML = html;
|
||||
|
||||
$(elem).lazyChildren().createCardMenus();
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -212,7 +214,9 @@
|
|||
html += '</div>';
|
||||
}
|
||||
|
||||
$(elem).html(html).lazyChildren().createCardMenus();
|
||||
elem.innerHTML = html;
|
||||
|
||||
$(elem).lazyChildren().createCardMenus();
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -262,7 +266,9 @@
|
|||
html += '</div>';
|
||||
}
|
||||
|
||||
$(elem).html(html).lazyChildren().createCardMenus({ showDetailsMenu: false });
|
||||
elem.innerHTML = html;
|
||||
|
||||
$(elem).lazyChildren().createCardMenus({ showDetailsMenu: false });
|
||||
|
||||
handleLibraryLinkNavigations(elem);
|
||||
});
|
||||
|
@ -315,7 +321,9 @@
|
|||
html += '</div>';
|
||||
}
|
||||
|
||||
$(elem).html(html).lazyChildren().createCardMenus();
|
||||
elem.innerHTML = html;
|
||||
|
||||
$(elem).lazyChildren().createCardMenus();
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -350,7 +358,7 @@
|
|||
|
||||
}).join('');
|
||||
|
||||
$(elem).html(channelsHtml);
|
||||
elem.innerHTML = channelsHtml;
|
||||
|
||||
for (var i = 0, length = channels.length; i < length; i++) {
|
||||
|
||||
|
@ -402,7 +410,10 @@
|
|||
});
|
||||
html += '</div>';
|
||||
|
||||
$('#channel' + channel.Id + '', page).html(html).lazyChildren().trigger('create').createCardMenus();
|
||||
var elem = page.querySelector('#channel' + channel.Id + '');
|
||||
elem.innerHTML = html;
|
||||
|
||||
$(elem).lazyChildren().trigger('create').createCardMenus();
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -441,7 +452,9 @@
|
|||
showDetailsMenu: true
|
||||
});
|
||||
|
||||
elem.html(html).lazyChildren().trigger('create');
|
||||
elem.innerHTML = html;
|
||||
|
||||
$(elem).lazyChildren().trigger('create');
|
||||
|
||||
});
|
||||
}
|
||||
|
|
|
@ -338,7 +338,7 @@ var Dashboard = {
|
|||
var html = '<span style="margin-right: 1em;">' + Globalize.translate('MessagePleaseRestart') + '</span>';
|
||||
|
||||
if (systemInfo.CanSelfRestart) {
|
||||
html += '<button type="button" data-icon="refresh" onclick="$(this).buttonEnabled(false);Dashboard.restartServer();" data-theme="b" data-inline="true" data-mini="true">' + Globalize.translate('ButtonRestart') + '</button>';
|
||||
html += '<button type="button" data-icon="refresh" onclick="this.disabled=\'disabled\';Dashboard.restartServer();" data-theme="b" data-inline="true" data-mini="true">' + Globalize.translate('ButtonRestart') + '</button>';
|
||||
}
|
||||
|
||||
Dashboard.showFooterNotification({ id: "serverRestartWarning", html: html, forceShow: true, allowHide: false });
|
||||
|
@ -346,14 +346,17 @@ var Dashboard = {
|
|||
|
||||
hideServerRestartWarning: function () {
|
||||
|
||||
$('#serverRestartWarning').remove();
|
||||
var elem = document.getElementById('serverRestartWarning');
|
||||
if (elem) {
|
||||
elem.parentNode.removeChild(elem);
|
||||
}
|
||||
},
|
||||
|
||||
showDashboardRefreshNotification: function () {
|
||||
|
||||
var html = '<span style="margin-right: 1em;">' + Globalize.translate('MessagePleaseRefreshPage') + '</span>';
|
||||
|
||||
html += '<button type="button" data-icon="refresh" onclick="$(this).buttonEnabled(false);Dashboard.reloadPage();" data-theme="b" data-inline="true" data-mini="true">' + Globalize.translate('ButtonRefresh') + '</button>';
|
||||
html += '<button type="button" data-icon="refresh" onclick="this.disabled=\'disabled\';Dashboard.reloadPage();" data-theme="b" data-inline="true" data-mini="true">' + Globalize.translate('ButtonRefresh') + '</button>';
|
||||
|
||||
Dashboard.showFooterNotification({ id: "dashboardVersionWarning", html: html, forceShow: true, allowHide: false });
|
||||
},
|
||||
|
@ -376,7 +379,12 @@ var Dashboard = {
|
|||
|
||||
hideDashboardVersionWarning: function () {
|
||||
|
||||
$('#dashboardVersionWarning').remove();
|
||||
var elem = document.getElementById('dashboardVersionWarning');
|
||||
|
||||
if (elem) {
|
||||
|
||||
elem.parentNode.removeChild(elem);
|
||||
}
|
||||
},
|
||||
|
||||
showFooterNotification: function (options) {
|
||||
|
@ -614,7 +622,9 @@ var Dashboard = {
|
|||
html += '</div>';
|
||||
html += '</paper-dialog>';
|
||||
|
||||
$(document.body).append(html).addClass('bodyWithPopupOpen');
|
||||
$(document.body).append(html);
|
||||
|
||||
document.body.classList.add('bodyWithPopupOpen');
|
||||
|
||||
// This timeout is obviously messy but it's unclear how to determine when the webcomponent is ready for use
|
||||
// element onload never fires
|
||||
|
@ -625,8 +635,8 @@ var Dashboard = {
|
|||
// Has to be assigned a z-index after the call to .open()
|
||||
$(dlg).on('iron-overlay-closed', function (e) {
|
||||
var confirmed = this.closingReason.confirmed;
|
||||
$(this).remove();
|
||||
$(document.body).removeClass('bodyWithPopupOpen');
|
||||
this.parentNode.removeChild(this);
|
||||
document.body.classList.remove('bodyWithPopupOpen');
|
||||
callback(confirmed);
|
||||
});
|
||||
|
||||
|
@ -798,7 +808,7 @@ var Dashboard = {
|
|||
|
||||
ensureHeader: function (page) {
|
||||
|
||||
if (page.hasClass('standalonePage') && !page.hasClass('noHeaderPage')) {
|
||||
if (page.classList.contains('standalonePage') && !page.classList.contains('noHeaderPage')) {
|
||||
|
||||
Dashboard.renderHeader(page);
|
||||
}
|
||||
|
@ -806,16 +816,16 @@ var Dashboard = {
|
|||
|
||||
renderHeader: function (page) {
|
||||
|
||||
var header = $('.header', page);
|
||||
var header = page.querySelector('.header');
|
||||
|
||||
if (!header.length) {
|
||||
if (!header) {
|
||||
var headerHtml = '';
|
||||
|
||||
headerHtml += '<div class="header">';
|
||||
|
||||
headerHtml += '<a class="logo" href="index.html" style="text-decoration:none;font-size: 22px;">';
|
||||
|
||||
if (page.hasClass('standalonePage')) {
|
||||
if (page.classList.contains('standalonePage')) {
|
||||
|
||||
headerHtml += '<img class="imgLogoIcon" src="css/images/mblogoicon.png" />';
|
||||
headerHtml += '<span class="logoLibraryMenuButtonText">EMBY</span>';
|
||||
|
@ -824,7 +834,7 @@ var Dashboard = {
|
|||
headerHtml += '</a>';
|
||||
|
||||
headerHtml += '</div>';
|
||||
page.prepend(headerHtml);
|
||||
$(page).prepend(headerHtml);
|
||||
}
|
||||
},
|
||||
|
||||
|
@ -885,9 +895,9 @@ var Dashboard = {
|
|||
|
||||
ensureToolsMenu: function (page) {
|
||||
|
||||
var sidebar = $('.toolsSidebar', page);
|
||||
var sidebar = page.querySelector('.toolsSidebar');
|
||||
|
||||
if (!sidebar.length) {
|
||||
if (!sidebar) {
|
||||
|
||||
var html = '<div class="content-secondary toolsSidebar">';
|
||||
|
||||
|
@ -901,55 +911,55 @@ var Dashboard = {
|
|||
html += '</div>';
|
||||
|
||||
$('.content-primary', page).before(html);
|
||||
$(page).trigger('create');
|
||||
Events.trigger(page, 'create');
|
||||
}
|
||||
},
|
||||
|
||||
getToolsMenuLinks: function (page) {
|
||||
|
||||
var pageElem = page[0];
|
||||
var pageElem = page;
|
||||
|
||||
var isServicesPage = page.hasClass('appServicesPage');
|
||||
var isServicesPage = page.classList.contains('appServicesPage');
|
||||
var context = getParameterByName('context');
|
||||
|
||||
return [{
|
||||
name: Globalize.translate('TabServer'),
|
||||
href: "dashboard.html",
|
||||
selected: page.hasClass("dashboardHomePage"),
|
||||
selected: page.classList.contains("dashboardHomePage"),
|
||||
icon: 'dashboard',
|
||||
color: '#38c'
|
||||
}, {
|
||||
name: Globalize.translate('TabDevices'),
|
||||
href: "devices.html",
|
||||
selected: page.hasClass("devicesPage"),
|
||||
selected: page.classList.contains("devicesPage"),
|
||||
icon: 'tablet',
|
||||
color: '#ECA403'
|
||||
}, {
|
||||
name: Globalize.translate('TabUsers'),
|
||||
href: "userprofiles.html",
|
||||
selected: page.hasClass("userProfilesPage"),
|
||||
selected: page.classList.contains("userProfilesPage"),
|
||||
icon: 'people',
|
||||
color: '#679C34'
|
||||
}, {
|
||||
name: Globalize.translate('TabLibrary'),
|
||||
divider: true,
|
||||
href: "library.html",
|
||||
selected: page.hasClass("mediaLibraryPage"),
|
||||
selected: page.classList.contains("mediaLibraryPage"),
|
||||
icon: 'video-library'
|
||||
}, {
|
||||
name: Globalize.translate('TabMetadata'),
|
||||
href: "metadata.html",
|
||||
selected: page.hasClass('metadataConfigurationPage'),
|
||||
selected: page.classList.contains('metadataConfigurationPage'),
|
||||
icon: 'insert-drive-file'
|
||||
}, {
|
||||
name: Globalize.translate('TabPlayback'),
|
||||
href: "playbackconfiguration.html",
|
||||
selected: page.hasClass('playbackConfigurationPage'),
|
||||
selected: page.classList.contains('playbackConfigurationPage'),
|
||||
icon: 'play-circle-filled'
|
||||
}, {
|
||||
name: Globalize.translate('TabSync'),
|
||||
href: "syncactivity.html",
|
||||
selected: page.hasClass('syncConfigurationPage') || (isServicesPage && context == 'sync'),
|
||||
selected: page.classList.contains('syncConfigurationPage') || (isServicesPage && context == 'sync'),
|
||||
icon: 'refresh'
|
||||
}, {
|
||||
divider: true,
|
||||
|
@ -957,31 +967,31 @@ var Dashboard = {
|
|||
}, {
|
||||
name: Globalize.translate('TabAutoOrganize'),
|
||||
href: "autoorganizelog.html",
|
||||
selected: page.hasClass("organizePage"),
|
||||
selected: page.classList.contains("organizePage"),
|
||||
icon: 'folder',
|
||||
color: '#01C0DD'
|
||||
}, {
|
||||
name: Globalize.translate('TabDLNA'),
|
||||
href: "dlnasettings.html",
|
||||
selected: page.hasClass("dlnaPage"),
|
||||
selected: page.classList.contains("dlnaPage"),
|
||||
icon: 'tv',
|
||||
color: '#E5342E'
|
||||
}, {
|
||||
name: Globalize.translate('TabLiveTV'),
|
||||
href: "livetvstatus.html",
|
||||
selected: page.hasClass("liveTvSettingsPage") || (isServicesPage && context == 'livetv'),
|
||||
selected: page.classList.contains("liveTvSettingsPage") || (isServicesPage && context == 'livetv'),
|
||||
icon: 'live-tv',
|
||||
color: '#293AAE'
|
||||
}, {
|
||||
name: Globalize.translate('TabNotifications'),
|
||||
href: "notificationsettings.html",
|
||||
selected: page.hasClass("notificationConfigurationPage"),
|
||||
selected: page.classList.contains("notificationConfigurationPage"),
|
||||
icon: 'notifications',
|
||||
color: 'brown'
|
||||
}, {
|
||||
name: Globalize.translate('TabPlugins'),
|
||||
href: "plugins.html",
|
||||
selected: page.hasClass("pluginConfigurationPage"),
|
||||
selected: page.classList.contains("pluginConfigurationPage"),
|
||||
icon: 'add-shopping-cart',
|
||||
color: '#9D22B1'
|
||||
}, {
|
||||
|
@ -990,13 +1000,13 @@ var Dashboard = {
|
|||
}, {
|
||||
name: Globalize.translate('TabAdvanced'),
|
||||
href: "advanced.html",
|
||||
selected: page.hasClass("advancedConfigurationPage"),
|
||||
selected: page.classList.contains("advancedConfigurationPage"),
|
||||
icon: 'settings',
|
||||
color: '#F16834'
|
||||
}, {
|
||||
name: Globalize.translate('TabScheduledTasks'),
|
||||
href: "scheduledtasks.html",
|
||||
selected: page.hasClass("scheduledTasksConfigurationPage"),
|
||||
selected: page.classList.contains("scheduledTasksConfigurationPage"),
|
||||
icon: 'schedule',
|
||||
color: '#38c'
|
||||
}, {
|
||||
|
@ -1295,21 +1305,23 @@ var Dashboard = {
|
|||
|
||||
ensurePageTitle: function (page) {
|
||||
|
||||
if (!page.hasClass('type-interior')) {
|
||||
if (!page.classList.contains('type-interior')) {
|
||||
return;
|
||||
}
|
||||
|
||||
if ($('.pageTitle', page).length) {
|
||||
var pageElem = page;
|
||||
|
||||
if (pageElem.querySelector('.pageTitle')) {
|
||||
return;
|
||||
}
|
||||
|
||||
var parent = $('.content-primary', page);
|
||||
var parent = pageElem.querySelector('.content-primary');
|
||||
|
||||
if (!parent.length) {
|
||||
parent = $('.ui-content', page)[0];
|
||||
if (!parent) {
|
||||
parent = pageElem.getElementsByClassName('ui-content')[0];
|
||||
}
|
||||
|
||||
var helpUrl = page.attr('data-helpurl');
|
||||
var helpUrl = pageElem.getAttribute('data-helpurl');
|
||||
|
||||
var html = '<div>';
|
||||
html += '<h1 class="pageTitle" style="display:inline-block;">' + (document.title || ' ') + '</h1>';
|
||||
|
@ -1329,7 +1341,11 @@ var Dashboard = {
|
|||
|
||||
setPageTitle: function (title) {
|
||||
|
||||
$('.pageTitle', $.mobile.activePage).html(title);
|
||||
var elem = $($.mobile.activePage)[0].querySelector('.pageTitle');
|
||||
|
||||
if (elem) {
|
||||
elem.innerHTML = title;
|
||||
}
|
||||
|
||||
if (title) {
|
||||
document.title = title;
|
||||
|
@ -1579,10 +1595,10 @@ var Dashboard = {
|
|||
|
||||
if (dependencies && dependencies.length) {
|
||||
require(dependencies, function () {
|
||||
$(page).trigger(name);
|
||||
Events.trigger(page, name);
|
||||
});
|
||||
} else {
|
||||
$(page).trigger(name);
|
||||
Events.trigger(page, name);
|
||||
}
|
||||
});
|
||||
},
|
||||
|
@ -1787,44 +1803,44 @@ var AppInfo = {};
|
|||
|
||||
function setDocumentClasses() {
|
||||
|
||||
var elem = $(document.documentElement);
|
||||
var elem = document.documentElement;
|
||||
|
||||
if (AppInfo.enableBottomTabs) {
|
||||
elem.addClass('bottomSecondaryNav');
|
||||
elem.classList.add('bottomSecondaryNav');
|
||||
}
|
||||
|
||||
if (AppInfo.isTouchPreferred) {
|
||||
elem.addClass('touch');
|
||||
elem.classList.add('touch');
|
||||
} else {
|
||||
elem.addClass('pointerInput');
|
||||
elem.classList.add('pointerInput');
|
||||
}
|
||||
|
||||
if (AppInfo.cardMargin) {
|
||||
elem.addClass(AppInfo.cardMargin);
|
||||
elem.classList.add(AppInfo.cardMargin);
|
||||
}
|
||||
|
||||
if (!AppInfo.enableStudioTabs) {
|
||||
elem.addClass('studioTabDisabled');
|
||||
elem.classList.add('studioTabDisabled');
|
||||
}
|
||||
|
||||
if (!AppInfo.enablePeopleTabs) {
|
||||
elem.addClass('peopleTabDisabled');
|
||||
elem.classList.add('peopleTabDisabled');
|
||||
}
|
||||
|
||||
if (!AppInfo.enableTvEpisodesTab) {
|
||||
elem.addClass('tvEpisodesTabDisabled');
|
||||
elem.classList.add('tvEpisodesTabDisabled');
|
||||
}
|
||||
|
||||
if (!AppInfo.enableMovieTrailersTab) {
|
||||
elem.addClass('movieTrailersTabDisabled');
|
||||
elem.classList.add('movieTrailersTabDisabled');
|
||||
}
|
||||
|
||||
if (!AppInfo.enableSupporterMembership) {
|
||||
elem.addClass('supporterMembershipDisabled');
|
||||
elem.classList.add('supporterMembershipDisabled');
|
||||
}
|
||||
|
||||
if (AppInfo.isNativeApp) {
|
||||
elem.addClass('nativeApp');
|
||||
elem.classList.add('nativeApp');
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2101,9 +2117,9 @@ $(document).on('pagecreate', ".page", function () {
|
|||
}
|
||||
|
||||
if (current == 'b' && !$.browser.mobile) {
|
||||
$(document.body).addClass('darkScrollbars');
|
||||
document.body.classList.add('darkScrollbars');
|
||||
} else {
|
||||
$(document.body).removeClass('darkScrollbars');
|
||||
document.body.classList.remove('darkScrollbars');
|
||||
}
|
||||
|
||||
}).on('pageinit', ".page", function () {
|
||||
|
@ -2114,14 +2130,12 @@ $(document).on('pagecreate', ".page", function () {
|
|||
dependencies = dependencies ? dependencies.split(',') : null;
|
||||
Dashboard.firePageEvent(page, 'pageinitdepends', dependencies);
|
||||
|
||||
//$('.localnav a, .libraryViewNav a').attr('data-transition', 'none');
|
||||
|
||||
}).on('pagebeforeshow', ".page", function () {
|
||||
|
||||
var page = this;
|
||||
var dependencies = this.getAttribute('data-require');
|
||||
|
||||
Dashboard.ensurePageTitle($(page));
|
||||
Dashboard.ensurePageTitle(page);
|
||||
dependencies = dependencies ? dependencies.split(',') : null;
|
||||
Dashboard.firePageEvent(page, 'pagebeforeshowready', dependencies);
|
||||
|
||||
|
@ -2134,13 +2148,13 @@ $(document).on('pagecreate', ".page", function () {
|
|||
|
||||
}).on('pageshowbeginready', ".page", function () {
|
||||
|
||||
var page = $(this);
|
||||
var page = this;
|
||||
|
||||
var apiClient = window.ApiClient;
|
||||
|
||||
if (apiClient && apiClient.accessToken() && Dashboard.getCurrentUserId()) {
|
||||
|
||||
var isSettingsPage = page.hasClass('type-interior');
|
||||
var isSettingsPage = page.classList.contains('type-interior');
|
||||
|
||||
if (isSettingsPage) {
|
||||
Dashboard.ensureToolsMenu(page);
|
||||
|
@ -2167,7 +2181,7 @@ $(document).on('pagecreate', ".page", function () {
|
|||
}
|
||||
}
|
||||
|
||||
if (!isConnectMode && this.id !== "loginPage" && !page.hasClass('forgotPasswordPage') && !page.hasClass('wizardPage')) {
|
||||
if (!isConnectMode && this.id !== "loginPage" && !page.classList.contains('forgotPasswordPage') && !page.classList.contains('wizardPage')) {
|
||||
|
||||
Logger.log('Not logged into server. Redirecting to login.');
|
||||
Dashboard.logout();
|
||||
|
@ -2183,7 +2197,7 @@ $(document).on('pagecreate', ".page", function () {
|
|||
Dashboard.refreshSystemInfoFromServer();
|
||||
}
|
||||
|
||||
if (!page.hasClass('libraryPage')) {
|
||||
if (!page.classList.contains('libraryPage')) {
|
||||
require(['jqmicons']);
|
||||
}
|
||||
});
|
|
@ -45,7 +45,7 @@
|
|||
ApiClient.getItems(Dashboard.getCurrentUserId(), query).done(function (result) {
|
||||
|
||||
// Scroll back up so they can see the results from the beginning
|
||||
$(document).scrollTop(0);
|
||||
window.scrollTo(0, 0);
|
||||
|
||||
var html = '';
|
||||
var pagingHtml = LibraryBrowser.getQueryPagingHtml({
|
||||
|
@ -57,7 +57,7 @@
|
|||
updatePageSizeSetting: false
|
||||
});
|
||||
|
||||
$('.listTopPaging', page).html(pagingHtml).trigger('create');
|
||||
page.querySelector('.listTopPaging').innerHTML = pagingHtml;
|
||||
|
||||
updateFilterControls(page);
|
||||
|
||||
|
@ -68,9 +68,11 @@
|
|||
smallIcon: true
|
||||
});
|
||||
|
||||
var elem = $('#items', page).html(html).trigger('create').lazyChildren();
|
||||
var elem = page.querySelector('#items');
|
||||
elem.innerHTML = html + pagingHtml;
|
||||
ImageLoader.lazyChildren(elem);
|
||||
|
||||
$(pagingHtml).appendTo(elem).trigger('create');
|
||||
$(elem).trigger('create');
|
||||
|
||||
$('.btnNextPage', page).on('click', function () {
|
||||
query.StartIndex += query.Limit;
|
||||
|
|
|
@ -13,10 +13,10 @@
|
|||
$('#txtSupporterKey', page).val(info.SupporterKey);
|
||||
|
||||
if (info.SupporterKey && !info.IsMBSupporter) {
|
||||
$('#txtSupporterKey', page).addClass("invalidEntry");
|
||||
page.querySelector('#txtSupporterKey').classList.add('invalidEntry');
|
||||
$('.notSupporter', page).show();
|
||||
} else {
|
||||
$('#txtSupporterKey', page).removeClass("invalidEntry");
|
||||
page.querySelector('#txtSupporterKey').classList.remove('invalidEntry');
|
||||
$('.notSupporter', page).hide();
|
||||
}
|
||||
|
||||
|
|
|
@ -177,9 +177,7 @@
|
|||
html += getSyncJobHtml(page, job, cardBoxCssClass, syncJobPage);
|
||||
}
|
||||
|
||||
var elem = $('.syncActivity', page).html(html).trigger('create');
|
||||
|
||||
$(".lazy", elem).unveil(200);
|
||||
var elem = $('.syncActivity', page).html(html).trigger('create').lazyChildren();
|
||||
|
||||
$('.btnJobMenu', elem).on('click', function () {
|
||||
showJobMenu(this);
|
||||
|
|
|
@ -122,9 +122,7 @@
|
|||
|
||||
html += '</ul>';
|
||||
|
||||
var elem = $('.jobItems', page).html(html).trigger('create');
|
||||
|
||||
$(".lazy", elem).unveil(200);
|
||||
var elem = $('.jobItems', page).html(html).trigger('create').lazyChildren();
|
||||
|
||||
$('.btnJobItemMenu', elem).on('click', function () {
|
||||
showJobItemMenu(this);
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
(function (document, $) {
|
||||
(function (document) {
|
||||
|
||||
var currentOwnerId;
|
||||
var currentThemeIds = [];
|
||||
|
@ -59,7 +59,7 @@
|
|||
return MediaController.getCurrentPlayer();
|
||||
}
|
||||
|
||||
$(document).on('thememediadownload', ".libraryPage", function (e, themeMediaResult) {
|
||||
Events.on(document, 'thememediadownload', ".libraryPage", function (e, themeMediaResult) {
|
||||
|
||||
if (!enabled()) {
|
||||
return;
|
||||
|
@ -72,4 +72,4 @@
|
|||
}
|
||||
});
|
||||
|
||||
})(document, jQuery);
|
||||
})(document);
|
|
@ -25,7 +25,7 @@
|
|||
ApiClient.getGenres(Dashboard.getCurrentUserId(), query).done(function (result) {
|
||||
|
||||
// Scroll back up so they can see the results from the beginning
|
||||
$(document).scrollTop(0);
|
||||
window.scrollTo(0, 0);
|
||||
|
||||
var html = '';
|
||||
|
||||
|
@ -85,7 +85,9 @@
|
|||
});
|
||||
}
|
||||
|
||||
$('#items', page).html(html).lazyChildren();
|
||||
var elem = page.querySelector('#items');
|
||||
elem.innerHTML = html;
|
||||
ImageLoader.lazyChildren(elem);
|
||||
|
||||
$('.btnNextPage', page).on('click', function () {
|
||||
query.StartIndex += query.Limit;
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
ApiClient.getPeople(Dashboard.getCurrentUserId(), query).done(function (result) {
|
||||
|
||||
// Scroll back up so they can see the results from the beginning
|
||||
$(document).scrollTop(0);
|
||||
window.scrollTo(0, 0);
|
||||
|
||||
var html = '';
|
||||
var pagingHtml = LibraryBrowser.getQueryPagingHtml({
|
||||
|
@ -38,7 +38,7 @@
|
|||
showLimit: false
|
||||
});
|
||||
|
||||
$('.listTopPaging', page).html(pagingHtml).trigger('create');
|
||||
page.querySelector('.listTopPaging').innerHTML = pagingHtml;
|
||||
|
||||
updateFilterControls(page);
|
||||
|
||||
|
@ -52,9 +52,9 @@
|
|||
lazy: true
|
||||
});
|
||||
|
||||
var elem = $('#items', page).html(html).lazyChildren();
|
||||
|
||||
$(pagingHtml).appendTo(elem).trigger('create');
|
||||
var elem = page.querySelector('#items');
|
||||
elem.innerHTML = html + pagingHtml;
|
||||
ImageLoader.lazyChildren(elem);
|
||||
|
||||
$('.btnNextPage', page).on('click', function () {
|
||||
query.StartIndex += query.Limit;
|
||||
|
|
|
@ -176,9 +176,9 @@
|
|||
var page = this;
|
||||
|
||||
if (enableScrollX()) {
|
||||
$('#resumableItems', page).addClass('hiddenScrollX');
|
||||
page.querySelector('#resumableItems').classList.add('hiddenScrollX');
|
||||
} else {
|
||||
$('#resumableItems', page).removeClass('hiddenScrollX');
|
||||
page.querySelector('#resumableItems').classList.remove('hiddenScrollX');
|
||||
}
|
||||
|
||||
reload(page);
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
ApiClient.getItems(Dashboard.getCurrentUserId(), query).done(function (result) {
|
||||
|
||||
// Scroll back up so they can see the results from the beginning
|
||||
$(document).scrollTop(0);
|
||||
window.scrollTo(0, 0);
|
||||
|
||||
var html = '';
|
||||
var trigger = false;
|
||||
|
@ -39,7 +39,7 @@
|
|||
showLimit: false
|
||||
});
|
||||
|
||||
$('.listTopPaging', page).html(pagingHtml).trigger('create');
|
||||
page.querySelector('.listTopPaging').innerHTML = pagingHtml;
|
||||
|
||||
updateFilterControls(page);
|
||||
|
||||
|
@ -111,14 +111,14 @@
|
|||
});
|
||||
}
|
||||
|
||||
var elem = $('#items', page).html(html).lazyChildren();
|
||||
var elem = page.querySelector('#items');
|
||||
elem.innerHTML = html + pagingHtml;
|
||||
ImageLoader.lazyChildren(elem);
|
||||
|
||||
if (trigger) {
|
||||
elem.trigger('create');
|
||||
$(elem).trigger('create');
|
||||
}
|
||||
|
||||
$(pagingHtml).appendTo(elem).trigger('create');
|
||||
|
||||
$('.btnNextPage', page).on('click', function () {
|
||||
query.StartIndex += query.Limit;
|
||||
reloadItems(page);
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
ApiClient.getStudios(Dashboard.getCurrentUserId(), query).done(function (result) {
|
||||
|
||||
// Scroll back up so they can see the results from the beginning
|
||||
$(document).scrollTop(0);
|
||||
window.scrollTo(0, 0);
|
||||
|
||||
var html = '';
|
||||
|
||||
|
@ -49,7 +49,9 @@
|
|||
|
||||
});
|
||||
|
||||
$('#items', page).html(html).lazyChildren();
|
||||
var elem = page.querySelector('#items');
|
||||
elem.innerHTML = html;
|
||||
ImageLoader.lazyChildren(elem);
|
||||
|
||||
$('.btnNextPage', page).on('click', function () {
|
||||
query.StartIndex += query.Limit;
|
||||
|
|
|
@ -39,13 +39,8 @@
|
|||
|
||||
if (query.ParentId) {
|
||||
|
||||
$('.scopedLibraryViewNav', page).show();
|
||||
$('.globalNav', page).hide();
|
||||
context = 'tv';
|
||||
|
||||
} else {
|
||||
$('.scopedLibraryViewNav', page).hide();
|
||||
$('.globalNav', page).show();
|
||||
}
|
||||
|
||||
ApiClient.getJSON(ApiClient.getUrl("Shows/Upcoming", query)).done(function (result) {
|
||||
|
@ -53,12 +48,13 @@
|
|||
var items = result.Items;
|
||||
|
||||
if (items.length) {
|
||||
$('.noItemsMessage', page).hide();
|
||||
page.querySelector('.noItemsMessage').style.display = 'none';
|
||||
} else {
|
||||
$('.noItemsMessage', page).show();
|
||||
page.querySelector('.noItemsMessage').style.display = 'block';
|
||||
}
|
||||
|
||||
$('#upcomingItems', page).html(LibraryBrowser.getPosterViewHtml({
|
||||
var elem = page.querySelector('#upcomingItems');
|
||||
elem.innerHTML = LibraryBrowser.getPosterViewHtml({
|
||||
items: items,
|
||||
showLocationTypeIndicator: false,
|
||||
shape: "backdrop",
|
||||
|
@ -70,7 +66,9 @@
|
|||
lazy: true,
|
||||
showDetailsMenu: true
|
||||
|
||||
})).lazyChildren();
|
||||
});
|
||||
|
||||
ImageLoader.lazyChildren(elem);
|
||||
|
||||
Dashboard.hideLoadingMsg();
|
||||
|
||||
|
|
98
dashboard-ui/thirdparty/jquery.unveil-custom.js
vendored
98
dashboard-ui/thirdparty/jquery.unveil-custom.js
vendored
|
@ -1,5 +1,19 @@
|
|||
(function ($) {
|
||||
|
||||
})(jQuery);
|
||||
|
||||
/**
|
||||
* jQuery Unveil
|
||||
* A very lightweight jQuery plugin to lazy load images
|
||||
* http://luis-almeida.github.com/unveil
|
||||
*
|
||||
* Licensed under the MIT license.
|
||||
* Copyright 2013 Luís Almeida
|
||||
* https://github.com/luis-almeida
|
||||
*/
|
||||
|
||||
(function ($) {
|
||||
|
||||
/**
|
||||
* Copyright 2012, Digital Fusion
|
||||
* Licensed under the MIT license.
|
||||
|
@ -11,13 +25,11 @@
|
|||
* only accounts for vertical position, not horizontal.
|
||||
*/
|
||||
var $w = $(window);
|
||||
$.fn.visibleInViewport = function (partial, hidden, direction, threshold) {
|
||||
|
||||
if (this.length < 1)
|
||||
return;
|
||||
function visibleInViewport(elem, partial, hidden, direction, threshold) {
|
||||
|
||||
var $t = this.length > 1 ? this.eq(0) : this,
|
||||
t = $t.get(0),
|
||||
var $t = $(elem),
|
||||
t = elem,
|
||||
vpWidth = $w.width(),
|
||||
vpHeight = $w.height(),
|
||||
direction = (direction) ? direction : 'both',
|
||||
|
@ -63,21 +75,7 @@
|
|||
else if (direction === 'horizontal')
|
||||
return !!clientSize && ((compareRight <= viewRight) && (compareLeft >= viewLeft));
|
||||
}
|
||||
};
|
||||
|
||||
})(jQuery);
|
||||
|
||||
/**
|
||||
* jQuery Unveil
|
||||
* A very lightweight jQuery plugin to lazy load images
|
||||
* http://luis-almeida.github.com/unveil
|
||||
*
|
||||
* Licensed under the MIT license.
|
||||
* Copyright 2013 Luís Almeida
|
||||
* https://github.com/luis-almeida
|
||||
*/
|
||||
|
||||
(function ($) {
|
||||
}
|
||||
|
||||
var unveilId = 0;
|
||||
|
||||
|
@ -100,7 +98,7 @@
|
|||
var threshold = getThreshold();
|
||||
|
||||
function isVisible() {
|
||||
return $(this).visibleInViewport(true, false, 'both', threshold);
|
||||
return visibleInViewport(this, true, false, 'both', threshold);
|
||||
}
|
||||
|
||||
function fillImage() {
|
||||
|
@ -112,16 +110,19 @@
|
|||
}
|
||||
}
|
||||
|
||||
$.fn.unveil = function () {
|
||||
function unveilElements(elems) {
|
||||
|
||||
var $w = $(window),
|
||||
images = this,
|
||||
if (!elems.length) {
|
||||
return;
|
||||
}
|
||||
|
||||
var images = $(elems),
|
||||
loaded;
|
||||
|
||||
unveilId++;
|
||||
var eventNamespace = 'unveil' + unveilId;
|
||||
|
||||
this.one("unveil", fillImage);
|
||||
images.one("unveil", fillImage);
|
||||
|
||||
function unveil() {
|
||||
var inview = images.filter(isVisible);
|
||||
|
@ -130,39 +131,54 @@
|
|||
images = images.not(loaded);
|
||||
|
||||
if (!images.length) {
|
||||
$w.off('scroll.' + eventNamespace);
|
||||
$w.off('resize.' + eventNamespace);
|
||||
Events.off(window, 'scroll.' + eventNamespace);
|
||||
Events.off(window, 'resize.' + eventNamespace);
|
||||
}
|
||||
}
|
||||
|
||||
$w.on('scroll.' + eventNamespace, unveil);
|
||||
$w.on('resize.' + eventNamespace, unveil);
|
||||
Events.on(window, 'scroll.' + eventNamespace, unveil);
|
||||
Events.on(window, 'resize.' + eventNamespace, unveil);
|
||||
|
||||
unveil();
|
||||
}
|
||||
|
||||
return this;
|
||||
function fillImages(elems) {
|
||||
|
||||
};
|
||||
for (var i = 0, length = elems.length; i < length; i++) {
|
||||
var elem = elems[0];
|
||||
var source = elem.getAttribute('data-src');
|
||||
if (source) {
|
||||
ImageStore.setImageInto(elem, source);
|
||||
elem.setAttribute("data-src", '');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$.fn.fillImages = function () {
|
||||
function lazyChildren(elem) {
|
||||
|
||||
return this.each(fillImage);
|
||||
};
|
||||
unveilElements(elem.getElementsByClassName('lazy'));
|
||||
}
|
||||
|
||||
$.fn.lazyChildren = function () {
|
||||
|
||||
var lazyItems = $(".lazy", this);
|
||||
|
||||
if (lazyItems.length) {
|
||||
lazyItems.unveil();
|
||||
if (this.length == 1) {
|
||||
lazyChildren(this[0]);
|
||||
} else {
|
||||
unveilElements($('.lazy', this));
|
||||
}
|
||||
|
||||
return this;
|
||||
};
|
||||
|
||||
$.fn.lazyImage = function (url) {
|
||||
function lazyImage(elem, url) {
|
||||
|
||||
return this.attr('data-src', url).fillImages();
|
||||
elem.setAttribute('data-src', url);
|
||||
fillImages([elem]);
|
||||
}
|
||||
|
||||
window.ImageLoader = {
|
||||
fillImages: fillImages,
|
||||
lazyImage: lazyImage,
|
||||
lazyChildren: lazyChildren
|
||||
};
|
||||
|
||||
})(window.jQuery || window.Zepto);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue