diff --git a/src/addplugin.html b/src/addplugin.html index 1c8f0d4bc3..c8b1d4ecff 100644 --- a/src/addplugin.html +++ b/src/addplugin.html @@ -35,44 +35,6 @@

- -
diff --git a/src/components/tvproviders/xmltv.js b/src/components/tvproviders/xmltv.js index 1c73417916..038033a071 100644 --- a/src/components/tvproviders/xmltv.js +++ b/src/components/tvproviders/xmltv.js @@ -1,4 +1,4 @@ -define(["jQuery", "registrationServices", "loading", "emby-checkbox", "emby-input", "listViewStyle", "paper-icon-button-light"], function ($__q, registrationServices, loading) { +define(["jQuery", "loading", "emby-checkbox", "emby-input", "listViewStyle", "paper-icon-button-light"], function ($__q, loading) { "use strict"; return function (page, providerId, options) { diff --git a/src/css/dashboard.css b/src/css/dashboard.css index 945a056c83..c3ed0bfe36 100644 --- a/src/css/dashboard.css +++ b/src/css/dashboard.css @@ -176,8 +176,7 @@ div[data-role=controlgroup] a.ui-btn-active { flex-grow: 1 } -.activeSession:not(.playingSession) .sessionNowPlayingContent, -.supporterMembershipDisabled .tabSupporterMembership { +.activeSession:not(.playingSession) .sessionNowPlayingContent { display: none } diff --git a/src/css/site.css b/src/css/site.css index cf606abf41..0111b3823d 100644 --- a/src/css/site.css +++ b/src/css/site.css @@ -77,42 +77,12 @@ div[data-role=page] { padding-bottom: 2em !important } -.supporterPromotionContainer { - margin: 0 0 2em -} - -@media all and (min-width:80em) { - .supporterPromotionContainer { - margin: 0 - } -} - @media all and (min-width:50em) { .readOnlyContent, form { max-width: 54em } - - .supporterPromotionContainer { - display: -webkit-box; - display: -webkit-flex; - display: flex; - -webkit-box-orient: horizontal; - -webkit-box-direction: reverse; - -webkit-flex-direction: row-reverse; - flex-direction: row-reverse - } - - .supporterPromotion { - text-align: center; - padding: 0 2em - } - - .supporterPromotion button { - padding-left: 2em; - padding-right: 2em - } } .imageDropZone { diff --git a/src/livetv.html b/src/livetv.html index 88b141511f..ef824ae346 100644 --- a/src/livetv.html +++ b/src/livetv.html @@ -1,13 +1,6 @@ 
-
-

- -
- -
+
diff --git a/src/scripts/dashboardpage.js b/src/scripts/dashboardpage.js index abc32b753b..7c3a88feb2 100644 --- a/src/scripts/dashboardpage.js +++ b/src/scripts/dashboardpage.js @@ -107,21 +107,6 @@ define(["datetime", "events", "itemHelper", "serverNotifications", "dom", "globa return list } - function getPluginSecurityInfo() { - var apiClient = window.ApiClient; - return apiClient ? connectionManager.getRegistrationInfo("themes", apiClient, { - viewOnly: !0 - }).then(function(result) { - return { - IsMBSupporter: !0 - } - }, function() { - return { - IsMBSupporter: !1 - } - }) : Promise.reject() - } - function refreshActiveRecordings(view, apiClient) { apiClient.getLiveTvRecordings({ UserId: Dashboard.getCurrentUserId(), @@ -158,12 +143,12 @@ define(["datetime", "events", "itemHelper", "serverNotifications", "dom", "globa apiClient.getSystemInfo().then(function(systemInfo) { view.querySelector(".serverNameHeader").innerHTML = systemInfo.ServerName; var localizedVersion = globalize.translate("LabelVersionNumber", systemInfo.Version); - systemInfo.SystemUpdateLevel && "Release" != systemInfo.SystemUpdateLevel && (localizedVersion += " " + globalize.translate("Option" + systemInfo.SystemUpdateLevel).toLowerCase()), systemInfo.CanSelfRestart ? view.querySelector("#btnRestartServer").classList.remove("hide") : view.querySelector("#btnRestartServer").classList.add("hide"), view.querySelector("#appVersionNumber").innerHTML = localizedVersion, systemInfo.SupportsHttps ? view.querySelector("#ports").innerHTML = globalize.translate("LabelRunningOnPorts", systemInfo.HttpServerPortNumber, systemInfo.HttpsPortNumber) : view.querySelector("#ports").innerHTML = globalize.translate("LabelRunningOnPort", systemInfo.HttpServerPortNumber), DashboardPage.renderUrls(view, systemInfo), DashboardPage.renderPendingInstallations(view, systemInfo), systemInfo.CanSelfUpdate ? (view.querySelector("#btnUpdateApplicationContainer").classList.remove("hide"), view.querySelector("#btnManualUpdateContainer").classList.add("hide")) : (view.querySelector("#btnUpdateApplicationContainer").classList.add("hide"), view.querySelector("#btnManualUpdateContainer").classList.remove("hide")), "synology" == systemInfo.PackageName ? view.querySelector("#btnManualUpdateContainer").innerHTML = globalize.translate("SynologyUpdateInstructions") : view.querySelector("#btnManualUpdateContainer").innerHTML = '' + globalize.translate("PleaseUpdateManually") + "", DashboardPage.renderPaths(view, systemInfo), renderHasPendingRestart(view, apiClient, systemInfo.HasPendingRestart) + systemInfo.SystemUpdateLevel && "Release" != systemInfo.SystemUpdateLevel && (localizedVersion += " " + globalize.translate("Option" + systemInfo.SystemUpdateLevel).toLowerCase()), systemInfo.CanSelfRestart ? view.querySelector("#btnRestartServer").classList.remove("hide") : view.querySelector("#btnRestartServer").classList.add("hide"), view.querySelector("#appVersionNumber").innerHTML = localizedVersion, systemInfo.SupportsHttps ? view.querySelector("#ports").innerHTML = globalize.translate("LabelRunningOnPorts", systemInfo.HttpServerPortNumber, systemInfo.HttpsPortNumber) : view.querySelector("#ports").innerHTML = globalize.translate("LabelRunningOnPort", systemInfo.HttpServerPortNumber), DashboardPage.renderUrls(view, systemInfo), DashboardPage.renderPaths(view, systemInfo), renderHasPendingRestart(view, apiClient, systemInfo.HasPendingRestart) }) } function renderInfo(view, sessions, forceUpdate) { - sessions = filterSessions(sessions), renderActiveConnections(view, sessions), DashboardPage.renderPluginUpdateInfo(view, forceUpdate), loading.hide() + sessions = filterSessions(sessions), renderActiveConnections(view, sessions), loading.hide() } function pollForInfo(view, apiClient, forceUpdate) { @@ -215,9 +200,7 @@ define(["datetime", "events", "itemHelper", "serverNotifications", "dom", "globa var html = ""; tasks = tasks.filter(function(t) { return "Idle" != t.State && !t.IsHidden - }), tasks.length ? view.querySelector(".runningTasksContainer").classList.remove("hide") : view.querySelector(".runningTasksContainer").classList.add("hide"), tasks.filter(function(t) { - return t.Key == DashboardPage.systemUpdateTaskKey - }).length ? buttonEnabled(view.querySelector("#btnUpdateApplication"), !1) : buttonEnabled(view.querySelector("#btnUpdateApplication"), !0); + }), tasks.length ? view.querySelector(".runningTasksContainer").classList.remove("hide") : view.querySelector(".runningTasksContainer").classList.add("hide"); for (var i = 0, length = tasks.length; i < length; i++) { var task = tasks[i]; if (html += "

", html += task.Name + "
", "Running" == task.State) { @@ -229,16 +212,9 @@ define(["datetime", "events", "itemHelper", "serverNotifications", "dom", "globa view.querySelector("#divRunningTasks").innerHTML = html } return window.DashboardPage = { - newsStartIndex: 0, renderPaths: function(page, systemInfo) { page.querySelector("#cachePath").innerHTML = systemInfo.CachePath, page.querySelector("#logPath").innerHTML = systemInfo.LogPath, page.querySelector("#transcodingTemporaryPath").innerHTML = systemInfo.TranscodingTempPath, page.querySelector("#metadataPath").innerHTML = systemInfo.InternalMetadataPath }, - reloadNews: function(page) { - var query = { - StartIndex: DashboardPage.newsStartIndex, - Limit: 4 - }; - }, startInterval: function(apiClient) { apiClient.sendMessage("SessionsStart", "0,1500"), apiClient.sendMessage("ScheduledTasksInfoStart", "0,1000") }, @@ -380,52 +356,6 @@ define(["datetime", "events", "itemHelper", "serverNotifications", "dom", "globa externalUrlElem.innerHTML = remoteAccessHtml + helpButton, externalUrlElem.classList.remove("hide") } else externalUrlElem.classList.add("hide") }, - renderSupporterIcon: function(page, pluginSecurityInfo) { - var imgUrl, text, supporterIconContainer = page.querySelector(".supporterIconContainer"); - pluginSecurityInfo.IsMBSupporter ? (supporterIconContainer.classList.remove("hide"), imgUrl = "css/images/supporter/supporterbadge.png", text = globalize.translate("MessageThankYouForSupporting"), supporterIconContainer.innerHTML = '') : supporterIconContainer.classList.add("hide") - }, - renderPendingInstallations: function(page, systemInfo) { - if (!systemInfo.CompletedInstallations.length) return void page.querySelector("#collapsiblePendingInstallations").classList.add("hide"); - page.querySelector("#collapsiblePendingInstallations").classList.remove("hide"); - for (var html = "", i = 0, length = systemInfo.CompletedInstallations.length; i < length; i++) { - var update = systemInfo.CompletedInstallations[i]; - html += "

" + update.Name + " (" + update.Version + ")
" - } - page.querySelector("#pendingInstallations").innerHTML = html - }, - renderPluginUpdateInfo: function(page, forceUpdate) { - !forceUpdate && DashboardPage.lastPluginUpdateCheck && (new Date).getTime() - DashboardPage.lastPluginUpdateCheck < 18e5 || (DashboardPage.lastPluginUpdateCheck = (new Date).getTime(), ApiClient.getAvailablePluginUpdates().then(function(updates) { - var elem = page.querySelector("#pPluginUpdates"); - if (!updates.length) return void elem.classList.add("hide"); - elem.classList.remove("hide"); - for (var html = "", i = 0, length = updates.length; i < length; i++) { - var update = updates[i]; - html += "

" + globalize.translate("NewVersionOfSomethingAvailable").replace("{0}", update.name) + "

", html += '" - } - elem.innerHTML = html - })) - }, - installPluginUpdate: function(button) { - buttonEnabled(button, !1); - var name = button.getAttribute("data-name"), - guid = button.getAttribute("data-guid"), - version = button.getAttribute("data-version"), - classification = button.getAttribute("data-classification"); - loading.show(), ApiClient.installPlugin(name, guid, classification, version).then(function() { - loading.hide() - }) - }, - updateApplication: function(btn) { - var page = dom.parentWithClass(btn, "page"); - buttonEnabled(page.querySelector("#btnUpdateApplication"), !1), loading.show(), ApiClient.getScheduledTasks().then(function(tasks) { - var task = tasks.filter(function(t) { - return t.Key == DashboardPage.systemUpdateTaskKey - })[0]; - ApiClient.startScheduledTask(task.Id).then(function() { - pollForInfo(page, ApiClient), loading.hide() - }) - }) - }, stopTask: function(btn, id) { var page = dom.parentWithClass(btn, "page"); ApiClient.stopScheduledTask(id).then(function() { @@ -458,16 +388,7 @@ define(["datetime", "events", "itemHelper", "serverNotifications", "dom", "globa }) }) } - }, pageClassOn("pageshow", "type-interior", function() { - var page = this; - page.querySelector(".customSupporterPromotion") || getPluginSecurityInfo().then(function(pluginSecurityInfo) { - var supporterPromotionElem = page.querySelector(".supporterPromotion"); - if (supporterPromotionElem && supporterPromotionElem.parentNode.removeChild(supporterPromotionElem), !pluginSecurityInfo.IsMBSupporter) { - var html = '", page.querySelector(".content-primary").insertAdjacentHTML("afterbegin", html) - } - }) - }), + }, function(view, params) { function onRestartRequired(e, apiClient) { apiClient.serverId() === serverId && renderHasPendingRestart(view, apiClient, !0) @@ -502,9 +423,7 @@ define(["datetime", "events", "itemHelper", "serverNotifications", "dom", "globa apiClient = ApiClient; if (apiClient) { loading.show(), pollForInfo(page, apiClient), DashboardPage.startInterval(apiClient), events.on(serverNotifications, "RestartRequired", onRestartRequired), events.on(serverNotifications, "ServerShuttingDown", onServerShuttingDown), events.on(serverNotifications, "ServerRestarting", onServerRestarting), events.on(serverNotifications, "PackageInstalling", onPackageInstalling), events.on(serverNotifications, "PackageInstallationCompleted", onPackageInstallationCompleted), events.on(serverNotifications, "Sessions", onSessionsUpdate), - events.on(serverNotifications, "ScheduledTasksInfo", onScheduledTasksUpdate), DashboardPage.lastAppUpdateCheck = null, DashboardPage.lastPluginUpdateCheck = null, getPluginSecurityInfo().then(function(pluginSecurityInfo) { - DashboardPage.renderSupporterIcon(page, pluginSecurityInfo) - }), reloadSystemInfo(page, ApiClient), page.userActivityLog || (page.userActivityLog = new ActivityLog({ + events.on(serverNotifications, "ScheduledTasksInfo", onScheduledTasksUpdate), DashboardPage.lastAppUpdateCheck = null, reloadSystemInfo(page, ApiClient), page.userActivityLog || (page.userActivityLog = new ActivityLog({ serverId: ApiClient.serverId(), element: page.querySelector(".userActivityItems") })), ApiClient.isMinServerVersion("3.4.1.25") && (page.serverActivityLog || (page.serverActivityLog = new ActivityLog({ @@ -515,6 +434,7 @@ define(["datetime", "events", "itemHelper", "serverNotifications", "dom", "globa } }), view.addEventListener("viewbeforehide", function() { var apiClient = ApiClient; + // TODO we currently don't support packages and thus these events are useless events.off(serverNotifications, "RestartRequired", onRestartRequired), events.off(serverNotifications, "ServerShuttingDown", onServerShuttingDown), events.off(serverNotifications, "ServerRestarting", onServerRestarting), events.off(serverNotifications, "PackageInstalling", onPackageInstalling), events.off(serverNotifications, "PackageInstallationCompleted", onPackageInstallationCompleted), events.off(serverNotifications, "Sessions", onSessionsUpdate), events.off(serverNotifications, "ScheduledTasksInfo", onScheduledTasksUpdate), apiClient && DashboardPage.stopInterval(apiClient) }), view.addEventListener("viewdestroy", function() { var page = this, diff --git a/src/scripts/livetvsuggested.js b/src/scripts/livetvsuggested.js index 4377195338..653097b146 100644 --- a/src/scripts/livetvsuggested.js +++ b/src/scripts/livetvsuggested.js @@ -1,4 +1,4 @@ -define(["layoutManager", "userSettings", "inputManager", "loading", "registrationServices", "globalize", "libraryBrowser", "mainTabsManager", "cardBuilder", "apphost", "imageLoader", "scrollStyles", "emby-itemscontainer", "emby-tabs", "emby-button"], function(layoutManager, userSettings, inputManager, loading, registrationServices, globalize, libraryBrowser, mainTabsManager, cardBuilder, appHost, imageLoader) { +define(["layoutManager", "userSettings", "inputManager", "loading", "globalize", "libraryBrowser", "mainTabsManager", "cardBuilder", "apphost", "imageLoader", "scrollStyles", "emby-itemscontainer", "emby-tabs", "emby-button"], function(layoutManager, userSettings, inputManager, loading, globalize, libraryBrowser, mainTabsManager, cardBuilder, appHost, imageLoader) { "use strict"; function enableScrollX() { @@ -145,17 +145,6 @@ define(["layoutManager", "userSettings", "inputManager", "loading", "registratio }] } - function validateUnlock(view, showDialog) { - registrationServices.validateFeature("livetv", { - showDialog: showDialog, - viewOnly: !0 - }).then(function() { - view.querySelector(".liveTvContainer").classList.remove("hide"), view.querySelector(".unlockContainer").classList.add("hide") - }, function() { - view.querySelector(".liveTvContainer").classList.add("hide"), view.querySelector(".unlockContainer").classList.remove("hide") - }) - } - function setScrollClasses(elem, scrollX) { scrollX ? (elem.classList.add("hiddenScrollX"), layoutManager.tv && elem.classList.add("smoothScrollX"), elem.classList.add("scrollX"), elem.classList.remove("vertical-wrap")) : (elem.classList.remove("hiddenScrollX"), elem.classList.remove("smoothScrollX"), elem.classList.remove("scrollX"), elem.classList.add("vertical-wrap")) } @@ -248,7 +237,7 @@ define(["layoutManager", "userSettings", "inputManager", "loading", "registratio [].forEach.call(view.querySelectorAll(".sectionTitleTextButton-programs"), function(link) { var href = link.href; href && (link.href = href + "&serverId=" + ApiClient.serverId()) - }), view.querySelector(".unlockText").innerHTML = globalize.translate("sharedcomponents#LiveTvRequiresUnlock"), validateUnlock(view, !1), self.initTab = function() { + }), self.initTab = function() { for (var tabContent = view.querySelector(".pageTabContent[data-index='0']"), containers = tabContent.querySelectorAll(".itemsContainer"), i = 0, length = containers.length; i < length; i++) setScrollClasses(containers[i], enableScrollX()) }, self.renderTab = function() { var tabContent = view.querySelector(".pageTabContent[data-index='0']"); @@ -256,9 +245,7 @@ define(["layoutManager", "userSettings", "inputManager", "loading", "registratio }; var currentTabController, tabControllers = [], renderedTabs = []; - view.querySelector(".btnUnlock").addEventListener("click", function() { - validateUnlock(view, !0) - }), view.addEventListener("viewbeforeshow", function(e) { + view.addEventListener("viewbeforeshow", function(e) { isViewRestored = e.detail.isRestored, initTabs() }), view.addEventListener("viewshow", function(e) { isViewRestored = e.detail.isRestored, isViewRestored || mainTabsManager.selectedTabIndex(initialTabIndex), inputManager.on(window, onInputCommand) diff --git a/src/scripts/plugincatalogpage.js b/src/scripts/plugincatalogpage.js index cebbbb08f3..cb26e84431 100644 --- a/src/scripts/plugincatalogpage.js +++ b/src/scripts/plugincatalogpage.js @@ -68,7 +68,7 @@ define(["loading", "libraryMenu", "globalize", "cardStyle", "emby-linkbutton", " href = plugin.externalUrl ? plugin.externalUrl : "addplugin.html?name=" + encodeURIComponent(plugin.name) + "&guid=" + plugin.guid; options.context && (href += "&context=" + options.context); var target = plugin.externalUrl ? ' target="_blank"' : ""; - html += "
", html += '
', html += '", html += '
', html += "
", html += plugin.name, html += "
"; + html += "
", html += '
', html += '", html += '
', html += "
", html += plugin.name, html += "
"; var installedPlugin = plugin.isApp ? null : installedPlugins.filter(function(ip) { return ip.Id == plugin.guid })[0];