mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
update movie tabs
This commit is contained in:
parent
98fbc2497c
commit
746135c2f7
8 changed files with 651 additions and 662 deletions
|
@ -1,4 +1,4 @@
|
||||||
<div id="moviesPage" data-role="page" data-dom-cache="true" class="page libraryPage backdropPage pageWithAbsoluteTabs collectionEditorPage" data-backdroptype="movie" data-require="scripts/moviesrecommended,paper-tabs,paper-checkbox,paper-fab,scripts/alphapicker">
|
<div id="moviesPage" data-role="page" data-dom-cache="true" class="page libraryPage backdropPage pageWithAbsoluteTabs collectionEditorPage" data-backdroptype="movie">
|
||||||
|
|
||||||
<div class="libraryViewNav libraryViewNavWithMinHeight">
|
<div class="libraryViewNav libraryViewNavWithMinHeight">
|
||||||
<paper-tabs hidescrollbuttons noink>
|
<paper-tabs hidescrollbuttons noink>
|
||||||
|
|
|
@ -71,13 +71,10 @@
|
||||||
|
|
||||||
if (result.TotalRecordCount) {
|
if (result.TotalRecordCount) {
|
||||||
|
|
||||||
var context = getParameterByName('context');
|
|
||||||
|
|
||||||
if (view == "List") {
|
if (view == "List") {
|
||||||
|
|
||||||
html = LibraryBrowser.getListViewHtml({
|
html = LibraryBrowser.getListViewHtml({
|
||||||
items: result.Items,
|
items: result.Items,
|
||||||
context: context,
|
|
||||||
sortBy: query.SortBy
|
sortBy: query.SortBy
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -85,7 +82,6 @@
|
||||||
html = LibraryBrowser.getPosterViewHtml({
|
html = LibraryBrowser.getPosterViewHtml({
|
||||||
items: result.Items,
|
items: result.Items,
|
||||||
shape: "auto",
|
shape: "auto",
|
||||||
context: context,
|
|
||||||
showTitle: true,
|
showTitle: true,
|
||||||
centerText: true,
|
centerText: true,
|
||||||
lazy: true,
|
lazy: true,
|
||||||
|
@ -96,7 +92,6 @@
|
||||||
html = LibraryBrowser.getPosterViewHtml({
|
html = LibraryBrowser.getPosterViewHtml({
|
||||||
items: result.Items,
|
items: result.Items,
|
||||||
shape: "auto",
|
shape: "auto",
|
||||||
context: context,
|
|
||||||
showTitle: true,
|
showTitle: true,
|
||||||
cardLayout: true,
|
cardLayout: true,
|
||||||
lazy: true,
|
lazy: true,
|
||||||
|
@ -107,7 +102,6 @@
|
||||||
html = LibraryBrowser.getPosterViewHtml({
|
html = LibraryBrowser.getPosterViewHtml({
|
||||||
items: result.Items,
|
items: result.Items,
|
||||||
shape: "backdrop",
|
shape: "backdrop",
|
||||||
context: context,
|
|
||||||
showTitle: true,
|
showTitle: true,
|
||||||
centerText: true,
|
centerText: true,
|
||||||
lazy: true,
|
lazy: true,
|
||||||
|
@ -119,7 +113,6 @@
|
||||||
html = LibraryBrowser.getPosterViewHtml({
|
html = LibraryBrowser.getPosterViewHtml({
|
||||||
items: result.Items,
|
items: result.Items,
|
||||||
shape: "backdrop",
|
shape: "backdrop",
|
||||||
context: context,
|
|
||||||
showTitle: true,
|
showTitle: true,
|
||||||
lazy: true,
|
lazy: true,
|
||||||
preferThumb: true,
|
preferThumb: true,
|
||||||
|
@ -205,7 +198,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
pageIdOn('pageinit', 'boxsetsPage', function () {
|
pageIdOn('pageinit', 'boxsetsPage', function () {
|
||||||
|
|
||||||
var page = this;
|
var page = this;
|
||||||
|
|
||||||
var content = page;
|
var content = page;
|
||||||
|
@ -223,16 +216,19 @@
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
window.MoviesPage = window.MoviesPage || {};
|
return function (view, params, tabContent) {
|
||||||
window.MoviesPage.renderCollectionsTab = function (page, tabContent) {
|
|
||||||
|
var self = this;
|
||||||
|
|
||||||
|
self.initTab = function () {
|
||||||
|
|
||||||
|
initPage(tabContent);
|
||||||
|
};
|
||||||
|
|
||||||
|
self.renderTab = function () {
|
||||||
|
|
||||||
if (LibraryBrowser.needsRefresh(tabContent)) {
|
|
||||||
reloadItems(tabContent);
|
reloadItems(tabContent);
|
||||||
}
|
};
|
||||||
};
|
|
||||||
window.MoviesPage.initCollectionsTab = function (page, tabContent) {
|
|
||||||
|
|
||||||
initPage(tabContent);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
});
|
});
|
|
@ -1,151 +1,141 @@
|
||||||
define(['jQuery'], function ($) {
|
define(['jQuery'], function ($) {
|
||||||
|
|
||||||
var data = {};
|
return function (view, params, tabContent) {
|
||||||
function getPageData() {
|
|
||||||
var key = getSavedQueryKey();
|
var self = this;
|
||||||
var pageData = data[key];
|
|
||||||
|
var data = {};
|
||||||
if (!pageData) {
|
function getPageData() {
|
||||||
pageData = data[key] = {
|
var key = getSavedQueryKey();
|
||||||
query: {
|
var pageData = data[key];
|
||||||
SortBy: "SortName",
|
|
||||||
SortOrder: "Ascending",
|
if (!pageData) {
|
||||||
IncludeItemTypes: "Movie",
|
pageData = data[key] = {
|
||||||
Recursive: true,
|
query: {
|
||||||
Fields: "DateCreated,SyncInfo,ItemCounts",
|
SortBy: "SortName",
|
||||||
StartIndex: 0,
|
SortOrder: "Ascending",
|
||||||
Limit: LibraryBrowser.getDefaultPageSize()
|
IncludeItemTypes: "Movie",
|
||||||
},
|
Recursive: true,
|
||||||
view: LibraryBrowser.getSavedView(key) || LibraryBrowser.getDefaultItemsView('Thumb', 'Thumb')
|
Fields: "DateCreated,SyncInfo,ItemCounts",
|
||||||
};
|
StartIndex: 0,
|
||||||
|
Limit: LibraryBrowser.getDefaultPageSize()
|
||||||
pageData.query.ParentId = LibraryMenu.getTopParentId();
|
},
|
||||||
LibraryBrowser.loadSavedQueryValues(key, pageData.query);
|
view: LibraryBrowser.getSavedView(key) || LibraryBrowser.getDefaultItemsView('Thumb', 'Thumb')
|
||||||
|
};
|
||||||
|
|
||||||
|
pageData.query.ParentId = params.topParentId;
|
||||||
|
LibraryBrowser.loadSavedQueryValues(key, pageData.query);
|
||||||
|
}
|
||||||
|
return pageData;
|
||||||
|
}
|
||||||
|
|
||||||
|
function getQuery() {
|
||||||
|
|
||||||
|
return getPageData().query;
|
||||||
|
}
|
||||||
|
|
||||||
|
function getSavedQueryKey() {
|
||||||
|
|
||||||
|
return LibraryBrowser.getSavedQueryKey('genres');
|
||||||
|
}
|
||||||
|
|
||||||
|
function reloadItems(context) {
|
||||||
|
|
||||||
|
Dashboard.showLoadingMsg();
|
||||||
|
var query = getQuery();
|
||||||
|
|
||||||
|
ApiClient.getGenres(Dashboard.getCurrentUserId(), query).then(function (result) {
|
||||||
|
|
||||||
|
// Scroll back up so they can see the results from the beginning
|
||||||
|
window.scrollTo(0, 0);
|
||||||
|
|
||||||
|
var html = '';
|
||||||
|
|
||||||
|
var viewStyle = getPageData().view;
|
||||||
|
|
||||||
|
$('.listTopPaging', context).html(LibraryBrowser.getQueryPagingHtml({
|
||||||
|
startIndex: query.StartIndex,
|
||||||
|
limit: query.Limit,
|
||||||
|
totalRecordCount: result.TotalRecordCount,
|
||||||
|
viewButton: false,
|
||||||
|
showLimit: false,
|
||||||
|
updatePageSizeSetting: false,
|
||||||
|
addLayoutButton: true,
|
||||||
|
currentLayout: viewStyle
|
||||||
|
}));
|
||||||
|
|
||||||
|
if (viewStyle == "Thumb") {
|
||||||
|
html = LibraryBrowser.getPosterViewHtml({
|
||||||
|
items: result.Items,
|
||||||
|
shape: "backdrop",
|
||||||
|
preferThumb: true,
|
||||||
|
showItemCounts: true,
|
||||||
|
centerText: true,
|
||||||
|
lazy: true,
|
||||||
|
overlayPlayButton: true
|
||||||
|
});
|
||||||
|
}
|
||||||
|
else if (viewStyle == "ThumbCard") {
|
||||||
|
|
||||||
|
html = LibraryBrowser.getPosterViewHtml({
|
||||||
|
items: result.Items,
|
||||||
|
shape: "backdrop",
|
||||||
|
preferThumb: true,
|
||||||
|
showItemCounts: true,
|
||||||
|
cardLayout: true,
|
||||||
|
showTitle: true,
|
||||||
|
lazy: true
|
||||||
|
});
|
||||||
|
}
|
||||||
|
else if (viewStyle == "PosterCard") {
|
||||||
|
html = LibraryBrowser.getPosterViewHtml({
|
||||||
|
items: result.Items,
|
||||||
|
shape: "portrait",
|
||||||
|
showItemCounts: true,
|
||||||
|
lazy: true,
|
||||||
|
cardLayout: true,
|
||||||
|
showTitle: true
|
||||||
|
});
|
||||||
|
}
|
||||||
|
else if (viewStyle == "Poster") {
|
||||||
|
html = LibraryBrowser.getPosterViewHtml({
|
||||||
|
items: result.Items,
|
||||||
|
shape: "portrait",
|
||||||
|
centerText: true,
|
||||||
|
showItemCounts: true,
|
||||||
|
lazy: true,
|
||||||
|
overlayPlayButton: true
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
var elem = context.querySelector('.itemsContainer');
|
||||||
|
elem.innerHTML = html;
|
||||||
|
ImageLoader.lazyChildren(elem);
|
||||||
|
|
||||||
|
$('.btnNextPage', context).on('click', function () {
|
||||||
|
query.StartIndex += query.Limit;
|
||||||
|
reloadItems(context);
|
||||||
|
});
|
||||||
|
|
||||||
|
$('.btnPreviousPage', context).on('click', function () {
|
||||||
|
query.StartIndex -= query.Limit;
|
||||||
|
reloadItems(context);
|
||||||
|
});
|
||||||
|
|
||||||
|
$('.btnChangeLayout', context).on('layoutchange', function (e, layout) {
|
||||||
|
getPageData().view = layout;
|
||||||
|
LibraryBrowser.saveViewSetting(getSavedQueryKey(), layout);
|
||||||
|
reloadItems(context);
|
||||||
|
});
|
||||||
|
|
||||||
|
LibraryBrowser.saveQueryValues(getSavedQueryKey(), query);
|
||||||
|
|
||||||
|
Dashboard.hideLoadingMsg();
|
||||||
|
});
|
||||||
}
|
}
|
||||||
return pageData;
|
self.renderTab = function () {
|
||||||
}
|
|
||||||
|
reloadItems(tabContent);
|
||||||
function getQuery() {
|
};
|
||||||
|
};
|
||||||
return getPageData().query;
|
|
||||||
}
|
|
||||||
|
|
||||||
function getSavedQueryKey() {
|
|
||||||
|
|
||||||
return LibraryBrowser.getSavedQueryKey('genres');
|
|
||||||
}
|
|
||||||
|
|
||||||
function reloadItems(page) {
|
|
||||||
|
|
||||||
Dashboard.showLoadingMsg();
|
|
||||||
|
|
||||||
var query = getQuery();
|
|
||||||
ApiClient.getGenres(Dashboard.getCurrentUserId(), query).then(function (result) {
|
|
||||||
|
|
||||||
// Scroll back up so they can see the results from the beginning
|
|
||||||
window.scrollTo(0, 0);
|
|
||||||
|
|
||||||
var html = '';
|
|
||||||
|
|
||||||
var view = getPageData().view;
|
|
||||||
$('.listTopPaging', page).html(LibraryBrowser.getQueryPagingHtml({
|
|
||||||
startIndex: query.StartIndex,
|
|
||||||
limit: query.Limit,
|
|
||||||
totalRecordCount: result.TotalRecordCount,
|
|
||||||
viewButton: false,
|
|
||||||
showLimit: false,
|
|
||||||
updatePageSizeSetting: false,
|
|
||||||
addLayoutButton: true,
|
|
||||||
currentLayout: view
|
|
||||||
|
|
||||||
}));
|
|
||||||
|
|
||||||
if (view == "List") {
|
|
||||||
|
|
||||||
html = LibraryBrowser.getListViewHtml({
|
|
||||||
items: result.Items,
|
|
||||||
sortBy: query.SortBy
|
|
||||||
});
|
|
||||||
}
|
|
||||||
else if (view == "Thumb") {
|
|
||||||
html = LibraryBrowser.getPosterViewHtml({
|
|
||||||
items: result.Items,
|
|
||||||
shape: "backdrop",
|
|
||||||
preferThumb: true,
|
|
||||||
context: 'movies',
|
|
||||||
showItemCounts: true,
|
|
||||||
centerText: true,
|
|
||||||
lazy: true,
|
|
||||||
overlayPlayButton: true
|
|
||||||
});
|
|
||||||
}
|
|
||||||
else if (view == "ThumbCard") {
|
|
||||||
|
|
||||||
html = LibraryBrowser.getPosterViewHtml({
|
|
||||||
items: result.Items,
|
|
||||||
shape: "backdrop",
|
|
||||||
preferThumb: true,
|
|
||||||
context: 'movies',
|
|
||||||
showItemCounts: true,
|
|
||||||
cardLayout: true,
|
|
||||||
showTitle: true,
|
|
||||||
lazy: true
|
|
||||||
});
|
|
||||||
}
|
|
||||||
else if (view == "PosterCard") {
|
|
||||||
html = LibraryBrowser.getPosterViewHtml({
|
|
||||||
items: result.Items,
|
|
||||||
shape: "portrait",
|
|
||||||
context: 'movies',
|
|
||||||
showItemCounts: true,
|
|
||||||
lazy: true,
|
|
||||||
cardLayout: true,
|
|
||||||
showTitle: true
|
|
||||||
});
|
|
||||||
}
|
|
||||||
else if (view == "Poster") {
|
|
||||||
html = LibraryBrowser.getPosterViewHtml({
|
|
||||||
items: result.Items,
|
|
||||||
shape: "portrait",
|
|
||||||
context: 'movies',
|
|
||||||
centerText: true,
|
|
||||||
showItemCounts: true,
|
|
||||||
lazy: true,
|
|
||||||
overlayPlayButton: true
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
var elem = page.querySelector('.itemsContainer');
|
|
||||||
elem.innerHTML = html;
|
|
||||||
ImageLoader.lazyChildren(elem);
|
|
||||||
|
|
||||||
$('.btnNextPage', page).on('click', function () {
|
|
||||||
query.StartIndex += query.Limit;
|
|
||||||
reloadItems(page);
|
|
||||||
});
|
|
||||||
|
|
||||||
$('.btnPreviousPage', page).on('click', function () {
|
|
||||||
query.StartIndex -= query.Limit;
|
|
||||||
reloadItems(page);
|
|
||||||
});
|
|
||||||
|
|
||||||
$('.btnChangeLayout', page).on('layoutchange', function (e, layout) {
|
|
||||||
getPageData().view = layout;
|
|
||||||
LibraryBrowser.saveViewSetting(getSavedQueryKey(), layout);
|
|
||||||
reloadItems(page);
|
|
||||||
});
|
|
||||||
|
|
||||||
LibraryBrowser.saveQueryValues(getSavedQueryKey(), query);
|
|
||||||
|
|
||||||
Dashboard.hideLoadingMsg();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
window.MoviesPage.renderGenresTab = function (page, tabContent) {
|
|
||||||
|
|
||||||
if (LibraryBrowser.needsRefresh(tabContent)) {
|
|
||||||
reloadItems(tabContent);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
});
|
});
|
|
@ -1,311 +1,314 @@
|
||||||
define(['jQuery'], function ($) {
|
define(['jQuery'], function ($) {
|
||||||
|
|
||||||
var data = {};
|
return function (view, params, tabContent) {
|
||||||
|
|
||||||
function getPageData(context) {
|
var self = this;
|
||||||
var key = getSavedQueryKey(context);
|
|
||||||
var pageData = data[key];
|
|
||||||
|
|
||||||
if (!pageData) {
|
var data = {};
|
||||||
pageData = data[key] = {
|
|
||||||
query: {
|
|
||||||
SortBy: "SortName",
|
|
||||||
SortOrder: "Ascending",
|
|
||||||
IncludeItemTypes: "Movie",
|
|
||||||
Recursive: true,
|
|
||||||
Fields: "PrimaryImageAspectRatio,SortName,MediaSourceCount,SyncInfo",
|
|
||||||
ImageTypeLimit: 1,
|
|
||||||
EnableImageTypes: "Primary,Backdrop,Banner,Thumb",
|
|
||||||
StartIndex: 0,
|
|
||||||
Limit: LibraryBrowser.getDefaultPageSize()
|
|
||||||
},
|
|
||||||
view: LibraryBrowser.getSavedView(key) || LibraryBrowser.getDefaultItemsView('Poster', 'Poster')
|
|
||||||
};
|
|
||||||
|
|
||||||
pageData.query.ParentId = LibraryMenu.getTopParentId();
|
function getPageData(context) {
|
||||||
LibraryBrowser.loadSavedQueryValues(key, pageData.query);
|
var key = getSavedQueryKey(context);
|
||||||
|
var pageData = data[key];
|
||||||
|
|
||||||
|
if (!pageData) {
|
||||||
|
pageData = data[key] = {
|
||||||
|
query: {
|
||||||
|
SortBy: "SortName",
|
||||||
|
SortOrder: "Ascending",
|
||||||
|
IncludeItemTypes: "Movie",
|
||||||
|
Recursive: true,
|
||||||
|
Fields: "PrimaryImageAspectRatio,SortName,MediaSourceCount,SyncInfo",
|
||||||
|
ImageTypeLimit: 1,
|
||||||
|
EnableImageTypes: "Primary,Backdrop,Banner,Thumb",
|
||||||
|
StartIndex: 0,
|
||||||
|
Limit: LibraryBrowser.getDefaultPageSize()
|
||||||
|
},
|
||||||
|
view: LibraryBrowser.getSavedView(key) || LibraryBrowser.getDefaultItemsView('Poster', 'Poster')
|
||||||
|
};
|
||||||
|
|
||||||
|
pageData.query.ParentId = params.topParentId;
|
||||||
|
LibraryBrowser.loadSavedQueryValues(key, pageData.query);
|
||||||
|
}
|
||||||
|
return pageData;
|
||||||
}
|
}
|
||||||
return pageData;
|
|
||||||
}
|
|
||||||
|
|
||||||
function getQuery(context) {
|
function getQuery(context) {
|
||||||
|
|
||||||
return getPageData(context).query;
|
return getPageData(context).query;
|
||||||
}
|
|
||||||
|
|
||||||
function getSavedQueryKey(context) {
|
|
||||||
|
|
||||||
if (!context.savedQueryKey) {
|
|
||||||
context.savedQueryKey = LibraryBrowser.getSavedQueryKey('movies');
|
|
||||||
}
|
}
|
||||||
return context.savedQueryKey;
|
|
||||||
}
|
|
||||||
|
|
||||||
function reloadItems(context) {
|
function getSavedQueryKey(context) {
|
||||||
|
|
||||||
Dashboard.showLoadingMsg();
|
if (!context.savedQueryKey) {
|
||||||
|
context.savedQueryKey = LibraryBrowser.getSavedQueryKey('movies');
|
||||||
var userId = Dashboard.getCurrentUserId();
|
|
||||||
|
|
||||||
var query = getQuery(context);
|
|
||||||
var view = getPageData(context).view;
|
|
||||||
|
|
||||||
ApiClient.getItems(userId, query).then(function (result) {
|
|
||||||
|
|
||||||
// Scroll back up so they can see the results from the beginning
|
|
||||||
window.scrollTo(0, 0);
|
|
||||||
|
|
||||||
var html = '';
|
|
||||||
|
|
||||||
var pagingHtml = LibraryBrowser.getQueryPagingHtml({
|
|
||||||
startIndex: query.StartIndex,
|
|
||||||
limit: query.Limit,
|
|
||||||
totalRecordCount: result.TotalRecordCount,
|
|
||||||
showLimit: false,
|
|
||||||
updatePageSizeSetting: false,
|
|
||||||
addLayoutButton: true,
|
|
||||||
sortButton: true,
|
|
||||||
currentLayout: view,
|
|
||||||
layouts: 'Banner,List,Poster,PosterCard,Thumb,ThumbCard,Timeline',
|
|
||||||
filterButton: true
|
|
||||||
});
|
|
||||||
|
|
||||||
context.querySelector('.listTopPaging').innerHTML = pagingHtml;
|
|
||||||
|
|
||||||
updateFilterControls(context);
|
|
||||||
|
|
||||||
if (view == "Thumb") {
|
|
||||||
html = LibraryBrowser.getPosterViewHtml({
|
|
||||||
items: result.Items,
|
|
||||||
shape: "backdrop",
|
|
||||||
preferThumb: true,
|
|
||||||
lazy: true,
|
|
||||||
showDetailsMenu: true,
|
|
||||||
overlayPlayButton: true
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
else if (view == "ThumbCard") {
|
return context.savedQueryKey;
|
||||||
|
}
|
||||||
|
|
||||||
html = LibraryBrowser.getPosterViewHtml({
|
function reloadItems(context) {
|
||||||
items: result.Items,
|
|
||||||
shape: "backdrop",
|
Dashboard.showLoadingMsg();
|
||||||
preferThumb: true,
|
|
||||||
lazy: true,
|
var userId = Dashboard.getCurrentUserId();
|
||||||
showTitle: true,
|
|
||||||
cardLayout: true,
|
var query = getQuery(context);
|
||||||
showYear: true,
|
var view = getPageData(context).view;
|
||||||
showDetailsMenu: true
|
|
||||||
|
ApiClient.getItems(userId, query).then(function (result) {
|
||||||
|
|
||||||
|
// Scroll back up so they can see the results from the beginning
|
||||||
|
window.scrollTo(0, 0);
|
||||||
|
|
||||||
|
var html = '';
|
||||||
|
|
||||||
|
var pagingHtml = LibraryBrowser.getQueryPagingHtml({
|
||||||
|
startIndex: query.StartIndex,
|
||||||
|
limit: query.Limit,
|
||||||
|
totalRecordCount: result.TotalRecordCount,
|
||||||
|
showLimit: false,
|
||||||
|
updatePageSizeSetting: false,
|
||||||
|
addLayoutButton: true,
|
||||||
|
sortButton: true,
|
||||||
|
currentLayout: view,
|
||||||
|
layouts: 'Banner,List,Poster,PosterCard,Thumb,ThumbCard,Timeline',
|
||||||
|
filterButton: true
|
||||||
});
|
});
|
||||||
}
|
|
||||||
else if (view == "Banner") {
|
|
||||||
|
|
||||||
html = LibraryBrowser.getPosterViewHtml({
|
context.querySelector('.listTopPaging').innerHTML = pagingHtml;
|
||||||
items: result.Items,
|
|
||||||
shape: "banner",
|
|
||||||
preferBanner: true,
|
|
||||||
lazy: true,
|
|
||||||
showDetailsMenu: true
|
|
||||||
});
|
|
||||||
}
|
|
||||||
else if (view == "List") {
|
|
||||||
|
|
||||||
html = LibraryBrowser.getListViewHtml({
|
updateFilterControls(context);
|
||||||
items: result.Items,
|
|
||||||
sortBy: query.SortBy
|
|
||||||
});
|
|
||||||
}
|
|
||||||
else if (view == "Poster") {
|
|
||||||
html = LibraryBrowser.getPosterViewHtml({
|
|
||||||
items: result.Items,
|
|
||||||
shape: "portrait",
|
|
||||||
centerText: true,
|
|
||||||
lazy: true,
|
|
||||||
showDetailsMenu: true,
|
|
||||||
overlayPlayButton: true
|
|
||||||
});
|
|
||||||
}
|
|
||||||
else if (view == "PosterCard") {
|
|
||||||
html = LibraryBrowser.getPosterViewHtml({
|
|
||||||
items: result.Items,
|
|
||||||
shape: "portrait",
|
|
||||||
showTitle: true,
|
|
||||||
showYear: true,
|
|
||||||
lazy: true,
|
|
||||||
cardLayout: true,
|
|
||||||
showDetailsMenu: true
|
|
||||||
});
|
|
||||||
}
|
|
||||||
else if (view == "Timeline") {
|
|
||||||
html = LibraryBrowser.getPosterViewHtml({
|
|
||||||
items: result.Items,
|
|
||||||
shape: "portrait",
|
|
||||||
showTitle: true,
|
|
||||||
timeline: true,
|
|
||||||
centerText: true,
|
|
||||||
lazy: true,
|
|
||||||
showDetailsMenu: true
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
var elem = context.querySelector('.itemsContainer');
|
if (view == "Thumb") {
|
||||||
elem.innerHTML = html + pagingHtml;
|
html = LibraryBrowser.getPosterViewHtml({
|
||||||
ImageLoader.lazyChildren(elem);
|
items: result.Items,
|
||||||
|
shape: "backdrop",
|
||||||
|
preferThumb: true,
|
||||||
|
lazy: true,
|
||||||
|
showDetailsMenu: true,
|
||||||
|
overlayPlayButton: true
|
||||||
|
});
|
||||||
|
}
|
||||||
|
else if (view == "ThumbCard") {
|
||||||
|
|
||||||
$('.btnNextPage', context).on('click', function () {
|
html = LibraryBrowser.getPosterViewHtml({
|
||||||
query.StartIndex += query.Limit;
|
items: result.Items,
|
||||||
reloadItems(context);
|
shape: "backdrop",
|
||||||
});
|
preferThumb: true,
|
||||||
|
lazy: true,
|
||||||
|
showTitle: true,
|
||||||
|
cardLayout: true,
|
||||||
|
showYear: true,
|
||||||
|
showDetailsMenu: true
|
||||||
|
});
|
||||||
|
}
|
||||||
|
else if (view == "Banner") {
|
||||||
|
|
||||||
$('.btnPreviousPage', context).on('click', function () {
|
html = LibraryBrowser.getPosterViewHtml({
|
||||||
query.StartIndex -= query.Limit;
|
items: result.Items,
|
||||||
reloadItems(context);
|
shape: "banner",
|
||||||
});
|
preferBanner: true,
|
||||||
|
lazy: true,
|
||||||
|
showDetailsMenu: true
|
||||||
|
});
|
||||||
|
}
|
||||||
|
else if (view == "List") {
|
||||||
|
|
||||||
$('.btnChangeLayout', context).on('layoutchange', function (e, layout) {
|
html = LibraryBrowser.getListViewHtml({
|
||||||
|
items: result.Items,
|
||||||
if (layout == 'Timeline') {
|
sortBy: query.SortBy
|
||||||
getQuery(context).SortBy = 'ProductionYear,PremiereDate,SortName';
|
});
|
||||||
getQuery(context).SortOrder = 'Descending';
|
}
|
||||||
|
else if (view == "Poster") {
|
||||||
|
html = LibraryBrowser.getPosterViewHtml({
|
||||||
|
items: result.Items,
|
||||||
|
shape: "portrait",
|
||||||
|
centerText: true,
|
||||||
|
lazy: true,
|
||||||
|
showDetailsMenu: true,
|
||||||
|
overlayPlayButton: true
|
||||||
|
});
|
||||||
|
}
|
||||||
|
else if (view == "PosterCard") {
|
||||||
|
html = LibraryBrowser.getPosterViewHtml({
|
||||||
|
items: result.Items,
|
||||||
|
shape: "portrait",
|
||||||
|
showTitle: true,
|
||||||
|
showYear: true,
|
||||||
|
lazy: true,
|
||||||
|
cardLayout: true,
|
||||||
|
showDetailsMenu: true
|
||||||
|
});
|
||||||
|
}
|
||||||
|
else if (view == "Timeline") {
|
||||||
|
html = LibraryBrowser.getPosterViewHtml({
|
||||||
|
items: result.Items,
|
||||||
|
shape: "portrait",
|
||||||
|
showTitle: true,
|
||||||
|
timeline: true,
|
||||||
|
centerText: true,
|
||||||
|
lazy: true,
|
||||||
|
showDetailsMenu: true
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
getPageData(context).view = layout;
|
var elem = context.querySelector('.itemsContainer');
|
||||||
LibraryBrowser.saveViewSetting(getSavedQueryKey(context), layout);
|
elem.innerHTML = html + pagingHtml;
|
||||||
reloadItems(context);
|
ImageLoader.lazyChildren(elem);
|
||||||
});
|
|
||||||
|
|
||||||
$('.btnFilter', context).on('click', function () {
|
$('.btnNextPage', context).on('click', function () {
|
||||||
showFilterMenu(context);
|
query.StartIndex += query.Limit;
|
||||||
});
|
reloadItems(context);
|
||||||
|
|
||||||
// On callback make sure to set StartIndex = 0
|
|
||||||
$('.btnSort', context).on('click', function () {
|
|
||||||
LibraryBrowser.showSortMenu({
|
|
||||||
items: [{
|
|
||||||
name: Globalize.translate('OptionNameSort'),
|
|
||||||
id: 'SortName'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: Globalize.translate('OptionBudget'),
|
|
||||||
id: 'Budget,SortName'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: Globalize.translate('OptionImdbRating'),
|
|
||||||
id: 'CommunityRating,SortName'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: Globalize.translate('OptionCriticRating'),
|
|
||||||
id: 'CriticRating,SortName'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: Globalize.translate('OptionDateAdded'),
|
|
||||||
id: 'DateCreated,SortName'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: Globalize.translate('OptionDatePlayed'),
|
|
||||||
id: 'DatePlayed,SortName'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: Globalize.translate('OptionMetascore'),
|
|
||||||
id: 'Metascore,SortName'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: Globalize.translate('OptionParentalRating'),
|
|
||||||
id: 'OfficialRating,SortName'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: Globalize.translate('OptionPlayCount'),
|
|
||||||
id: 'PlayCount,SortName'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: Globalize.translate('OptionReleaseDate'),
|
|
||||||
id: 'PremiereDate,SortName'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: Globalize.translate('OptionRevenue'),
|
|
||||||
id: 'Revenue,SortName'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: Globalize.translate('OptionRuntime'),
|
|
||||||
id: 'Runtime,SortName'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: Globalize.translate('OptionVideoBitrate'),
|
|
||||||
id: 'VideoBitRate,SortName'
|
|
||||||
}],
|
|
||||||
callback: function () {
|
|
||||||
reloadItems(context);
|
|
||||||
},
|
|
||||||
query: query
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
$('.btnPreviousPage', context).on('click', function () {
|
||||||
|
query.StartIndex -= query.Limit;
|
||||||
|
reloadItems(context);
|
||||||
|
});
|
||||||
|
|
||||||
|
$('.btnChangeLayout', context).on('layoutchange', function (e, layout) {
|
||||||
|
|
||||||
|
if (layout == 'Timeline') {
|
||||||
|
getQuery(context).SortBy = 'ProductionYear,PremiereDate,SortName';
|
||||||
|
getQuery(context).SortOrder = 'Descending';
|
||||||
|
}
|
||||||
|
|
||||||
|
getPageData(context).view = layout;
|
||||||
|
LibraryBrowser.saveViewSetting(getSavedQueryKey(context), layout);
|
||||||
|
reloadItems(context);
|
||||||
|
});
|
||||||
|
|
||||||
|
$('.btnFilter', context).on('click', function () {
|
||||||
|
showFilterMenu(context);
|
||||||
|
});
|
||||||
|
|
||||||
|
// On callback make sure to set StartIndex = 0
|
||||||
|
$('.btnSort', context).on('click', function () {
|
||||||
|
LibraryBrowser.showSortMenu({
|
||||||
|
items: [{
|
||||||
|
name: Globalize.translate('OptionNameSort'),
|
||||||
|
id: 'SortName'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: Globalize.translate('OptionBudget'),
|
||||||
|
id: 'Budget,SortName'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: Globalize.translate('OptionImdbRating'),
|
||||||
|
id: 'CommunityRating,SortName'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: Globalize.translate('OptionCriticRating'),
|
||||||
|
id: 'CriticRating,SortName'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: Globalize.translate('OptionDateAdded'),
|
||||||
|
id: 'DateCreated,SortName'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: Globalize.translate('OptionDatePlayed'),
|
||||||
|
id: 'DatePlayed,SortName'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: Globalize.translate('OptionMetascore'),
|
||||||
|
id: 'Metascore,SortName'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: Globalize.translate('OptionParentalRating'),
|
||||||
|
id: 'OfficialRating,SortName'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: Globalize.translate('OptionPlayCount'),
|
||||||
|
id: 'PlayCount,SortName'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: Globalize.translate('OptionReleaseDate'),
|
||||||
|
id: 'PremiereDate,SortName'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: Globalize.translate('OptionRevenue'),
|
||||||
|
id: 'Revenue,SortName'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: Globalize.translate('OptionRuntime'),
|
||||||
|
id: 'Runtime,SortName'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: Globalize.translate('OptionVideoBitrate'),
|
||||||
|
id: 'VideoBitRate,SortName'
|
||||||
|
}],
|
||||||
|
callback: function () {
|
||||||
|
reloadItems(context);
|
||||||
|
},
|
||||||
|
query: query
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
LibraryBrowser.saveQueryValues(getSavedQueryKey(context), query);
|
||||||
|
|
||||||
|
LibraryBrowser.setLastRefreshed(context);
|
||||||
|
|
||||||
|
Dashboard.hideLoadingMsg();
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
|
||||||
LibraryBrowser.saveQueryValues(getSavedQueryKey(context), query);
|
function showFilterMenu(context) {
|
||||||
|
|
||||||
LibraryBrowser.setLastRefreshed(context);
|
require(['components/filterdialog/filterdialog'], function (filterDialogFactory) {
|
||||||
|
|
||||||
Dashboard.hideLoadingMsg();
|
var filterDialog = new filterDialogFactory({
|
||||||
});
|
query: getQuery(context),
|
||||||
}
|
mode: 'movies'
|
||||||
|
});
|
||||||
|
|
||||||
function showFilterMenu(context) {
|
Events.on(filterDialog, 'filterchange', function () {
|
||||||
|
reloadItems(context);
|
||||||
|
});
|
||||||
|
|
||||||
require(['components/filterdialog/filterdialog'], function (filterDialogFactory) {
|
filterDialog.show();
|
||||||
|
|
||||||
var filterDialog = new filterDialogFactory({
|
|
||||||
query: getQuery(context),
|
|
||||||
mode: 'movies'
|
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function updateFilterControls(context) {
|
||||||
|
|
||||||
|
var query = getQuery(context);
|
||||||
|
|
||||||
|
$('.alphabetPicker', context).alphaValue(query.NameStartsWithOrGreater);
|
||||||
|
}
|
||||||
|
|
||||||
|
function initPage(context) {
|
||||||
|
|
||||||
|
$('.alphabetPicker', context).on('alphaselect', function (e, character) {
|
||||||
|
|
||||||
|
var query = getQuery(context);
|
||||||
|
query.NameStartsWithOrGreater = character;
|
||||||
|
query.StartIndex = 0;
|
||||||
|
|
||||||
|
reloadItems(context);
|
||||||
|
|
||||||
|
}).on('alphaclear', function (e) {
|
||||||
|
|
||||||
|
var query = getQuery(context);
|
||||||
|
query.NameStartsWithOrGreater = '';
|
||||||
|
|
||||||
Events.on(filterDialog, 'filterchange', function () {
|
|
||||||
reloadItems(context);
|
reloadItems(context);
|
||||||
});
|
});
|
||||||
|
|
||||||
filterDialog.show();
|
$('.itemsContainer', context).on('needsrefresh', function () {
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
function updateFilterControls(context) {
|
reloadItems(context);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
var query = getQuery(context);
|
self.initTab = function () {
|
||||||
|
|
||||||
$('.alphabetPicker', context).alphaValue(query.NameStartsWithOrGreater);
|
initPage(tabContent);
|
||||||
}
|
};
|
||||||
|
|
||||||
function initPage(context) {
|
self.renderTab = function () {
|
||||||
|
|
||||||
$('.alphabetPicker', context).on('alphaselect', function (e, character) {
|
|
||||||
|
|
||||||
var query = getQuery(context);
|
|
||||||
query.NameStartsWithOrGreater = character;
|
|
||||||
query.StartIndex = 0;
|
|
||||||
|
|
||||||
reloadItems(context);
|
|
||||||
|
|
||||||
}).on('alphaclear', function (e) {
|
|
||||||
|
|
||||||
var query = getQuery(context);
|
|
||||||
query.NameStartsWithOrGreater = '';
|
|
||||||
|
|
||||||
reloadItems(context);
|
|
||||||
});
|
|
||||||
|
|
||||||
$('.itemsContainer', context).on('needsrefresh', function () {
|
|
||||||
|
|
||||||
reloadItems(context);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
window.MoviesPage.initMoviesTab = function (page, tabContent) {
|
|
||||||
|
|
||||||
initPage(tabContent);
|
|
||||||
};
|
|
||||||
|
|
||||||
window.MoviesPage.renderMoviesTab = function (page, tabContent) {
|
|
||||||
|
|
||||||
if (LibraryBrowser.needsRefresh(tabContent)) {
|
|
||||||
reloadItems(tabContent);
|
reloadItems(tabContent);
|
||||||
updateFilterControls(tabContent);
|
updateFilterControls(tabContent);
|
||||||
}
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
});
|
});
|
|
@ -1,4 +1,4 @@
|
||||||
define(['jQuery'], function ($) {
|
define(['jQuery', 'libraryBrowser'], function ($, libraryBrowser) {
|
||||||
|
|
||||||
function getView() {
|
function getView() {
|
||||||
|
|
||||||
|
@ -43,7 +43,7 @@
|
||||||
|
|
||||||
if (view == 'PosterCard') {
|
if (view == 'PosterCard') {
|
||||||
|
|
||||||
html += LibraryBrowser.getPosterViewHtml({
|
html += libraryBrowser.getPosterViewHtml({
|
||||||
items: items,
|
items: items,
|
||||||
lazy: true,
|
lazy: true,
|
||||||
shape: getPortraitShape(),
|
shape: getPortraitShape(),
|
||||||
|
@ -57,7 +57,7 @@
|
||||||
|
|
||||||
} else if (view == 'Poster') {
|
} else if (view == 'Poster') {
|
||||||
|
|
||||||
html += LibraryBrowser.getPosterViewHtml({
|
html += libraryBrowser.getPosterViewHtml({
|
||||||
items: items,
|
items: items,
|
||||||
shape: getPortraitShape(),
|
shape: getPortraitShape(),
|
||||||
centerText: true,
|
centerText: true,
|
||||||
|
@ -71,7 +71,6 @@
|
||||||
var recentlyAddedItems = page.querySelector('#recentlyAddedItems');
|
var recentlyAddedItems = page.querySelector('#recentlyAddedItems');
|
||||||
recentlyAddedItems.innerHTML = html;
|
recentlyAddedItems.innerHTML = html;
|
||||||
ImageLoader.lazyChildren(recentlyAddedItems);
|
ImageLoader.lazyChildren(recentlyAddedItems);
|
||||||
LibraryBrowser.setLastRefreshed(page);
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -107,7 +106,7 @@
|
||||||
|
|
||||||
if (view == 'ThumbCard') {
|
if (view == 'ThumbCard') {
|
||||||
|
|
||||||
html += LibraryBrowser.getPosterViewHtml({
|
html += libraryBrowser.getPosterViewHtml({
|
||||||
items: result.Items,
|
items: result.Items,
|
||||||
preferThumb: true,
|
preferThumb: true,
|
||||||
shape: getThumbShape(),
|
shape: getThumbShape(),
|
||||||
|
@ -121,7 +120,7 @@
|
||||||
|
|
||||||
} else if (view == 'Thumb') {
|
} else if (view == 'Thumb') {
|
||||||
|
|
||||||
html += LibraryBrowser.getPosterViewHtml({
|
html += libraryBrowser.getPosterViewHtml({
|
||||||
items: result.Items,
|
items: result.Items,
|
||||||
preferThumb: true,
|
preferThumb: true,
|
||||||
shape: getThumbShape(),
|
shape: getThumbShape(),
|
||||||
|
@ -177,7 +176,7 @@
|
||||||
|
|
||||||
if (view == 'PosterCard') {
|
if (view == 'PosterCard') {
|
||||||
|
|
||||||
html += LibraryBrowser.getPosterViewHtml({
|
html += libraryBrowser.getPosterViewHtml({
|
||||||
items: recommendation.Items,
|
items: recommendation.Items,
|
||||||
lazy: true,
|
lazy: true,
|
||||||
shape: getPortraitShape(),
|
shape: getPortraitShape(),
|
||||||
|
@ -191,7 +190,7 @@
|
||||||
|
|
||||||
} else if (view == 'Poster') {
|
} else if (view == 'Poster') {
|
||||||
|
|
||||||
html += LibraryBrowser.getPosterViewHtml({
|
html += libraryBrowser.getPosterViewHtml({
|
||||||
items: recommendation.Items,
|
items: recommendation.Items,
|
||||||
shape: getPortraitShape(),
|
shape: getPortraitShape(),
|
||||||
centerText: true,
|
centerText: true,
|
||||||
|
@ -251,135 +250,21 @@
|
||||||
$(containers).createCardMenus();
|
$(containers).createCardMenus();
|
||||||
}
|
}
|
||||||
|
|
||||||
function loadSuggestionsTab(page, tabContent) {
|
function loadSuggestionsTab(view, params, tabContent) {
|
||||||
|
|
||||||
var parentId = LibraryMenu.getTopParentId();
|
var parentId = params.topParentId;
|
||||||
|
|
||||||
var userId = Dashboard.getCurrentUserId();
|
var userId = Dashboard.getCurrentUserId();
|
||||||
|
|
||||||
if (LibraryBrowser.needsRefresh(tabContent)) {
|
console.log('loadSuggestionsTab');
|
||||||
console.log('loadSuggestionsTab');
|
loadResume(tabContent, userId, parentId);
|
||||||
loadResume(tabContent, userId, parentId);
|
loadLatest(tabContent, userId, parentId);
|
||||||
loadLatest(tabContent, userId, parentId);
|
|
||||||
|
|
||||||
if (AppInfo.enableMovieHomeSuggestions) {
|
if (AppInfo.enableMovieHomeSuggestions) {
|
||||||
loadSuggestions(tabContent, userId, parentId);
|
loadSuggestions(tabContent, userId, parentId);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function loadTab(page, index) {
|
|
||||||
|
|
||||||
var tabContent = page.querySelector('.pageTabContent[data-index=\'' + index + '\']');
|
|
||||||
var depends = [];
|
|
||||||
var scope = 'MoviesPage';
|
|
||||||
var renderMethod = '';
|
|
||||||
var initMethod = '';
|
|
||||||
|
|
||||||
switch (index) {
|
|
||||||
|
|
||||||
case 0:
|
|
||||||
initMethod = 'initSuggestedTab';
|
|
||||||
renderMethod = 'renderSuggestedTab';
|
|
||||||
break;
|
|
||||||
case 1:
|
|
||||||
depends.push('scripts/movies');
|
|
||||||
renderMethod = 'renderMoviesTab';
|
|
||||||
initMethod = 'initMoviesTab';
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
depends.push('scripts/movietrailers');
|
|
||||||
renderMethod = 'renderTrailerTab';
|
|
||||||
initMethod = 'initTrailerTab';
|
|
||||||
break;
|
|
||||||
case 3:
|
|
||||||
depends.push('scripts/moviecollections');
|
|
||||||
renderMethod = 'renderCollectionsTab';
|
|
||||||
initMethod = 'initCollectionsTab';
|
|
||||||
break;
|
|
||||||
case 4:
|
|
||||||
depends.push('scripts/moviegenres');
|
|
||||||
renderMethod = 'renderGenresTab';
|
|
||||||
break;
|
|
||||||
case 5:
|
|
||||||
depends.push('scripts/moviestudios');
|
|
||||||
renderMethod = 'renderStudiosTab';
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
require(depends, function () {
|
|
||||||
|
|
||||||
if (initMethod && !tabContent.initComplete) {
|
|
||||||
|
|
||||||
window[scope][initMethod](page, tabContent);
|
|
||||||
tabContent.initComplete = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
window[scope][renderMethod](page, tabContent);
|
|
||||||
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
window.MoviesPage = window.MoviesPage || {};
|
|
||||||
window.MoviesPage.renderSuggestedTab = loadSuggestionsTab;
|
|
||||||
window.MoviesPage.initSuggestedTab = initSuggestedTab;
|
|
||||||
|
|
||||||
pageIdOn('pageinit', "moviesPage", function () {
|
|
||||||
|
|
||||||
var page = this;
|
|
||||||
|
|
||||||
$('.recommendations', page).createCardMenus();
|
|
||||||
|
|
||||||
var tabs = page.querySelector('paper-tabs');
|
|
||||||
var pageTabsContainer = page.querySelector('.pageTabsContainer');
|
|
||||||
|
|
||||||
var baseUrl = 'movies.html';
|
|
||||||
var topParentId = LibraryMenu.getTopParentId();
|
|
||||||
if (topParentId) {
|
|
||||||
baseUrl += '?topParentId=' + topParentId;
|
|
||||||
}
|
|
||||||
|
|
||||||
LibraryBrowser.configurePaperLibraryTabs(page, tabs, pageTabsContainer, baseUrl);
|
|
||||||
|
|
||||||
pageTabsContainer.addEventListener('tabchange', function (e) {
|
|
||||||
loadTab(page, parseInt(e.detail.selectedTabIndex));
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
pageIdOn('pagebeforeshow', "moviesPage", function () {
|
|
||||||
|
|
||||||
var page = this;
|
|
||||||
|
|
||||||
if (!page.getAttribute('data-title')) {
|
|
||||||
|
|
||||||
var parentId = LibraryMenu.getTopParentId();
|
|
||||||
|
|
||||||
if (parentId) {
|
|
||||||
|
|
||||||
ApiClient.getItem(Dashboard.getCurrentUserId(), parentId).then(function (item) {
|
|
||||||
|
|
||||||
page.setAttribute('data-title', item.Name);
|
|
||||||
LibraryMenu.setTitle(item.Name);
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
} else {
|
|
||||||
page.setAttribute('data-title', Globalize.translate('TabMovies'));
|
|
||||||
LibraryMenu.setTitle(Globalize.translate('TabMovies'));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Events.on(MediaController, 'playbackstop', onPlaybackStop);
|
|
||||||
});
|
|
||||||
|
|
||||||
pageIdOn('pagebeforehide', "moviesPage", function () {
|
|
||||||
|
|
||||||
var page = this;
|
|
||||||
Events.off(MediaController, 'playbackstop', onPlaybackStop);
|
|
||||||
});
|
|
||||||
|
|
||||||
function onPlaybackStop(e, state) {
|
function onPlaybackStop(e, state) {
|
||||||
|
|
||||||
if (state.NowPlayingItem && state.NowPlayingItem.MediaType == 'Video') {
|
if (state.NowPlayingItem && state.NowPlayingItem.MediaType == 'Video') {
|
||||||
|
@ -394,4 +279,117 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return function (view, params) {
|
||||||
|
|
||||||
|
var self = this;
|
||||||
|
|
||||||
|
self.initTab = function() {
|
||||||
|
var tabContent = view.querySelector('.pageTabContent[data-index=\'' + 0 + '\']');
|
||||||
|
initSuggestedTab(view, tabContent);
|
||||||
|
};
|
||||||
|
|
||||||
|
self.renderTab = function () {
|
||||||
|
var tabContent = view.querySelector('.pageTabContent[data-index=\'' + 0 + '\']');
|
||||||
|
loadSuggestionsTab(view, params, tabContent);
|
||||||
|
};
|
||||||
|
|
||||||
|
$('.recommendations', view).createCardMenus();
|
||||||
|
|
||||||
|
var pageTabsContainer = view.querySelector('.pageTabsContainer');
|
||||||
|
|
||||||
|
var baseUrl = 'movies.html';
|
||||||
|
var topParentId = params.topParentId;
|
||||||
|
if (topParentId) {
|
||||||
|
baseUrl += '?topParentId=' + topParentId;
|
||||||
|
}
|
||||||
|
|
||||||
|
libraryBrowser.configurePaperLibraryTabs(view, view.querySelector('paper-tabs'), pageTabsContainer, baseUrl);
|
||||||
|
|
||||||
|
var tabControllers = [];
|
||||||
|
var renderedTabs = [];
|
||||||
|
|
||||||
|
function loadTab(page, index) {
|
||||||
|
|
||||||
|
var tabContent = page.querySelector('.pageTabContent[data-index=\'' + index + '\']');
|
||||||
|
var depends = [];
|
||||||
|
|
||||||
|
switch (index) {
|
||||||
|
|
||||||
|
case 0:
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
depends.push('scripts/movies');
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
depends.push('scripts/movietrailers');
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
depends.push('scripts/moviecollections');
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
depends.push('scripts/moviegenres');
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
depends.push('scripts/moviestudios');
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
require(depends, function (controllerFactory) {
|
||||||
|
|
||||||
|
if (index == 0) {
|
||||||
|
self.tabContent = tabContent;
|
||||||
|
}
|
||||||
|
var controller = tabControllers[index];
|
||||||
|
if (!controller) {
|
||||||
|
controller = index ? new controllerFactory(view, params, tabContent) : self;
|
||||||
|
tabControllers[index] = controller;
|
||||||
|
|
||||||
|
if (controller.initTab) {
|
||||||
|
controller.initTab();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (renderedTabs.indexOf(index) == -1) {
|
||||||
|
renderedTabs.push(index);
|
||||||
|
controller.renderTab();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
pageTabsContainer.addEventListener('tabchange', function (e) {
|
||||||
|
loadTab(view, parseInt(e.detail.selectedTabIndex));
|
||||||
|
});
|
||||||
|
|
||||||
|
view.addEventListener('viewbeforeshow', function (e) {
|
||||||
|
if (!view.getAttribute('data-title')) {
|
||||||
|
|
||||||
|
var parentId = params.topParentId;
|
||||||
|
|
||||||
|
if (parentId) {
|
||||||
|
|
||||||
|
ApiClient.getItem(Dashboard.getCurrentUserId(), parentId).then(function (item) {
|
||||||
|
|
||||||
|
view.setAttribute('data-title', item.Name);
|
||||||
|
LibraryMenu.setTitle(item.Name);
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
} else {
|
||||||
|
view.setAttribute('data-title', Globalize.translate('TabMovies'));
|
||||||
|
LibraryMenu.setTitle(Globalize.translate('TabMovies'));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
view.addEventListener('viewshow', function (e) {
|
||||||
|
Events.on(MediaController, 'playbackstop', onPlaybackStop);
|
||||||
|
});
|
||||||
|
|
||||||
|
view.addEventListener('viewbeforehide', function (e) {
|
||||||
|
Events.off(MediaController, 'playbackstop', onPlaybackStop);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
});
|
});
|
|
@ -1,95 +1,93 @@
|
||||||
define(['jQuery'], function ($) {
|
define(['jQuery'], function ($) {
|
||||||
|
|
||||||
// The base query options
|
// The base query options
|
||||||
var data = {};
|
var data = {};
|
||||||
|
|
||||||
function getQuery() {
|
function getQuery(params) {
|
||||||
|
|
||||||
var key = getSavedQueryKey();
|
var key = getSavedQueryKey();
|
||||||
var pageData = data[key];
|
var pageData = data[key];
|
||||||
|
|
||||||
if (!pageData) {
|
if (!pageData) {
|
||||||
pageData = data[key] = {
|
pageData = data[key] = {
|
||||||
query: {
|
query: {
|
||||||
SortBy: "SortName",
|
SortBy: "SortName",
|
||||||
SortOrder: "Ascending",
|
SortOrder: "Ascending",
|
||||||
IncludeItemTypes: "Movie",
|
IncludeItemTypes: "Movie",
|
||||||
Recursive: true,
|
Recursive: true,
|
||||||
Fields: "DateCreated,ItemCounts",
|
Fields: "DateCreated,ItemCounts",
|
||||||
StartIndex: 0,
|
StartIndex: 0,
|
||||||
Limit: LibraryBrowser.getDefaultPageSize()
|
Limit: LibraryBrowser.getDefaultPageSize()
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
pageData.query.ParentId = LibraryMenu.getTopParentId();
|
pageData.query.ParentId = params.topParentId;
|
||||||
LibraryBrowser.loadSavedQueryValues(key, pageData.query);
|
LibraryBrowser.loadSavedQueryValues(key, pageData.query);
|
||||||
}
|
}
|
||||||
return pageData.query;
|
return pageData.query;
|
||||||
|
}
|
||||||
|
|
||||||
|
function getSavedQueryKey() {
|
||||||
|
|
||||||
|
return LibraryBrowser.getSavedQueryKey('studios');
|
||||||
|
}
|
||||||
|
|
||||||
|
function reloadItems(context, params) {
|
||||||
|
|
||||||
|
var query = getQuery(params);
|
||||||
|
|
||||||
|
Dashboard.showLoadingMsg();
|
||||||
|
|
||||||
|
ApiClient.getStudios(Dashboard.getCurrentUserId(), query).then(function (result) {
|
||||||
|
|
||||||
|
// Scroll back up so they can see the results from the beginning
|
||||||
|
window.scrollTo(0, 0);
|
||||||
|
|
||||||
|
var html = '';
|
||||||
|
|
||||||
|
$('.listTopPaging', context).html(LibraryBrowser.getQueryPagingHtml({
|
||||||
|
startIndex: query.StartIndex,
|
||||||
|
limit: query.Limit,
|
||||||
|
totalRecordCount: result.TotalRecordCount,
|
||||||
|
showLimit: false
|
||||||
|
}));
|
||||||
|
|
||||||
|
html += LibraryBrowser.getPosterViewHtml({
|
||||||
|
items: result.Items,
|
||||||
|
shape: "backdrop",
|
||||||
|
showTitle: false,
|
||||||
|
preferThumb: true,
|
||||||
|
showItemCounts: true,
|
||||||
|
centerText: true,
|
||||||
|
lazy: true
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
var elem = context.querySelector('.itemsContainer');
|
||||||
|
elem.innerHTML = html;
|
||||||
|
ImageLoader.lazyChildren(elem);
|
||||||
|
|
||||||
|
$('.btnNextPage', context).on('click', function () {
|
||||||
|
query.StartIndex += query.Limit;
|
||||||
|
reloadItems(context, params);
|
||||||
|
});
|
||||||
|
|
||||||
|
$('.btnPreviousPage', context).on('click', function () {
|
||||||
|
query.StartIndex -= query.Limit;
|
||||||
|
reloadItems(context, params);
|
||||||
|
});
|
||||||
|
|
||||||
|
LibraryBrowser.saveQueryValues(getSavedQueryKey(), query);
|
||||||
|
Dashboard.hideLoadingMsg();
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
return function (view, params, tabContent) {
|
||||||
function getSavedQueryKey() {
|
|
||||||
|
var self = this;
|
||||||
return LibraryBrowser.getSavedQueryKey('studios');
|
|
||||||
}
|
self.renderTab = function () {
|
||||||
|
|
||||||
function reloadItems(page) {
|
reloadItems(tabContent, params);
|
||||||
|
};
|
||||||
Dashboard.showLoadingMsg();
|
};
|
||||||
|
|
||||||
var query = getQuery();
|
|
||||||
|
|
||||||
ApiClient.getStudios(Dashboard.getCurrentUserId(), query).then(function (result) {
|
|
||||||
|
|
||||||
// Scroll back up so they can see the results from the beginning
|
|
||||||
window.scrollTo(0, 0);
|
|
||||||
|
|
||||||
var html = '';
|
|
||||||
var pagingHtml = LibraryBrowser.getQueryPagingHtml({
|
|
||||||
startIndex: query.StartIndex,
|
|
||||||
limit: query.Limit,
|
|
||||||
totalRecordCount: result.TotalRecordCount,
|
|
||||||
viewButton: false,
|
|
||||||
updatePageSizeSetting: false,
|
|
||||||
showLimit: false
|
|
||||||
});
|
|
||||||
|
|
||||||
page.querySelector('.listTopPaging').innerHTML = pagingHtml;
|
|
||||||
|
|
||||||
html = LibraryBrowser.getPosterViewHtml({
|
|
||||||
items: result.Items,
|
|
||||||
shape: "backdrop",
|
|
||||||
preferThumb: true,
|
|
||||||
context: 'movies',
|
|
||||||
showItemCounts: true,
|
|
||||||
centerText: true,
|
|
||||||
lazy: true
|
|
||||||
});
|
|
||||||
|
|
||||||
var elem = page.querySelector('.itemsContainer');
|
|
||||||
elem.innerHTML = html + pagingHtml;
|
|
||||||
ImageLoader.lazyChildren(elem);
|
|
||||||
|
|
||||||
$('.btnNextPage', page).on('click', function () {
|
|
||||||
query.StartIndex += query.Limit;
|
|
||||||
reloadItems(page);
|
|
||||||
});
|
|
||||||
|
|
||||||
$('.btnPreviousPage', page).on('click', function () {
|
|
||||||
query.StartIndex -= query.Limit;
|
|
||||||
reloadItems(page);
|
|
||||||
});
|
|
||||||
|
|
||||||
LibraryBrowser.saveQueryValues(getSavedQueryKey(), query);
|
|
||||||
|
|
||||||
Dashboard.hideLoadingMsg();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
window.MoviesPage.renderStudiosTab = function (page, tabContent) {
|
|
||||||
|
|
||||||
if (LibraryBrowser.needsRefresh(tabContent)) {
|
|
||||||
reloadItems(tabContent);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
});
|
});
|
|
@ -187,17 +187,20 @@
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
window.MoviesPage.initTrailerTab = function (page, tabContent) {
|
return function (view, params, tabContent) {
|
||||||
|
|
||||||
initPage(page, tabContent);
|
var self = this;
|
||||||
};
|
|
||||||
|
|
||||||
window.MoviesPage.renderTrailerTab = function (page, tabContent) {
|
self.initTab = function () {
|
||||||
|
|
||||||
|
initPage(view, tabContent);
|
||||||
|
};
|
||||||
|
|
||||||
|
self.renderTab = function () {
|
||||||
|
|
||||||
if (LibraryBrowser.needsRefresh(tabContent)) {
|
|
||||||
reloadItems(tabContent);
|
reloadItems(tabContent);
|
||||||
updateFilterControls(tabContent);
|
updateFilterControls(tabContent);
|
||||||
}
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
});
|
});
|
|
@ -2698,8 +2698,9 @@ var AppInfo = {};
|
||||||
|
|
||||||
defineRoute({
|
defineRoute({
|
||||||
path: '/movies.html',
|
path: '/movies.html',
|
||||||
dependencies: [],
|
dependencies: ['paper-tabs', 'paper-checkbox', 'paper-fab', 'scripts/alphapicker'],
|
||||||
autoFocus: false
|
autoFocus: false,
|
||||||
|
controller: 'scripts/moviesrecommended'
|
||||||
});
|
});
|
||||||
|
|
||||||
defineRoute({
|
defineRoute({
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue