diff --git a/dashboard-ui/css/site.css b/dashboard-ui/css/site.css
index 736b695af2..9b476abe76 100644
--- a/dashboard-ui/css/site.css
+++ b/dashboard-ui/css/site.css
@@ -1030,7 +1030,7 @@ progress {
opacity: .5;
}
-.accentButton .fa:not(.notext) {
+.accentButton:not(.accentButtonRight) .fa:not(.notext) {
margin-right: 7px;
}
@@ -1042,6 +1042,10 @@ h1 + .accentButton {
font-size: 13px;
}
+.accentButtonRight .fa:not(.notext) {
+ margin-left: 7px;
+}
+
.dashboardFooter {
margin-top: 50px;
text-align: center;
diff --git a/dashboard-ui/livetvitems.html b/dashboard-ui/livetvitems.html
new file mode 100644
index 0000000000..11e56cc07b
--- /dev/null
+++ b/dashboard-ui/livetvitems.html
@@ -0,0 +1,91 @@
+
+
+
+ ${TitleMediaBrowser}
+
+
+
+
+
\ No newline at end of file
diff --git a/dashboard-ui/livetvsuggested.html b/dashboard-ui/livetvsuggested.html
index ae1d8b4c22..a68e396bd2 100644
--- a/dashboard-ui/livetvsuggested.html
+++ b/dashboard-ui/livetvsuggested.html
@@ -21,10 +21,18 @@
+
diff --git a/dashboard-ui/scripts/livetvitems.js b/dashboard-ui/scripts/livetvitems.js
new file mode 100644
index 0000000000..662dc732c0
--- /dev/null
+++ b/dashboard-ui/scripts/livetvitems.js
@@ -0,0 +1,207 @@
+(function ($, document) {
+
+ var view = LibraryBrowser.getDefaultItemsView('Poster', 'Poster');
+
+ var currentDate = new Date();
+ currentDate.setHours(0, 0, 0, 0);
+
+ // The base query options
+ var query = {
+ UserId: Dashboard.getCurrentUserId(),
+ SortBy: "PremiereDate,SortName",
+ SortOrder: "Ascending",
+ StartIndex: 0
+ };
+
+ function getSavedQueryKey() {
+ return 'livetvitems' + (query.ParentId || '');
+ }
+
+ function updateFilterControls(page) {
+
+ // Reset form values using the last used query
+ $('.radioSortBy', page).each(function () {
+
+ this.checked = (query.SortBy || '').toLowerCase() == this.getAttribute('data-sortby').toLowerCase();
+
+ }).checkboxradio('refresh');
+
+ $('.radioSortOrder', page).each(function () {
+
+ this.checked = (query.SortOrder || '').toLowerCase() == this.getAttribute('data-sortorder').toLowerCase();
+
+ }).checkboxradio('refresh');
+
+ $('#selectView', page).val(view).selectmenu('refresh');
+ $('.alphabetPicker', page).alphaValue(query.NameStartsWithOrGreater);
+ $('#selectPageSize', page).val(query.Limit).selectmenu('refresh');
+ }
+
+ function reloadItems(page) {
+
+ Dashboard.showLoadingMsg();
+
+ ApiClient.getLiveTvPrograms(query).done(function (result) {
+
+ // Scroll back up so they can see the results from the beginning
+ $(document).scrollTop(0);
+
+ var html = '';
+ var pagingHtml = LibraryBrowser.getQueryPagingHtml({
+ startIndex: query.StartIndex,
+ limit: query.Limit,
+ totalRecordCount: result.TotalRecordCount,
+ viewButton: true,
+ showLimit: false,
+ addSelectionButton: true
+ });
+
+ $('.listTopPaging', page).html(pagingHtml).trigger('create');
+
+ updateFilterControls(page);
+ var trigger = false;
+
+ if (view == "Poster") {
+ html = LibraryBrowser.getPosterViewHtml({
+ items: result.Items,
+ shape: "portrait",
+ context: 'livetv',
+ showTitle: false,
+ centerText: true,
+ lazy: true,
+ overlayText: false
+ });
+ }
+ else if (view == "PosterCard") {
+ html = LibraryBrowser.getPosterViewHtml({
+ items: result.Items,
+ shape: "portrait",
+ context: 'livetv',
+ showTitle: true,
+ showYear: true,
+ lazy: true,
+ cardLayout: true
+ });
+ }
+
+ $('.itemsContainer', page).html(html).lazyChildren();
+
+ var elem = $('.itemsContainer', page).html(html).lazyChildren();
+
+ if (trigger) {
+ $(elem).trigger('create');
+ }
+
+ $(pagingHtml).appendTo(elem).trigger('create');
+
+ $('.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();
+ });
+ }
+
+ $(document).on('pageinit', "#liveTvItemsPage", function () {
+
+ var page = this;
+
+ $('.radioSortBy', this).on('click', function () {
+ query.StartIndex = 0;
+ query.SortBy = this.getAttribute('data-sortby');
+ reloadItems(page);
+ });
+
+ $('.radioSortOrder', this).on('click', function () {
+ query.StartIndex = 0;
+ query.SortOrder = this.getAttribute('data-sortorder');
+ reloadItems(page);
+ });
+
+ $('#selectView', this).on('change', function () {
+
+ view = this.value;
+
+ reloadItems(page);
+
+ LibraryBrowser.saveViewSetting(getSavedQueryKey(), view);
+ });
+
+ $('#radioBasicFilters', this).on('change', function () {
+
+ if (this.checked) {
+ $('.basicFilters', page).show();
+ $('.advancedFilters', page).hide();
+ } else {
+ $('.basicFilters', page).hide();
+ }
+ });
+
+ $('#radioAdvancedFilters', this).on('change', function () {
+
+ if (this.checked) {
+ $('.advancedFilters', page).show();
+ $('.basicFilters', page).hide();
+ } else {
+ $('.advancedFilters', page).hide();
+ }
+ });
+
+ $('.itemsContainer', page).on('needsrefresh', function () {
+
+ reloadItems(page);
+
+ });
+
+ $('#selectPageSize', page).on('change', function () {
+ query.Limit = parseInt(this.value);
+ query.StartIndex = 0;
+ reloadItems(page);
+ });
+
+ }).on('pagebeforeshow', "#liveTvItemsPage", function () {
+
+ query.ParentId = LibraryMenu.getTopParentId();
+
+ var page = this;
+ var limit = LibraryBrowser.getDefaultPageSize();
+
+ // If the default page size has changed, the start index will have to be reset
+ if (limit != query.Limit) {
+ query.Limit = limit;
+ query.StartIndex = 0;
+ }
+
+ query.IsMovie = getParameterByName('type') == 'movies' ? true : null;
+
+ var viewkey = getSavedQueryKey();
+
+ LibraryBrowser.loadSavedQueryValues(viewkey, query);
+
+ QueryFilters.onPageShow(page, query);
+
+ LibraryBrowser.getSavedViewSetting(viewkey).done(function (val) {
+
+ if (val) {
+ $('#selectView', page).val(val).selectmenu('refresh').trigger('change');
+ } else {
+ reloadItems(page);
+ }
+ });
+
+ }).on('pageshow', "#liveTvItemsPage", function () {
+
+ var page = this;
+
+ updateFilterControls(page);
+ });
+
+})(jQuery, document);
\ No newline at end of file
diff --git a/dashboard-ui/scripts/livetvsuggested.js b/dashboard-ui/scripts/livetvsuggested.js
index 2dac1e0dd4..827b2f04aa 100644
--- a/dashboard-ui/scripts/livetvsuggested.js
+++ b/dashboard-ui/scripts/livetvsuggested.js
@@ -8,14 +8,14 @@
userId: Dashboard.getCurrentUserId(),
IsAiring: true,
- limit: 18
+ limit: 16
}).done(function (result) {
var html = LibraryBrowser.getPosterViewHtml({
items: result.Items,
- shape: "square",
+ shape: "auto",
showTitle: true,
showParentTitle: true,
overlayText: true,
@@ -32,14 +32,15 @@
userId: Dashboard.getCurrentUserId(),
IsAiring: false,
HasAired: false,
- limit: 18
+ limit: 10,
+ IsMovie: false
}).done(function (result) {
var html = LibraryBrowser.getPosterViewHtml({
items: result.Items,
- shape: "square",
+ shape: "auto",
showTitle: true,
showParentTitle: true,
overlayText: true,
@@ -50,6 +51,28 @@
$('.upcomingProgramItems', page).html(html).lazyChildren();
});
+
+ ApiClient.getLiveTvRecommendedPrograms({
+
+ userId: Dashboard.getCurrentUserId(),
+ IsAiring: false,
+ HasAired: false,
+ limit: 10,
+ IsMovie: true
+
+ }).done(function (result) {
+
+ var html = LibraryBrowser.getPosterViewHtml({
+ items: result.Items,
+ shape: "auto",
+ showTitle: true,
+ coverImage: true,
+ overlayText: false,
+ lazy: true
+ });
+
+ $('.upcomingTvMovieItems', page).html(html).lazyChildren();
+ });
}
$(document).on('pagebeforeshow', "#liveTvSuggestedPage", function () {