diff --git a/dashboard-ui/components/filterdialog/filterdialog.js b/dashboard-ui/components/filterdialog/filterdialog.js index 9d82063e5b..8d798728e7 100644 --- a/dashboard-ui/components/filterdialog/filterdialog.js +++ b/dashboard-ui/components/filterdialog/filterdialog.js @@ -510,7 +510,6 @@ var dlg = paperDialogHelper.createDialog({ removeOnClose: true, modal: false, - enableHistory: false, entryAnimationDuration: 160, exitAnimationDuration: 200, autoFocus: false diff --git a/dashboard-ui/scripts/channelitems.js b/dashboard-ui/scripts/channelitems.js index 642860333c..88d09b500b 100644 --- a/dashboard-ui/scripts/channelitems.js +++ b/dashboard-ui/scripts/channelitems.js @@ -2,8 +2,8 @@ var data = {}; - function getPageData() { - var key = getSavedQueryKey(); + function getPageData(context) { + var key = getSavedQueryKey(context); var pageData = data[key]; if (!pageData) { @@ -22,19 +22,35 @@ return pageData; } - function getQuery() { + function getQuery(context) { - return getPageData().query; + return getPageData(context).query; } - function getSavedQueryKey() { + function getSavedQueryKey(context) { - return LibraryBrowser.getSavedQueryKey('movies'); + if (!context.savedQueryKey) { + context.savedQueryKey = LibraryBrowser.getSavedQueryKey('channelitems'); + } + return context.savedQueryKey; + } + + function getParam(context, name) { + + if (!context.pageParams) { + context.pageParams = {}; + } + + if (!context.pageParams[name]) { + context.pageParams[name] = getParameterByName(name); + } + + return context.pageParams[name]; } function reloadFeatures(page) { - var channelId = getParameterByName('id'); + var channelId = getParam(page, 'id'); ApiClient.getJSON(ApiClient.getUrl("Channels/" + channelId + "/Features")).then(function (features) { @@ -55,12 +71,12 @@ var maxPageSize = features.MaxPageSize; - var query = getQuery(); + var query = getQuery(page); if (maxPageSize) { query.Limit = Math.min(maxPageSize, query.Limit || maxPageSize); } - getPageData().sortFields = features.DefaultSortFields; + getPageData(page).sortFields = features.DefaultSortFields; reloadItems(page); }); @@ -70,10 +86,10 @@ Dashboard.showLoadingMsg(); - var channelId = getParameterByName('id'); - var folderId = getParameterByName('folderId'); + var channelId = getParam(page, 'id'); + var folderId = getParam(page, 'folderId'); - var query = getQuery(); + var query = getQuery(page); query.UserId = Dashboard.getCurrentUserId(); if (folderId) { @@ -161,7 +177,7 @@ require(['components/filterdialog/filterdialog'], function (filterDialogFactory) { var filterDialog = new filterDialogFactory({ - query: getQuery() + query: getQuery(page) }); Events.on(filterDialog, 'filterchange', function () { @@ -174,7 +190,7 @@ function showSortMenu(page) { - var sortFields = getPageData().sortFields; + var sortFields = getPageData(page).sortFields; var items = []; @@ -225,13 +241,13 @@ callback: function () { reloadItems(page); }, - query: getQuery() + query: getQuery(page) }); } function updateFilterControls(page) { - var query = getQuery(); + var query = getQuery(page); $('.alphabetPicker', page).alphaValue(query.NameStartsWith); } @@ -241,7 +257,7 @@ $('.alphabetPicker', this).on('alphaselect', function (e, character) { - var query = getQuery(); + var query = getQuery(page); query.NameStartsWithOrGreater = character; query.StartIndex = 0; @@ -249,7 +265,7 @@ }).on('alphaclear', function (e) { - var query = getQuery(); + var query = getQuery(page); query.NameStartsWithOrGreater = ''; reloadItems(page); diff --git a/dashboard-ui/scripts/episodes.js b/dashboard-ui/scripts/episodes.js index a538a74554..be1395c055 100644 --- a/dashboard-ui/scripts/episodes.js +++ b/dashboard-ui/scripts/episodes.js @@ -2,8 +2,8 @@ var data = {}; - function getPageData() { - var key = getSavedQueryKey(); + function getPageData(context) { + var key = getSavedQueryKey(context); var pageData = data[key]; if (!pageData) { @@ -30,27 +30,30 @@ return pageData; } - function getQuery() { + function getQuery(context) { - return getPageData().query; + return getPageData(context).query; } - function getSavedQueryKey() { + function getSavedQueryKey(context) { - return LibraryBrowser.getSavedQueryKey('episodes'); + if (!context.savedQueryKey) { + context.savedQueryKey = LibraryBrowser.getSavedQueryKey('episodes'); + } + return context.savedQueryKey; } function reloadItems(page) { Dashboard.showLoadingMsg(); - var query = getQuery(); + var query = getQuery(page); ApiClient.getItems(Dashboard.getCurrentUserId(), query).then(function (result) { // Scroll back up so they can see the results from the beginning window.scrollTo(0, 0); - var view = getPageData().view; + var view = getPageData(page).view; var html = ''; var pagingHtml = LibraryBrowser.getQueryPagingHtml({ @@ -116,8 +119,8 @@ }); $('.btnChangeLayout', page).on('layoutchange', function (e, layout) { - getPageData().view = layout; - LibraryBrowser.saveViewSetting(getSavedQueryKey(), layout); + getPageData(page).view = layout; + LibraryBrowser.saveViewSetting(getSavedQueryKey(page), layout); reloadItems(page); }); @@ -171,7 +174,7 @@ }); }); - LibraryBrowser.saveQueryValues(getSavedQueryKey(), query); + LibraryBrowser.saveQueryValues(getSavedQueryKey(page), query); Dashboard.hideLoadingMsg(); }); @@ -182,7 +185,7 @@ require(['components/filterdialog/filterdialog'], function (filterDialogFactory) { var filterDialog = new filterDialogFactory({ - query: getQuery(), + query: getQuery(page), mode: 'episodes' }); @@ -196,7 +199,7 @@ function updateFilterControls(tabContent) { - var query = getQuery(); + var query = getQuery(tabContent); $('.alphabetPicker', tabContent).alphaValue(query.NameStartsWithOrGreater); } @@ -205,7 +208,7 @@ $('.alphabetPicker', tabContent).on('alphaselect', function (e, character) { - var query = getQuery(); + var query = getQuery(tabContent); query.NameStartsWithOrGreater = character; query.StartIndex = 0; @@ -213,7 +216,7 @@ }).on('alphaclear', function (e) { - var query = getQuery(); + var query = getQuery(tabContent); query.NameStartsWithOrGreater = ''; reloadItems(tabContent); diff --git a/dashboard-ui/scripts/gamespage.js b/dashboard-ui/scripts/gamespage.js index b51e72a2cb..76e28a5b57 100644 --- a/dashboard-ui/scripts/gamespage.js +++ b/dashboard-ui/scripts/gamespage.js @@ -2,8 +2,8 @@ var data = {}; - function getPageData() { - var key = getSavedQueryKey(); + function getPageData(context) { + var key = getSavedQueryKey(context); var pageData = data[key]; if (!pageData) { @@ -28,21 +28,24 @@ return pageData; } - function getQuery() { + function getQuery(context) { - return getPageData().query; + return getPageData(context).query; } - function getSavedQueryKey() { + function getSavedQueryKey(context) { - return LibraryBrowser.getSavedQueryKey('movies'); + if (!context.savedQueryKey) { + context.savedQueryKey = LibraryBrowser.getSavedQueryKey('games'); + } + return context.savedQueryKey; } function reloadItems(page) { Dashboard.showLoadingMsg(); - var query = getQuery(); + var query = getQuery(page); ApiClient.getItems(Dashboard.getCurrentUserId(), query).then(function (result) { @@ -59,7 +62,7 @@ filterButton: true })); - var view = getPageData().view; + var view = getPageData(page).view; if (view == "List") { @@ -108,7 +111,7 @@ showFilterMenu(page); }); - LibraryBrowser.saveQueryValues(getSavedQueryKey(), query); + LibraryBrowser.saveQueryValues(getSavedQueryKey(page), query); Dashboard.hideLoadingMsg(); }); @@ -119,7 +122,7 @@ require(['components/filterdialog/filterdialog'], function (filterDialogFactory) { var filterDialog = new filterDialogFactory({ - query: getQuery(), + query: getQuery(page), mode: 'games' }); @@ -137,7 +140,7 @@ $('.alphabetPicker', this).on('alphaselect', function (e, character) { - var query = getQuery(); + var query = getQuery(page); query.NameStartsWithOrGreater = character; query.StartIndex = 0; @@ -145,7 +148,7 @@ }).on('alphaclear', function (e) { - var query = getQuery(); + var query = getQuery(page); query.NameStartsWithOrGreater = ''; reloadItems(page); @@ -154,7 +157,7 @@ }).on('pagebeforeshow', "#gamesPage", function () { var page = this; - var query = getQuery(); + var query = getQuery(page); query.ParentId = LibraryMenu.getTopParentId(); var limit = LibraryBrowser.getDefaultPageSize(); @@ -165,7 +168,7 @@ query.StartIndex = 0; } - var viewkey = getSavedQueryKey(); + var viewkey = getSavedQueryKey(page); LibraryBrowser.loadSavedQueryValues(viewkey, query); diff --git a/dashboard-ui/scripts/itemlistpage.js b/dashboard-ui/scripts/itemlistpage.js index 104f0d657f..b7ad70e654 100644 --- a/dashboard-ui/scripts/itemlistpage.js +++ b/dashboard-ui/scripts/itemlistpage.js @@ -4,8 +4,8 @@ var data = {}; - function getPageData() { - var key = getSavedQueryKey(); + function getPageData(context) { + var key = getSavedQueryKey(context); var pageData = data[key]; if (!pageData) { @@ -25,26 +25,42 @@ pageData.query.NameStartsWithOrGreater = ''; pageData.view = LibraryBrowser.getSavedView(key) || LibraryBrowser.getDefaultItemsView('Poster', 'Poster'); - pageData.query.ParentId = getParameterByName('parentId'); + pageData.query.ParentId = getParam(context, 'parentId'); LibraryBrowser.loadSavedQueryValues(key, pageData.query); } return pageData; } - function getQuery() { + function getParam(context, name) { - return getPageData().query; + if (!context.pageParams) { + context.pageParams = {}; + } + + if (!context.pageParams[name]) { + context.pageParams[name] = getParameterByName(name); + } + + return context.pageParams[name]; } - function getSavedQueryKey() { - return LibraryBrowser.getSavedQueryKey(); + function getQuery(context) { + + return getPageData(context).query; + } + function getSavedQueryKey(context) { + + if (!context.savedQueryKey) { + context.savedQueryKey = LibraryBrowser.getSavedQueryKey('items'); + } + return context.savedQueryKey; } function reloadItems(page) { Dashboard.showLoadingMsg(); - var query = getQuery(); + var query = getQuery(page); var userId = Dashboard.getCurrentUserId(); var parentItemPromise = query.ParentId ? @@ -62,7 +78,7 @@ // Scroll back up so they can see the results from the beginning window.scrollTo(0, 0); - var view = getPageData().view; + var view = getPageData(page).view; var html = ''; var pagingHtml = LibraryBrowser.getQueryPagingHtml({ @@ -81,7 +97,7 @@ updateFilterControls(page); - var context = getParameterByName('context'); + var context = getParam(page, 'context'); var posterOptions = { items: result.Items, @@ -141,8 +157,8 @@ }); $('.btnChangeLayout', page).on('layoutchange', function (e, layout) { - getPageData().view = layout; - LibraryBrowser.saveViewSetting(getSavedQueryKey(), layout); + getPageData(page).view = layout; + LibraryBrowser.saveViewSetting(getSavedQueryKey(page), layout); reloadItems(page); }); @@ -192,7 +208,7 @@ }); }); - LibraryBrowser.saveQueryValues(getParameterByName('parentId'), query); + LibraryBrowser.saveQueryValues(getParam(page, 'parentId'), query); var name = item.Name; @@ -222,7 +238,7 @@ require(['components/filterdialog/filterdialog'], function (filterDialogFactory) { var filterDialog = new filterDialogFactory({ - query: getQuery() + query: getQuery(page) }); Events.on(filterDialog, 'filterchange', function () { @@ -235,15 +251,15 @@ function updateFilterControls(page) { - var query = getQuery(); + var query = getQuery(page); $('.alphabetPicker', page).alphaValue(query.NameStartsWithOrGreater); } function onListItemClick(e) { - var query = getQuery(); - var page = $(this).parents('.page'); + var page = $(this).parents('.page')[0]; + var query = getQuery(page); var info = LibraryBrowser.getListItemInfo(this); if (info.mediaType == 'Photo') { @@ -260,7 +276,7 @@ $('.alphabetPicker', this).on('alphaselect', function (e, character) { - var query = getQuery(); + var query = getQuery(page); query.NameStartsWithOrGreater = character; query.StartIndex = 0; @@ -268,7 +284,7 @@ }).on('alphaclear', function (e) { - var query = getQuery(); + var query = getQuery(page); query.NameStartsWithOrGreater = ''; reloadItems(page); @@ -284,7 +300,7 @@ reloadItems(page); updateFilterControls(page); - LibraryMenu.setBackButtonVisible(getParameterByName('context')); + LibraryMenu.setBackButtonVisible(getParam(page, 'context')); }); diff --git a/dashboard-ui/scripts/librarybrowser.js b/dashboard-ui/scripts/librarybrowser.js index c0ae3d84d3..fcb6cb7ddd 100644 --- a/dashboard-ui/scripts/librarybrowser.js +++ b/dashboard-ui/scripts/librarybrowser.js @@ -2947,14 +2947,7 @@ dlg.innerHTML = html; document.body.appendChild(dlg); - var fireCallbackOnClose = false; - - paperDialogHelper.open(dlg).then(function () { - - if (options.callback && fireCallbackOnClose) { - options.callback(); - } - }); + paperDialogHelper.open(dlg); $('.groupSortBy', dlg).on('iron-select', function () { @@ -2965,7 +2958,7 @@ options.query.StartIndex = 0; if (options.callback && changed) { - fireCallbackOnClose = true; + options.callback(); } }); @@ -2978,7 +2971,7 @@ options.query.StartIndex = 0; if (options.callback && changed) { - fireCallbackOnClose = true; + options.callback(); } }); }); diff --git a/dashboard-ui/scripts/livetvchannels.js b/dashboard-ui/scripts/livetvchannels.js index f86da37365..ccfc3e1554 100644 --- a/dashboard-ui/scripts/livetvchannels.js +++ b/dashboard-ui/scripts/livetvchannels.js @@ -2,8 +2,8 @@ var data = {}; - function getPageData() { - var key = getSavedQueryKey(); + function getPageData(context) { + var key = getSavedQueryKey(context); var pageData = data[key]; if (!pageData) { @@ -20,14 +20,17 @@ return pageData; } - function getQuery() { + function getQuery(context) { - return getPageData().query; + return getPageData(context).query; } - function getSavedQueryKey() { + function getSavedQueryKey(context) { - return LibraryBrowser.getSavedQueryKey('channels'); + if (!context.savedQueryKey) { + context.savedQueryKey = LibraryBrowser.getSavedQueryKey('channels'); + } + return context.savedQueryKey; } function getChannelsHtml(channels) { @@ -40,7 +43,7 @@ function renderChannels(page, result) { - var query = getQuery(); + var query = getQuery(page); $('.listTopPaging', page).html(LibraryBrowser.getQueryPagingHtml({ startIndex: query.StartIndex, @@ -71,7 +74,7 @@ showFilterMenu(page); }); - LibraryBrowser.saveQueryValues(getSavedQueryKey(), query); + LibraryBrowser.saveQueryValues(getSavedQueryKey(page), query); } function showFilterMenu(page) { @@ -79,7 +82,7 @@ require(['components/filterdialog/filterdialog'], function (filterDialogFactory) { var filterDialog = new filterDialogFactory({ - query: getQuery(), + query: getQuery(page), mode: 'livetvchannels' }); @@ -95,7 +98,7 @@ Dashboard.showLoadingMsg(); - var query = getQuery(); + var query = getQuery(page); query.UserId = Dashboard.getCurrentUserId(); diff --git a/dashboard-ui/scripts/movies.js b/dashboard-ui/scripts/movies.js index 534db77697..b15d08faf2 100644 --- a/dashboard-ui/scripts/movies.js +++ b/dashboard-ui/scripts/movies.js @@ -2,8 +2,8 @@ var data = {}; - function getPageData() { - var key = getSavedQueryKey(); + function getPageData(context) { + var key = getSavedQueryKey(context); var pageData = data[key]; if (!pageData) { @@ -28,24 +28,27 @@ return pageData; } - function getQuery() { + function getQuery(context) { - return getPageData().query; + return getPageData(context).query; } - function getSavedQueryKey() { + function getSavedQueryKey(context) { - return LibraryBrowser.getSavedQueryKey('movies'); + if (!context.savedQueryKey) { + context.savedQueryKey = LibraryBrowser.getSavedQueryKey('movies'); + } + return context.savedQueryKey; } - function reloadItems(page, viewPanel) { + function reloadItems(context) { Dashboard.showLoadingMsg(); var userId = Dashboard.getCurrentUserId(); - var query = getQuery(); - var view = getPageData().view; + var query = getQuery(context); + var view = getPageData(context).view; ApiClient.getItems(userId, query).then(function (result) { @@ -67,9 +70,9 @@ filterButton: true }); - page.querySelector('.listTopPaging').innerHTML = pagingHtml; + context.querySelector('.listTopPaging').innerHTML = pagingHtml; - updateFilterControls(page); + updateFilterControls(context); if (view == "Thumb") { html = LibraryBrowser.getPosterViewHtml({ @@ -144,38 +147,38 @@ }); } - var elem = page.querySelector('.itemsContainer'); + var elem = context.querySelector('.itemsContainer'); elem.innerHTML = html + pagingHtml; ImageLoader.lazyChildren(elem); - $('.btnNextPage', page).on('click', function () { + $('.btnNextPage', context).on('click', function () { query.StartIndex += query.Limit; - reloadItems(page); + reloadItems(context); }); - $('.btnPreviousPage', page).on('click', function () { + $('.btnPreviousPage', context).on('click', function () { query.StartIndex -= query.Limit; - reloadItems(page); + reloadItems(context); }); - $('.btnChangeLayout', page).on('layoutchange', function (e, layout) { + $('.btnChangeLayout', context).on('layoutchange', function (e, layout) { if (layout == 'Timeline') { - getQuery().SortBy = 'ProductionYear,PremiereDate,SortName'; - getQuery().SortOrder = 'Descending'; + getQuery(context).SortBy = 'ProductionYear,PremiereDate,SortName'; + getQuery(context).SortOrder = 'Descending'; } - getPageData().view = layout; - LibraryBrowser.saveViewSetting(getSavedQueryKey(), layout); - reloadItems(page); + getPageData(context).view = layout; + LibraryBrowser.saveViewSetting(getSavedQueryKey(context), layout); + reloadItems(context); }); - $('.btnFilter', page).on('click', function () { - showFilterMenu(page); + $('.btnFilter', context).on('click', function () { + showFilterMenu(context); }); // On callback make sure to set StartIndex = 0 - $('.btnSort', page).on('click', function () { + $('.btnSort', context).on('click', function () { LibraryBrowser.showSortMenu({ items: [{ name: Globalize.translate('OptionNameSort'), @@ -230,65 +233,65 @@ id: 'VideoBitRate,SortName' }], callback: function () { - reloadItems(page); + reloadItems(context); }, query: query }); }); - LibraryBrowser.saveQueryValues(getSavedQueryKey(), query); + LibraryBrowser.saveQueryValues(getSavedQueryKey(context), query); - LibraryBrowser.setLastRefreshed(page); + LibraryBrowser.setLastRefreshed(context); Dashboard.hideLoadingMsg(); }); } - function showFilterMenu(page) { + function showFilterMenu(context) { require(['components/filterdialog/filterdialog'], function (filterDialogFactory) { var filterDialog = new filterDialogFactory({ - query: getQuery(), + query: getQuery(context), mode: 'movies' }); Events.on(filterDialog, 'filterchange', function () { - reloadItems(page); + reloadItems(context); }); filterDialog.show(); }); } - function updateFilterControls(tabContent) { + function updateFilterControls(context) { - var query = getQuery(); + var query = getQuery(context); - $('.alphabetPicker', tabContent).alphaValue(query.NameStartsWithOrGreater); + $('.alphabetPicker', context).alphaValue(query.NameStartsWithOrGreater); } - function initPage(tabContent) { + function initPage(context) { - $('.alphabetPicker', tabContent).on('alphaselect', function (e, character) { + $('.alphabetPicker', context).on('alphaselect', function (e, character) { - var query = getQuery(); + var query = getQuery(context); query.NameStartsWithOrGreater = character; query.StartIndex = 0; - reloadItems(tabContent); + reloadItems(context); }).on('alphaclear', function (e) { - var query = getQuery(); + var query = getQuery(context); query.NameStartsWithOrGreater = ''; - reloadItems(tabContent); + reloadItems(context); }); - $('.itemsContainer', tabContent).on('needsrefresh', function () { + $('.itemsContainer', context).on('needsrefresh', function () { - reloadItems(tabContent); + reloadItems(context); }); } diff --git a/dashboard-ui/scripts/movietrailers.js b/dashboard-ui/scripts/movietrailers.js index bb0085bb07..9105aa91c0 100644 --- a/dashboard-ui/scripts/movietrailers.js +++ b/dashboard-ui/scripts/movietrailers.js @@ -2,9 +2,9 @@ var data = {}; - function getQuery() { + function getQuery(context) { - var key = getSavedQueryKey(); + var key = getSavedQueryKey(context); var pageData = data[key]; if (!pageData) { @@ -27,16 +27,19 @@ return pageData.query; } - function getSavedQueryKey() { + function getSavedQueryKey(context) { - return LibraryBrowser.getSavedQueryKey('trailers'); + if (!context.savedQueryKey) { + context.savedQueryKey = LibraryBrowser.getSavedQueryKey('trailers'); + } + return context.savedQueryKey; } function reloadItems(page) { Dashboard.showLoadingMsg(); - var query = getQuery(); + var query = getQuery(page); query.UserId = Dashboard.getCurrentUserId(); ApiClient.getJSON(ApiClient.getUrl('Trailers', query)).then(function (result) { @@ -130,7 +133,7 @@ }); }); - LibraryBrowser.saveQueryValues(getSavedQueryKey(), query); + LibraryBrowser.saveQueryValues(getSavedQueryKey(page), query); Dashboard.hideLoadingMsg(); }); @@ -141,7 +144,7 @@ require(['components/filterdialog/filterdialog'], function (filterDialogFactory) { var filterDialog = new filterDialogFactory({ - query: getQuery() + query: getQuery(page) }); Events.on(filterDialog, 'filterchange', function () { @@ -154,7 +157,7 @@ function updateFilterControls(tabContent) { - var query = getQuery(); + var query = getQuery(tabContent); $('.alphabetPicker', tabContent).alphaValue(query.NameStartsWithOrGreater); } @@ -163,7 +166,7 @@ $('.alphabetPicker', tabContent).on('alphaselect', function (e, character) { - var query = getQuery(); + var query = getQuery(page); query.NameStartsWithOrGreater = character; query.StartIndex = 0; @@ -171,7 +174,7 @@ }).on('alphaclear', function (e) { - var query = getQuery(); + var query = getQuery(page); query.NameStartsWithOrGreater = ''; reloadItems(tabContent); diff --git a/dashboard-ui/scripts/musicalbumartists.js b/dashboard-ui/scripts/musicalbumartists.js index 529fd51964..628a5cfe98 100644 --- a/dashboard-ui/scripts/musicalbumartists.js +++ b/dashboard-ui/scripts/musicalbumartists.js @@ -1,8 +1,8 @@ (function ($, document) { var data = {}; - function getPageData() { - var key = getSavedQueryKey(); + function getPageData(context) { + var key = getSavedQueryKey(context); var pageData = data[key]; if (!pageData) { @@ -26,28 +26,31 @@ return pageData; } - function getQuery() { + function getQuery(context) { - return getPageData().query; + return getPageData(context).query; } - function getSavedQueryKey() { + function getSavedQueryKey(context) { - return LibraryBrowser.getSavedQueryKey('albumartists'); + if (!context.savedQueryKey) { + context.savedQueryKey = LibraryBrowser.getSavedQueryKey('albumartists'); + } + return context.savedQueryKey; } function reloadItems(page) { Dashboard.showLoadingMsg(); - var query = getQuery(); + var query = getQuery(page); ApiClient.getAlbumArtists(Dashboard.getCurrentUserId(), query).then(function (result) { // Scroll back up so they can see the results from the beginning window.scrollTo(0, 0); - var view = getPageData().view; + var view = getPageData(page).view; var html = ''; var pagingHtml = LibraryBrowser.getQueryPagingHtml({ @@ -114,8 +117,8 @@ }); $('.btnChangeLayout', page).on('layoutchange', function (e, layout) { - getPageData().view = layout; - LibraryBrowser.saveViewSetting(getSavedQueryKey(), layout); + getPageData(page).view = layout; + LibraryBrowser.saveViewSetting(getSavedQueryKey(page), layout); reloadItems(page); }); @@ -123,7 +126,7 @@ showFilterMenu(page); }); - LibraryBrowser.saveQueryValues(getSavedQueryKey(), query); + LibraryBrowser.saveQueryValues(getSavedQueryKey(page), query); LibraryBrowser.setLastRefreshed(page); Dashboard.hideLoadingMsg(); }); @@ -134,7 +137,7 @@ require(['components/filterdialog/filterdialog'], function (filterDialogFactory) { var filterDialog = new filterDialogFactory({ - query: getQuery(), + query: getQuery(page), mode: 'albumartists' }); @@ -148,7 +151,7 @@ function updateFilterControls(tabContent) { - var query = getQuery(); + var query = getQuery(tabContent); $('.alphabetPicker', tabContent).alphaValue(query.NameStartsWithOrGreater); } @@ -157,7 +160,7 @@ $('.alphabetPicker', tabContent).on('alphaselect', function (e, character) { - var query = getQuery(); + var query = getQuery(tabContent); query.NameStartsWithOrGreater = character; query.StartIndex = 0; @@ -166,7 +169,7 @@ }).on('alphaclear', function (e) { - var query = getQuery(); + var query = getQuery(tabContent); query.NameStartsWithOrGreater = ''; diff --git a/dashboard-ui/scripts/musicalbums.js b/dashboard-ui/scripts/musicalbums.js index 6a641b1dad..d100ec8905 100644 --- a/dashboard-ui/scripts/musicalbums.js +++ b/dashboard-ui/scripts/musicalbums.js @@ -1,8 +1,8 @@ (function ($, document) { var data = {}; - function getPageData() { - var key = getSavedQueryKey(); + function getPageData(context) { + var key = getSavedQueryKey(context); var pageData = data[key]; if (!pageData) { @@ -27,21 +27,24 @@ return pageData; } - function getQuery() { + function getQuery(context) { - return getPageData().query; + return getPageData(context).query; } - function getSavedQueryKey() { + function getSavedQueryKey(context) { - return LibraryBrowser.getSavedQueryKey('albums'); + if (!context.savedQueryKey) { + context.savedQueryKey = LibraryBrowser.getSavedQueryKey('albums'); + } + return context.savedQueryKey; } function reloadItems(page) { Dashboard.showLoadingMsg(); - var query = getQuery(); + var query = getQuery(page); ApiClient.getItems(Dashboard.getCurrentUserId(), query).then(function (result) { @@ -49,7 +52,7 @@ window.scrollTo(0, 0); var html = ''; - var view = getPageData().view; + var view = getPageData(page).view; var pagingHtml = LibraryBrowser.getQueryPagingHtml({ startIndex: query.StartIndex, limit: query.Limit, @@ -133,12 +136,12 @@ $('.btnChangeLayout', page).on('layoutchange', function (e, layout) { if (layout == 'Timeline') { - getQuery().SortBy = 'ProductionYear,PremiereDate,SortName'; - getQuery().SortOrder = 'Descending'; + getQuery(page).SortBy = 'ProductionYear,PremiereDate,SortName'; + getQuery(page).SortOrder = 'Descending'; } - getPageData().view = layout; - LibraryBrowser.saveViewSetting(getSavedQueryKey(), layout); + getPageData(page).view = layout; + LibraryBrowser.saveViewSetting(getSavedQueryKey(page), layout); reloadItems(page); }); @@ -176,7 +179,7 @@ }); }); - LibraryBrowser.saveQueryValues(getSavedQueryKey(), query); + LibraryBrowser.saveQueryValues(getSavedQueryKey(page), query); LibraryBrowser.setLastRefreshed(page); Dashboard.hideLoadingMsg(); }); @@ -187,7 +190,7 @@ require(['components/filterdialog/filterdialog'], function (filterDialogFactory) { var filterDialog = new filterDialogFactory({ - query: getQuery(), + query: getQuery(page), mode: 'albums' }); @@ -201,7 +204,7 @@ function updateFilterControls(page) { - var query = getQuery(); + var query = getQuery(page); $('.alphabetPicker', page).alphaValue(query.NameStartsWith); } @@ -210,7 +213,7 @@ $('.alphabetPicker', tabContent).on('alphaselect', function (e, character) { - var query = getQuery(); + var query = getQuery(tabContent); if (query.SortBy.indexOf('AlbumArtist') == -1) { query.NameStartsWithOrGreater = character; @@ -226,7 +229,7 @@ }).on('alphaclear', function (e) { - var query = getQuery(); + var query = getQuery(tabContent); query.NameStartsWithOrGreater = ''; query.AlbumArtistStartsWithOrGreater = ''; diff --git a/dashboard-ui/scripts/musicartists.js b/dashboard-ui/scripts/musicartists.js index 607ee3ef4c..bf5f564767 100644 --- a/dashboard-ui/scripts/musicartists.js +++ b/dashboard-ui/scripts/musicartists.js @@ -1,8 +1,8 @@ (function ($, document) { var data = {}; - function getPageData() { - var key = getSavedQueryKey(); + function getPageData(context) { + var key = getSavedQueryKey(context); var pageData = data[key]; if (!pageData) { @@ -26,28 +26,31 @@ return pageData; } - function getQuery() { + function getQuery(context) { - return getPageData().query; + return getPageData(context).query; } - function getSavedQueryKey() { + function getSavedQueryKey(context) { - return LibraryBrowser.getSavedQueryKey('artists'); + if (!context.savedQueryKey) { + context.savedQueryKey = LibraryBrowser.getSavedQueryKey('artists'); + } + return context.savedQueryKey; } function reloadItems(page) { Dashboard.showLoadingMsg(); - var query = getQuery(); + var query = getQuery(page); ApiClient.getArtists(Dashboard.getCurrentUserId(), query).then(function (result) { // Scroll back up so they can see the results from the beginning window.scrollTo(0, 0); - var view = getPageData().view; + var view = getPageData(page).view; var html = ''; var pagingHtml = LibraryBrowser.getQueryPagingHtml({ @@ -114,8 +117,8 @@ }); $('.btnChangeLayout', page).on('layoutchange', function (e, layout) { - getPageData().view = layout; - LibraryBrowser.saveViewSetting(getSavedQueryKey(), layout); + getPageData(page).view = layout; + LibraryBrowser.saveViewSetting(getSavedQueryKey(page), layout); reloadItems(page); }); @@ -123,7 +126,7 @@ showFilterMenu(page); }); - LibraryBrowser.saveQueryValues(getSavedQueryKey(), query); + LibraryBrowser.saveQueryValues(getSavedQueryKey(page), query); LibraryBrowser.setLastRefreshed(page); Dashboard.hideLoadingMsg(); }); @@ -134,7 +137,7 @@ require(['components/filterdialog/filterdialog'], function (filterDialogFactory) { var filterDialog = new filterDialogFactory({ - query: getQuery(), + query: getQuery(page), mode: 'artists' }); @@ -148,7 +151,7 @@ function updateFilterControls(tabContent) { - var query = getQuery(); + var query = getQuery(tabContent); $('.alphabetPicker', tabContent).alphaValue(query.NameStartsWithOrGreater); } @@ -157,7 +160,7 @@ $('.alphabetPicker', tabContent).on('alphaselect', function (e, character) { - var query = getQuery(); + var query = getQuery(tabContent); query.NameStartsWithOrGreater = character; query.StartIndex = 0; @@ -166,7 +169,7 @@ }).on('alphaclear', function (e) { - var query = getQuery(); + var query = getQuery(tabContent); query.NameStartsWithOrGreater = ''; diff --git a/dashboard-ui/scripts/songs.js b/dashboard-ui/scripts/songs.js index 8cbe99b3a4..b3b5d3a5a3 100644 --- a/dashboard-ui/scripts/songs.js +++ b/dashboard-ui/scripts/songs.js @@ -3,8 +3,8 @@ var defaultSortBy = "Album,SortName"; var data = {}; - function getPageData() { - var key = getSavedQueryKey(); + function getPageData(context) { + var key = getSavedQueryKey(context); var pageData = data[key]; if (!pageData) { @@ -28,21 +28,24 @@ return pageData; } - function getQuery() { + function getQuery(context) { - return getPageData().query; + return getPageData(context).query; } - function getSavedQueryKey() { + function getSavedQueryKey(context) { - return LibraryBrowser.getSavedQueryKey('songs'); + if (!context.savedQueryKey) { + context.savedQueryKey = LibraryBrowser.getSavedQueryKey('songs'); + } + return context.savedQueryKey; } function reloadItems(page) { Dashboard.showLoadingMsg(); - var query = getQuery(); + var query = getQuery(page); ApiClient.getItems(Dashboard.getCurrentUserId(), query).then(function (result) { // Scroll back up so they can see the results from the beginning @@ -132,7 +135,7 @@ }); }); - LibraryBrowser.saveQueryValues(getSavedQueryKey(), query); + LibraryBrowser.saveQueryValues(getSavedQueryKey(page), query); Dashboard.hideLoadingMsg(); }); @@ -143,7 +146,7 @@ require(['components/filterdialog/filterdialog'], function (filterDialogFactory) { var filterDialog = new filterDialogFactory({ - query: getQuery(), + query: getQuery(page), mode: 'songs' }); diff --git a/dashboard-ui/scripts/tvshows.js b/dashboard-ui/scripts/tvshows.js index 6d23a7a19f..dbfa78739c 100644 --- a/dashboard-ui/scripts/tvshows.js +++ b/dashboard-ui/scripts/tvshows.js @@ -2,8 +2,8 @@ var data = {}; - function getPageData() { - var key = getSavedQueryKey(); + function getPageData(context) { + var key = getSavedQueryKey(context); var pageData = data[key]; if (!pageData) { @@ -28,28 +28,31 @@ return pageData; } - function getQuery() { + function getQuery(context) { - return getPageData().query; + return getPageData(context).query; } - function getSavedQueryKey() { + function getSavedQueryKey(context) { - return LibraryBrowser.getSavedQueryKey('series'); + if (!context.savedQueryKey) { + context.savedQueryKey = LibraryBrowser.getSavedQueryKey('series'); + } + return context.savedQueryKey; } function reloadItems(page) { Dashboard.showLoadingMsg(); - var query = getQuery(); + var query = getQuery(page); ApiClient.getItems(Dashboard.getCurrentUserId(), query).then(function (result) { // Scroll back up so they can see the results from the beginning window.scrollTo(0, 0); - var view = getPageData().view; + var view = getPageData(page).view; var html = ''; var pagingHtml = LibraryBrowser.getQueryPagingHtml({ @@ -151,8 +154,8 @@ }); $('.btnChangeLayout', page).on('layoutchange', function (e, layout) { - getPageData().view = layout; - LibraryBrowser.saveViewSetting(getSavedQueryKey(), layout); + getPageData(page).view = layout; + LibraryBrowser.saveViewSetting(getSavedQueryKey(page), layout); reloadItems(page); }); @@ -202,7 +205,7 @@ }); }); - LibraryBrowser.saveQueryValues(getSavedQueryKey(), query); + LibraryBrowser.saveQueryValues(getSavedQueryKey(page), query); LibraryBrowser.setLastRefreshed(page); Dashboard.hideLoadingMsg(); @@ -214,7 +217,7 @@ require(['components/filterdialog/filterdialog'], function (filterDialogFactory) { var filterDialog = new filterDialogFactory({ - query: getQuery(), + query: getQuery(page), mode: 'series' }); @@ -228,7 +231,7 @@ function updateFilterControls(tabContent) { - var query = getQuery(); + var query = getQuery(tabContent); $('.alphabetPicker', tabContent).alphaValue(query.NameStartsWith); } @@ -236,7 +239,7 @@ $('.alphabetPicker', tabContent).on('alphaselect', function (e, character) { - var query = getQuery(); + var query = getQuery(tabContent); query.NameStartsWithOrGreater = character; query.StartIndex = 0; @@ -244,7 +247,7 @@ }).on('alphaclear', function (e) { - var query = getQuery(); + var query = getQuery(tabContent); query.NameStartsWithOrGreater = ''; reloadItems(tabContent);