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
-
+
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 += '';
+ html += '';
}
html += '';
@@ -2918,8 +2918,8 @@
html += Globalize.translate('HeaderSortOrder');
html += '';
html += '
';
- html += '';
- html += '';
+ html += '';
+ html += '';
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');