diff --git a/locales/ja-JP.yml b/locales/ja-JP.yml index d816d76f34..2233fa27f1 100644 --- a/locales/ja-JP.yml +++ b/locales/ja-JP.yml @@ -548,7 +548,6 @@ author: "作者" leaveConfirm: "未保存の変更があります。破棄しますか?" manage: "管理" plugins: "プラグイン" -pluginInstallWarn: "信頼できないプラグインはインストールしないでください。" deck: "デッキ" undeck: "デッキ解除" useBlurEffectForModal: "モーダルにぼかし効果を使用" @@ -702,6 +701,11 @@ inUse: "使用中" editCode: "コードを編集" apply: "適用" +_plugin: + install: "プラグインのインストール" + installWarn: "信頼できないプラグインはインストールしないでください。" + manage: "プラグインの管理" + _registry: scope: "スコープ" key: "キー" diff --git a/src/client/pages/settings/index.vue b/src/client/pages/settings/index.vue index 78aee4bfc1..df53eb5133 100644 --- a/src/client/pages/settings/index.vue +++ b/src/client/pages/settings/index.vue @@ -18,7 +18,7 @@ {{ $ts.theme }} {{ $ts.sidebar }} {{ $ts.sounds }} - {{ $ts.plugins }} + {{ $ts.plugins }} {{ $ts.otherSettings }} @@ -105,7 +105,9 @@ export default defineComponent({ case 'sidebar': return defineAsyncComponent(() => import('./sidebar.vue')); case 'sounds': return defineAsyncComponent(() => import('./sounds.vue')); case 'deck': return defineAsyncComponent(() => import('./deck.vue')); - case 'plugins': return defineAsyncComponent(() => import('./plugins.vue')); + case 'plugin': return defineAsyncComponent(() => import('./plugin.vue')); + case 'plugin/install': return defineAsyncComponent(() => import('./plugin.install.vue')); + case 'plugin/manage': return defineAsyncComponent(() => import('./plugin.manage.vue')); case 'import-export': return defineAsyncComponent(() => import('./import-export.vue')); case 'account-info': return defineAsyncComponent(() => import('./account-info.vue')); case 'update': return defineAsyncComponent(() => import('./update.vue')); diff --git a/src/client/pages/settings/plugin.install.vue b/src/client/pages/settings/plugin.install.vue new file mode 100644 index 0000000000..34c62619ad --- /dev/null +++ b/src/client/pages/settings/plugin.install.vue @@ -0,0 +1,146 @@ + + + {{ $ts.pluginInstallWarn }} + + + + {{ $ts.code }} + + + + {{ $ts.install }} + + + + diff --git a/src/client/pages/settings/plugin.manage.vue b/src/client/pages/settings/plugin.manage.vue new file mode 100644 index 0000000000..b6946e30d0 --- /dev/null +++ b/src/client/pages/settings/plugin.manage.vue @@ -0,0 +1,117 @@ + + + + {{ plugin.name }} + + {{ $ts.makeActive }} + + + + {{ $ts.version }}: + {{ plugin.version }} + + + {{ $ts.author }}: + {{ plugin.author }} + + + {{ $ts.description }}: + {{ plugin.description }} + + + + + + {{ $ts.settings }} + {{ $ts.uninstall }} + + + + + + + + + diff --git a/src/client/pages/settings/plugin.vue b/src/client/pages/settings/plugin.vue new file mode 100644 index 0000000000..5bc615b164 --- /dev/null +++ b/src/client/pages/settings/plugin.vue @@ -0,0 +1,42 @@ + + + {{ $ts._plugin.install }} + {{ $ts._plugin.manage }} + + + + + + diff --git a/src/client/pages/settings/plugins.vue b/src/client/pages/settings/plugins.vue deleted file mode 100644 index 7f3734e347..0000000000 --- a/src/client/pages/settings/plugins.vue +++ /dev/null @@ -1,211 +0,0 @@ - - - {{ $ts.plugins }} - - - {{ $ts.install }} - {{ $ts.pluginInstallWarn }} - - {{ $ts.script }} - - {{ $ts.install }} - - - - - {{ $ts.manage }} - - {{ x.name }} - - - - {{ $ts.makeActive }} - - - {{ $ts.version }}: - {{ selectedPlugin.version }} - - - {{ $ts.author }}: - {{ selectedPlugin.author }} - - - {{ $ts.description }}: - {{ selectedPlugin.description }} - - - {{ $ts.settings }} - {{ $ts.uninstall }} - - - - - - - - - - diff --git a/src/client/plugin.ts b/src/client/plugin.ts index 9d1ef87c1a..c56ee1eb25 100644 --- a/src/client/plugin.ts +++ b/src/client/plugin.ts @@ -39,7 +39,7 @@ export function install(plugin) { function createPluginEnv(opts) { const config = new Map(); for (const [k, v] of Object.entries(opts.plugin.config || {})) { - config.set(k, jsToVal(opts.plugin.configData[k] || v.default)); + config.set(k, jsToVal(opts.plugin.configData.hasOwnProperty(k) ? opts.plugin.configData[k] : v.default)); } return {