diff --git a/dashboard-ui/bower_components/emby-webcomponents/.bower.json b/dashboard-ui/bower_components/emby-webcomponents/.bower.json index e471a8f71..fed2364db 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/.bower.json +++ b/dashboard-ui/bower_components/emby-webcomponents/.bower.json @@ -14,12 +14,12 @@ }, "devDependencies": {}, "ignore": [], - "version": "1.4.173", - "_release": "1.4.173", + "version": "1.4.175", + "_release": "1.4.175", "_resolution": { "type": "version", - "tag": "1.4.173", - "commit": "8766e295ec13de73c5ef5a61c7357fc30d8c9fa1" + "tag": "1.4.175", + "commit": "aa687c378a3252d0679dfb8b16c5e6e0e1350c7a" }, "_source": "https://github.com/MediaBrowser/emby-webcomponents.git", "_target": "^1.2.1", diff --git a/dashboard-ui/bower_components/emby-webcomponents/emby-select/emby-select.js b/dashboard-ui/bower_components/emby-webcomponents/emby-select/emby-select.js index e514183b1..2b730a412 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/emby-select/emby-select.js +++ b/dashboard-ui/bower_components/emby-webcomponents/emby-select/emby-select.js @@ -113,7 +113,7 @@ EmbySelectPrototype.createdCallback = function () { var parent = this.parentNode; - if (!parent.classList.contains('selectContainer')) { + if (parent && !parent.classList.contains('selectContainer')) { var div = this.ownerDocument.createElement('div'); div.classList.add('selectContainer'); parent.replaceChild(div, this); diff --git a/dashboard-ui/bower_components/emby-webcomponents/guide/guide.js b/dashboard-ui/bower_components/emby-webcomponents/guide/guide.js index ee3d5aac4..faccf46b3 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/guide/guide.js +++ b/dashboard-ui/bower_components/emby-webcomponents/guide/guide.js @@ -1,4 +1,4 @@ -define(['require', 'browser', 'globalize', 'connectionManager', 'serverNotifications', 'loading', 'datetime', 'focusManager', 'imageLoader', 'events', 'layoutManager', 'itemShortcuts', 'registrationservices', 'dom', 'clearButtonStyle', 'css!./guide.css', 'material-icons', 'scrollStyles', 'emby-button'], function (require, browser, globalize, connectionManager, serverNotifications, loading, datetime, focusManager, imageLoader, events, layoutManager, itemShortcuts, registrationServices, dom) { +define(['require', 'browser', 'globalize', 'connectionManager', 'serverNotifications', 'loading', 'datetime', 'focusManager', 'imageLoader', 'events', 'layoutManager', 'itemShortcuts', 'registrationservices', 'dom', 'clearButtonStyle', 'css!./guide.css', 'material-icons', 'scrollStyles', 'emby-button', 'paper-icon-button-light'], function (require, browser, globalize, connectionManager, serverNotifications, loading, datetime, focusManager, imageLoader, events, layoutManager, itemShortcuts, registrationServices, dom) { function Guide(options) { @@ -14,6 +14,8 @@ var totalRendererdMs = msPerDay; var currentDate; + var currentStartIndex = 0; + var currentChannelLimit = 0; var channelQuery = { @@ -119,7 +121,7 @@ return registrationServices.validateFeature('livetv').then(function () { - var limit = browser.slow ? 100 : 400; + var limit = browser.slow ? 100 : 500; context.querySelector('.guideRequiresUnlock').classList.add('hide'); @@ -144,8 +146,11 @@ getChannelLimit(context).then(function (channelLimit) { + currentChannelLimit = channelLimit; + showLoading(); + channelQuery.StartIndex = currentStartIndex; channelQuery.Limit = channelLimit; channelQuery.AddCurrentProgram = false; channelQuery.EnableUserData = false; @@ -163,6 +168,25 @@ console.log(nextDay); channelsPromise.then(function (channelsResult) { + if (channelsResult.TotalRecordCount > channelLimit) { + context.querySelector('.guidePaging').classList.remove('hide'); + + if (channelQuery.StartIndex) { + context.querySelector('.btnPreviousPage').disabled = false; + } else { + context.querySelector('.btnPreviousPage').disabled = true; + } + + if ((channelQuery.StartIndex + channelLimit) < channelsResult.TotalRecordCount) { + context.querySelector('.btnNextPage').disabled = false; + } else { + context.querySelector('.btnNextPage').disabled = true; + } + + } else { + context.querySelector('.guidePaging').classList.add('hide'); + } + apiClient.getLiveTvPrograms({ UserId: apiClient.getCurrentUserId(), MaxStartDate: nextDay.toISOString(), @@ -821,6 +845,20 @@ }); context.querySelector('.btnUnlockGuide').addEventListener('click', function () { + currentStartIndex = 0; + channelsPromise = null; + reloadPage(context); + }); + + context.querySelector('.btnNextPage').addEventListener('click', function () { + currentStartIndex += currentChannelLimit; + channelsPromise = null; + reloadPage(context); + }); + + context.querySelector('.btnPreviousPage').addEventListener('click', function () { + currentStartIndex = Math.max(currentStartIndex - currentChannelLimit, 0); + channelsPromise = null; reloadPage(context); }); diff --git a/dashboard-ui/bower_components/emby-webcomponents/guide/tvguide.template.html b/dashboard-ui/bower_components/emby-webcomponents/guide/tvguide.template.html index d44a1ec51..7770f43ac 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/guide/tvguide.template.html +++ b/dashboard-ui/bower_components/emby-webcomponents/guide/tvguide.template.html @@ -12,10 +12,19 @@ -