From 3def2a935de21b0d140bc38cf8760e3a398e5abe Mon Sep 17 00:00:00 2001 From: dkanada Date: Tue, 5 Mar 2019 20:42:12 +0900 Subject: [PATCH 01/18] move metadata manager to navbar and out of server configuration --- src/scripts/librarymenu.js | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/src/scripts/librarymenu.js b/src/scripts/librarymenu.js index 145ae42479..395834f9d8 100644 --- a/src/scripts/librarymenu.js +++ b/src/scripts/librarymenu.js @@ -189,6 +189,7 @@ define(["dom", "layoutManager", "inputManager", "connectionManager", "events", " html += globalize.translate("HeaderAdmin"); html += ""; html += 'dashboard' + globalize.translate("TabDashboard") + ""; + html += 'mode_edit' + globalize.translate("MetadataManager") + ""; html += ""; } @@ -271,7 +272,7 @@ define(["dom", "layoutManager", "inputManager", "connectionManager", "events", " pageIds: ["dashboardPage", "serverActivityPage"], icon: "dashboard" }, { - name: globalize.translate("TabSettings"), + name: globalize.translate("General"), href: "dashboardgeneral.html", pageIds: ["dashboardGeneralPage"], icon: "settings" @@ -373,12 +374,6 @@ define(["dom", "layoutManager", "inputManager", "connectionManager", "events", " pageIds: ["scheduledTasksPage", "scheduledTaskPage"], icon: "schedule" }); - links.push({ - name: globalize.translate("MetadataManager"), - href: "edititemmetadata.html", - pageIds: [], - icon: "mode_edit" - }); addPluginPagesToMainMenu(links, pluginItems); return links; } From 44ba7a5cc4a42cb3f6877c65b223707837641d90 Mon Sep 17 00:00:00 2001 From: dkanada Date: Tue, 5 Mar 2019 21:12:13 +0900 Subject: [PATCH 02/18] deminification and move metadata path setting --- src/dashboard/dashboardgeneral.js | 45 ++++++++++++++++++++++++++----- src/dashboard/librarysettings.js | 17 +----------- src/dashboardgeneral.html | 13 ++++++++- src/librarysettings.html | 10 ------- 4 files changed, 51 insertions(+), 34 deletions(-) diff --git a/src/dashboard/dashboardgeneral.js b/src/dashboard/dashboardgeneral.js index f220be4cc0..74a7f1cc8f 100644 --- a/src/dashboard/dashboardgeneral.js +++ b/src/dashboard/dashboardgeneral.js @@ -12,13 +12,25 @@ define(["jQuery", "loading", "fnchecked", "emby-checkbox", "emby-textarea", "emb var form = this; $(form).parents(".page"); return ApiClient.getServerConfiguration().then(function(config) { - config.UICulture = $("#selectLocalizationLanguage", form).val(), config.CachePath = form.querySelector("#txtCachePath").value; - var requiresReload = !1; - config.UICulture !== currentLanguage && (requiresReload = !0), config.EnableAutomaticRestart = $("#chkEnableAutomaticRestart", form).checked(), config.EnableAutoUpdate = $("#chkEnableAutomaticServerUpdates", form).checked(), ApiClient.updateServerConfiguration(config).then(function() { + config.UICulture = $("#selectLocalizationLanguage", form).val(); + config.CachePath = form.querySelector("#txtCachePath").value; + var requiresReload = false; + if (config.UICulture !== currentLanguage) { + requiresReload = true; + } + config.EnableAutomaticRestart = $("#chkEnableAutomaticRestart", form).checked(); + config.EnableAutoUpdate = $("#chkEnableAutomaticServerUpdates", form).checked(); + ApiClient.updateServerConfiguration(config).then(function() { ApiClient.getNamedConfiguration(brandingConfigKey).then(function(brandingConfig) { - brandingConfig.LoginDisclaimer = form.querySelector("#txtLoginDisclaimer").value, brandingConfig.CustomCss = form.querySelector("#txtCustomCss").value, currentBrandingOptions && brandingConfig.CustomCss !== currentBrandingOptions.CustomCss && (requiresReload = !0), ApiClient.updateNamedConfiguration(brandingConfigKey, brandingConfig).then(function() { - Dashboard.processServerConfigurationUpdateResult(), requiresReload && !AppInfo.isNativeApp && window.location.reload(!0) - }) + brandingConfig.LoginDisclaimer = form.querySelector("#txtLoginDisclaimer").value; + brandingConfig.CustomCss = form.querySelector("#txtCustomCss").value; + currentBrandingOptions && brandingConfig.CustomCss !== currentBrandingOptions.CustomCss && (requiresReload = !0); + ApiClient.updateNamedConfiguration(brandingConfigKey, brandingConfig).then(function() { + Dashboard.processServerConfigurationUpdateResult(); + if (requiresReload && !AppInfo.isNativeApp) { + window.location.reload(true); + } + }); }) }) }), !1 @@ -37,7 +49,26 @@ define(["jQuery", "loading", "fnchecked", "emby-checkbox", "emby-textarea", "emb instruction: Globalize.translate("HeaderSelectServerCachePathHelp") }) }) - }), $(".dashboardGeneralForm", view).off("submit", onSubmit).on("submit", onSubmit), view.addEventListener("viewshow", function() { + }); + + $("#btnSelectMetadataPath", view).on("click.selectDirectory", function() { + require(["directorybrowser"], function(directoryBrowser) { + var picker = new directoryBrowser; + picker.show({ + path: $("#txtMetadataPath", view).val(), + networkSharePath: $("#txtMetadataNetworkPath", view).val(), + callback: function(path, networkPath) { + path && ($("#txtMetadataPath", view).val(path), $("#txtMetadataNetworkPath", view).val(networkPath)), picker.close() + }, + validateWriteable: !0, + header: Globalize.translate("HeaderSelectMetadataPath"), + instruction: Globalize.translate("HeaderSelectMetadataPathHelp"), + enableNetworkSharePath: !0 + }) + }) + }); + + $(".dashboardGeneralForm", view).off("submit", onSubmit).on("submit", onSubmit), view.addEventListener("viewshow", function() { var promise1 = ApiClient.getServerConfiguration(), promise2 = ApiClient.getJSON(ApiClient.getUrl("Localization/Options")), promise3 = ApiClient.getSystemInfo(); diff --git a/src/dashboard/librarysettings.js b/src/dashboard/librarysettings.js index afbf033dfb..4a967537b7 100644 --- a/src/dashboard/librarysettings.js +++ b/src/dashboard/librarysettings.js @@ -62,22 +62,7 @@ define(["jQuery", "loading", "libraryMenu", "fnchecked", "emby-checkbox", "emby- }] } return function(view, params) { - $("#btnSelectMetadataPath", view).on("click.selectDirectory", function() { - require(["directorybrowser"], function(directoryBrowser) { - var picker = new directoryBrowser; - picker.show({ - path: $("#txtMetadataPath", view).val(), - networkSharePath: $("#txtMetadataNetworkPath", view).val(), - callback: function(path, networkPath) { - path && ($("#txtMetadataPath", view).val(path), $("#txtMetadataNetworkPath", view).val(networkPath)), picker.close() - }, - validateWriteable: !0, - header: Globalize.translate("HeaderSelectMetadataPath"), - instruction: Globalize.translate("HeaderSelectMetadataPathHelp"), - enableNetworkSharePath: !0 - }) - }) - }), $(".librarySettingsForm").off("submit", onSubmit).on("submit", onSubmit), view.addEventListener("viewshow", function() { + $(".librarySettingsForm").off("submit", onSubmit).on("submit", onSubmit), view.addEventListener("viewshow", function() { libraryMenu.setTabs("librarysetup", 4, getTabs), loading.show(); var page = this; ApiClient.getServerConfiguration().then(function(config) { diff --git a/src/dashboardgeneral.html b/src/dashboardgeneral.html index 16d170e62b..a31db79d66 100644 --- a/src/dashboardgeneral.html +++ b/src/dashboardgeneral.html @@ -34,7 +34,7 @@
-

${Advanced}

+

${HeaderPaths}

@@ -44,6 +44,16 @@
${LabelCachePathHelp}
+
+
+
+ +
+ +
+
${LabelMetadataPathHelp}
+ +
@@ -62,6 +72,7 @@
+

${TabOther}

${LabelLoginDisclaimerHelp}
diff --git a/src/librarysettings.html b/src/librarysettings.html index 7b75ff7e19..f99ebfb4e0 100644 --- a/src/librarysettings.html +++ b/src/librarysettings.html @@ -11,16 +11,6 @@
${LabelDateAddedBehaviorHelp}
-
-
-
- -
- -
-
${LabelMetadataPathHelp}
- -
@@ -76,7 +74,6 @@
+
-

${HeaderPaths}

+
+

${HeaderPaths}

+ +
diff --git a/src/devices/devices.html b/src/devices/devices.html index f79d7954fd..6997f42eda 100644 --- a/src/devices/devices.html +++ b/src/devices/devices.html @@ -1,8 +1,6 @@
-
-

${TabDevices}

@@ -11,9 +9,6 @@
- - -
diff --git a/src/scripts/librarymenu.js b/src/scripts/librarymenu.js index 395834f9d8..c44eb9f6bf 100644 --- a/src/scripts/librarymenu.js +++ b/src/scripts/librarymenu.js @@ -189,7 +189,7 @@ define(["dom", "layoutManager", "inputManager", "connectionManager", "events", " html += globalize.translate("HeaderAdmin"); html += ""; html += 'dashboard' + globalize.translate("TabDashboard") + ""; - html += 'mode_edit' + globalize.translate("MetadataManager") + ""; + html += 'mode_edit' + globalize.translate("Metadata") + ""; html += "
"; } diff --git a/src/scripts/plugincatalogpage.js b/src/scripts/plugincatalogpage.js index 40d57560b5..f18c56f2f0 100644 --- a/src/scripts/plugincatalogpage.js +++ b/src/scripts/plugincatalogpage.js @@ -41,82 +41,31 @@ define(["loading", "libraryMenu", "globalize", "cardStyle", "emby-linkbutton", " if (!options.targetSystem || plugin.targetSystem == options.targetSystem) { return "UserInstalled" == plugin.type; } - - return false; } - return false; }); - availablePlugins = allPlugins.sort(function (a__e, b__r) { - var aName = a__e.category; - var bName = b__r.category; - if (aName > bName) { + availablePlugins = allPlugins.sort(function (a, b) { + if (a.category > b.category) { return 1; - } - - if (bName > aName) { + } else if (b.category > a.category) { return -1; } - - aName = a__e.name; - bName = b__r.name; - - if (aName > bName) { + if (a.name > b.name) { return 1; - } - - if (bName > aName) { + } else if (b.name > a.name) { return -1; } - return 0; }); + var i__q; var length; var plugin; var currentCategory; var html = ""; - if (!options.categories) { - currentCategory = globalize.translate("HeaderTopPlugins"); - html += '
'; - html += '

' + currentCategory + "

"; - var topPlugins = allPlugins.slice(0).sort(function (a__t, b__y) { - if (a__t.installs > b__y.installs) { - return -1; - } - - if (b__y.installs > a__t.installs) { - return 1; - } - - var aName = a__t.name; - var bName = b__y.name; - - if (aName > bName) { - return 1; - } - - if (bName > aName) { - return -1; - } - - return 0; - }); - html += '
'; - var limit = screen.availWidth >= 1920 ? 15 : 12; - - for (i__q = 0, length = Math.min(topPlugins.length, limit); i__q < length; i__q++) { - html += getPluginHtml(topPlugins[i__q], options, installedPlugins); - } - - html += "
"; - html += "
"; - } - var hasOpenTag = false; - for (currentCategory = null, false === options.showCategory && (html += '
', hasOpenTag = true), i__q = 0, length = availablePlugins.length; i__q < length; i__q++) { plugin = availablePlugins[i__q]; var category = plugin.categoryDisplayName; From 07673d0ae6a06b86ca4a0319c8292a9c03e161dd Mon Sep 17 00:00:00 2001 From: dkanada Date: Wed, 6 Mar 2019 16:43:39 +0900 Subject: [PATCH 08/18] remove a dead setting from dlna page --- src/dlnasettings.html | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/dlnasettings.html b/src/dlnasettings.html index a3cb1f10fa..5eb5cd452d 100644 --- a/src/dlnasettings.html +++ b/src/dlnasettings.html @@ -10,11 +10,6 @@

${TabSettings}

${Help}
- -
- -
${LabelRemoteClientBitrateLimitHelp}
-
From 579fbe90c8544f0e22fe11876d4d3cd8cfc4b566 Mon Sep 17 00:00:00 2001 From: dkanada Date: Wed, 6 Mar 2019 17:53:44 +0900 Subject: [PATCH 09/18] remove appservices page in favor of plugin catalog --- src/appservices.html | 21 ----------- src/dashboard/livetvtuner.js | 10 ------ src/livetvstatus.html | 8 ++--- src/livetvtuner.html | 7 ++-- src/notificationsettings.html | 6 +--- src/scripts/appservices.js | 56 ----------------------------- src/scripts/livetvstatus.js | 10 ------ src/scripts/notificationsettings.js | 9 ----- src/scripts/site.js | 5 --- 9 files changed, 7 insertions(+), 125 deletions(-) delete mode 100644 src/appservices.html delete mode 100644 src/scripts/appservices.js diff --git a/src/appservices.html b/src/appservices.html deleted file mode 100644 index 43f37a0980..0000000000 --- a/src/appservices.html +++ /dev/null @@ -1,21 +0,0 @@ -
- -
-
- -
- -
-

${HeaderInstalledServices}

- ${Help} -
- -
-
-
-

${HeaderAvailableServices}

-
-
-
-
-
\ No newline at end of file diff --git a/src/dashboard/livetvtuner.js b/src/dashboard/livetvtuner.js index b32e01b2d2..5ded7e6bf4 100644 --- a/src/dashboard/livetvtuner.js +++ b/src/dashboard/livetvtuner.js @@ -74,16 +74,6 @@ define(["globalize", "loading", "libraryMenu", "dom", "emby-input", "emby-button }) } - function getTabs() { - return [{ - href: "livetvstatus.html", - name: globalize.translate("TabDevices") - }, { - href: "appservices.html?context=livetv", - name: globalize.translate("TabServices") - }] - } - function onTypeChange() { var value = this.value, view = dom.parentWithClass(this, "page"), diff --git a/src/livetvstatus.html b/src/livetvstatus.html index 281c1e7a97..f6a0c8aeb2 100644 --- a/src/livetvstatus.html +++ b/src/livetvstatus.html @@ -1,11 +1,7 @@ -
- +
- -
-

@@ -31,8 +27,8 @@
-
+
diff --git a/src/livetvtuner.html b/src/livetvtuner.html index 47fd5e2b26..71ddde77d7 100644 --- a/src/livetvtuner.html +++ b/src/livetvtuner.html @@ -1,8 +1,6 @@ -
- +
-
@@ -47,6 +45,7 @@
${ImportFavoriteChannelsHelp}
+
${AllowHWTranscodingHelp}
+
${EnableStreamLoopingHelp}
+

${DrmChannelsNotImported}

${ForAdditionalLiveTvOptions}


diff --git a/src/notificationsettings.html b/src/notificationsettings.html index 279e1bc565..e0747c34b3 100644 --- a/src/notificationsettings.html +++ b/src/notificationsettings.html @@ -1,13 +1,9 @@ -
- +
-
-
-
diff --git a/src/scripts/appservices.js b/src/scripts/appservices.js deleted file mode 100644 index 03ec8225bf..0000000000 --- a/src/scripts/appservices.js +++ /dev/null @@ -1,56 +0,0 @@ -define(["loading", "libraryMenu"], function(loading, libraryMenu) { - "use strict"; - - function reloadList(page) { - loading.show(); - var promise1 = ApiClient.getAvailablePlugins({ - TargetSystems: "Server" - }), - promise2 = ApiClient.getInstalledPlugins(); - Promise.all([promise1, promise2]).then(function(responses) { - renderInstalled(page, responses[0], responses[1]), renderCatalog(page, responses[0], responses[1]) - }) - } - - function getCategories() { - var context = getParameterByName("context"), - categories = []; - return "sync" == context ? categories.push("Sync") : "livetv" == context ? categories.push("Live TV") : "notifications" == context && categories.push("Notifications"), categories - } - - function renderInstalled(page, availablePlugins, installedPlugins) { - requirejs(["scripts/pluginspage"], function() { - var category = getCategories()[0]; - installedPlugins = installedPlugins.filter(function(i) { - var catalogEntry = availablePlugins.filter(function(a) { - return (a.guid || "").toLowerCase() == (i.Id || "").toLowerCase() - })[0]; - return !!catalogEntry && catalogEntry.category == category - }), PluginsPage.renderPlugins(page, installedPlugins) - }) - } - - function renderCatalog(page, availablePlugins, installedPlugins) { - requirejs(["scripts/plugincatalogpage"], function() { - var categories = getCategories(); - PluginCatalog.renderCatalog({ - catalogElement: page.querySelector(".catalog"), - availablePlugins: availablePlugins, - installedPlugins: installedPlugins, - categories: categories, - showCategory: !1, - context: getParameterByName("context"), - targetSystem: "Server" - }) - }) - } - - function onPageShow() { - var page = this, - context = getParameterByName("context"); - "sync" == context ? (libraryMenu.setTitle(Globalize.translate("TitleSync")), page.querySelector(".headerHelpButton").setAttribute("href", "https://web.archive.org/web/20181216120305/https://github.com/MediaBrowser/Wiki/wiki/Sync")) : "livetv" == context ? (libraryMenu.setTitle(Globalize.translate("TitleLiveTV")), page.querySelector(".headerHelpButton").setAttribute("href", "https://web.archive.org/web/20181216120305/https://github.com/MediaBrowser/Wiki/wiki/Live-TV")) : "notifications" == context && (libraryMenu.setTitle(Globalize.translate("TitleNotifications")), page.querySelector(".headerHelpButton").setAttribute("href", "https://web.archive.org/web/20181216120305/https://github.com/MediaBrowser/Wiki/wiki/Notifications")) - } - pageIdOn("pagebeforeshow", "appServicesPage", onPageShow), pageIdOn("pageshow", "appServicesPage", onPageShow), pageIdOn("pageshow", "appServicesPage", function() { - reloadList(this) - }) -}); \ No newline at end of file diff --git a/src/scripts/livetvstatus.js b/src/scripts/livetvstatus.js index 96f7b3dd91..1beb1a9c69 100644 --- a/src/scripts/livetvstatus.js +++ b/src/scripts/livetvstatus.js @@ -188,16 +188,6 @@ define(["jQuery", "globalize", "scripts/taskbutton", "dom", "libraryMenu", "layo Dashboard.navigate("livetvtuner.html") } - function getTabs() { - return [{ - href: "livetvstatus.html", - name: globalize.translate("TabDevices") - }, { - href: "appservices.html?context=livetv", - name: globalize.translate("TabServices") - }] - } - function showDeviceMenu(button, tunerDeviceId) { var items = []; items.push({ diff --git a/src/scripts/notificationsettings.js b/src/scripts/notificationsettings.js index b0c8bfe573..173db03bca 100644 --- a/src/scripts/notificationsettings.js +++ b/src/scripts/notificationsettings.js @@ -13,15 +13,6 @@ define(["loading", "libraryMenu", "globalize", "listViewStyle", "emby-linkbutton }) } - function getTabs() { - return [{ - href: "notificationsettings.html", - name: globalize.translate("TabNotifications") - }, { - href: "appservices.html?context=notifications", - name: globalize.translate("TabServices") - }] - } return function(view, params) { view.addEventListener("viewshow", function() { libraryMenu.setTabs("notifications", 0, getTabs), reload(view) diff --git a/src/scripts/site.js b/src/scripts/site.js index 2d6c15b1eb..c012caba9e 100644 --- a/src/scripts/site.js +++ b/src/scripts/site.js @@ -423,11 +423,6 @@ var Dashboard = { autoFocus: !1, roles: "admin", controller: "scripts/addpluginpage" - }), defineRoute({ - path: "/appservices.html", - dependencies: [], - autoFocus: !1, - roles: "admin" }), defineRoute({ path: "/autoorganizelog.html", dependencies: [], From 74eabd2af96eba08f946b72bb0a478829dc45238 Mon Sep 17 00:00:00 2001 From: dkanada Date: Wed, 6 Mar 2019 18:18:49 +0900 Subject: [PATCH 10/18] fix js crash from missing method and deminification --- src/dashboard/livetvtuner.js | 52 ++++++++++++++++++++--------- src/scripts/livetvstatus.js | 1 - src/scripts/notificationsettings.js | 51 +++++++++++++++++++++++----- 3 files changed, 80 insertions(+), 24 deletions(-) diff --git a/src/dashboard/livetvtuner.js b/src/dashboard/livetvtuner.js index 5ded7e6bf4..1cc806d05b 100644 --- a/src/dashboard/livetvtuner.js +++ b/src/dashboard/livetvtuner.js @@ -2,31 +2,54 @@ define(["globalize", "loading", "libraryMenu", "dom", "emby-input", "emby-button "use strict"; function isM3uVariant(type) { - return -1 !== ["nextpvr"].indexOf(type || "") + return ["nextpvr"].indexOf(type || "") !== -1; } function fillTypes(view, currentId) { - return ApiClient.getJSON(ApiClient.getUrl("LiveTv/TunerHosts/Types")).then(function(types) { + ApiClient.getJSON(ApiClient.getUrl("LiveTv/TunerHosts/Types")).then(function(types) { var selectType = view.querySelector(".selectType"); selectType.innerHTML = types.map(function(t) { - return '" - }).join("") + '", selectType.disabled = null != currentId, selectType.value = "", onTypeChange.call(selectType) - }) + return '"; + }).join(""); + selectType.innerHTML += '"; + + selectType.disabled = null != currentId; + selectType.value = ""; + onTypeChange.call(selectType); + }); } function reload(view, providerId) { - view.querySelector(".txtDevicePath").value = "", view.querySelector(".chkFavorite").checked = !1, view.querySelector(".txtDevicePath").value = "", providerId && ApiClient.getNamedConfiguration("livetv").then(function(config) { - var info = config.TunerHosts.filter(function(i) { - return i.Id === providerId - })[0]; - fillTunerHostInfo(view, info) - }) + view.querySelector(".txtDevicePath").value = ""; + view.querySelector(".chkFavorite").checked = false; + view.querySelector(".txtDevicePath").value = ""; + if (providerId) { + ApiClient.getNamedConfiguration("livetv").then(function(config) { + var info = config.TunerHosts.filter(function(i) { + return i.Id === providerId; + })[0]; + fillTunerHostInfo(view, info); + }); + } } function fillTunerHostInfo(view, info) { - var selectType = view.querySelector(".selectType"), - type = info.Type || ""; - info.Source && isM3uVariant(info.Source) && (type = info.Source), selectType.value = type, onTypeChange.call(selectType), view.querySelector(".txtDevicePath").value = info.Url || "", view.querySelector(".txtFriendlyName").value = info.FriendlyName || "", view.querySelector(".txtUserAgent").value = info.UserAgent || "", view.querySelector(".fldDeviceId").value = info.DeviceId || "", view.querySelector(".chkFavorite").checked = info.ImportFavoritesOnly, view.querySelector(".chkTranscode").checked = info.AllowHWTranscoding, view.querySelector(".chkStreamLoop").checked = info.EnableStreamLooping, view.querySelector(".txtTunerCount").value = info.TunerCount || "0" + var selectType = view.querySelector(".selectType"); + var type = info.Type || ""; + if (info.Source && isM3uVariant(info.Source)) { + selectType.value = info.Source; + onTypeChange.call(selectType); + } + view.querySelector(".txtDevicePath").value = info.Url || ""; + view.querySelector(".txtFriendlyName").value = info.FriendlyName || ""; + view.querySelector(".txtUserAgent").value = info.UserAgent || ""; + view.querySelector(".fldDeviceId").value = info.DeviceId || ""; + view.querySelector(".chkFavorite").checked = info.ImportFavoritesOnly; + view.querySelector(".chkTranscode").checked = info.AllowHWTranscoding; + view.querySelector(".chkStreamLoop").checked = info.EnableStreamLooping; + view.querySelector(".txtTunerCount").value = info.TunerCount || "0"; } function submitForm(page) { @@ -92,7 +115,6 @@ define(["globalize", "loading", "libraryMenu", "dom", "emby-input", "emby-button } return function(view, params) { params.id || view.querySelector(".btnDetect").classList.remove("hide"), view.addEventListener("viewshow", function() { - libraryMenu.setTabs("livetvadmin", 0, getTabs); var currentId = params.id; fillTypes(view, currentId).then(function() { reload(view, currentId) diff --git a/src/scripts/livetvstatus.js b/src/scripts/livetvstatus.js index 1beb1a9c69..3a7078ccd8 100644 --- a/src/scripts/livetvstatus.js +++ b/src/scripts/livetvstatus.js @@ -230,7 +230,6 @@ define(["jQuery", "globalize", "scripts/taskbutton", "dom", "libraryMenu", "layo addProvider(this) }), page.querySelector(".devicesList").addEventListener("click", onDevicesListClick) }).on("pageshow", "#liveTvStatusPage", function() { - libraryMenu.setTabs("livetvadmin", 0, getTabs); var page = this; reload(page), taskButton({ mode: "on", diff --git a/src/scripts/notificationsettings.js b/src/scripts/notificationsettings.js index 173db03bca..78948fd56b 100644 --- a/src/scripts/notificationsettings.js +++ b/src/scripts/notificationsettings.js @@ -2,20 +2,55 @@ define(["loading", "libraryMenu", "globalize", "listViewStyle", "emby-linkbutton "use strict"; function reload(page) { - loading.show(), ApiClient.getJSON(ApiClient.getUrl("Notifications/Types")).then(function(list) { - var html = "", - lastCategory = "", - showHelp = !0; + loading.show(); + ApiClient.getJSON(ApiClient.getUrl("Notifications/Types")).then(function(list) { + var html = ""; + var lastCategory = ""; + var showHelp = true; html += list.map(function(i) { var itemHtml = ""; - return i.Category != lastCategory && (lastCategory = i.Category, lastCategory && (itemHtml += "
", itemHtml += "
"), itemHtml += '
', itemHtml += '
', itemHtml += '

', itemHtml += i.Category, itemHtml += "

", showHelp && (showHelp = !1, itemHtml += '' + globalize.translate("Help") + ""), itemHtml += "
", itemHtml += '", html += "
"), page.querySelector(".notificationList").innerHTML = html, loading.hide() + if (i.Category !== lastCategory) { + lastCategory = i.Category; + if (lastCategory) { + itemHtml += "
"; + itemHtml += "
"; + } + itemHtml += '
'; + itemHtml += '
'; + itemHtml += '

'; + itemHtml += i.Category; + itemHtml += "

"; + if (showHelp) { + showHelp = false; + itemHtml += ''; + itemHtml += globalize.translate("Help"); + itemHtml += ""; + } + itemHtml += "
"; + itemHtml += '"; + html += "
"; + } + page.querySelector(".notificationList").innerHTML = html; + loading.hide(); }) } return function(view, params) { view.addEventListener("viewshow", function() { - libraryMenu.setTabs("notifications", 0, getTabs), reload(view) - }) + reload(view); + }); } }); \ No newline at end of file From f3e07e153159bd8115974dd5e9daac1adfe5ec90 Mon Sep 17 00:00:00 2001 From: dkanada Date: Wed, 6 Mar 2019 18:53:31 +0900 Subject: [PATCH 11/18] move network share path out of directory browser component --- .../directorybrowser/directorybrowser.js | 34 +++++-------------- src/dashboard/dashboardgeneral.js | 23 ++++++++++--- src/dashboardgeneral.html | 14 ++++++-- 3 files changed, 38 insertions(+), 33 deletions(-) diff --git a/src/components/directorybrowser/directorybrowser.js b/src/components/directorybrowser/directorybrowser.js index 7eb91fffa0..592885721b 100644 --- a/src/components/directorybrowser/directorybrowser.js +++ b/src/components/directorybrowser/directorybrowser.js @@ -18,18 +18,18 @@ define(['loading', 'dialogHelper', 'dom', 'listViewStyle', 'emby-input', 'emby-b if (path && typeof path !== 'string') { throw new Error("invalid path"); } - + loading.show(); - + var promises = []; if ("Network" === path) { promises.push(ApiClient.getNetworkDevices()) } else { - if (path) { + if (path) { promises.push(ApiClient.getDirectoryContents(path, fileOptions)); promises.push(ApiClient.getParentPath(path)); - } else { + } else { promises.push(ApiClient.getDrives()); } } @@ -42,7 +42,7 @@ define(['loading', 'dialogHelper', 'dom', 'listViewStyle', 'emby-input', 'emby-b page.querySelector(".results").scrollTop = 0; page.querySelector("#txtDirectoryPickerPath").value = path || ""; - + if (path) { html += getItem("lnkPath lnkDirectory", "", parentPath, "..."); } @@ -51,7 +51,7 @@ define(['loading', 'dialogHelper', 'dom', 'listViewStyle', 'emby-input', 'emby-b var cssClass = "File" === folder.Type ? "lnkPath lnkFile" : "lnkPath lnkDirectory"; html += getItem(cssClass, folder.Type, folder.Path, folder.Name); } - + if (!path) { html += getItem("lnkPath lnkDirectory", "", "Network", Globalize.translate("ButtonNetwork")); } @@ -128,17 +128,9 @@ define(['loading', 'dialogHelper', 'dom', 'listViewStyle', 'emby-input', 'emby-b html += ''; } html += "
"; - if (!readOnlyAttribute) { + if (!readOnlyAttribute) { html += '
'; } - if (options.enableNetworkSharePath) { - html += '
'; - html += ''; - html += '
'; - html += Globalize.translate("LabelOptionalNetworkPathHelp"); - html += "
"; - html += "
"; - } html += '
'; html += '"; html += "
"; @@ -219,14 +211,8 @@ define(['loading', 'dialogHelper', 'dom', 'listViewStyle', 'emby-input', 'emby-b content.querySelector("form").addEventListener("submit", function(e) { if (options.callback) { - var networkSharePath = this.querySelector("#txtNetworkPath"); - networkSharePath = networkSharePath ? networkSharePath.value : null; var path = this.querySelector("#txtDirectoryPickerPath").value; - validatePath(path, options.validateWriteable, ApiClient).then( - function() { - options.callback(path, networkSharePath); - } - ); + validatePath(path, options.validateWriteable, ApiClient).then(options.callback(path)); } e.preventDefault(); e.stopPropagation(); @@ -293,10 +279,6 @@ define(['loading', 'dialogHelper', 'dom', 'listViewStyle', 'emby-input', 'emby-b }); currentDialog = dlg; dlg.querySelector("#txtDirectoryPickerPath").value = initialPath; - var txtNetworkPath = dlg.querySelector("#txtNetworkPath"); - if (txtNetworkPath) { - txtNetworkPath.value = options.networkSharePath || ""; - } if (!options.pathReadOnly) { refreshDirectoryBrowser(dlg, initialPath, fileOptions, true); } diff --git a/src/dashboard/dashboardgeneral.js b/src/dashboard/dashboardgeneral.js index 760ae087a0..027fba9991 100644 --- a/src/dashboard/dashboardgeneral.js +++ b/src/dashboard/dashboardgeneral.js @@ -74,16 +74,29 @@ define(["jQuery", "loading", "fnchecked", "emby-checkbox", "emby-textarea", "emb var picker = new directoryBrowser; picker.show({ path: $("#txtMetadataPath", view).val(), - networkSharePath: $("#txtMetadataNetworkPath", view).val(), - callback: function(path, networkPath) { + callback: function(path) { path && $("#txtMetadataPath", view).val(path); - networkPath && $("#txtMetadataNetworkPath", view).val(networkPath); picker.close(); }, validateWriteable: true, header: Globalize.translate("HeaderSelectMetadataPath"), - instruction: Globalize.translate("HeaderSelectMetadataPathHelp"), - enableNetworkSharePath: true + instruction: Globalize.translate("HeaderSelectMetadataPathHelp") + }) + }) + }); + + $("#btnSelectMetadataNetworkPath", view).on("click.selectDirectory", function() { + require(["directorybrowser"], function(directoryBrowser) { + var picker = new directoryBrowser; + picker.show({ + path: $("#txtMetadataNetworkPath", view).val(), + callback: function(path) { + path && $("#txtMetadataNetworkPath", view).val(path); + picker.close(); + }, + validateWriteable: true, + header: Globalize.translate("LabelOptionalNetworkPath"), + instruction: Globalize.translate("LabelOptionalNetworkPathHelp") }) }) }); diff --git a/src/dashboardgeneral.html b/src/dashboardgeneral.html index a31db79d66..4c56fa300b 100644 --- a/src/dashboardgeneral.html +++ b/src/dashboardgeneral.html @@ -44,6 +44,7 @@
${LabelCachePathHelp}
+
@@ -52,7 +53,16 @@
${LabelMetadataPathHelp}
- +
+ +
+
+
+ +
+ +
+
${LabelOptionalNetworkPathHelp}
@@ -72,7 +82,7 @@
-

${TabOther}

+

${HeaderBranding}

${LabelLoginDisclaimerHelp}
From 14005d6c6397c8d42b839ffce54e3261c9bed04d Mon Sep 17 00:00:00 2001 From: dkanada Date: Wed, 6 Mar 2019 19:13:44 +0900 Subject: [PATCH 12/18] comment out multiserver and add check in navigation drawer --- src/components/apphost.js | 2 +- src/scripts/librarymenu.js | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/components/apphost.js b/src/components/apphost.js index 8de18f166f..619cd298b7 100644 --- a/src/components/apphost.js +++ b/src/components/apphost.js @@ -143,7 +143,7 @@ define(["appSettings", "browser", "events", "htmlMediaHelper"], function(appSett features.push("displaylanguage"); features.push("otherapppromotions"); features.push("targetblank"); - features.push("multiserver"); + //features.push("multiserver"); browser.orsay || browser.tizen || browser.msie || !(browser.firefox || browser.ps4 || browser.edge || cueSupported()) || features.push("subtitleappearancesettings"); browser.orsay || browser.tizen || features.push("subtitleburnsettings"); browser.tv || browser.ps4 || browser.xboxOne || features.push("fileinput"); diff --git a/src/scripts/librarymenu.js b/src/scripts/librarymenu.js index c44eb9f6bf..a637a779c4 100644 --- a/src/scripts/librarymenu.js +++ b/src/scripts/librarymenu.js @@ -199,7 +199,9 @@ define(["dom", "layoutManager", "inputManager", "connectionManager", "events", " html += "

"; if (user.localUser) { html += 'settings' + globalize.translate("ButtonSettings") + ""; - html += 'wifi' + globalize.translate("ButtonSelectServer") + ""; + if (appHost.supports("multiserver")) { + html += 'wifi' + globalize.translate("ButtonSelectServer") + ""; + } if (!user.localUser.EnableAutoLogin) { html += 'exit_to_app' + globalize.translate("ButtonSignOut") + ""; } From 06d215443473cdec90165fe729721baed9b17ba5 Mon Sep 17 00:00:00 2001 From: Vasily Date: Thu, 7 Mar 2019 22:00:13 +0000 Subject: [PATCH 13/18] apply suggestions from code review Co-Authored-By: dkanada --- src/dashboard/dashboardgeneral.js | 52 +++++++++++++++++++++-------- src/dashboard/librarysettings.js | 6 +++- src/scripts/notificationsettings.js | 8 +++-- 3 files changed, 49 insertions(+), 17 deletions(-) diff --git a/src/dashboard/dashboardgeneral.js b/src/dashboard/dashboardgeneral.js index 027fba9991..cf9d58f3dd 100644 --- a/src/dashboard/dashboardgeneral.js +++ b/src/dashboard/dashboardgeneral.js @@ -2,7 +2,11 @@ define(["jQuery", "loading", "fnchecked", "emby-checkbox", "emby-textarea", "emb "use strict"; function loadPage(page, config, languageOptions, systemInfo) { - systemInfo.CanLaunchWebBrowser ? page.querySelector("#fldRunWebAppAtStartup").classList.remove("hide") : page.querySelector("#fldRunWebAppAtStartup").classList.add("hide"); + if (systemInfo.CanLaunchWebBrowser) { + page.querySelector("#fldRunWebAppAtStartup").classList.remove("hide"); + } else { + page.querySelector("#fldRunWebAppAtStartup").classList.add("hide"); + } page.querySelector("#txtCachePath").value = config.CachePath || ""; $("#txtMetadataPath", page).val(config.MetadataPath || ""); $("#txtMetadataNetworkPath", page).val(config.MetadataNetworkPath || ""); @@ -10,11 +14,23 @@ define(["jQuery", "loading", "fnchecked", "emby-checkbox", "emby-textarea", "emb return '" })).val(config.UICulture); currentLanguage = config.UICulture; - systemInfo.CanSelfUpdate ? page.querySelector(".fldAutomaticUpdates").classList.remove("hide") : page.querySelector(".fldAutomaticUpdates").classList.add("hide"); + if (systemInfo.CanSelfUpdate) { + page.querySelector(".fldAutomaticUpdates").classList.remove("hide"); + } else { + page.querySelector(".fldAutomaticUpdates").classList.add("hide"); + } $("#chkEnableAutomaticServerUpdates", page).checked(config.EnableAutoUpdate); $("#chkEnableAutomaticRestart", page).checked(config.EnableAutomaticRestart); - systemInfo.CanSelfRestart ? page.querySelector("#fldEnableAutomaticRestart").classList.remove("hide") : page.querySelector("#fldEnableAutomaticRestart").classList.add("hide"); - systemInfo.CanSelfRestart || systemInfo.CanSelfUpdate ? $(".autoUpdatesContainer", page).removeClass("hide") : $(".autoUpdatesContainer", page).addClass("hide"); + if (systemInfo.CanSelfRestart) { + page.querySelector("#fldEnableAutomaticRestart").classList.remove("hide"); + } else { + page.querySelector("#fldEnableAutomaticRestart").classList.add("hide"); + } + if (systemInfo.CanSelfRestart || systemInfo.CanSelfUpdate) { + $(".autoUpdatesContainer", page).removeClass("hide"); + } else { + $(".autoUpdatesContainer", page).addClass("hide"); + } loading.hide(); } @@ -37,7 +53,9 @@ define(["jQuery", "loading", "fnchecked", "emby-checkbox", "emby-textarea", "emb ApiClient.getNamedConfiguration(brandingConfigKey).then(function(brandingConfig) { brandingConfig.LoginDisclaimer = form.querySelector("#txtLoginDisclaimer").value; brandingConfig.CustomCss = form.querySelector("#txtCustomCss").value; - currentBrandingOptions && brandingConfig.CustomCss !== currentBrandingOptions.CustomCss && (requiresReload = !0); + if (currentBrandingOptions && brandingConfig.CustomCss !== currentBrandingOptions.CustomCss) { + requiresReload = true; + } ApiClient.updateNamedConfiguration(brandingConfigKey, brandingConfig).then(function() { Dashboard.processServerConfigurationUpdateResult(); if (requiresReload && !AppInfo.isNativeApp) { @@ -59,7 +77,9 @@ define(["jQuery", "loading", "fnchecked", "emby-checkbox", "emby-textarea", "emb var picker = new directoryBrowser; picker.show({ callback: function(path) { - path && (view.querySelector("#txtCachePath").value = path); + if (path) { + view.querySelector("#txtCachePath").value = path; + } picker.close(); }, validateWriteable: true, @@ -71,11 +91,13 @@ define(["jQuery", "loading", "fnchecked", "emby-checkbox", "emby-textarea", "emb $("#btnSelectMetadataPath", view).on("click.selectDirectory", function() { require(["directorybrowser"], function(directoryBrowser) { - var picker = new directoryBrowser; + var picker = new directoryBrowser(); picker.show({ path: $("#txtMetadataPath", view).val(), callback: function(path) { - path && $("#txtMetadataPath", view).val(path); + if (path) { + $("#txtMetadataPath", view).val(path); + } picker.close(); }, validateWriteable: true, @@ -87,11 +109,13 @@ define(["jQuery", "loading", "fnchecked", "emby-checkbox", "emby-textarea", "emb $("#btnSelectMetadataNetworkPath", view).on("click.selectDirectory", function() { require(["directorybrowser"], function(directoryBrowser) { - var picker = new directoryBrowser; + var picker = new directoryBrowser(); picker.show({ path: $("#txtMetadataNetworkPath", view).val(), callback: function(path) { - path && $("#txtMetadataNetworkPath", view).val(path); + if (path) { + $("#txtMetadataNetworkPath", view).val(path); + } picker.close(); }, validateWriteable: true, @@ -103,10 +127,10 @@ define(["jQuery", "loading", "fnchecked", "emby-checkbox", "emby-textarea", "emb $(".dashboardGeneralForm", view).off("submit", onSubmit).on("submit", onSubmit); view.addEventListener("viewshow", function() { - var promise1 = ApiClient.getServerConfiguration(); - var promise2 = ApiClient.getJSON(ApiClient.getUrl("Localization/Options")); - var promise3 = ApiClient.getSystemInfo(); - Promise.all([promise1, promise2, promise3]).then(function(responses) { + var promiseConfig = ApiClient.getServerConfiguration(); + var promiseLanguageOptions = ApiClient.getJSON(ApiClient.getUrl("Localization/Options")); + var promiseSystemInfo = ApiClient.getSystemInfo(); + Promise.all([promiseConfig, promiseLanguageOptions, promiseSystemInfo]).then(function(responses) { loadPage(view, responses[0], responses[1], responses[2]); }); ApiClient.getNamedConfiguration(brandingConfigKey).then(function(config) { diff --git a/src/dashboard/librarysettings.js b/src/dashboard/librarysettings.js index e044a68cb6..5e700b6fb0 100644 --- a/src/dashboard/librarysettings.js +++ b/src/dashboard/librarysettings.js @@ -80,7 +80,11 @@ define(["jQuery", "loading", "libraryMenu", "fnchecked", "emby-checkbox", "emby- loadFanartConfig(page, metadata) }); ApiClient.getSystemInfo().then(function(info) { - "Windows" === info.OperatingSystem ? page.querySelector(".fldSaveMetadataHidden").classList.remove("hide") : page.querySelector(".fldSaveMetadataHidden").classList.add("hide") + if ("Windows" === info.OperatingSystem) { + page.querySelector(".fldSaveMetadataHidden").classList.remove("hide"); + } else { + page.querySelector(".fldSaveMetadataHidden").classList.add("hide"); + } }); }); } diff --git a/src/scripts/notificationsettings.js b/src/scripts/notificationsettings.js index 78948fd56b..317abce620 100644 --- a/src/scripts/notificationsettings.js +++ b/src/scripts/notificationsettings.js @@ -30,7 +30,11 @@ define(["loading", "libraryMenu", "globalize", "listViewStyle", "emby-linkbutton itemHtml += '
'; } itemHtml += ''; - i.Enabled ? itemHtml += 'notifications_active' : itemHtml += 'notifications_off'; + if (i.Enabled) { + itemHtml += 'notifications_active'; + } else { + itemHtml += 'notifications_off'; + } itemHtml += '
'; itemHtml += '
' + i.Name + "
"; itemHtml += "
"; @@ -53,4 +57,4 @@ define(["loading", "libraryMenu", "globalize", "listViewStyle", "emby-linkbutton reload(view); }); } -}); \ No newline at end of file +}); From 90290d30dba221d27757ca8d7ced8617c448561f Mon Sep 17 00:00:00 2001 From: dkanada Date: Sat, 9 Mar 2019 11:37:40 +0900 Subject: [PATCH 14/18] fix some other code clarity issues --- src/components/apphost.js | 1 + src/dashboard/dashboardgeneral.js | 9 +++------ src/dashboard/livetvtuner.js | 17 ++++++++++------- src/scripts/notificationsettings.js | 14 +++++++------- src/scripts/plugincatalogpage.js | 13 +++++++------ 5 files changed, 28 insertions(+), 26 deletions(-) diff --git a/src/components/apphost.js b/src/components/apphost.js index 619cd298b7..9cffd2d8a4 100644 --- a/src/components/apphost.js +++ b/src/components/apphost.js @@ -143,6 +143,7 @@ define(["appSettings", "browser", "events", "htmlMediaHelper"], function(appSett features.push("displaylanguage"); features.push("otherapppromotions"); features.push("targetblank"); + // allows users to connect to more than one server //features.push("multiserver"); browser.orsay || browser.tizen || browser.msie || !(browser.firefox || browser.ps4 || browser.edge || cueSupported()) || features.push("subtitleappearancesettings"); browser.orsay || browser.tizen || features.push("subtitleburnsettings"); diff --git a/src/dashboard/dashboardgeneral.js b/src/dashboard/dashboardgeneral.js index cf9d58f3dd..c2f48a2803 100644 --- a/src/dashboard/dashboardgeneral.js +++ b/src/dashboard/dashboardgeneral.js @@ -10,8 +10,8 @@ define(["jQuery", "loading", "fnchecked", "emby-checkbox", "emby-textarea", "emb page.querySelector("#txtCachePath").value = config.CachePath || ""; $("#txtMetadataPath", page).val(config.MetadataPath || ""); $("#txtMetadataNetworkPath", page).val(config.MetadataNetworkPath || ""); - $("#selectLocalizationLanguage", page).html(languageOptions.map(function(l) { - return '" + $("#selectLocalizationLanguage", page).html(languageOptions.map(function(language) { + return '" })).val(config.UICulture); currentLanguage = config.UICulture; if (systemInfo.CanSelfUpdate) { @@ -43,10 +43,7 @@ define(["jQuery", "loading", "fnchecked", "emby-checkbox", "emby-textarea", "emb config.CachePath = form.querySelector("#txtCachePath").value; config.MetadataPath = $("#txtMetadataPath", form).val(); config.MetadataNetworkPath = $("#txtMetadataNetworkPath", form).val(); - var requiresReload = false; - if (config.UICulture !== currentLanguage) { - requiresReload = true; - } + var requiresReload = (config.UICulture !== currentLanguage); config.EnableAutomaticRestart = $("#chkEnableAutomaticRestart", form).checked(); config.EnableAutoUpdate = $("#chkEnableAutomaticServerUpdates", form).checked(); ApiClient.updateServerConfiguration(config).then(function() { diff --git a/src/dashboard/livetvtuner.js b/src/dashboard/livetvtuner.js index 1cc806d05b..8d27093af1 100644 --- a/src/dashboard/livetvtuner.js +++ b/src/dashboard/livetvtuner.js @@ -8,12 +8,14 @@ define(["globalize", "loading", "libraryMenu", "dom", "emby-input", "emby-button function fillTypes(view, currentId) { ApiClient.getJSON(ApiClient.getUrl("LiveTv/TunerHosts/Types")).then(function(types) { var selectType = view.querySelector(".selectType"); - selectType.innerHTML = types.map(function(t) { - return '"; + var html = ""; + html += types.map(function(tuner) { + return '"; }).join(""); - selectType.innerHTML += '"; + html += '"; + selectType.innerHTML = html; selectType.disabled = null != currentId; selectType.value = ""; @@ -39,9 +41,10 @@ define(["globalize", "loading", "libraryMenu", "dom", "emby-input", "emby-button var selectType = view.querySelector(".selectType"); var type = info.Type || ""; if (info.Source && isM3uVariant(info.Source)) { - selectType.value = info.Source; - onTypeChange.call(selectType); + type = info.Source; } + selectType.value = type; + onTypeChange.call(selectType); view.querySelector(".txtDevicePath").value = info.Url || ""; view.querySelector(".txtFriendlyName").value = info.FriendlyName || ""; view.querySelector(".txtUserAgent").value = info.UserAgent || ""; diff --git a/src/scripts/notificationsettings.js b/src/scripts/notificationsettings.js index 317abce620..b167ca00e4 100644 --- a/src/scripts/notificationsettings.js +++ b/src/scripts/notificationsettings.js @@ -7,10 +7,10 @@ define(["loading", "libraryMenu", "globalize", "listViewStyle", "emby-linkbutton var html = ""; var lastCategory = ""; var showHelp = true; - html += list.map(function(i) { + html += list.map(function(notification) { var itemHtml = ""; - if (i.Category !== lastCategory) { - lastCategory = i.Category; + if (notification.Category !== lastCategory) { + lastCategory = notification.Category; if (lastCategory) { itemHtml += "
"; itemHtml += "
"; @@ -18,7 +18,7 @@ define(["loading", "libraryMenu", "globalize", "listViewStyle", "emby-linkbutton itemHtml += '
'; itemHtml += '
'; itemHtml += '

'; - itemHtml += i.Category; + itemHtml += notification.Category; itemHtml += "

"; if (showHelp) { showHelp = false; @@ -29,14 +29,14 @@ define(["loading", "libraryMenu", "globalize", "listViewStyle", "emby-linkbutton itemHtml += "
"; itemHtml += '
'; } - itemHtml += ''; - if (i.Enabled) { + itemHtml += ''; + if (notification.Enabled) { itemHtml += 'notifications_active'; } else { itemHtml += 'notifications_off'; } itemHtml += '
'; - itemHtml += '
' + i.Name + "
"; + itemHtml += '
' + notification.Name + "
"; itemHtml += "
"; itemHtml += ''; itemHtml += "
"; diff --git a/src/scripts/plugincatalogpage.js b/src/scripts/plugincatalogpage.js index f18c56f2f0..b399ba098a 100644 --- a/src/scripts/plugincatalogpage.js +++ b/src/scripts/plugincatalogpage.js @@ -59,15 +59,19 @@ define(["loading", "libraryMenu", "globalize", "cardStyle", "emby-linkbutton", " return 0; }); - var i__q; var length; var plugin; var currentCategory; var html = ""; var hasOpenTag = false; - for (currentCategory = null, false === options.showCategory && (html += '
', hasOpenTag = true), i__q = 0, length = availablePlugins.length; i__q < length; i__q++) { - plugin = availablePlugins[i__q]; + currentCategory = null; + if (options.showCategory === false) { + html += '
'; + hasOpenTag = true; + } + for (var i = 0; i < availablePlugins.length; i++) { + plugin = availablePlugins[i]; var category = plugin.categoryDisplayName; if (category != currentCategory) { @@ -77,16 +81,13 @@ define(["loading", "libraryMenu", "globalize", "cardStyle", "emby-linkbutton", " html += "
"; html += "
"; } - html += '
'; html += '

' + category + "

"; html += '
'; hasOpenTag = true; } - currentCategory = category; } - html += getPluginHtml(plugin, options, installedPlugins); } From c7a80764382eef572b3ddb4c1eda22602b0a3efc Mon Sep 17 00:00:00 2001 From: dkanada Date: Sat, 9 Mar 2019 11:45:48 +0900 Subject: [PATCH 15/18] mirror the metadata manager in the user preference menu --- src/mypreferencesmenu.html | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/mypreferencesmenu.html b/src/mypreferencesmenu.html index 13bf648440..7269fe3521 100644 --- a/src/mypreferencesmenu.html +++ b/src/mypreferencesmenu.html @@ -82,6 +82,16 @@
+
From 326d9f9adfb2c7c47ad563ca001276ba96ae551a Mon Sep 17 00:00:00 2001 From: dkanada Date: Sat, 9 Mar 2019 11:48:31 +0900 Subject: [PATCH 16/18] fix title capitalization --- src/strings/en-us.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/strings/en-us.json b/src/strings/en-us.json index c8a73f205a..5ac13f0aad 100644 --- a/src/strings/en-us.json +++ b/src/strings/en-us.json @@ -563,7 +563,7 @@ "HeaderGuideProviders": "TV Guide Data Providers", "HeaderHomePage": "Home Page", "HeaderHomeScreen": "Home Screen", - "HeaderHomeScreenSettings": "Home Screen settings", + "HeaderHomeScreenSettings": "Home Screen Settings", "HeaderHttpHeaders": "Http Headers", "HeaderIdentification": "Identification", "HeaderIdentificationCriteriaHelp": "Enter at least one identification criteria.", From cd13be84fc3d755db25947033a5a91a9d5fad345 Mon Sep 17 00:00:00 2001 From: dkanada Date: Sun, 10 Mar 2019 07:06:28 +0900 Subject: [PATCH 17/18] revert network share path changes --- .../directorybrowser/directorybrowser.js | 16 ++++++++++- src/dashboard/dashboardgeneral.js | 27 +++++-------------- src/dashboardgeneral.html | 11 +------- 3 files changed, 23 insertions(+), 31 deletions(-) diff --git a/src/components/directorybrowser/directorybrowser.js b/src/components/directorybrowser/directorybrowser.js index 592885721b..c6d811e959 100644 --- a/src/components/directorybrowser/directorybrowser.js +++ b/src/components/directorybrowser/directorybrowser.js @@ -131,6 +131,14 @@ define(['loading', 'dialogHelper', 'dom', 'listViewStyle', 'emby-input', 'emby-b if (!readOnlyAttribute) { html += '
'; } + if (options.enableNetworkSharePath) { + html += '
'; + html += ''; + html += '
'; + html += Globalize.translate("LabelOptionalNetworkPathHelp"); + html += "
"; + html += "
"; + } html += '
'; html += '"; html += "
"; @@ -211,8 +219,10 @@ define(['loading', 'dialogHelper', 'dom', 'listViewStyle', 'emby-input', 'emby-b content.querySelector("form").addEventListener("submit", function(e) { if (options.callback) { + var networkSharePath = this.querySelector("#txtNetworkPath"); + networkSharePath = networkSharePath ? networkSharePath.value : null; var path = this.querySelector("#txtDirectoryPickerPath").value; - validatePath(path, options.validateWriteable, ApiClient).then(options.callback(path)); + validatePath(path, options.validateWriteable, ApiClient).then(options.callback(path, networkSharePath)); } e.preventDefault(); e.stopPropagation(); @@ -279,6 +289,10 @@ define(['loading', 'dialogHelper', 'dom', 'listViewStyle', 'emby-input', 'emby-b }); currentDialog = dlg; dlg.querySelector("#txtDirectoryPickerPath").value = initialPath; + var txtNetworkPath = dlg.querySelector("#txtNetworkPath"); + if (txtNetworkPath) { + txtNetworkPath.value = options.networkSharePath || ""; + } if (!options.pathReadOnly) { refreshDirectoryBrowser(dlg, initialPath, fileOptions, true); } diff --git a/src/dashboard/dashboardgeneral.js b/src/dashboard/dashboardgeneral.js index c2f48a2803..c0ff217ffe 100644 --- a/src/dashboard/dashboardgeneral.js +++ b/src/dashboard/dashboardgeneral.js @@ -91,33 +91,20 @@ define(["jQuery", "loading", "fnchecked", "emby-checkbox", "emby-textarea", "emb var picker = new directoryBrowser(); picker.show({ path: $("#txtMetadataPath", view).val(), - callback: function(path) { + networkSharePath: $("#txtMetadataNetworkPath", view).val(), + callback: function(path, networkPath) { if (path) { $("#txtMetadataPath", view).val(path); } + if (networkPath) { + $("#txtMetadataNetworkPath", view).val(networkPath)); + } picker.close(); }, validateWriteable: true, header: Globalize.translate("HeaderSelectMetadataPath"), - instruction: Globalize.translate("HeaderSelectMetadataPathHelp") - }) - }) - }); - - $("#btnSelectMetadataNetworkPath", view).on("click.selectDirectory", function() { - require(["directorybrowser"], function(directoryBrowser) { - var picker = new directoryBrowser(); - picker.show({ - path: $("#txtMetadataNetworkPath", view).val(), - callback: function(path) { - if (path) { - $("#txtMetadataNetworkPath", view).val(path); - } - picker.close(); - }, - validateWriteable: true, - header: Globalize.translate("LabelOptionalNetworkPath"), - instruction: Globalize.translate("LabelOptionalNetworkPathHelp") + instruction: Globalize.translate("HeaderSelectMetadataPathHelp"), + enableNetworkSharePath: true }) }) }); diff --git a/src/dashboardgeneral.html b/src/dashboardgeneral.html index 4c56fa300b..f95246708f 100644 --- a/src/dashboardgeneral.html +++ b/src/dashboardgeneral.html @@ -53,16 +53,7 @@
${LabelMetadataPathHelp}
-
- -
-
-
- -
- -
-
${LabelOptionalNetworkPathHelp}
+
From 487ba61a42ab6ac98204a671daec4d8ebb56fe63 Mon Sep 17 00:00:00 2001 From: dkanada Date: Mon, 11 Mar 2019 15:58:44 -0700 Subject: [PATCH 18/18] remove open subtitles page from dashboard --- src/opensubtitles.html | 27 --------------------------- src/scripts/librarymenu.js | 5 ----- src/scripts/opensubtitles.js | 36 ------------------------------------ src/scripts/site.js | 5 ----- 4 files changed, 73 deletions(-) delete mode 100644 src/opensubtitles.html delete mode 100644 src/scripts/opensubtitles.js diff --git a/src/opensubtitles.html b/src/opensubtitles.html deleted file mode 100644 index 51e337ae63..0000000000 --- a/src/opensubtitles.html +++ /dev/null @@ -1,27 +0,0 @@ -
-
-
- -
- -
- -
-
-
- - -
-
- -
-
- -
-
${SubtitleDownloadInstructions}
- -
-
-
diff --git a/src/scripts/librarymenu.js b/src/scripts/librarymenu.js index a637a779c4..fb4d100971 100644 --- a/src/scripts/librarymenu.js +++ b/src/scripts/librarymenu.js @@ -300,11 +300,6 @@ define(["dom", "layoutManager", "inputManager", "connectionManager", "events", " icon: "swap_horiz", href: "encodingsettings.html", pageIds: ["encodingSettingsPage"] - }, { - name: "Open Subtitles", - href: "opensubtitles.html", - pageIds: ["openSubtitlesPage"], - icon: "closed_caption" }]; addPluginPagesToMainMenu(links, pluginItems, "server"); links.push({ diff --git a/src/scripts/opensubtitles.js b/src/scripts/opensubtitles.js deleted file mode 100644 index 99ec982dc1..0000000000 --- a/src/scripts/opensubtitles.js +++ /dev/null @@ -1,36 +0,0 @@ -define(["loading", "fnchecked", "emby-linkbutton", "emby-input", "emby-checkbox", "emby-button"], function (loading) { - "use strict"; - - function loadPage(page, config) { - page.querySelector("#txtOpenSubtitleUsername").value = config.OpenSubtitlesUsername; - page.querySelector("#txtOpenSubtitlePassword").value = config.OpenSubtitlesPasswordHash || ""; - loading.hide(); - } - - function onSubmit(evt) { - evt.preventDefault(); - loading.show(); - var form = this; - ApiClient.getNamedConfiguration("subtitles").then(function (config) { - config.OpenSubtitlesUsername = form.querySelector("#txtOpenSubtitleUsername").value; - var newPassword = form.querySelector("#txtOpenSubtitlePassword").value; - - if (newPassword) { - config.OpenSubtitlesPasswordHash = newPassword; - } - - ApiClient.updateNamedConfiguration("subtitles", config).then(Dashboard.processServerConfigurationUpdateResult); - }); - return false; - } - - $(document).on("pageinit", "#openSubtitlesPage", function() { - $(".metadataSubtitlesForm").off("submit", onSubmit).on("submit", onSubmit) - }).on("pageshow", "#openSubtitlesPage", function() { - loading.show(); - var page = this; - ApiClient.getNamedConfiguration("subtitles").then(function (response) { - loadPage(page, response); - }); - }); -}); diff --git a/src/scripts/site.js b/src/scripts/site.js index c012caba9e..78122b3c36 100644 --- a/src/scripts/site.js +++ b/src/scripts/site.js @@ -498,11 +498,6 @@ var Dashboard = { dependencies: [], autoFocus: !1, roles: "admin" - }), defineRoute({ - path: "/opensubtitles.html", - dependencies: [], - autoFocus: !1, - roles: "admin" }), defineRoute({ path: "/forgotpassword.html", dependencies: ["emby-input", "emby-button"],