From bf9c8778b0d52fb636e859d138fee8a291fa5689 Mon Sep 17 00:00:00 2001 From: dkanada Date: Wed, 2 Sep 2020 20:50:32 +0900 Subject: [PATCH] allow plugin config changes on standalone --- src/components/appRouter.js | 4 +++- src/components/viewContainer.js | 8 ++++---- .../dashboard/plugins/installed/index.js | 2 +- src/plugins/comicsPlayer/plugin.js | 3 +-- src/scripts/clientUtils.js | 18 +++--------------- src/scripts/libraryMenu.js | 4 ++-- 6 files changed, 14 insertions(+), 25 deletions(-) diff --git a/src/components/appRouter.js b/src/components/appRouter.js index 75199fc63..a6bb6da61 100644 --- a/src/components/appRouter.js +++ b/src/components/appRouter.js @@ -308,7 +308,9 @@ class AppRouter { url = route.contentPath || route.path; } - if (url.indexOf('://') === -1) { + if (url.includes('configurationpage')) { + url = ApiClient.getUrl('/web' + url); + } else if (url.indexOf('://') === -1) { // Put a slash at the beginning but make sure to avoid a double slash if (url.indexOf('/') !== 0) { url = '/' + url; diff --git a/src/components/viewContainer.js b/src/components/viewContainer.js index 9d64130cd..c39ad2ba8 100644 --- a/src/components/viewContainer.js +++ b/src/components/viewContainer.js @@ -13,8 +13,9 @@ import 'css!components/viewManager/viewContainer'; controllerUrl = controllerUrl.substring('__plugin/'.length); } - controllerUrl = Dashboard.getConfigurationResourceUrl(controllerUrl); - return import(controllerUrl).then((ControllerFactory) => { + controllerUrl = Dashboard.getPluginUrl(controllerUrl); + let apiUrl = ApiClient.getUrl('/web/' + controllerUrl); + return import(apiUrl).then((ControllerFactory) => { options.controllerFactory = ControllerFactory; }); } @@ -32,7 +33,7 @@ import 'css!components/viewManager/viewContainer'; pageIndex = 0; } - const isPluginpage = options.url.toLowerCase().indexOf('/configurationpage') !== -1; + const isPluginpage = options.url.includes('configurationpage'); const newViewInfo = normalizeNewView(options, isPluginpage); const newView = newViewInfo.elem; @@ -243,4 +244,3 @@ export default { reset: reset, setOnBeforeChange: setOnBeforeChange }; - diff --git a/src/controllers/dashboard/plugins/installed/index.js b/src/controllers/dashboard/plugins/installed/index.js index 4eb5477a2..cdf21d6a3 100644 --- a/src/controllers/dashboard/plugins/installed/index.js +++ b/src/controllers/dashboard/plugins/installed/index.js @@ -39,7 +39,7 @@ function getPluginCardHtml(plugin, pluginConfigurationPages) { const configPage = pluginConfigurationPages.filter(function (pluginConfigurationPage) { return pluginConfigurationPage.PluginId == plugin.Id; })[0]; - const configPageUrl = configPage ? Dashboard.getConfigurationPageUrl(configPage.Name) : null; + const configPageUrl = configPage ? Dashboard.getPluginUrl(configPage.Name) : null; let html = ''; html += "
"; html += '
'; diff --git a/src/plugins/comicsPlayer/plugin.js b/src/plugins/comicsPlayer/plugin.js index 5f9546b9f..7d0ac92df 100644 --- a/src/plugins/comicsPlayer/plugin.js +++ b/src/plugins/comicsPlayer/plugin.js @@ -1,4 +1,3 @@ -import connectionManager from 'connectionManager'; import loading from 'loading'; import dialogHelper from 'dialogHelper'; import keyboardnavigation from 'keyboardnavigation'; @@ -94,7 +93,7 @@ export class ComicsPlayer { loading.show(); let serverId = item.ServerId; - let apiClient = connectionManager.getApiClient(serverId); + let apiClient = window.connectionManager.getApiClient(serverId); libarchive.Archive.init({ workerUrl: appRouter.baseUrl() + '/libraries/worker-bundle.js' diff --git a/src/scripts/clientUtils.js b/src/scripts/clientUtils.js index 28421c59b..4d3c049e8 100644 --- a/src/scripts/clientUtils.js +++ b/src/scripts/clientUtils.js @@ -62,20 +62,10 @@ export function logout() { }); } -export function getConfigurationPageUrl(name) { +export function getPluginUrl(name) { return 'configurationpage?name=' + encodeURIComponent(name); } -export function getConfigurationResourceUrl(name) { - if (AppInfo.isNativeApp) { - return ApiClient.getUrl('web/ConfigurationPage', { - name: name - }); - } - - return getConfigurationPageUrl(name); -} - export function navigate(url, preserveQueryString) { if (!url) { throw new Error('url cannot be null or empty'); @@ -196,8 +186,7 @@ window.Dashboard = { alert, capabilities, confirm, - getConfigurationPageUrl, - getConfigurationResourceUrl, + getPluginUrl, getCurrentUser, getCurrentUserId, hideLoadingMsg, @@ -216,8 +205,7 @@ export default { alert, capabilities, confirm, - getConfigurationPageUrl, - getConfigurationResourceUrl, + getPluginUrl, getCurrentUser, getCurrentUserId, hideLoadingMsg, diff --git a/src/scripts/libraryMenu.js b/src/scripts/libraryMenu.js index c0e277a75..04edecf19 100644 --- a/src/scripts/libraryMenu.js +++ b/src/scripts/libraryMenu.js @@ -484,8 +484,8 @@ import 'flexStyles'; links.push({ name: pluginItem.DisplayName, icon: pluginItem.MenuIcon || 'folder', - href: Dashboard.getConfigurationPageUrl(pluginItem.Name), - pageUrls: [Dashboard.getConfigurationPageUrl(pluginItem.Name)] + href: Dashboard.getPluginUrl(pluginItem.Name), + pageUrls: [Dashboard.getPluginUrl(pluginItem.Name)] }); } }