diff --git a/dashboard/src/layouts/full/vertical-sidebar/sidebarItem.ts b/dashboard/src/layouts/full/vertical-sidebar/sidebarItem.ts index 42f763402..e173583d1 100644 --- a/dashboard/src/layouts/full/vertical-sidebar/sidebarItem.ts +++ b/dashboard/src/layouts/full/vertical-sidebar/sidebarItem.ts @@ -43,6 +43,11 @@ const sidebarItem: menu[] = [ icon: 'mdi-puzzle', to: '/extension' }, + { + title: 'core.navigation.commands', + icon: 'mdi-console-line', + to: '/commands' + }, { title: 'core.navigation.knowledgeBase', icon: 'mdi-book-open-variant', diff --git a/dashboard/src/router/MainRoutes.ts b/dashboard/src/router/MainRoutes.ts index 276d37444..e21b383c6 100644 --- a/dashboard/src/router/MainRoutes.ts +++ b/dashboard/src/router/MainRoutes.ts @@ -16,6 +16,11 @@ const MainRoutes = { path: '/extension', component: () => import('@/views/ExtensionPage.vue') }, + { + name: 'Commands', + path: '/commands', + component: () => import('@/views/CommandPage.vue') + }, { name: 'ExtensionMarketplace', path: '/extension-marketplace', diff --git a/dashboard/src/views/CommandPage.vue b/dashboard/src/views/CommandPage.vue new file mode 100644 index 000000000..6b4b92f86 --- /dev/null +++ b/dashboard/src/views/CommandPage.vue @@ -0,0 +1,539 @@ + + + + + + + + + + + + + {{ summary.total }} + {{ tm('summary.total') }} + + + + + + + {{ summary.disabled }} + {{ tm('summary.disabled') }} + + + + + + + {{ summary.conflicts }} + {{ tm('summary.conflicts') }} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {{ t('core.status.loading') }} + + + + + + + + {{ item.effective_command }} + + + + + + + {{ item.plugin_display_name || item.plugin }} + + + + + {{ item.description || '-' }} + + + + + + {{ getPermissionLabel(item.permission) }} + + + + + + {{ getStatusInfo(item).text }} + + + + + + + + mdi-play + {{ tm('tooltips.enable') }} + + + mdi-pause + {{ tm('tooltips.disable') }} + + + + mdi-pencil + {{ tm('tooltips.rename') }} + + + + mdi-information + {{ tm('tooltips.viewDetails') }} + + + + + + + + mdi-console-line + {{ tm('empty.noCommands') }} + {{ tm('empty.noCommandsDesc') }} + + + + + + + + + + + + + {{ tm('dialogs.rename.title') }} + + + + + + + + {{ tm('dialogs.rename.cancel') }} + + + {{ tm('dialogs.rename.confirm') }} + + + + + + + + + {{ tm('dialogs.details.title') }} + + + + {{ tm('dialogs.details.handler') }} + {{ detailsDialog.command.handler_name }} + + + {{ tm('dialogs.details.module') }} + {{ detailsDialog.command.module_path }} + + + {{ tm('dialogs.details.originalCommand') }} + {{ detailsDialog.command.original_command }} + + + {{ tm('dialogs.details.effectiveCommand') }} + {{ detailsDialog.command.effective_command }} + + + {{ tm('dialogs.details.aliases') }} + + + {{ alias }} + + + + + {{ tm('dialogs.details.permission') }} + + + {{ getPermissionLabel(detailsDialog.command.permission) }} + + + + + {{ tm('dialogs.details.conflictStatus') }} + + {{ tm('status.conflict') }} + + + + + + + + {{ t('core.actions.close') }} + + + + + + + + {{ snackbar.message }} + + + +
{{ item.effective_command }}
{{ detailsDialog.command.handler_name }}
{{ detailsDialog.command.module_path }}
{{ detailsDialog.command.original_command }}
{{ detailsDialog.command.effective_command }}