From e51031cad8444e0b2d3f8a4404759a07f9b89227 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Wed, 17 Aug 2016 15:28:43 -0400 Subject: [PATCH 1/4] add guide optimizations --- .../emby-webcomponents/guide/guide.js | 7 ++++-- .../components/syncjoblist/syncjoblist.js | 10 ++++---- dashboard-ui/mysync.html | 7 +++++- dashboard-ui/scripts/librarymenu.js | 24 ++----------------- dashboard-ui/scripts/livetvchannels.js | 3 ++- dashboard-ui/syncactivity.html | 14 +++++++++++ 6 files changed, 35 insertions(+), 30 deletions(-) diff --git a/dashboard-ui/bower_components/emby-webcomponents/guide/guide.js b/dashboard-ui/bower_components/emby-webcomponents/guide/guide.js index 99ac54982b..8dc2cffe58 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/guide/guide.js +++ b/dashboard-ui/bower_components/emby-webcomponents/guide/guide.js @@ -148,6 +148,8 @@ channelQuery.Limit = channelLimit; channelQuery.AddCurrentProgram = false; + channelQuery.EnableUserData = false; + channelQuery.EnableImageTypes = "Primary"; channelsPromise = channelsPromise || apiClient.getLiveTvChannels(channelQuery); @@ -169,9 +171,10 @@ return c.Id; }).join(','), ImageTypeLimit: 1, - EnableImageTypes: "Primary,Backdrop", + EnableImageTypes: layoutManager.tv ? "Primary,Backdrop" : "Primary", SortBy: "StartDate", - EnableTotalRecordCount: false + EnableTotalRecordCount: false, + EnableUserData: false }).then(function (programsResult) { diff --git a/dashboard-ui/components/syncjoblist/syncjoblist.js b/dashboard-ui/components/syncjoblist/syncjoblist.js index 5acaa0c44d..3a2ae08d8b 100644 --- a/dashboard-ui/components/syncjoblist/syncjoblist.js +++ b/dashboard-ui/components/syncjoblist/syncjoblist.js @@ -198,6 +198,8 @@ globalize.translate('CancelSyncJobConfirmation'); if (listInstance.options.isLocalSync) { options.TargetId = apiClient.deviceId(); + } else { + options.ExcludeTargetIds = apiClient.deviceId(); } return apiClient.getJSON(ApiClient.getUrl('Sync/Jobs', options)).then(function (response) { @@ -303,7 +305,7 @@ globalize.translate('CancelSyncJobConfirmation'); this.options = options; var onSyncJobsUpdatedHandler = onSyncJobsUpdated.bind(this); - this.onSyncJobsUpdatedHandler = null; + this.onSyncJobsUpdatedHandler = onSyncJobsUpdatedHandler; events.on(serverNotifications, 'SyncJobs', onSyncJobsUpdatedHandler); var onClickHandler = onElementClick.bind(this); @@ -318,15 +320,15 @@ globalize.translate('CancelSyncJobConfirmation'); stopListening(this); - this.options = null; - var onSyncJobsUpdatedHandler = this.onSyncJobsUpdatedHandler; this.onSyncJobsUpdatedHandler = null; events.off(serverNotifications, 'SyncJobs', onSyncJobsUpdatedHandler); var onClickHandler = this.onClickHandler; this.onClickHandler = null; - options.element.removeEventListener('click', onClickHandler); + this.options.element.removeEventListener('click', onClickHandler); + + this.options = null; }; return syncJobList; diff --git a/dashboard-ui/mysync.html b/dashboard-ui/mysync.html index bde3b84ea1..16cd88f635 100644 --- a/dashboard-ui/mysync.html +++ b/dashboard-ui/mysync.html @@ -2,9 +2,14 @@
From f6b89286dcbd5fc74caf8b7f80704cef676bb378 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Wed, 17 Aug 2016 16:10:24 -0400 Subject: [PATCH 2/4] fix showtab --- dashboard-ui/scripts/librarybrowser.js | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/dashboard-ui/scripts/librarybrowser.js b/dashboard-ui/scripts/librarybrowser.js index 04ba851466..5f650d56bc 100644 --- a/dashboard-ui/scripts/librarybrowser.js +++ b/dashboard-ui/scripts/librarybrowser.js @@ -164,13 +164,18 @@ } ownerpage.addEventListener('viewbeforeshow', function () { - if (tabs.triggerBeforeTabChange) { + if (tabs.triggerBeforeTabChange && this.firstTabIndex == null) { tabs.triggerBeforeTabChange(); } }); ownerpage.addEventListener('viewshow', function () { - tabs.triggerTabChange(); + if (this.firstTabIndex) { + tabs.selectedIndex(this.firstTabIndex); + this.firstTabIndex = null; + } else { + tabs.triggerTabChange(); + } }); tabs.addEventListener('beforetabchange', function (e) { @@ -195,10 +200,8 @@ var afterNavigate = function () { - document.removeEventListener('pagebeforeshow', afterNavigate); - + document.removeEventListener('pageinit', afterNavigate); if (window.location.href.toLowerCase().indexOf(url.toLowerCase()) != -1) { - this.firstTabIndex = index; } }; @@ -208,7 +211,7 @@ afterNavigate.call(viewManager.currentView()); } else { - pageClassOn('pagebeforeshow', 'page', afterNavigate); + pageClassOn('pageinit', 'page', afterNavigate); Dashboard.navigate(url); } }, From 9ebe643e874774ef28df3da0f8253d312e2e5688 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Wed, 17 Aug 2016 16:32:39 -0400 Subject: [PATCH 3/4] fix sync task button --- dashboard-ui/autoorganizelog.html | 2 +- dashboard-ui/library.html | 2 +- dashboard-ui/livetvstatus.html | 2 +- dashboard-ui/scripts/autoorganizelog.js | 12 +++--- dashboard-ui/scripts/librarymenu.js | 2 +- dashboard-ui/scripts/livetvstatus.js | 14 ++++--- dashboard-ui/scripts/medialibrarypage.js | 14 ++++--- dashboard-ui/scripts/syncactivity.js | 18 ++++++++- dashboard-ui/scripts/taskbutton.js | 48 ++++++++++-------------- 9 files changed, 66 insertions(+), 48 deletions(-) diff --git a/dashboard-ui/autoorganizelog.html b/dashboard-ui/autoorganizelog.html index fc0240668e..ce2b094e67 100644 --- a/dashboard-ui/autoorganizelog.html +++ b/dashboard-ui/autoorganizelog.html @@ -1,4 +1,4 @@ -
+
diff --git a/dashboard-ui/library.html b/dashboard-ui/library.html index 6dd2ad8dc3..905f1dcb7f 100644 --- a/dashboard-ui/library.html +++ b/dashboard-ui/library.html @@ -1,4 +1,4 @@ -
+
diff --git a/dashboard-ui/livetvstatus.html b/dashboard-ui/livetvstatus.html index 7f375647db..5840127075 100644 --- a/dashboard-ui/livetvstatus.html +++ b/dashboard-ui/livetvstatus.html @@ -1,4 +1,4 @@ -
+
diff --git a/dashboard-ui/scripts/autoorganizelog.js b/dashboard-ui/scripts/autoorganizelog.js index 4367256a76..9e826fb082 100644 --- a/dashboard-ui/scripts/autoorganizelog.js +++ b/dashboard-ui/scripts/autoorganizelog.js @@ -1,4 +1,4 @@ -define(['jQuery', 'datetime', 'paper-icon-button-light'], function ($, datetime) { +define(['jQuery', 'scripts/taskbutton', 'datetime', 'paper-icon-button-light'], function ($, taskButton, datetime) { var query = { @@ -309,11 +309,12 @@ reloadItems(page); // on here - $('.btnOrganize', page).taskButton({ + taskButton({ mode: 'on', progressElem: page.querySelector('.organizeProgress'), panel: page.querySelector('.organizeTaskPanel'), - taskKey: 'AutoOrganize' + taskKey: 'AutoOrganize', + button: page.querySelector('.btnOrganize') }); Events.on(ApiClient, 'websocketmessage', onWebSocketMessage); @@ -325,8 +326,9 @@ currentResult = null; // off here - $('.btnOrganize', page).taskButton({ - mode: 'off' + taskButton({ + mode: 'off', + button: page.querySelector('.btnOrganize') }); Events.off(ApiClient, 'websocketmessage', onWebSocketMessage); diff --git a/dashboard-ui/scripts/librarymenu.js b/dashboard-ui/scripts/librarymenu.js index 3c9d8a9f9f..23baf529cf 100644 --- a/dashboard-ui/scripts/librarymenu.js +++ b/dashboard-ui/scripts/librarymenu.js @@ -674,7 +674,7 @@ return; } - viewMenuBarTabs.querySelector('is=["emby-tabs"]').selectedIndex(selectedIndex); + viewMenuBarTabs.querySelector('[is="emby-tabs"]').selectedIndex(selectedIndex); LibraryMenu.tabType = type; }); diff --git a/dashboard-ui/scripts/livetvstatus.js b/dashboard-ui/scripts/livetvstatus.js index edb11396e2..aead5dcb3f 100644 --- a/dashboard-ui/scripts/livetvstatus.js +++ b/dashboard-ui/scripts/livetvstatus.js @@ -1,4 +1,4 @@ -define(['jQuery', 'listViewStyle'], function ($) { +define(['jQuery', 'scripts/taskbutton', 'listViewStyle'], function ($, taskButton) { function resetTuner(page, id) { @@ -595,10 +595,11 @@ reload(page); // on here - $('.btnRefresh', page).taskButton({ + taskButton({ mode: 'on', progressElem: page.querySelector('.refreshGuideProgress'), - taskKey: 'RefreshGuide' + taskKey: 'RefreshGuide', + button: page.querySelector('.btnRefresh') }); }).on('pagehide', "#liveTvStatusPage", function () { @@ -606,8 +607,11 @@ var page = this; // off here - $('.btnRefreshGuide', page).taskButton({ - mode: 'off' + taskButton({ + mode: 'off', + progressElem: page.querySelector('.refreshGuideProgress'), + taskKey: 'RefreshGuide', + button: page.querySelector('.btnRefresh') }); }); diff --git a/dashboard-ui/scripts/medialibrarypage.js b/dashboard-ui/scripts/medialibrarypage.js index 6bfb87fca6..c96392fc05 100644 --- a/dashboard-ui/scripts/medialibrarypage.js +++ b/dashboard-ui/scripts/medialibrarypage.js @@ -1,4 +1,4 @@ -define(['jQuery', 'apphost', 'cardStyle'], function ($, appHost) { +define(['jQuery', 'apphost', 'scripts/taskbutton', 'cardStyle'], function ($, appHost, taskButton) { function changeCollectionType(page, virtualFolder) { @@ -461,10 +461,11 @@ var page = this; // on here - $('.btnRefresh', page).taskButton({ + taskButton({ mode: 'on', progressElem: page.querySelector('.refreshProgress'), - taskKey: 'RefreshLibrary' + taskKey: 'RefreshLibrary', + button: page.querySelector('.btnRefresh') }); }); @@ -474,8 +475,11 @@ var page = this; // off here - $('.btnRefresh', page).taskButton({ - mode: 'off' + taskButton({ + mode: 'off', + progressElem: page.querySelector('.refreshProgress'), + taskKey: 'RefreshLibrary', + button: page.querySelector('.btnRefresh') }); }); diff --git a/dashboard-ui/scripts/syncactivity.js b/dashboard-ui/scripts/syncactivity.js index d0f88a1fef..fbb5161776 100644 --- a/dashboard-ui/scripts/syncactivity.js +++ b/dashboard-ui/scripts/syncactivity.js @@ -1,4 +1,4 @@ -define(['loading', 'apphost', 'globalize', 'syncJobList', 'events', 'localsync', 'emby-button', 'paper-icon-button-light'], function (loading, appHost, globalize, syncJobList, events) { +define(['loading', 'apphost', 'globalize', 'syncJobList', 'events', 'scripts/taskbutton', 'localsync', 'emby-button', 'paper-icon-button-light'], function (loading, appHost, globalize, syncJobList, events, taskButton) { function getTabs() { return [ @@ -57,6 +57,22 @@ view.addEventListener('viewshow', function () { LibraryMenu.setTabs('syncadmin', 0, getTabs); + + taskButton({ + mode: 'on', + progressElem: view.querySelector('.syncProgress'), + taskKey: 'SyncPrepare', + button: view.querySelector('.btnSync') + }); + }); + + view.addEventListener('viewbeforehide', function () { + + taskButton({ + mode: 'off', + taskKey: 'SyncPrepare', + button: view.querySelector('.btnSync') + }); }); view.addEventListener('viewdestroy', function () { diff --git a/dashboard-ui/scripts/taskbutton.js b/dashboard-ui/scripts/taskbutton.js index b163337c02..add214ac57 100644 --- a/dashboard-ui/scripts/taskbutton.js +++ b/dashboard-ui/scripts/taskbutton.js @@ -1,21 +1,19 @@ -define(['appStorage', 'jQuery', 'emby-button'], function (appStorage, $) { +define(['appStorage', 'emby-button'], function (appStorage) { - $.fn.taskButton = function (options) { + return function (options) { - function pollTasks(button) { + var button = options.button; + + function pollTasks() { ApiClient.getScheduledTasks({ IsEnabled: true - }).then(function (tasks) { - - updateTasks(button, tasks); - }); - + }).then(updateTasks); } - function updateTasks(button, tasks) { + function updateTasks(tasks) { var task = tasks.filter(function (t) { @@ -36,12 +34,12 @@ } if (task.State == 'Idle') { - $(button).removeAttr('disabled'); + button.removeAttribute('disabled'); } else { - $(button).attr('disabled', 'disabled'); + button.setAttribute('disabled', 'disabled'); } - $(button).attr('data-taskid', task.Id); + button.setAttribute('data-taskid', task.Id); var progress = (task.CurrentProgressPercentage || 0).toFixed(1); @@ -72,11 +70,8 @@ } } - function onScheduledTaskMessageConfirmed(instance, id) { - ApiClient.startScheduledTask(id).then(function () { - - pollTasks(instance); - }); + function onScheduledTaskMessageConfirmed(id) { + ApiClient.startScheduledTask(id).then(pollTasks); } function onButtonClick() { @@ -88,7 +83,7 @@ var expectedValue = new Date().getMonth() + '6'; if (appStorage.getItem(key) == expectedValue) { - onScheduledTaskMessageConfirmed(button, id); + onScheduledTaskMessageConfirmed(id); } else { var msg = Globalize.translate('ConfirmMessageScheduledTaskButton'); @@ -107,7 +102,7 @@ }).then(function () { appStorage.setItem(key, expectedValue); - onScheduledTaskMessageConfirmed(button, id); + onScheduledTaskMessageConfirmed(id); }); }); @@ -123,17 +118,16 @@ var tasks = msg.Data; - updateTasks(self, tasks); + updateTasks(tasks); } } - var self = this; var pollInterval; function onPollIntervalFired() { if (!ApiClient.isWebSocketOpen()) { - pollTasks(self); + pollTasks(); } } @@ -162,23 +156,21 @@ if (options.mode == 'off') { - this.off('click', onButtonClick); + button.removeEventListener('click', onButtonClick); Events.off(ApiClient, 'websocketmessage', onSocketMessage); Events.off(ApiClient, 'websocketopen', onSocketOpen); stopInterval(); - } else if (this.length) { + } else { - this.on('click', onButtonClick); + button.addEventListener('click', onButtonClick); - pollTasks(self); + pollTasks(); startInterval(); Events.on(ApiClient, 'websocketmessage', onSocketMessage); Events.on(ApiClient, 'websocketopen', onSocketOpen); } - - return this; }; }); \ No newline at end of file From 84ff91f0ad064840ba8cc1675261810f0613452e Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Wed, 17 Aug 2016 16:43:26 -0400 Subject: [PATCH 4/4] update search page --- dashboard-ui/scripts/searchpage.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/dashboard-ui/scripts/searchpage.js b/dashboard-ui/scripts/searchpage.js index fdbb9d2e08..6352c3e6ab 100644 --- a/dashboard-ui/scripts/searchpage.js +++ b/dashboard-ui/scripts/searchpage.js @@ -191,14 +191,12 @@ view.addEventListener('viewbeforeshow', function (e) { document.body.classList.add('hiddenViewMenuBar'); - document.body.classList.add('hiddenNowPlayingBar'); LibraryMenu.setMenuButtonVisible(false); }); view.addEventListener('viewbeforehide', function (e) { document.body.classList.remove('hiddenViewMenuBar'); - document.body.classList.remove('hiddenNowPlayingBar'); LibraryMenu.setMenuButtonVisible(true); });