diff --git a/dashboard/src2/objects/bench.ts b/dashboard/src2/objects/bench.ts index d0f1c76279..8666cc7f03 100644 --- a/dashboard/src2/objects/bench.ts +++ b/dashboard/src2/objects/bench.ts @@ -1,5 +1,6 @@ import Tooltip from 'frappe-ui/src/components/Tooltip/Tooltip.vue'; import LucideAppWindow from '~icons/lucide/app-window'; +import LucideTerminal from '~icons/lucide/terminal'; import type { VNode } from 'vue'; import { defineAsyncComponent, h } from 'vue'; import { getTeam, switchToTeam } from '../data/team'; @@ -84,7 +85,8 @@ function getTabs() { getJobsTab('Bench'), getProcessesTab(), getLogsTab(false), - getPatchesTab(true) + getPatchesTab(true), + getShellTab() ] satisfies Tab[] as Tab[]; } @@ -307,6 +309,17 @@ export function getProcessesTab() { } satisfies Tab as Tab; } +function getShellTab() { + return { + label: 'Shell', + icon: icon(LucideTerminal), + route: 'shell', + type: 'Component', + component: defineAsyncComponent(() => import('../pages/BenchShell.vue')), + props: bench => ({ bench: bench.name }) + } satisfies Tab as Tab; +} + export function getProcessesColumns() { const processStatusColorMap = { Starting: 'blue', diff --git a/dashboard/src2/pages/BenchShell.vue b/dashboard/src2/pages/BenchShell.vue new file mode 100644 index 0000000000..b5228c804a --- /dev/null +++ b/dashboard/src2/pages/BenchShell.vue @@ -0,0 +1,24 @@ + +