diff --git a/dashboard-ui/components/filterdialog/filterdialog.js b/dashboard-ui/components/filterdialog/filterdialog.js index 856afa572b..a06a783d19 100644 --- a/dashboard-ui/components/filterdialog/filterdialog.js +++ b/dashboard-ui/components/filterdialog/filterdialog.js @@ -1,15 +1,25 @@ define(['paperdialoghelper', 'events', 'paper-checkbox'], function (paperDialogHelper, events) { - function updateFilterControls(context, query) { + function updateFilterControls(context, options) { - $('.chkStandardFilter', context).each(function () { + var query = options.query; - var filters = "," + (query.Filters || ""); - var filterName = this.getAttribute('data-filter'); + if (options.mode == 'livetvchannels') { - this.checked = filters.indexOf(',' + filterName) != -1; + $('.chkFavorite', context).checked(query.IsFavorite == true); + $('.chkLikes', context).checked(query.IsLiked == true); + $('.chkDislikes', context).checked(query.IsDisliked == true); - }); + } else { + $('.chkStandardFilter', context).each(function () { + + var filters = "," + (query.Filters || ""); + var filterName = this.getAttribute('data-filter'); + + this.checked = filters.indexOf(',' + filterName) != -1; + + }); + } } function triggerChange(instance) { @@ -17,23 +27,67 @@ events.trigger(instance, 'filterchange'); } - function bindEvents(instance, context, query) { - - $('.chkStandardFilter', context).on('change', function () { + function bindEvents(instance, context, options) { - var filterName = this.getAttribute('data-filter'); - var filters = query.Filters || ""; + var query = options.query; - filters = (',' + filters).replace(',' + filterName, '').substring(1); + if (options.mode == 'livetvchannels') { - if (this.checked) { - filters = filters ? (filters + ',' + filterName) : filterName; - } + $('.chkFavorite', context).on('change', function () { + query.StartIndex = 0; + query.IsFavorite = this.checked ? true : null; + triggerChange(instance); + }); - query.StartIndex = 0; - query.Filters = filters; - triggerChange(instance); - }); + + $('.chkLikes', context).on('change', function () { + + query.StartIndex = 0; + query.IsLiked = this.checked ? true : null; + triggerChange(instance); + }); + + $('.chkDislikes', context).on('change', function () { + + query.StartIndex = 0; + query.IsDisliked = this.checked ? true : null; + triggerChange(instance); + }); + + } else { + $('.chkStandardFilter', context).on('change', function () { + + var filterName = this.getAttribute('data-filter'); + var filters = query.Filters || ""; + + filters = (',' + filters).replace(',' + filterName, '').substring(1); + + if (this.checked) { + filters = filters ? (filters + ',' + filterName) : filterName; + } + + query.StartIndex = 0; + query.Filters = filters; + triggerChange(instance); + }); + } + } + + function setVisibility(context, options) { + + if (options.mode == 'livetvchannels') { + hideByClass(context, 'nolivetvchannels'); + } + + } + + function hideByClass(context, className) { + + var elems = context.querySelectorAll('.' + className); + + for (var i = 0, length = elems.length; i < length; i++) { + elems[i].classList.add('hide'); + } } return function (options) { @@ -57,8 +111,8 @@ exitAnimationDuration: 200 }); - dlg.classList.add('ui-body-b'); - dlg.classList.add('background-theme-b'); + dlg.classList.add('ui-body-a'); + dlg.classList.add('background-theme-a'); dlg.classList.add('formDialog'); @@ -67,14 +121,15 @@ html += Globalize.translateDocument(template); dlg.innerHTML = html; + setVisibility(dlg, options); document.body.appendChild(dlg); paperDialogHelper.open(dlg); dlg.addEventListener('iron-overlay-closed', resolve); - updateFilterControls(dlg, options.query); - bindEvents(self, dlg, options.query); + updateFilterControls(dlg, options); + bindEvents(self, dlg, options); } xhr.send(); diff --git a/dashboard-ui/components/filterdialog/filterdialog.template.html b/dashboard-ui/components/filterdialog/filterdialog.template.html index dca574fb8a..0bde71bf8a 100644 --- a/dashboard-ui/components/filterdialog/filterdialog.template.html +++ b/dashboard-ui/components/filterdialog/filterdialog.template.html @@ -1,14 +1,13 @@ 
-

+

${HeaderFilters} -

- +
- ${OptionPlayed} - ${OptionUnplayed} - ${OptionResumable} - ${OptionFavorite} - ${OptionLikes} - ${OptionDislikes} + ${OptionPlayed} + ${OptionUnplayed} + ${OptionResumable} + ${OptionFavorite} + ${OptionLikes} + ${OptionDislikes}
\ No newline at end of file diff --git a/dashboard-ui/livetv.html b/dashboard-ui/livetv.html index 2008038556..173b7ee833 100644 --- a/dashboard-ui/livetv.html +++ b/dashboard-ui/livetv.html @@ -4,7 +4,7 @@ Emby -
+
@@ -34,31 +34,31 @@

-
+

${HeaderUpcomingPrograms}


-
+
-

${HeaderUpcomingMovies}

- ${ButtonMoreItems} +

${HeaderUpcomingMovies}

+ ${ButtonMoreItems}

-
+
-

${HeaderUpcomingSports}

- ${ButtonMoreItems} +

${HeaderUpcomingSports}

+ ${ButtonMoreItems}

-
+
-

${HeaderUpcomingForKids}

- ${ButtonMoreItems} +

${HeaderUpcomingForKids}

+ ${ButtonMoreItems}

@@ -66,7 +66,7 @@
-
+
@@ -75,7 +75,7 @@
-
+
@@ -87,14 +87,16 @@
-

${HeaderLatestRecordings}

+

${HeaderLatestRecordings}

${ButtonSync}

@@ -114,20 +116,6 @@
-
-
-
-
-

${HeaderFilters}

-
- ${OptionFavorite} - ${OptionLikes} - ${OptionDislikes} -
-
-
-
-
diff --git a/dashboard-ui/scripts/librarybrowser.js b/dashboard-ui/scripts/librarybrowser.js index 4f439e6855..750ddcba43 100644 --- a/dashboard-ui/scripts/librarybrowser.js +++ b/dashboard-ui/scripts/librarybrowser.js @@ -2910,7 +2910,7 @@ var option = options.items[i]; - html += '' + option.name + ''; + html += '' + option.name + ''; } html += ''; @@ -2918,8 +2918,8 @@ html += Globalize.translate('HeaderSortOrder'); html += ''; html += ''; - html += '' + Globalize.translate('OptionAscending') + ''; - html += '' + Globalize.translate('OptionDescending') + ''; + html += '' + Globalize.translate('OptionAscending') + ''; + html += '' + Globalize.translate('OptionDescending') + ''; html += ''; html += '
'; diff --git a/dashboard-ui/scripts/livetvchannels.js b/dashboard-ui/scripts/livetvchannels.js index 828643cf07..f86da37365 100644 --- a/dashboard-ui/scripts/livetvchannels.js +++ b/dashboard-ui/scripts/livetvchannels.js @@ -38,7 +38,7 @@ }); } - function renderChannels(page, viewPanel, result) { + function renderChannels(page, result) { var query = getQuery(); @@ -46,16 +46,11 @@ startIndex: query.StartIndex, limit: query.Limit, totalRecordCount: result.TotalRecordCount, - viewButton: true, showLimit: false, - viewPanelClass: 'channelViewPanel', updatePageSizeSetting: false, - viewIcon: 'filter-list' - + filterButton: true })); - updateFilterControls(viewPanel); - var html = getChannelsHtml(result.Items); var elem = page.querySelector('#items'); @@ -64,18 +59,39 @@ $('.btnNextPage', page).on('click', function () { query.StartIndex += query.Limit; - reloadItems(page, viewPanel); + reloadItems(page); }); $('.btnPreviousPage', page).on('click', function () { query.StartIndex -= query.Limit; - reloadItems(page, viewPanel); + reloadItems(page); + }); + + $('.btnFilter', page).on('click', function () { + showFilterMenu(page); }); LibraryBrowser.saveQueryValues(getSavedQueryKey(), query); } - function reloadItems(page, viewPanel) { + function showFilterMenu(page) { + + require(['components/filterdialog/filterdialog'], function (filterDialogFactory) { + + var filterDialog = new filterDialogFactory({ + query: getQuery(), + mode: 'livetvchannels' + }); + + Events.on(filterDialog, 'filterchange', function () { + reloadItems(page); + }); + + filterDialog.show(); + }); + } + + function reloadItems(page) { Dashboard.showLoadingMsg(); @@ -85,7 +101,7 @@ ApiClient.getLiveTvChannels(query).then(function (result) { - renderChannels(page, viewPanel, result); + renderChannels(page, result); Dashboard.hideLoadingMsg(); @@ -93,54 +109,10 @@ }); } - function updateFilterControls(page) { - - var query = getQuery(); - $('.chkFavorite', page).checked(query.IsFavorite == true); - $('.chkLikes', page).checked(query.IsLiked == true); - $('.chkDislikes', page).checked(query.IsDisliked == true); - } - - window.LiveTvPage.initChannelsTab = function (page, tabContent) { - - var viewPanel = page.querySelector('.channelViewPanel'); - - $('.chkFavorite', viewPanel).on('change', function () { - - var query = getQuery(); - query.StartIndex = 0; - query.IsFavorite = this.checked ? true : null; - - reloadItems(tabContent, viewPanel); - }); - - - $('.chkLikes', viewPanel).on('change', function () { - - var query = getQuery(); - query.StartIndex = 0; - query.IsLiked = this.checked ? true : null; - - reloadItems(tabContent, viewPanel); - }); - - $('.chkDislikes', viewPanel).on('change', function () { - - var query = getQuery(); - query.StartIndex = 0; - query.IsDisliked = this.checked ? true : null; - - reloadItems(tabContent, viewPanel); - }); - }; - window.LiveTvPage.renderChannelsTab = function (page, tabContent) { - var viewPanel = page.querySelector('.channelViewPanel'); - if (LibraryBrowser.needsRefresh(tabContent)) { - reloadItems(tabContent, viewPanel); - updateFilterControls(viewPanel); + reloadItems(tabContent); } }; diff --git a/dashboard-ui/scripts/livetvsuggested.js b/dashboard-ui/scripts/livetvsuggested.js index 624f81a9d8..13a45584b1 100644 --- a/dashboard-ui/scripts/livetvsuggested.js +++ b/dashboard-ui/scripts/livetvsuggested.js @@ -162,7 +162,6 @@ depends.push('paper-icon-item'); depends.push('paper-item-body'); renderMethod = 'renderChannelsTab'; - initMethod = 'initChannelsTab'; break; case 3: depends.push('scripts/livetvrecordings');