diff --git a/dashboard/src/views/ExtensionPage.vue b/dashboard/src/views/ExtensionPage.vue index e379be890f..129b2f011f 100644 --- a/dashboard/src/views/ExtensionPage.vue +++ b/dashboard/src/views/ExtensionPage.vue @@ -290,7 +290,12 @@ const { - + {{ loadingDialog.title }} @@ -301,19 +306,24 @@ const { class="mb-4" > -
- -
{{ loadingDialog.result }}
-
+ +
+ +
{{ loadingDialog.result }}
+
+

{{ tm("dialogs.loading.logs") }}

diff --git a/dashboard/src/views/extension/useExtensionPage.js b/dashboard/src/views/extension/useExtensionPage.js index 3ceecc85bc..cf3d14f2b7 100644 --- a/dashboard/src/views/extension/useExtensionPage.js +++ b/dashboard/src/views/extension/useExtensionPage.js @@ -1045,22 +1045,31 @@ export const useExtensionPage = () => { }; const updateConfig = async () => { + loadingDialog.title = tm("status.loading"); + loadingDialog.statusCode = 0; + loadingDialog.result = ""; + loadingDialog.show = true; try { const res = await axios.post( "/api/config/plugin/update?plugin_name=" + curr_namespace.value, extension_config.config, ); - if (res.data.status === "ok") { - toast(res.data.message, "success"); - } else { + if (res.data.status !== "ok") { toast(res.data.message, "error"); + onLoadingDialogResult(2, res.data.message, -1); + return; } + + toast(res.data.message, "success"); + onLoadingDialogResult(1, res.data.message); configDialog.value = false; extension_config.metadata = {}; extension_config.config = {}; getExtensions(); } catch (err) { - toast(err, "error"); + const errMsg = resolveErrorMessage(err, tm("messages.operationFailed")); + toast(errMsg, "error"); + onLoadingDialogResult(2, errMsg, -1); } };