diff --git a/src/scripts/itemdetailpage.js b/src/scripts/itemdetailpage.js
index d8d952cba..685927a09 100644
--- a/src/scripts/itemdetailpage.js
+++ b/src/scripts/itemdetailpage.js
@@ -1,4 +1,4 @@
-define(["loading", "appRouter", "layoutManager", "connectionManager", "cardBuilder", "datetime", "mediaInfo", "backdrop", "listView", "itemContextMenu", "itemHelper", "dom", "indicators", "apphost", "imageLoader", "libraryMenu", "globalize", "browser", "events", "scrollHelper", "playbackManager", "libraryBrowser", "scrollStyles", "emby-itemscontainer", "emby-checkbox", "emby-linkbutton", "emby-playstatebutton", "emby-ratingbutton", "emby-downloadbutton", "emby-scroller", "emby-select"], function(loading, appRouter, layoutManager, connectionManager, cardBuilder, datetime, mediaInfo, backdrop, listView, itemContextMenu, itemHelper, dom, indicators, appHost, imageLoader, libraryMenu, globalize, browser, events, scrollHelper, playbackManager, libraryBrowser) {
+define(["loading", "appRouter", "layoutManager", "connectionManager", "cardBuilder", "datetime", "mediaInfo", "backdrop", "listView", "itemContextMenu", "itemHelper", "dom", "indicators", "apphost", "imageLoader", "libraryMenu", "globalize", "browser", "events", "scrollHelper", "playbackManager", "libraryBrowser", "scrollStyles", "emby-itemscontainer", "emby-checkbox", "emby-linkbutton", "emby-playstatebutton", "emby-ratingbutton", "emby-scroller", "emby-select"], function(loading, appRouter, layoutManager, connectionManager, cardBuilder, datetime, mediaInfo, backdrop, listView, itemContextMenu, itemHelper, dom, indicators, appHost, imageLoader, libraryMenu, globalize, browser, events, scrollHelper, playbackManager, libraryBrowser) {
"use strict";
function getPromise(apiClient, params) {
@@ -33,12 +33,7 @@ define(["loading", "appRouter", "layoutManager", "connectionManager", "cardBuild
user: user,
share: !0
};
- return appHost.supports("sync") && (options.syncLocal = !1), options
- }
-
- function renderSyncLocalContainer(page, params, user, item) {
- if (appHost.supports("sync"))
- for (var canSync = itemHelper.canSync(user, item), buttons = page.querySelectorAll(".btnSyncDownload"), i = 0, length = buttons.length; i < length; i++) buttons[i].setItem(item), canSync ? buttons[i].classList.remove("hide") : buttons[i].classList.add("hide")
+ return options;
}
function getProgramScheduleHtml(items, options) {
@@ -286,7 +281,23 @@ define(["loading", "appRouter", "layoutManager", "connectionManager", "cardBuild
var apiClient = connectionManager.getApiClient(item.ServerId);
renderSeriesTimerEditor(page, item, apiClient, user), renderTimerEditor(page, item, apiClient, user), renderImage(page, item, apiClient, user), renderLogo(page, item, apiClient), setTitle(item, apiClient), setInitialCollapsibleState(page, item, apiClient, context, user), renderDetails(page, item, apiClient, context), renderTrackSelections(page, instance, item), dom.getWindowSize().innerWidth >= 1e3 ? backdrop.setBackdrops([item]) : backdrop.clear(), renderDetailPageBackdrop(page, item, apiClient);
var canPlay = reloadPlayButtons(page, item);
- (item.LocalTrailerCount || item.RemoteTrailers && item.RemoteTrailers.length) && -1 !== playbackManager.getSupportedCommands().indexOf("PlayTrailers") ? hideAll(page, "btnPlayTrailer", !0) : hideAll(page, "btnPlayTrailer"), setTrailerButtonVisibility(page, item), item.CanDelete && !item.IsFolder ? hideAll(page, "btnDeleteItem", !0) : hideAll(page, "btnDeleteItem"), renderSyncLocalContainer(page, params, user, item), "Program" !== item.Type || canPlay ? hideAll(page, "mainDetailButtons", !0) : hideAll(page, "mainDetailButtons"), showRecordingFields(instance, page, item, user);
+ if ((item.LocalTrailerCount || item.RemoteTrailers && item.RemoteTrailers.length) && -1 !== playbackManager.getSupportedCommands().indexOf("PlayTrailers")) {
+ hideAll(page, "btnPlayTrailer", true);
+ } else {
+ hideAll(page, "btnPlayTrailer");
+ }
+ setTrailerButtonVisibility(page, item);
+ if (item.CanDelete && !item.IsFolder) {
+ hideAll(page, "btnDeleteItem", true);
+ } else {
+ hideAll(page, "btnDeleteItem");
+ }
+ if ("Program" !== item.Type || canPlay) {
+ hideAll(page, "mainDetailButtons", true);
+ } else {
+ hideAll(page, "mainDetailButtons");
+ }
+ showRecordingFields(instance, page, item, user);
var groupedVersions = (item.MediaSources || []).filter(function(g) {
return "Grouping" == g.Type
});
@@ -1166,30 +1177,55 @@ define(["loading", "appRouter", "layoutManager", "connectionManager", "cardBuild
}))
}
}
- var currentItem, self = this,
- apiClient = params.serverId ? connectionManager.getApiClient(params.serverId) : ApiClient;
+
+ var currentItem;
+ var self = this;
+ var apiClient = params.serverId ? connectionManager.getApiClient(params.serverId) : ApiClient;
view.querySelectorAll(".btnPlay");
- bindAll(view, ".btnPlay", "click", onPlayClick), bindAll(view, ".btnResume", "click", onPlayClick), bindAll(view, ".btnInstantMix", "click", onInstantMixClick), bindAll(view, ".btnShuffle", "click", onShuffleClick), bindAll(view, ".btnPlayTrailer", "click", onPlayTrailerClick), bindAll(view, ".btnCancelSeriesTimer", "click", onCancelSeriesTimerClick), bindAll(view, ".btnCancelTimer", "click", onCancelTimerClick), bindAll(view, ".btnDeleteItem", "click", onDeleteClick), bindAll(view, ".btnSyncDownload", "download", onDownloadChange), bindAll(view, ".btnSyncDownload", "download-cancel", onDownloadChange), view.querySelector(".btnMoreCommands i").innerHTML = "", view.querySelector(".trackSelections").addEventListener("submit", onTrackSelectionsSubmit), view.querySelector(".btnSplitVersions").addEventListener("click", function() {
+ bindAll(view, ".btnPlay", "click", onPlayClick);
+ bindAll(view, ".btnResume", "click", onPlayClick);
+ bindAll(view, ".btnInstantMix", "click", onInstantMixClick);
+ bindAll(view, ".btnShuffle", "click", onShuffleClick);
+ bindAll(view, ".btnPlayTrailer", "click", onPlayTrailerClick);
+ bindAll(view, ".btnCancelSeriesTimer", "click", onCancelSeriesTimerClick);
+ bindAll(view, ".btnCancelTimer", "click", onCancelTimerClick);
+ bindAll(view, ".btnDeleteItem", "click", onDeleteClick);
+ view.querySelector(".btnMoreCommands i").innerHTML = "";
+ view.querySelector(".trackSelections").addEventListener("submit", onTrackSelectionsSubmit);
+ view.querySelector(".btnSplitVersions").addEventListener("click", function() {
splitVersions(self, view, apiClient, params)
- }), bindAll(view, ".btnMoreCommands", "click", onMoreCommandsClick), view.querySelector(".selectSource").addEventListener("change", function() {
- renderVideoSelections(view, self._currentPlaybackMediaSources), renderAudioSelections(view, self._currentPlaybackMediaSources), renderSubtitleSelections(view, self._currentPlaybackMediaSources)
- }), view.addEventListener("click", function(e) {
+ });
+ bindAll(view, ".btnMoreCommands", "click", onMoreCommandsClick);
+ view.querySelector(".selectSource").addEventListener("change", function() {
+ renderVideoSelections(view, self._currentPlaybackMediaSources);
+ renderAudioSelections(view, self._currentPlaybackMediaSources);
+ renderSubtitleSelections(view, self._currentPlaybackMediaSources);
+ });
+ view.addEventListener("click", function(e) {
dom.parentWithClass(e.target, "moreScenes") ? apiClient.getCurrentUser().then(function(user) {
renderScenes(view, currentItem)
}) : dom.parentWithClass(e.target, "morePeople") ? renderCast(view, currentItem, params.context) : dom.parentWithClass(e.target, "moreSpecials") && apiClient.getCurrentUser().then(function(user) {
renderSpecials(view, currentItem, user)
})
- }), view.querySelector(".detailImageContainer").addEventListener("click", function(e) {
+ });
+ view.querySelector(".detailImageContainer").addEventListener("click", function(e) {
dom.parentWithClass(e.target, "itemDetailGalleryLink") && editImages().then(function() {
reload(self, view, params)
})
- }), view.addEventListener("viewshow", function(e) {
+ });
+ view.addEventListener("viewshow", function(e) {
var page = this;
libraryMenu.setTransparentMenu(!0), e.detail.isRestored ? currentItem && (setTitle(currentItem, connectionManager.getApiClient(currentItem.ServerId)), renderTrackSelections(page, self, currentItem, !0)) : reload(self, page, params), events.on(apiClient, "message", onWebSocketMessage), events.on(playbackManager, "playerchange", onPlayerChange)
- }), view.addEventListener("viewbeforehide", function() {
- events.off(apiClient, "message", onWebSocketMessage), events.off(playbackManager, "playerchange", onPlayerChange), libraryMenu.setTransparentMenu(!1)
- }), view.addEventListener("viewdestroy", function() {
- currentItem = null, self._currentPlaybackMediaSources = null, self.currentRecordingFields = null
+ });
+ view.addEventListener("viewbeforehide", function() {
+ events.off(apiClient, "message", onWebSocketMessage);
+ events.off(playbackManager, "playerchange", onPlayerChange);
+ libraryMenu.setTransparentMenu(false);
+ });
+ view.addEventListener("viewdestroy", function() {
+ currentItem = null;
+ self._currentPlaybackMediaSources = null;
+ self.currentRecordingFields = null;
})
}
});
diff --git a/src/scripts/livetvrecordings.js b/src/scripts/livetvrecordings.js
index 6c0ee4e51..c56956314 100644
--- a/src/scripts/livetvrecordings.js
+++ b/src/scripts/livetvrecordings.js
@@ -1,4 +1,4 @@
-define(["layoutManager", "loading", "components/categorysyncbuttons", "cardBuilder", "apphost", "imageLoader", "scripts/livetvcomponents", "listViewStyle", "emby-itemscontainer"], function(layoutManager, loading, categorysyncbuttons, cardBuilder, appHost, imageLoader) {
+define(["layoutManager", "loading", "cardBuilder", "apphost", "imageLoader", "scripts/livetvcomponents", "listViewStyle", "emby-itemscontainer"], function(layoutManager, loading, cardBuilder, appHost, imageLoader) {
"use strict";
function renderRecordings(elem, recordings, cardOptions, scrollX) {
@@ -54,7 +54,6 @@ define(["layoutManager", "loading", "components/categorysyncbuttons", "cardBuild
}
var foldersPromise, latestPromise, self = this,
lastFullRender = 0;
- categorysyncbuttons.init(tabContent);
for (var moreButtons = tabContent.querySelectorAll(".more"), i = 0, length = moreButtons.length; i < length; i++) moreButtons[i].addEventListener("click", onMoreClick);
self.preRender = function() {
enableFullRender() && (latestPromise = ApiClient.getLiveTvRecordings({
diff --git a/src/scripts/moviesrecommended.js b/src/scripts/moviesrecommended.js
index 31c9bfba4..9f0379861 100644
--- a/src/scripts/moviesrecommended.js
+++ b/src/scripts/moviesrecommended.js
@@ -1,4 +1,4 @@
-define(["events", "layoutManager", "inputManager", "userSettings", "libraryMenu", "mainTabsManager", "components/categorysyncbuttons", "cardBuilder", "dom", "imageLoader", "playbackManager", "emby-itemscontainer", "emby-tabs", "emby-button"], function(events, layoutManager, inputManager, userSettings, libraryMenu, mainTabsManager, categorysyncbuttons, cardBuilder, dom, imageLoader, playbackManager) {
+define(["events", "layoutManager", "inputManager", "userSettings", "libraryMenu", "mainTabsManager", "cardBuilder", "dom", "imageLoader", "playbackManager", "emby-itemscontainer", "emby-tabs", "emby-button"], function(events, layoutManager, inputManager, userSettings, libraryMenu, mainTabsManager, cardBuilder, dom, imageLoader, playbackManager) {
"use strict";
function enableScrollX() {
@@ -250,7 +250,7 @@ define(["events", "layoutManager", "inputManager", "userSettings", "libraryMenu"
suggestionsTabIndex = 1;
self.initTab = function() {
var tabContent = view.querySelector(".pageTabContent[data-index='" + suggestionsTabIndex + "']");
- categorysyncbuttons.init(tabContent), initSuggestedTab(view, tabContent)
+ initSuggestedTab(view, tabContent);
}, self.renderTab = function() {
var tabContent = view.querySelector(".pageTabContent[data-index='" + suggestionsTabIndex + "']");
loadSuggestionsTab(view, params, tabContent)
diff --git a/src/scripts/site.js b/src/scripts/site.js
index c9b1e7fee..f684a01c3 100644
--- a/src/scripts/site.js
+++ b/src/scripts/site.js
@@ -1131,7 +1131,6 @@ var AppInfo = {};
function loadPlugins(externalPlugins, appHost, browser, shell) {
console.log("Loading installed plugins");
var list = [
- "components/playback/playbackvalidation",
"components/playback/playaccessvalidation",
"components/playback/experimentalwarnings",
"components/htmlaudioplayer/plugin",
@@ -1431,7 +1430,6 @@ var AppInfo = {};
define("programStyles", ["css!" + componentsPath + "/guide/programs"], returnFirstDependency);
define("guide-settings-dialog", [componentsPath + "/guide/guide-settings"], returnFirstDependency);
define("loadingDialog", [componentsPath + "/loadingdialog/loadingdialog"], returnFirstDependency);
- define("syncDialog", [componentsPath + "/sync/sync"], returnFirstDependency);
define("viewManager", [componentsPath + "/viewmanager/viewmanager"], function (viewManager) {
window.ViewManager = viewManager;
viewManager.dispatchPageEvents(true);
@@ -1470,7 +1468,6 @@ var AppInfo = {};
define("userdataButtons", [componentsPath + "/userdatabuttons/userdatabuttons"], returnFirstDependency);
define("emby-playstatebutton", [componentsPath + "/userdatabuttons/emby-playstatebutton"], returnFirstDependency);
define("emby-ratingbutton", [componentsPath + "/userdatabuttons/emby-ratingbutton"], returnFirstDependency);
- define("emby-downloadbutton", [componentsPath + "/sync/emby-downloadbutton"], returnFirstDependency);
define("listView", [componentsPath + "/listview/listview"], returnFirstDependency);
define("listViewStyle", ["css!" + componentsPath + "/listview/listview"], returnFirstDependency);
define("formDialogStyle", ["css!" + componentsPath + "/formdialog"], returnFirstDependency);
@@ -1478,7 +1475,6 @@ var AppInfo = {};
define("viewSettings", [componentsPath + "/viewsettings/viewsettings"], returnFirstDependency);
define("filterMenu", [componentsPath + "/filtermenu/filtermenu"], returnFirstDependency);
define("sortMenu", [componentsPath + "/sortmenu/sortmenu"], returnFirstDependency);
- define("registrationServices", [componentsPath + "/registrationservices/registrationservices"], returnFirstDependency);
if ("cordova" === self.appMode || "android" === self.appMode) {
define("fileupload", ["cordova/fileupload"], returnFirstDependency);
diff --git a/src/scripts/tvlatest.js b/src/scripts/tvlatest.js
index a3cebdd8e..2f0c4a51a 100644
--- a/src/scripts/tvlatest.js
+++ b/src/scripts/tvlatest.js
@@ -1,4 +1,4 @@
-define(["loading", "components/categorysyncbuttons", "components/groupedcards", "cardBuilder", "apphost", "imageLoader"], function(loading, categorysyncbuttons, groupedcards, cardBuilder, appHost, imageLoader) {
+define(["loading", "components/groupedcards", "cardBuilder", "apphost", "imageLoader"], function(loading, groupedcards, cardBuilder, appHost, imageLoader) {
"use strict";
function getLatestPromise(context, params) {
@@ -43,7 +43,6 @@ define(["loading", "components/categorysyncbuttons", "components/groupedcards",
}
return function(view, params, tabContent) {
var self = this;
- categorysyncbuttons.init(tabContent);
var latestPromise;
self.preRender = function() {
latestPromise = getLatestPromise(view, params)
diff --git a/src/scripts/tvrecommended.js b/src/scripts/tvrecommended.js
index 12fbd9081..d7055fe2b 100644
--- a/src/scripts/tvrecommended.js
+++ b/src/scripts/tvrecommended.js
@@ -1,4 +1,4 @@
-define(["events", "inputManager", "libraryMenu", "layoutManager", "loading", "dom", "components/categorysyncbuttons", "userSettings", "cardBuilder", "playbackManager", "mainTabsManager", "scrollStyles", "emby-itemscontainer", "emby-button"], function(events, inputManager, libraryMenu, layoutManager, loading, dom, categorysyncbuttons, userSettings, cardBuilder, playbackManager, mainTabsManager) {
+define(["events", "inputManager", "libraryMenu", "layoutManager", "loading", "dom", "userSettings", "cardBuilder", "playbackManager", "mainTabsManager", "scrollStyles", "emby-itemscontainer", "emby-button"], function(events, inputManager, libraryMenu, layoutManager, loading, dom, userSettings, cardBuilder, playbackManager, mainTabsManager) {
"use strict";
function getTabs() {
@@ -204,7 +204,7 @@ define(["events", "inputManager", "libraryMenu", "layoutManager", "loading", "do
initialTabIndex = currentTabIndex;
self.initTab = function() {
var tabContent = self.tabContent;
- setScrollClasses(tabContent.querySelector("#resumableItems"), enableScrollX()), categorysyncbuttons.init(tabContent)
+ setScrollClasses(tabContent.querySelector("#resumableItems"), enableScrollX());
}, self.renderTab = function() {
reload()
};
@@ -226,4 +226,4 @@ define(["events", "inputManager", "libraryMenu", "layoutManager", "loading", "do
})
})
}
-});
\ No newline at end of file
+});
diff --git a/src/serviceworker.js b/src/serviceworker.js
index 01cf8d63e..4d9e12ee6 100644
--- a/src/serviceworker.js
+++ b/src/serviceworker.js
@@ -1 +1 @@
-importScripts("components/serviceworker/notifications.js", "components/serviceworker/sync.js");
\ No newline at end of file
+importScripts("components/serviceworker/notifications.js");
\ No newline at end of file
diff --git a/src/tv.html b/src/tv.html
index fe95338af..2a8c3ade2 100644
--- a/src/tv.html
+++ b/src/tv.html
@@ -30,9 +30,6 @@
-
@@ -43,9 +40,6 @@
${HeaderLatestEpisodes}
-