diff --git a/dashboard-ui/bower_components/emby-webcomponents/.bower.json b/dashboard-ui/bower_components/emby-webcomponents/.bower.json index 823318aad7..ffc933624c 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/.bower.json +++ b/dashboard-ui/bower_components/emby-webcomponents/.bower.json @@ -15,12 +15,12 @@ }, "devDependencies": {}, "ignore": [], - "version": "1.4.98", - "_release": "1.4.98", + "version": "1.4.101", + "_release": "1.4.101", "_resolution": { "type": "version", - "tag": "1.4.98", - "commit": "6e0ce46f8c48908f94a7f32e95fee78b994c16f5" + "tag": "1.4.101", + "commit": "c6aa6b09f9c705ca83e31728ebbf0c4a2cda2454" }, "_source": "https://github.com/MediaBrowser/emby-webcomponents.git", "_target": "^1.2.0", diff --git a/dashboard-ui/bower_components/emby-webcomponents/emby-itemscontainer/emby-itemscontainer.js b/dashboard-ui/bower_components/emby-webcomponents/emby-itemscontainer/emby-itemscontainer.js index d8319ed3b4..6681ff2c86 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/emby-itemscontainer/emby-itemscontainer.js +++ b/dashboard-ui/bower_components/emby-webcomponents/emby-itemscontainer/emby-itemscontainer.js @@ -7,7 +7,15 @@ var itemsContainer = this; var target = e.target; - itemShortcuts.onClick.call(this, e); + var multiSelect = itemsContainer.multiSelect; + + if (multiSelect) { + if (multiSelect.onContainerClick.call(itemsContainer, e) === false) { + return; + } + } + + itemShortcuts.onClick.call(itemsContainer, e); } function disableEvent(e) { @@ -86,7 +94,10 @@ var self = this; require(['multiSelect'], function (MultiSelect) { - self.multiSelect = new MultiSelect(self); + self.multiSelect = new MultiSelect({ + container: self, + bindOnClick: false + }); }); }; diff --git a/dashboard-ui/bower_components/emby-webcomponents/itemcontextmenu.js b/dashboard-ui/bower_components/emby-webcomponents/itemcontextmenu.js index 686f00eb6e..d08d5b14fa 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/itemcontextmenu.js +++ b/dashboard-ui/bower_components/emby-webcomponents/itemcontextmenu.js @@ -458,13 +458,20 @@ define(['apphost', 'globalize', 'connectionManager', 'itemHelper', 'embyRouter', var method = queue ? 'queue' : 'play'; + var startPosition = 0; + if (resume && item.UserData && item.UserData.PlaybackPositionTicks) { + startPosition = item.UserData.PlaybackPositionTicks; + } + if (item.Type == 'Program') { playbackManager[method]({ - ids: [item.ChannelId] + ids: [item.ChannelId], + startPositionTicks: startPosition }); } else { playbackManager[method]({ - items: [item] + items: [item], + startPositionTicks: startPosition }); } } diff --git a/dashboard-ui/bower_components/emby-webcomponents/listview/listview.js b/dashboard-ui/bower_components/emby-webcomponents/listview/listview.js index cff8bb1153..9bdcd5019a 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/listview/listview.js +++ b/dashboard-ui/bower_components/emby-webcomponents/listview/listview.js @@ -169,7 +169,9 @@ define(['itemHelper', 'mediaInfo', 'indicators', 'connectionManager', 'layoutMan var playlistItemId = item.PlaylistItemId ? (' data-playlistitemid="' + item.PlaylistItemId + '"') : ''; - html += '<' + outerTagName + ' class="' + cssClass + '" data-index="' + index + '"' + playlistItemId + ' data-action="' + action + '" data-isfolder="' + item.IsFolder + '" data-id="' + item.Id + '" data-serverid="' + item.ServerId + '" data-type="' + item.Type + '">'; + var positionTicksData = item.UserData && item.UserData.PlaybackPositionTicks ? (' data-positionticks="' + item.UserData.PlaybackPositionTicks + '"') : ''; + + html += '<' + outerTagName + ' class="' + cssClass + '" data-index="' + index + '"' + playlistItemId + ' data-action="' + action + '" data-isfolder="' + item.IsFolder + '" data-id="' + item.Id + '" data-serverid="' + item.ServerId + '" data-mediatype="' + item.MediaType + '" data-type="' + item.Type + '"' + positionTicksData + '>'; if (!clickEntireItem && options.dragHandle) { html += ''; diff --git a/dashboard-ui/bower_components/emby-webcomponents/multiselect/multiselect.js b/dashboard-ui/bower_components/emby-webcomponents/multiselect/multiselect.js index f60f9a3a7b..9ff5d6f023 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/multiselect/multiselect.js +++ b/dashboard-ui/bower_components/emby-webcomponents/multiselect/multiselect.js @@ -456,10 +456,12 @@ document.addEventListener('viewbeforehide', hideSelections); - return function (container) { + return function (options) { var self = this; + var container = options.container; + function onTapHold(e) { var card = dom.parentWithClass(e.target, 'card'); @@ -505,7 +507,11 @@ initTapHold(container); - container.addEventListener('click', onContainerClick); + if (options.bindOnClick !== false) { + container.addEventListener('click', onContainerClick); + } + + self.onContainerClick = onContainerClick; self.destroy = function () { diff --git a/dashboard-ui/bower_components/emby-webcomponents/shortcuts.js b/dashboard-ui/bower_components/emby-webcomponents/shortcuts.js index 3a269dae82..0834e1655f 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/shortcuts.js +++ b/dashboard-ui/bower_components/emby-webcomponents/shortcuts.js @@ -153,15 +153,23 @@ define(['playbackManager', 'inputManager', 'connectionManager', 'embyRouter', 'g function showPlayMenu(card, target) { - getItem(card).then(function (item) { + var item = { + Type: card.getAttribute('data-type'), + Id: card.getAttribute('data-id'), + ServerId: card.getAttribute('data-serverid'), + MediaType: card.getAttribute('data-mediatype'), + IsFolder: card.getAttribute('data-isfolder') == 'true', + UserData: { + PlaybackPositionTicks: parseInt(card.getAttribute('data-positionticks') || '0') + } + }; - require(['playMenu'], function (playMenu) { + require(['playMenu'], function (playMenu) { - playMenu.show({ + playMenu.show({ - item: item, - positionTo: target - }); + item: item, + positionTo: target }); }); } @@ -196,7 +204,7 @@ define(['playbackManager', 'inputManager', 'connectionManager', 'embyRouter', 'g else if (action == 'play') { - var startPositionTicks = parseInt(card.getAttribute('data-startpositionticks') || '0'); + var startPositionTicks = parseInt(card.getAttribute('data-positionticks') || '0'); playbackManager.play({ ids: [id], diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/en-US.json b/dashboard-ui/bower_components/emby-webcomponents/strings/en-US.json index 6be1d3c585..b0d4a9e838 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/strings/en-US.json +++ b/dashboard-ui/bower_components/emby-webcomponents/strings/en-US.json @@ -120,5 +120,7 @@ "GroupVersions": "Group Versions", "PleaseSelectTwoItems": "Please select at least two items.", "TheSelectedItemsWillBeGrouped": "The selected videos will be grouped into one virtual item. Emby apps will automatically choose which version to play based on device and network performance. Are you sure you wish to continue?", + "TryMultiSelect": "Try Multi-Select", + "TryMultiSelectMessage": "To edit multiple media items, just click and hold any poster and select the items you want to manage. Try it!", "Error": "Error" } \ No newline at end of file diff --git a/dashboard-ui/bower_components/emby-webcomponents/userdatabuttons/userdatabuttons.js b/dashboard-ui/bower_components/emby-webcomponents/userdatabuttons/userdatabuttons.js index 66bc6a2dec..ce293dff09 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/userdatabuttons/userdatabuttons.js +++ b/dashboard-ui/bower_components/emby-webcomponents/userdatabuttons/userdatabuttons.js @@ -46,7 +46,7 @@ define(['connectionManager', 'globalize', 'paper-icon-button-light', 'material-i } if (includePlayed !== false) { - var tooltipPlayed = globalize.translate('sharedcomponents#Played'); + var tooltipPlayed = globalize.translate('sharedcomponents#MarkPlayed'); if (item.MediaType == 'Video' || item.Type == 'Series' || item.Type == 'Season' || item.Type == 'BoxSet' || item.Type == 'Playlist') { if (item.Type != 'TvChannel') { diff --git a/dashboard-ui/components/categorysyncbuttons.js b/dashboard-ui/components/categorysyncbuttons.js new file mode 100644 index 0000000000..cd0f3677ba --- /dev/null +++ b/dashboard-ui/components/categorysyncbuttons.js @@ -0,0 +1,48 @@ +define(['itemHelper'], function (itemHelper) { + + function initSyncButtons(view) { + + var apiClient = window.ApiClient; + + if (!apiClient || !apiClient.getCurrentUserId()) { + return; + } + + apiClient.getCurrentUser().then(function (user) { + + var item = { + SupportsSync: true + }; + + var categorySyncButtons = view.querySelectorAll('.categorySyncButton'); + for (var i = 0, length = categorySyncButtons.length; i < length; i++) { + categorySyncButtons[i].addEventListener('click', onCategorySyncButtonClick); + if (itemHelper.canSync(user, item)) { + categorySyncButtons[i].classList.remove('hide'); + } else { + categorySyncButtons[i].classList.add('hide'); + } + } + }); + } + + function onCategorySyncButtonClick(e) { + + var button = this; + var category = button.getAttribute('data-category'); + var parentId = LibraryMenu.getTopParentId(); + + require(['syncDialog'], function (syncDialog) { + syncDialog.showMenu({ + ParentId: parentId, + Category: category + }); + }); + } + + return { + init: function (view) { + initSyncButtons(view); + } + }; +}); \ No newline at end of file diff --git a/dashboard-ui/scripts/homenextup.js b/dashboard-ui/scripts/homenextup.js index 15884146f4..29dff7bd44 100644 --- a/dashboard-ui/scripts/homenextup.js +++ b/dashboard-ui/scripts/homenextup.js @@ -1,4 +1,4 @@ -define(['emby-itemscontainer'], function () { +define(['components/categorysyncbuttons', 'emby-itemscontainer'], function (categorysyncbuttons) { function getNextUpPromise() { @@ -50,6 +50,8 @@ var self = this; var nextUpPromise; + categorysyncbuttons.init(view); + self.preRender = function () { nextUpPromise = getNextUpPromise(); }; diff --git a/dashboard-ui/scripts/itemdetailpage.js b/dashboard-ui/scripts/itemdetailpage.js index 6446137332..d28c94ab0f 100644 --- a/dashboard-ui/scripts/itemdetailpage.js +++ b/dashboard-ui/scripts/itemdetailpage.js @@ -2155,7 +2155,7 @@ }); view.querySelector('.detailImageContainer').addEventListener('click', function (e) { - var itemDetailGalleryLink = parentWithClass(e.target, 'itemDetailGalleryLink'); + var itemDetailGalleryLink = dom.parentWithClass(e.target, 'itemDetailGalleryLink'); if (itemDetailGalleryLink) { LibraryBrowser.editImages(currentItem.Id).then(function () { reload(view, params); diff --git a/dashboard-ui/scripts/librarylist.js b/dashboard-ui/scripts/librarylist.js index d11b6478f1..4490e9246c 100644 --- a/dashboard-ui/scripts/librarylist.js +++ b/dashboard-ui/scripts/librarylist.js @@ -1,4 +1,4 @@ -define(['libraryBrowser', 'itemHelper'], function (libraryBrowser, itemHelper) { +define(['libraryBrowser'], function (libraryBrowser) { function isClickable(target) { @@ -56,62 +56,4 @@ e.preventDefault(); return false; } - - function showSyncButtonsPerUser(page) { - - var apiClient = window.ApiClient; - - if (!apiClient || !apiClient.getCurrentUserId()) { - return; - } - - Dashboard.getCurrentUser().then(function (user) { - - var item = { - SupportsSync: true - }; - - var categorySyncButtons = page.querySelectorAll('.categorySyncButton'); - for (var i = 0, length = categorySyncButtons.length; i < length; i++) { - if (itemHelper.canSync(user, item)) { - categorySyncButtons[i].classList.remove('hide'); - } else { - categorySyncButtons[i].classList.add('hide'); - } - } - }); - } - - function onCategorySyncButtonClick(e) { - - var button = this; - var category = button.getAttribute('data-category'); - var parentId = LibraryMenu.getTopParentId(); - - require(['syncDialog'], function (syncDialog) { - syncDialog.showMenu({ - ParentId: parentId, - Category: category - }); - }); - } - - pageClassOn('pageinit', "libraryPage", function () { - - var page = this; - - var categorySyncButtons = page.querySelectorAll('.categorySyncButton'); - for (var i = 0, length = categorySyncButtons.length; i < length; i++) { - categorySyncButtons[i].addEventListener('click', onCategorySyncButtonClick); - } - }); - - pageClassOn('pageshow', "libraryPage", function () { - - var page = this; - - if (!Dashboard.isServerlessPage()) { - showSyncButtonsPerUser(page); - } - }); }); \ No newline at end of file diff --git a/dashboard-ui/scripts/librarymenu.js b/dashboard-ui/scripts/librarymenu.js index 10a8f228c6..6c4c023653 100644 --- a/dashboard-ui/scripts/librarymenu.js +++ b/dashboard-ui/scripts/librarymenu.js @@ -1,4 +1,4 @@ -define(['imageLoader', 'layoutManager', 'viewManager', 'navdrawer', 'paper-icon-button-light', 'material-icons'], function (imageLoader, layoutManager, viewManager, navdrawer) { +define(['imageLoader', 'layoutManager', 'viewManager', 'navdrawer', 'libraryBrowser', 'paper-icon-button-light', 'material-icons'], function (imageLoader, layoutManager, viewManager, navdrawer, libraryBrowser) { var navDrawerElement = document.querySelector('.mainDrawer'); var navDrawerScrollContainer = navDrawerElement.querySelector('.scrollContainer'); @@ -275,7 +275,7 @@ function getItemHref(item, context) { - return LibraryBrowser.getHref(item, context); + return libraryBrowser.getHref(item, context); } var requiresUserRefresh = true; diff --git a/dashboard-ui/scripts/livetvrecordings.js b/dashboard-ui/scripts/livetvrecordings.js index 73f0c877c9..51cec3d3e1 100644 --- a/dashboard-ui/scripts/livetvrecordings.js +++ b/dashboard-ui/scripts/livetvrecordings.js @@ -1,4 +1,4 @@ -define(['scripts/livetvcomponents', 'emby-button', 'listViewStyle', 'emby-itemscontainer'], function () { +define(['components/categorysyncbuttons', 'scripts/livetvcomponents', 'emby-button', 'listViewStyle', 'emby-itemscontainer'], function (categorysyncbuttons) { function getRecordingGroupHtml(group) { @@ -183,6 +183,8 @@ return function (view, params, tabContent) { var self = this; + + categorysyncbuttons.init(tabContent); tabContent.querySelector('#activeRecordings .recordingItems').addEventListener('timercancelled', function () { reload(tabContent); }); diff --git a/dashboard-ui/scripts/loginpage.js b/dashboard-ui/scripts/loginpage.js index 8ae83d6c16..5751860c44 100644 --- a/dashboard-ui/scripts/loginpage.js +++ b/dashboard-ui/scripts/loginpage.js @@ -1,4 +1,4 @@ -define([], function () { +define(['libraryBrowser'], function (libraryBrowser) { function getApiClient() { @@ -125,7 +125,7 @@ } else { - var background = LibraryBrowser.getMetroColor(user.Id); + var background = libraryBrowser.getMetroColor(user.Id); imgUrl = 'css/images/logindefault.png'; diff --git a/dashboard-ui/scripts/moviegenres.js b/dashboard-ui/scripts/moviegenres.js index 750ac9d630..400f630a51 100644 --- a/dashboard-ui/scripts/moviegenres.js +++ b/dashboard-ui/scripts/moviegenres.js @@ -1,4 +1,4 @@ -define([], function () { +define(['libraryBrowser'], function (libraryBrowser) { return function (view, params, tabContent) { @@ -19,11 +19,11 @@ Fields: "DateCreated,SyncInfo,ItemCounts", StartIndex: 0 }, - view: LibraryBrowser.getSavedView(key) || LibraryBrowser.getDefaultItemsView('Thumb', 'Thumb') + view: libraryBrowser.getSavedView(key) || libraryBrowser.getDefaultItemsView('Thumb', 'Thumb') }; pageData.query.ParentId = params.topParentId; - LibraryBrowser.loadSavedQueryValues(key, pageData.query); + libraryBrowser.loadSavedQueryValues(key, pageData.query); } return pageData; } @@ -35,7 +35,7 @@ function getSavedQueryKey() { - return LibraryBrowser.getSavedQueryKey('genres'); + return libraryBrowser.getSavedQueryKey('genres'); } function getPromise() { @@ -57,7 +57,7 @@ var viewStyle = self.getCurrentViewStyle(); if (viewStyle == "Thumb") { - html = LibraryBrowser.getPosterViewHtml({ + html = libraryBrowser.getPosterViewHtml({ items: result.Items, shape: "backdrop", preferThumb: true, @@ -70,7 +70,7 @@ } else if (viewStyle == "ThumbCard") { - html = LibraryBrowser.getPosterViewHtml({ + html = libraryBrowser.getPosterViewHtml({ items: result.Items, shape: "backdrop", preferThumb: true, @@ -82,7 +82,7 @@ }); } else if (viewStyle == "PosterCard") { - html = LibraryBrowser.getPosterViewHtml({ + html = libraryBrowser.getPosterViewHtml({ items: result.Items, shape: "portrait", context: 'movies', @@ -93,7 +93,7 @@ }); } else if (viewStyle == "Poster") { - html = LibraryBrowser.getPosterViewHtml({ + html = libraryBrowser.getPosterViewHtml({ items: result.Items, shape: "portrait", context: 'movies', @@ -108,7 +108,7 @@ elem.innerHTML = html; ImageLoader.lazyChildren(elem); - LibraryBrowser.saveQueryValues(getSavedQueryKey(), query); + libraryBrowser.saveQueryValues(getSavedQueryKey(), query); Dashboard.hideLoadingMsg(); }); @@ -123,7 +123,7 @@ self.setCurrentViewStyle = function (viewStyle) { getPageData(tabContent).view = viewStyle; - LibraryBrowser.saveViewSetting(getSavedQueryKey(tabContent), viewStyle); + libraryBrowser.saveViewSetting(getSavedQueryKey(tabContent), viewStyle); fullyReload(); }; @@ -147,7 +147,7 @@ var btnSelectView = tabContent.querySelector('.btnSelectView'); btnSelectView.addEventListener('click', function (e) { - LibraryBrowser.showLayoutMenu(e.target, self.getCurrentViewStyle(), self.getViewStyles()); + libraryBrowser.showLayoutMenu(e.target, self.getCurrentViewStyle(), self.getViewStyles()); }); btnSelectView.addEventListener('layoutchange', function (e) { diff --git a/dashboard-ui/scripts/moviesrecommended.js b/dashboard-ui/scripts/moviesrecommended.js index 7fc2816eb6..75d2d5f4b1 100644 --- a/dashboard-ui/scripts/moviesrecommended.js +++ b/dashboard-ui/scripts/moviesrecommended.js @@ -1,4 +1,4 @@ -define(['libraryBrowser', 'scrollStyles', 'emby-itemscontainer'], function (libraryBrowser) { +define(['libraryBrowser', 'components/categorysyncbuttons', 'scrollStyles', 'emby-itemscontainer'], function (libraryBrowser, categorysyncbuttons) { function getView() { @@ -270,7 +270,9 @@ var self = this; self.initTab = function () { + var tabContent = view.querySelector('.pageTabContent[data-index=\'' + 0 + '\']'); + categorysyncbuttons.init(tabContent); initSuggestedTab(view, tabContent); }; diff --git a/dashboard-ui/scripts/moviestudios.js b/dashboard-ui/scripts/moviestudios.js index 276d959982..5cd94eeb98 100644 --- a/dashboard-ui/scripts/moviestudios.js +++ b/dashboard-ui/scripts/moviestudios.js @@ -1,4 +1,4 @@ -define([], function () { +define(['libraryBrowser'], function (libraryBrowser) { // The base query options var data = {}; @@ -27,7 +27,7 @@ function getSavedQueryKey() { - return LibraryBrowser.getSavedQueryKey('studios'); + return libraryBrowser.getSavedQueryKey('studios'); } function getPromise(context, params) { @@ -44,7 +44,7 @@ var html = ''; - html += LibraryBrowser.getPosterViewHtml({ + html += libraryBrowser.getPosterViewHtml({ items: result.Items, shape: "backdrop", showTitle: false, diff --git a/dashboard-ui/scripts/musicgenres.js b/dashboard-ui/scripts/musicgenres.js index a337194072..e8c5d0fd0f 100644 --- a/dashboard-ui/scripts/musicgenres.js +++ b/dashboard-ui/scripts/musicgenres.js @@ -1,4 +1,4 @@ -define([], function () { +define(['libraryBrowser'], function (libraryBrowser) { return function (view, params, tabContent) { @@ -19,11 +19,11 @@ Fields: "DateCreated,SyncInfo,ItemCounts", StartIndex: 0 }, - view: LibraryBrowser.getSavedView(key) || LibraryBrowser.getDefaultItemsView('Thumb', 'Thumb') + view: libraryBrowser.getSavedView(key) || libraryBrowser.getDefaultItemsView('Thumb', 'Thumb') }; pageData.query.ParentId = params.topParentId; - LibraryBrowser.loadSavedQueryValues(key, pageData.query); + libraryBrowser.loadSavedQueryValues(key, pageData.query); } return pageData; } @@ -35,7 +35,7 @@ function getSavedQueryKey() { - return LibraryBrowser.getSavedQueryKey('genres'); + return libraryBrowser.getSavedQueryKey('genres'); } function getPromise() { @@ -57,7 +57,7 @@ var viewStyle = self.getCurrentViewStyle(); if (viewStyle == "Thumb") { - html = LibraryBrowser.getPosterViewHtml({ + html = libraryBrowser.getPosterViewHtml({ items: result.Items, shape: "backdrop", preferThumb: true, @@ -70,7 +70,7 @@ } else if (viewStyle == "ThumbCard") { - html = LibraryBrowser.getPosterViewHtml({ + html = libraryBrowser.getPosterViewHtml({ items: result.Items, shape: "backdrop", preferThumb: true, @@ -82,7 +82,7 @@ }); } else if (viewStyle == "PosterCard") { - html = LibraryBrowser.getPosterViewHtml({ + html = libraryBrowser.getPosterViewHtml({ items: result.Items, shape: "portrait", context: 'music', @@ -93,7 +93,7 @@ }); } else if (viewStyle == "Poster") { - html = LibraryBrowser.getPosterViewHtml({ + html = libraryBrowser.getPosterViewHtml({ items: result.Items, shape: "portrait", context: 'music', @@ -108,7 +108,7 @@ elem.innerHTML = html; ImageLoader.lazyChildren(elem); - LibraryBrowser.saveQueryValues(getSavedQueryKey(), query); + libraryBrowser.saveQueryValues(getSavedQueryKey(), query); Dashboard.hideLoadingMsg(); }); @@ -123,7 +123,7 @@ self.setCurrentViewStyle = function (viewStyle) { getPageData(tabContent).view = viewStyle; - LibraryBrowser.saveViewSetting(getSavedQueryKey(tabContent), viewStyle); + libraryBrowser.saveViewSetting(getSavedQueryKey(tabContent), viewStyle); fullyReload(); }; @@ -147,7 +147,7 @@ var btnSelectView = tabContent.querySelector('.btnSelectView'); btnSelectView.addEventListener('click', function (e) { - LibraryBrowser.showLayoutMenu(e.target, self.getCurrentViewStyle(), self.getViewStyles()); + libraryBrowser.showLayoutMenu(e.target, self.getCurrentViewStyle(), self.getViewStyles()); }); btnSelectView.addEventListener('layoutchange', function (e) { diff --git a/dashboard-ui/scripts/notifications.js b/dashboard-ui/scripts/notifications.js index 392576aa15..7c0710f158 100644 --- a/dashboard-ui/scripts/notifications.js +++ b/dashboard-ui/scripts/notifications.js @@ -1,4 +1,4 @@ -define([], function () { +define(['libraryBrowser'], function (libraryBrowser) { function notifications() { @@ -106,7 +106,7 @@ var query = { StartIndex: startIndex, Limit: limit }; - html += LibraryBrowser.getQueryPagingHtml({ + html += libraryBrowser.getQueryPagingHtml({ startIndex: query.StartIndex, limit: query.Limit, totalRecordCount: totalRecordCount, diff --git a/dashboard-ui/scripts/reports.js b/dashboard-ui/scripts/reports.js index ef42ea787e..0328d848a2 100644 --- a/dashboard-ui/scripts/reports.js +++ b/dashboard-ui/scripts/reports.js @@ -1,4 +1,4 @@ -define(['jQuery'], function ($) { +define(['jQuery', 'libraryBrowser'], function ($, libraryBrowser) { var defaultSortBy = "SortName"; var topItems = 5; @@ -311,7 +311,7 @@ $('#tabFilter', page).hide(); } - var pagingHtml = LibraryBrowser.getQueryPagingHtml({ + var pagingHtml = libraryBrowser.getQueryPagingHtml({ startIndex: query.StartIndex, limit: query.Limit, totalRecordCount: result.TotalRecordCount, diff --git a/dashboard-ui/scripts/shared.js b/dashboard-ui/scripts/shared.js index 452a36aad2..b6910730da 100644 --- a/dashboard-ui/scripts/shared.js +++ b/dashboard-ui/scripts/shared.js @@ -1,4 +1,4 @@ -define(['jQuery'], function ($) { +define(['jQuery', 'libraryBrowser'], function ($, libraryBrowser) { var currentItem; @@ -18,9 +18,9 @@ currentItem = item; - LibraryBrowser.renderName(item, $('.itemName', page)[0], false); - LibraryBrowser.renderParentName(item, $('.parentName', page)[0]); - LibraryBrowser.renderDetailPageBackdrop(page, item); + libraryBrowser.renderName(item, $('.itemName', page)[0], false); + libraryBrowser.renderParentName(item, $('.parentName', page)[0]); + libraryBrowser.renderDetailPageBackdrop(page, item); renderImage(page, item); @@ -58,7 +58,7 @@ } function renderImage(page, item) { - LibraryBrowser.renderDetailImage(page.querySelector('.detailImageContainer'), item, false); + libraryBrowser.renderDetailImage(page.querySelector('.detailImageContainer'), item, false); } $(document).on('pageinit', "#publicSharedItemPage", function () { diff --git a/dashboard-ui/scripts/site.js b/dashboard-ui/scripts/site.js index 8e63febafb..69f198f12e 100644 --- a/dashboard-ui/scripts/site.js +++ b/dashboard-ui/scripts/site.js @@ -3177,7 +3177,6 @@ var AppInfo = {}; } } - deps.push('scripts/librarylist'); deps.push('scripts/librarymenu'); deps.push('css!css/card.css'); diff --git a/dashboard-ui/scripts/tvgenres.js b/dashboard-ui/scripts/tvgenres.js index aa05364f36..00594c6d29 100644 --- a/dashboard-ui/scripts/tvgenres.js +++ b/dashboard-ui/scripts/tvgenres.js @@ -1,4 +1,4 @@ -define([], function () { +define(['libraryBrowser'], function (libraryBrowser) { return function (view, params, tabContent) { @@ -19,11 +19,11 @@ Fields: "DateCreated,SyncInfo,ItemCounts", StartIndex: 0 }, - view: LibraryBrowser.getSavedView(key) || LibraryBrowser.getDefaultItemsView('Thumb', 'Thumb') + view: libraryBrowser.getSavedView(key) || libraryBrowser.getDefaultItemsView('Thumb', 'Thumb') }; pageData.query.ParentId = params.topParentId; - LibraryBrowser.loadSavedQueryValues(key, pageData.query); + libraryBrowser.loadSavedQueryValues(key, pageData.query); } return pageData; } @@ -35,7 +35,7 @@ function getSavedQueryKey() { - return LibraryBrowser.getSavedQueryKey('genres'); + return libraryBrowser.getSavedQueryKey('genres'); } function getPromise() { @@ -57,7 +57,7 @@ var viewStyle = self.getCurrentViewStyle(); if (viewStyle == "Thumb") { - html = LibraryBrowser.getPosterViewHtml({ + html = libraryBrowser.getPosterViewHtml({ items: result.Items, shape: "backdrop", preferThumb: true, @@ -70,7 +70,7 @@ } else if (viewStyle == "ThumbCard") { - html = LibraryBrowser.getPosterViewHtml({ + html = libraryBrowser.getPosterViewHtml({ items: result.Items, shape: "backdrop", preferThumb: true, @@ -82,7 +82,7 @@ }); } else if (viewStyle == "PosterCard") { - html = LibraryBrowser.getPosterViewHtml({ + html = libraryBrowser.getPosterViewHtml({ items: result.Items, shape: "portrait", context: 'tv', @@ -93,7 +93,7 @@ }); } else if (viewStyle == "Poster") { - html = LibraryBrowser.getPosterViewHtml({ + html = libraryBrowser.getPosterViewHtml({ items: result.Items, shape: "portrait", context: 'tv', @@ -108,7 +108,7 @@ elem.innerHTML = html; ImageLoader.lazyChildren(elem); - LibraryBrowser.saveQueryValues(getSavedQueryKey(), query); + libraryBrowser.saveQueryValues(getSavedQueryKey(), query); Dashboard.hideLoadingMsg(); }); @@ -123,7 +123,7 @@ self.setCurrentViewStyle = function(viewStyle) { getPageData(tabContent).view = viewStyle; - LibraryBrowser.saveViewSetting(getSavedQueryKey(tabContent), viewStyle); + libraryBrowser.saveViewSetting(getSavedQueryKey(tabContent), viewStyle); fullyReload(); }; @@ -147,7 +147,7 @@ var btnSelectView = tabContent.querySelector('.btnSelectView'); btnSelectView.addEventListener('click', function (e) { - LibraryBrowser.showLayoutMenu(e.target, self.getCurrentViewStyle(), self.getViewStyles()); + libraryBrowser.showLayoutMenu(e.target, self.getCurrentViewStyle(), self.getViewStyles()); }); btnSelectView.addEventListener('layoutchange', function (e) { diff --git a/dashboard-ui/scripts/tvlatest.js b/dashboard-ui/scripts/tvlatest.js index dac577b3eb..16cd72b9f4 100644 --- a/dashboard-ui/scripts/tvlatest.js +++ b/dashboard-ui/scripts/tvlatest.js @@ -1,4 +1,4 @@ -define([], function () { +define(['components/categorysyncbuttons'], function (categorysyncbuttons) { function getView() { @@ -77,7 +77,8 @@ return function (view, params, tabContent) { var self = this; - var latestPromise; + + categorysyncbuttons.init(tabContent); var latestPromise; self.preRender = function () { latestPromise = getLatestPromise(view, params); diff --git a/dashboard-ui/scripts/tvrecommended.js b/dashboard-ui/scripts/tvrecommended.js index 605f789eee..9364795a5c 100644 --- a/dashboard-ui/scripts/tvrecommended.js +++ b/dashboard-ui/scripts/tvrecommended.js @@ -1,4 +1,4 @@ -define(['libraryBrowser', 'scrollStyles', 'emby-itemscontainer'], function (libraryBrowser) { +define(['libraryBrowser', 'components/categorysyncbuttons', 'scrollStyles', 'emby-itemscontainer'], function (libraryBrowser, categorysyncbuttons) { return function (view, params) { @@ -165,6 +165,8 @@ } else { tabContent.querySelector('#resumableItems').classList.remove('hiddenScrollX'); } + + categorysyncbuttons.init(tabContent); }; self.renderTab = function () { diff --git a/dashboard-ui/scripts/tvstudios.js b/dashboard-ui/scripts/tvstudios.js index 35a390d8ad..a1d4313e24 100644 --- a/dashboard-ui/scripts/tvstudios.js +++ b/dashboard-ui/scripts/tvstudios.js @@ -1,4 +1,4 @@ -define([], function () { +define(['libraryBrowser'], function (libraryBrowser) { // The base query options var data = {}; @@ -27,7 +27,7 @@ function getSavedQueryKey() { - return LibraryBrowser.getSavedQueryKey('studios'); + return libraryBrowser.getSavedQueryKey('studios'); } function getPromise(context, params) { @@ -44,7 +44,7 @@ var html = ''; - html += LibraryBrowser.getPosterViewHtml({ + html += libraryBrowser.getPosterViewHtml({ items: result.Items, shape: "backdrop", showTitle: false, diff --git a/dashboard-ui/scripts/tvupcoming.js b/dashboard-ui/scripts/tvupcoming.js index b9534c463d..2270258c5b 100644 --- a/dashboard-ui/scripts/tvupcoming.js +++ b/dashboard-ui/scripts/tvupcoming.js @@ -1,4 +1,4 @@ -define(['datetime', 'scrollStyles', 'emby-itemscontainer'], function (datetime) { +define(['datetime', 'libraryBrowser', 'scrollStyles', 'emby-itemscontainer'], function (datetime, libraryBrowser) { function getUpcomingPromise(context, params) { @@ -69,7 +69,7 @@ if (premiereDate.getDate() == new Date().getDate() - 1) { dateText = Globalize.translate('Yesterday'); } else { - dateText = LibraryBrowser.getFutureDateText(premiereDate, true); + dateText = libraryBrowser.getFutureDateText(premiereDate, true); } } catch (err) { @@ -107,7 +107,7 @@ html += '
'; } - html += LibraryBrowser.getPosterViewHtml({ + html += libraryBrowser.getPosterViewHtml({ items: group.items, showLocationTypeIndicator: false, shape: getThumbShape(),