diff --git a/dashboard-ui/bower_components/emby-webcomponents/.bower.json b/dashboard-ui/bower_components/emby-webcomponents/.bower.json index d94075b70d..fcc6b09e8d 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.337", - "_release": "1.4.337", + "version": "1.4.338", + "_release": "1.4.338", "_resolution": { "type": "version", - "tag": "1.4.337", - "commit": "1653cc935acba06056afae3a6fc8bce17fb46a7a" + "tag": "1.4.338", + "commit": "89d5917a0c6425e6f07868b92c9cabb04dcd0139" }, "_source": "https://github.com/MediaBrowser/emby-webcomponents.git", "_target": "^1.2.1", diff --git a/dashboard-ui/bower_components/emby-webcomponents/lazyloader/lazyloader-intersectionobserver.js b/dashboard-ui/bower_components/emby-webcomponents/lazyloader/lazyloader-intersectionobserver.js index afeece3a80..64e32d1f2b 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/lazyloader/lazyloader-intersectionobserver.js +++ b/dashboard-ui/bower_components/emby-webcomponents/lazyloader/lazyloader-intersectionobserver.js @@ -15,17 +15,24 @@ define(['visibleinviewport', 'browser', 'dom'], function (visibleinviewport, bro //options.rootMargin = "300%"; + var observerId = 'obs' + new Date().getTime(); + var self = this; var observer = new IntersectionObserver(function (entries) { for (var j = 0, length2 = entries.length; j < length2; j++) { var entry = entries[j]; var target = entry.target; - observer.unobserve(target); - callback(target); - loadedCount++; - if (loadedCount >= self.elementCount) { - self.destroyObserver(); + observer.unobserve(target); + + if (!target[observerId]) { + target[observerId] = 1; + callback(target); + loadedCount++; + + if (loadedCount >= self.elementCount) { + self.destroyObserver(); + } } } }, diff --git a/dashboard-ui/movies.html b/dashboard-ui/movies.html index 81a11cce86..f841987eb1 100644 --- a/dashboard-ui/movies.html +++ b/dashboard-ui/movies.html @@ -95,10 +95,7 @@ -
-
- -
+
diff --git a/dashboard-ui/scripts/moviecollections.js b/dashboard-ui/scripts/moviecollections.js index 3e95a4b5a8..0920e0e7a9 100644 --- a/dashboard-ui/scripts/moviecollections.js +++ b/dashboard-ui/scripts/moviecollections.js @@ -1,4 +1,4 @@ -define(['events', 'libraryBrowser', 'imageLoader', 'alphaPicker', 'listView', 'cardBuilder', 'emby-itemscontainer'], function (events, libraryBrowser, imageLoader, alphaPicker, listView, cardBuilder) { +define(['events', 'libraryBrowser', 'imageLoader', 'listView', 'cardBuilder', 'emby-itemscontainer'], function (events, libraryBrowser, imageLoader, listView, cardBuilder) { 'use strict'; return function (view, params, tabContent) { @@ -205,26 +205,10 @@ function updateFilterControls(tabContent) { - var query = getQuery(tabContent); - self.alphaPicker.value(query.NameStartsWithOrGreater); } function initPage(tabContent) { - var alphaPickerElement = tabContent.querySelector('.alphaPicker'); - alphaPickerElement.addEventListener('alphavaluechanged', function (e) { - var newValue = e.detail.value; - var query = getQuery(tabContent); - query.NameStartsWithOrGreater = newValue; - query.StartIndex = 0; - reloadItems(tabContent); - }); - - self.alphaPicker = new alphaPicker({ - element: alphaPickerElement, - valueChangeEvent: 'click' - }); - tabContent.querySelector('.btnSort').addEventListener('click', function (e) { libraryBrowser.showSortMenu({ items: [{ diff --git a/dashboard-ui/scripts/moviegenres.js b/dashboard-ui/scripts/moviegenres.js index 17a330e401..dc085bc3ce 100644 --- a/dashboard-ui/scripts/moviegenres.js +++ b/dashboard-ui/scripts/moviegenres.js @@ -1,4 +1,4 @@ -define(['libraryBrowser', 'cardBuilder', 'lazyLoader', 'apphost'], function (libraryBrowser, cardBuilder, lazyLoader, appHost) { +define(['libraryBrowser', 'cardBuilder', 'lazyLoader', 'apphost', 'globalize', 'dom'], function (libraryBrowser, cardBuilder, lazyLoader, appHost, globalize, dom) { 'use strict'; return function (view, params, tabContent) { @@ -56,7 +56,24 @@ function getPortraitShape() { return enableScrollX() ? 'overflowPortrait' : 'portrait'; - } + } + + function getMoreItemsHref(itemId, type) { + + return 'secondaryitems.html?type=' + type + '&parentId=' + itemId; + } + + dom.addEventListener(tabContent, 'click', function (e) { + + var btnMoreFromGenre = dom.parentWithClass(e.target, 'btnMoreFromGenre'); + if (btnMoreFromGenre) { + var id = btnMoreFromGenre.getAttribute('data-id'); + Dashboard.navigate(getMoreItemsHref(id, 'Movie')); + } + + }, { + passive: true + }); function fillItemsContainer(elem) { @@ -144,6 +161,9 @@ }); } + if (result.Items.length >= query.Limit) { + tabContent.querySelector('.btnMoreFromGenre' + id).classList.remove('hide'); + } }); } @@ -163,9 +183,15 @@ var item = items[i]; html += '
'; + + html += '
'; html += '

'; html += item.Name; html += '

'; + html += ''; + html += '
'; if (enableScrollX()) { html += '
'; diff --git a/dashboard-ui/scripts/tvgenres.js b/dashboard-ui/scripts/tvgenres.js index 4ab9246042..5dd93245bc 100644 --- a/dashboard-ui/scripts/tvgenres.js +++ b/dashboard-ui/scripts/tvgenres.js @@ -1,4 +1,4 @@ -define(['libraryBrowser', 'cardBuilder', 'lazyLoader', 'apphost'], function (libraryBrowser, cardBuilder, lazyLoader, appHost) { +define(['libraryBrowser', 'cardBuilder', 'lazyLoader', 'apphost', 'globalize', 'dom'], function (libraryBrowser, cardBuilder, lazyLoader, appHost, globalize, dom) { 'use strict'; return function (view, params, tabContent) { @@ -56,7 +56,24 @@ function getPortraitShape() { return enableScrollX() ? 'overflowPortrait' : 'portrait'; - } + } + + function getMoreItemsHref(itemId, type) { + + return 'secondaryitems.html?type=' + type + '&parentId=' + itemId; + } + + dom.addEventListener(tabContent, 'click', function (e) { + + var btnMoreFromGenre = dom.parentWithClass(e.target, 'btnMoreFromGenre'); + if (btnMoreFromGenre) { + var id = btnMoreFromGenre.getAttribute('data-id'); + Dashboard.navigate(getMoreItemsHref(id, 'Series')); + } + + }, { + passive: true + }); function fillItemsContainer(elem) { @@ -144,6 +161,9 @@ }); } + if (result.Items.length >= query.Limit) { + tabContent.querySelector('.btnMoreFromGenre' + id).classList.remove('hide'); + } }); } @@ -163,9 +183,15 @@ var item = items[i]; html += '
'; + + html += '
'; html += '

'; html += item.Name; html += '

'; + html += ''; + html += '
'; if (enableScrollX()) { html += '
'; diff --git a/dashboard-ui/secondaryitems.html b/dashboard-ui/secondaryitems.html index d59b6896d5..a18fe76df9 100644 --- a/dashboard-ui/secondaryitems.html +++ b/dashboard-ui/secondaryitems.html @@ -1,4 +1,4 @@ -
+