botmux 2.104.0 → 2.105.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.en.md +10 -10
- package/README.md +10 -10
- package/dist/adapters/backend/sandbox.d.ts +5 -1
- package/dist/adapters/backend/sandbox.d.ts.map +1 -1
- package/dist/adapters/backend/sandbox.js +54 -5
- package/dist/adapters/backend/sandbox.js.map +1 -1
- package/dist/adapters/backend/tmux-pipe-backend.d.ts +1 -1
- package/dist/adapters/backend/tmux-pipe-backend.js +1 -1
- package/dist/adapters/backend/zellij-observe-backend.d.ts +1 -1
- package/dist/adapters/backend/zellij-observe-backend.js +1 -1
- package/dist/adapters/cli/claude-code.d.ts +1 -1
- package/dist/adapters/cli/read-isolation.d.ts +2 -1
- package/dist/adapters/cli/read-isolation.d.ts.map +1 -1
- package/dist/adapters/cli/read-isolation.js +51 -4
- package/dist/adapters/cli/read-isolation.js.map +1 -1
- package/dist/adapters/cli/relay.d.ts +2 -2
- package/dist/adapters/cli/relay.js +2 -2
- package/dist/adapters/cli/seed.d.ts +2 -2
- package/dist/adapters/cli/seed.js +2 -2
- package/dist/adapters/cli/shared-hints.d.ts.map +1 -1
- package/dist/adapters/cli/shared-hints.js +1 -0
- package/dist/adapters/cli/shared-hints.js.map +1 -1
- package/dist/bot-registry.d.ts +65 -1
- package/dist/bot-registry.d.ts.map +1 -1
- package/dist/bot-registry.js +145 -0
- package/dist/bot-registry.js.map +1 -1
- package/dist/cli/send-dispatch.d.ts +44 -0
- package/dist/cli/send-dispatch.d.ts.map +1 -1
- package/dist/cli/send-dispatch.js +79 -0
- package/dist/cli/send-dispatch.js.map +1 -1
- package/dist/cli/vc-agent.d.ts +2 -0
- package/dist/cli/vc-agent.d.ts.map +1 -0
- package/dist/cli/vc-agent.js +331 -0
- package/dist/cli/vc-agent.js.map +1 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +125 -24
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +8 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +13 -1
- package/dist/config.js.map +1 -1
- package/dist/core/auto-start.d.ts +2 -2
- package/dist/core/auto-start.js +2 -2
- package/dist/core/command-handler.d.ts.map +1 -1
- package/dist/core/command-handler.js +2 -1
- package/dist/core/command-handler.js.map +1 -1
- package/dist/core/dashboard-events.d.ts +5 -0
- package/dist/core/dashboard-events.d.ts.map +1 -1
- package/dist/core/dashboard-events.js.map +1 -1
- package/dist/core/dashboard-ipc-server.d.ts.map +1 -1
- package/dist/core/dashboard-ipc-server.js +47 -2
- package/dist/core/dashboard-ipc-server.js.map +1 -1
- package/dist/core/idle-worker-sweeper.d.ts +1 -1
- package/dist/core/idle-worker-sweeper.js +1 -1
- package/dist/core/passthrough-commands.d.ts.map +1 -1
- package/dist/core/passthrough-commands.js +1 -0
- package/dist/core/passthrough-commands.js.map +1 -1
- package/dist/core/scheduler.d.ts +12 -0
- package/dist/core/scheduler.d.ts.map +1 -1
- package/dist/core/scheduler.js +67 -7
- package/dist/core/scheduler.js.map +1 -1
- package/dist/core/session-discovery.js +1 -1
- package/dist/core/session-discovery.js.map +1 -1
- package/dist/core/session-manager.d.ts +1 -1
- package/dist/core/session-manager.d.ts.map +1 -1
- package/dist/core/session-manager.js +55 -10
- package/dist/core/session-manager.js.map +1 -1
- package/dist/core/trigger-session.d.ts.map +1 -1
- package/dist/core/trigger-session.js +78 -23
- package/dist/core/trigger-session.js.map +1 -1
- package/dist/core/types.d.ts +3 -3
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/worker-pool.d.ts +8 -1
- package/dist/core/worker-pool.d.ts.map +1 -1
- package/dist/core/worker-pool.js +31 -9
- package/dist/core/worker-pool.js.map +1 -1
- package/dist/core/zellij-adopt-discovery.js +1 -1
- package/dist/core/zellij-adopt-discovery.js.map +1 -1
- package/dist/daemon.d.ts +121 -0
- package/dist/daemon.d.ts.map +1 -1
- package/dist/daemon.js +2644 -2
- package/dist/daemon.js.map +1 -1
- package/dist/dashboard/federated-group-core.js +1 -1
- package/dist/dashboard/federated-group-core.js.map +1 -1
- package/dist/dashboard/federation-api.js +1 -1
- package/dist/dashboard/schedule-card-model.d.ts +4 -3
- package/dist/dashboard/schedule-card-model.d.ts.map +1 -1
- package/dist/dashboard/schedule-card-model.js +5 -4
- package/dist/dashboard/schedule-card-model.js.map +1 -1
- package/dist/dashboard/settings-write-applier.d.ts +37 -3
- package/dist/dashboard/settings-write-applier.d.ts.map +1 -1
- package/dist/dashboard/settings-write-applier.js +63 -0
- package/dist/dashboard/settings-write-applier.js.map +1 -1
- package/dist/dashboard/web/i18n.d.ts.map +1 -1
- package/dist/dashboard/web/i18n.js +28 -0
- package/dist/dashboard/web/i18n.js.map +1 -1
- package/dist/dashboard/web/insights.js +19 -19
- package/dist/dashboard/web/insights.js.map +1 -1
- package/dist/dashboard/web/overview-page.d.ts.map +1 -1
- package/dist/dashboard/web/overview-page.js +7 -4
- package/dist/dashboard/web/overview-page.js.map +1 -1
- package/dist/dashboard/web/schedules-page.d.ts +1 -1
- package/dist/dashboard/web/schedules-page.d.ts.map +1 -1
- package/dist/dashboard/web/schedules-page.js +7 -3
- package/dist/dashboard/web/schedules-page.js.map +1 -1
- package/dist/dashboard/web/sessions.js +2 -2
- package/dist/dashboard/web/settings-page.d.ts +9 -0
- package/dist/dashboard/web/settings-page.d.ts.map +1 -1
- package/dist/dashboard/web/settings-page.js +132 -43
- package/dist/dashboard/web/settings-page.js.map +1 -1
- package/dist/dashboard/web/store.d.ts +6 -0
- package/dist/dashboard/web/store.d.ts.map +1 -1
- package/dist/dashboard/web/store.js +18 -1
- package/dist/dashboard/web/store.js.map +1 -1
- package/dist/dashboard/webhook-routes.d.ts.map +1 -1
- package/dist/dashboard/webhook-routes.js +24 -0
- package/dist/dashboard/webhook-routes.js.map +1 -1
- package/dist/dashboard-web/app.js +3 -3
- package/dist/dashboard-web/chunks/{bot-defaults-page-Z36I5CKM.js → bot-defaults-page-3OIY7N76.js} +1 -1
- package/dist/dashboard-web/chunks/{chunk-2BBCKWNO.js → chunk-BNEXMNQD.js} +3 -3
- package/dist/dashboard-web/chunks/{chunk-QDKIUULH.js → chunk-DKKOGZCG.js} +1 -1
- package/dist/dashboard-web/chunks/chunk-LXIK7OUJ.js +1 -0
- package/dist/dashboard-web/chunks/{chunk-BAMNP73K.js → chunk-VFCACTRF.js} +1 -1
- package/dist/dashboard-web/chunks/{connectors-I3MGERCM.js → connectors-VDOAKUW3.js} +1 -1
- package/dist/dashboard-web/chunks/{groups-page-DTP2L4FQ.js → groups-page-CX5AN4XG.js} +1 -1
- package/dist/dashboard-web/chunks/{insights-page-FNI24WYF.js → insights-page-DOMRL4S6.js} +1 -1
- package/dist/dashboard-web/chunks/overview-page-AZBAXVZ7.js +1 -0
- package/dist/dashboard-web/chunks/{roles-page-A5DZ7Q6U.js → roles-page-3FEAH6S4.js} +1 -1
- package/dist/dashboard-web/chunks/schedules-CTQEA7IE.js +1 -0
- package/dist/dashboard-web/chunks/{sessions-YJ735IH4.js → sessions-LVZCXO2Z.js} +1 -1
- package/dist/dashboard-web/chunks/{sessions-page-2REIJ56C.js → sessions-page-NHBJDSBC.js} +1 -1
- package/dist/dashboard-web/chunks/settings-page-CRDIHRNE.js +2 -0
- package/dist/dashboard-web/chunks/{skills-page-ZCCLHWMJ.js → skills-page-VUG3EPWX.js} +1 -1
- package/dist/dashboard-web/chunks/{team-federation-page-4FCGO3WW.js → team-federation-page-ZKL3YMGN.js} +1 -1
- package/dist/dashboard-web/chunks/{workflows-KFJ7O57L.js → workflows-4BYQQBFP.js} +1 -1
- package/dist/dashboard-web/index.html +1 -1
- package/dist/dashboard-web/style.css +111 -16
- package/dist/dashboard.js +196 -2
- package/dist/dashboard.js.map +1 -1
- package/dist/global-config.d.ts +30 -0
- package/dist/global-config.d.ts.map +1 -1
- package/dist/global-config.js +64 -1
- package/dist/global-config.js.map +1 -1
- package/dist/i18n/en.d.ts.map +1 -1
- package/dist/i18n/en.js +10 -7
- package/dist/i18n/en.js.map +1 -1
- package/dist/i18n/zh.d.ts.map +1 -1
- package/dist/i18n/zh.js +10 -7
- package/dist/i18n/zh.js.map +1 -1
- package/dist/im/lark/card-builder.d.ts +1 -1
- package/dist/im/lark/card-builder.js +1 -1
- package/dist/im/lark/card-handler.d.ts +3 -0
- package/dist/im/lark/card-handler.d.ts.map +1 -1
- package/dist/im/lark/card-handler.js +8 -0
- package/dist/im/lark/card-handler.js.map +1 -1
- package/dist/im/lark/client.d.ts +1 -0
- package/dist/im/lark/client.d.ts.map +1 -1
- package/dist/im/lark/client.js +19 -0
- package/dist/im/lark/client.js.map +1 -1
- package/dist/im/lark/event-dispatcher.d.ts +10 -0
- package/dist/im/lark/event-dispatcher.d.ts.map +1 -1
- package/dist/im/lark/event-dispatcher.js +100 -21
- package/dist/im/lark/event-dispatcher.js.map +1 -1
- package/dist/im/lark/grant-command.d.ts +1 -1
- package/dist/im/lark/grant-command.js +1 -1
- package/dist/im/lark/workflow-slash-command.js +4 -0
- package/dist/im/lark/workflow-slash-command.js.map +1 -1
- package/dist/mir-prompt.d.ts +16 -0
- package/dist/mir-prompt.d.ts.map +1 -0
- package/dist/mir-prompt.js +170 -0
- package/dist/mir-prompt.js.map +1 -0
- package/dist/mir-runner.js +1 -149
- package/dist/mir-runner.js.map +1 -1
- package/dist/platform/bind.d.ts.map +1 -1
- package/dist/platform/bind.js +3 -11
- package/dist/platform/bind.js.map +1 -1
- package/dist/platform/binding.d.ts +4 -5
- package/dist/platform/binding.d.ts.map +1 -1
- package/dist/platform/binding.js +0 -11
- package/dist/platform/binding.js.map +1 -1
- package/dist/platform/tunnel-client.d.ts.map +1 -1
- package/dist/platform/tunnel-client.js +37 -28
- package/dist/platform/tunnel-client.js.map +1 -1
- package/dist/services/deployment-identity.d.ts +1 -1
- package/dist/services/deployment-identity.d.ts.map +1 -1
- package/dist/services/deployment-identity.js +1 -1
- package/dist/services/deployment-identity.js.map +1 -1
- package/dist/services/doc-subs-store.js +1 -1
- package/dist/services/team-board-store.js +1 -1
- package/dist/services/team-board-store.js.map +1 -1
- package/dist/services/trigger-types.d.ts +2 -1
- package/dist/services/trigger-types.d.ts.map +1 -1
- package/dist/services/trigger-types.js +11 -2
- package/dist/services/trigger-types.js.map +1 -1
- package/dist/services/vc-meeting-runtime-store.d.ts +55 -0
- package/dist/services/vc-meeting-runtime-store.d.ts.map +1 -0
- package/dist/services/vc-meeting-runtime-store.js +313 -0
- package/dist/services/vc-meeting-runtime-store.js.map +1 -0
- package/dist/services/voice/index.d.ts +6 -1
- package/dist/services/voice/index.d.ts.map +1 -1
- package/dist/services/voice/index.js +12 -5
- package/dist/services/voice/index.js.map +1 -1
- package/dist/services/voice/sami.js +1 -1
- package/dist/setup/lark-scopes.json +5 -0
- package/dist/setup/verify-permissions.d.ts +6 -0
- package/dist/setup/verify-permissions.d.ts.map +1 -1
- package/dist/setup/verify-permissions.js +17 -0
- package/dist/setup/verify-permissions.js.map +1 -1
- package/dist/skills/definitions.d.ts.map +1 -1
- package/dist/skills/definitions.js +10 -0
- package/dist/skills/definitions.js.map +1 -1
- package/dist/types.d.ts +4 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/daemon-discovery.d.ts +2 -0
- package/dist/utils/daemon-discovery.d.ts.map +1 -1
- package/dist/utils/daemon-discovery.js +2 -0
- package/dist/utils/daemon-discovery.js.map +1 -1
- package/dist/utils/timezone.d.ts +51 -0
- package/dist/utils/timezone.d.ts.map +1 -0
- package/dist/utils/timezone.js +110 -0
- package/dist/utils/timezone.js.map +1 -0
- package/dist/vc-agent/cards.d.ts +47 -0
- package/dist/vc-agent/cards.d.ts.map +1 -0
- package/dist/vc-agent/cards.js +489 -0
- package/dist/vc-agent/cards.js.map +1 -0
- package/dist/vc-agent/meeting-state.d.ts +39 -0
- package/dist/vc-agent/meeting-state.d.ts.map +1 -0
- package/dist/vc-agent/meeting-state.js +186 -0
- package/dist/vc-agent/meeting-state.js.map +1 -0
- package/dist/vc-agent/normalizer.d.ts +13 -0
- package/dist/vc-agent/normalizer.d.ts.map +1 -0
- package/dist/vc-agent/normalizer.js +411 -0
- package/dist/vc-agent/normalizer.js.map +1 -0
- package/dist/vc-agent/polling-source.d.ts +36 -0
- package/dist/vc-agent/polling-source.d.ts.map +1 -0
- package/dist/vc-agent/polling-source.js +129 -0
- package/dist/vc-agent/polling-source.js.map +1 -0
- package/dist/vc-agent/push-source.d.ts +13 -0
- package/dist/vc-agent/push-source.d.ts.map +1 -0
- package/dist/vc-agent/push-source.js +109 -0
- package/dist/vc-agent/push-source.js.map +1 -0
- package/dist/vc-agent/realtime/audio-source.d.ts +6 -0
- package/dist/vc-agent/realtime/audio-source.d.ts.map +1 -0
- package/dist/vc-agent/realtime/audio-source.js +17 -0
- package/dist/vc-agent/realtime/audio-source.js.map +1 -0
- package/dist/vc-agent/realtime/endpoint.d.ts +6 -0
- package/dist/vc-agent/realtime/endpoint.d.ts.map +1 -0
- package/dist/vc-agent/realtime/endpoint.js +25 -0
- package/dist/vc-agent/realtime/endpoint.js.map +1 -0
- package/dist/vc-agent/realtime/errors.d.ts +9 -0
- package/dist/vc-agent/realtime/errors.d.ts.map +1 -0
- package/dist/vc-agent/realtime/errors.js +17 -0
- package/dist/vc-agent/realtime/errors.js.map +1 -0
- package/dist/vc-agent/realtime/events.d.ts +24 -0
- package/dist/vc-agent/realtime/events.d.ts.map +1 -0
- package/dist/vc-agent/realtime/events.js +190 -0
- package/dist/vc-agent/realtime/events.js.map +1 -0
- package/dist/vc-agent/realtime/frontier.d.ts +34 -0
- package/dist/vc-agent/realtime/frontier.d.ts.map +1 -0
- package/dist/vc-agent/realtime/frontier.js +40 -0
- package/dist/vc-agent/realtime/frontier.js.map +1 -0
- package/dist/vc-agent/realtime/index.d.ts +11 -0
- package/dist/vc-agent/realtime/index.d.ts.map +1 -0
- package/dist/vc-agent/realtime/index.js +11 -0
- package/dist/vc-agent/realtime/index.js.map +1 -0
- package/dist/vc-agent/realtime/pacer.d.ts +21 -0
- package/dist/vc-agent/realtime/pacer.d.ts.map +1 -0
- package/dist/vc-agent/realtime/pacer.js +80 -0
- package/dist/vc-agent/realtime/pacer.js.map +1 -0
- package/dist/vc-agent/realtime/protobuf.d.ts +33 -0
- package/dist/vc-agent/realtime/protobuf.d.ts.map +1 -0
- package/dist/vc-agent/realtime/protobuf.js +159 -0
- package/dist/vc-agent/realtime/protobuf.js.map +1 -0
- package/dist/vc-agent/realtime/protocol.d.ts +4 -0
- package/dist/vc-agent/realtime/protocol.d.ts.map +1 -0
- package/dist/vc-agent/realtime/protocol.js +59 -0
- package/dist/vc-agent/realtime/protocol.js.map +1 -0
- package/dist/vc-agent/realtime/session.d.ts +39 -0
- package/dist/vc-agent/realtime/session.d.ts.map +1 -0
- package/dist/vc-agent/realtime/session.js +221 -0
- package/dist/vc-agent/realtime/session.js.map +1 -0
- package/dist/vc-agent/realtime/transport.d.ts +23 -0
- package/dist/vc-agent/realtime/transport.d.ts.map +1 -0
- package/dist/vc-agent/realtime/transport.js +112 -0
- package/dist/vc-agent/realtime/transport.js.map +1 -0
- package/dist/vc-agent/realtime/types.d.ts +84 -0
- package/dist/vc-agent/realtime/types.d.ts.map +1 -0
- package/dist/vc-agent/realtime/types.js +5 -0
- package/dist/vc-agent/realtime/types.js.map +1 -0
- package/dist/vc-agent/types.d.ts +142 -0
- package/dist/vc-agent/types.d.ts.map +1 -0
- package/dist/vc-agent/types.js +2 -0
- package/dist/vc-agent/types.js.map +1 -0
- package/dist/worker.js +8 -5
- package/dist/worker.js.map +1 -1
- package/dist/workflows/attempt-resume.d.ts +4 -0
- package/dist/workflows/attempt-resume.d.ts.map +1 -1
- package/dist/workflows/attempt-resume.js +2 -0
- package/dist/workflows/attempt-resume.js.map +1 -1
- package/dist/workflows/attempt-terminal.d.ts +4 -0
- package/dist/workflows/attempt-terminal.d.ts.map +1 -1
- package/dist/workflows/attempt-terminal.js.map +1 -1
- package/dist/workflows/daemon-spawn.d.ts.map +1 -1
- package/dist/workflows/daemon-spawn.js +7 -0
- package/dist/workflows/daemon-spawn.js.map +1 -1
- package/dist/workflows/definition.d.ts +14 -14
- package/dist/workflows/events/payloads.d.ts +40 -8
- package/dist/workflows/events/payloads.d.ts.map +1 -1
- package/dist/workflows/events/payloads.js +4 -0
- package/dist/workflows/events/payloads.js.map +1 -1
- package/dist/workflows/events/schema.d.ts +508 -452
- package/dist/workflows/events/schema.d.ts.map +1 -1
- package/dist/workflows/runtime.d.ts +4 -0
- package/dist/workflows/runtime.d.ts.map +1 -1
- package/dist/workflows/runtime.js.map +1 -1
- package/dist/workflows/spawn-policy.d.ts +14 -0
- package/dist/workflows/spawn-policy.d.ts.map +1 -0
- package/dist/workflows/spawn-policy.js +9 -0
- package/dist/workflows/spawn-policy.js.map +1 -0
- package/dist/workflows/v3/bot-resolve.d.ts.map +1 -1
- package/dist/workflows/v3/bot-resolve.js +4 -0
- package/dist/workflows/v3/bot-resolve.js.map +1 -1
- package/dist/workflows/v3/cli-run.d.ts.map +1 -1
- package/dist/workflows/v3/cli-run.js +4 -0
- package/dist/workflows/v3/cli-run.js.map +1 -1
- package/dist/workflows/v3/contract.d.ts +9 -3
- package/dist/workflows/v3/contract.d.ts.map +1 -1
- package/dist/workflows/v3/contract.js +3 -3
- package/dist/workflows/v3/contract.js.map +1 -1
- package/dist/workflows/v3/ephemeral-pool.d.ts.map +1 -1
- package/dist/workflows/v3/ephemeral-pool.js +2 -0
- package/dist/workflows/v3/ephemeral-pool.js.map +1 -1
- package/dist/workflows/v3/runtime.js +1 -1
- package/dist/workflows/v3/runtime.js.map +1 -1
- package/package.json +1 -1
- package/dist/dashboard-web/chunks/chunk-76J7PNZI.js +0 -1
- package/dist/dashboard-web/chunks/overview-page-EHCZJBWY.js +0 -1
- package/dist/dashboard-web/chunks/schedules-RSXALJU4.js +0 -1
- package/dist/dashboard-web/chunks/settings-page-XKFTXTDE.js +0 -2
|
@@ -84,8 +84,10 @@ function ActiveSessionRow({ session }) {
|
|
|
84
84
|
const status = String(session.status ?? 'unknown');
|
|
85
85
|
return (_jsxs("li", { className: "sess-row", children: [_jsx(Html, { html: botAvatarHtml({ name: botName, larkAppId: session.larkAppId, size: 'sm' }) }), _jsxs("div", { className: "sess-tx", children: [_jsx("b", { children: (stripMentionPrefix(session.title) || session.sessionId).slice(0, 64) }), _jsxs("span", { children: [botName, " \u00B7 ", chatDisplayTitle(session) ?? session.cliId ?? 'unknown', " \u00B7 ", relTime(session.lastMessageAt)] })] }), _jsx("span", { className: `status status-${statusToken(status)}`, children: sessionStatusText(status, tr) })] }));
|
|
86
86
|
}
|
|
87
|
-
function ScheduleMini({ schedule }) {
|
|
88
|
-
const next = schedule.nextRunAt
|
|
87
|
+
function ScheduleMini({ schedule, timeZone }) {
|
|
88
|
+
const next = schedule.nextRunAt
|
|
89
|
+
? new Date(schedule.nextRunAt).toLocaleString(undefined, timeZone ? { timeZone, timeZoneName: 'short' } : undefined)
|
|
90
|
+
: '-';
|
|
89
91
|
return (_jsxs("li", { className: "overview-list-row", children: [_jsxs("div", { children: [_jsx("strong", { children: schedule.name ?? schedule.id }), _jsxs("span", { children: [botDisplayName(schedule), " \u00B7 ", schedule.parsed?.display ?? ''] })] }), _jsx("span", { children: next })] }));
|
|
90
92
|
}
|
|
91
93
|
function Donut({ working, attention, idle }) {
|
|
@@ -106,9 +108,10 @@ function OverviewPage() {
|
|
|
106
108
|
const [teamExpanded, setTeamExpanded] = useState(readTeamExpanded);
|
|
107
109
|
const [collapsedN, setCollapsedN] = useState(TEAM_COLLAPSED_ROWS * 3);
|
|
108
110
|
const [namesVersion, forceNamesRefresh] = useState(0);
|
|
109
|
-
const { sessions, schedules } = useStoreSelector(snapshot => ({
|
|
111
|
+
const { sessions, schedules, scheduleTimeZone } = useStoreSelector(snapshot => ({
|
|
110
112
|
sessions: [...snapshot.sessions.values()],
|
|
111
113
|
schedules: [...snapshot.schedules.values()],
|
|
114
|
+
scheduleTimeZone: snapshot.scheduleTimeZone,
|
|
112
115
|
}));
|
|
113
116
|
useEffect(() => {
|
|
114
117
|
const refresh = () => setCollapsedN(collapsedCardCount(teamRef.current));
|
|
@@ -141,7 +144,7 @@ function OverviewPage() {
|
|
|
141
144
|
return !v;
|
|
142
145
|
});
|
|
143
146
|
};
|
|
144
|
-
return (_jsxs("section", { className: "page hero-page", children: [_jsxs("div", { className: "page-heading", children: [_jsxs("div", { children: [_jsx("p", { className: "eyebrow", children: tr('app.subtitle') }), _jsx("h1", { children: tr('overview.title') }), _jsx("p", { id: "overview-sub", children: tr('overview.subtitle') })] }), _jsxs("div", { className: "hero-pills", id: "overview-pills", children: [_jsxs("span", { className: "pill", children: [tr('overview.workingSessions'), " ", _jsx("b", { children: busy.length })] }), _jsxs("span", { className: `pill${attentionRows.length ? ' pill-hot' : ''}`, children: [tr('overview.attention'), " ", _jsx("b", { children: attentionRows.length })] }), _jsxs("span", { className: "pill", children: [tr('overview.onlineBots'), " ", _jsx("b", { children: onlineBots })] })] })] }), _jsxs("div", { className: "sect-head", children: [_jsx("h2", { children: tr('overview.team') }), _jsx("span", { children: tr('overview.teamHint') }), _jsx("a", { href: "#/bot-defaults", children: tr('overview.viewAll') })] }), _jsx("div", { className: "team-grid", id: "team-grid", ref: teamRef, children: visibleCards.length ? visibleCards.map(card => _jsx(MateCard, { card: card }, card.larkAppId ?? card.botName)) : _jsx("div", { className: "empty", children: tr('overview.noSessions') }) }), _jsx("button", { type: "button", className: "team-toggle", id: "team-toggle", hidden: cards.length <= collapsedN, onClick: toggleTeam, children: teamExpanded ? tr('overview.teamCollapse') : tr('overview.teamExpand', { count: cards.length }) }), _jsxs("div", { className: "sect-head", id: "attention-head", children: [_jsx("h2", { children: tr('overview.attention') }), _jsx("span", { children: tr('overview.attentionHint') })] }), _jsx("div", { className: "qgrid", id: "attention-list", children: attentionRows.length ? attentionRows.map(s => _jsx(AttentionCard, { session: s }, s.sessionId)) : _jsx("div", { className: "qcard qcard-empty", children: tr('overview.noAttention') }) }), _jsxs("div", { className: "overview-cols", children: [_jsxs("section", { className: "panel", children: [_jsxs("header", { className: "panel-header", children: [_jsxs("div", { children: [_jsx("h2", { children: tr('overview.activeSessions') }), _jsx("p", { children: tr('overview.activeSessionsHint') })] }), _jsx("a", { className: "btn-link", href: "#/sessions", children: tr('overview.viewAll') })] }), _jsx("ul", { className: "overview-list", id: "recent-sessions", children: recent.length ? recent.map(s => _jsx(ActiveSessionRow, { session: s }, s.sessionId)) : _jsx("li", { className: "empty", children: tr('overview.noSessions') }) })] }), _jsxs("div", { className: "overview-side", children: [_jsxs("section", { className: "panel", children: [_jsx("header", { className: "panel-header", children: _jsxs("div", { children: [_jsx("h2", { children: tr('overview.today') }), _jsx("p", { children: tr('overview.todayHint') })] }) }), _jsx("div", { className: "donut-row", id: "today-donut", children: _jsx(Donut, { working: busy.length, attention: attentionRows.length, idle: Math.max(0, idle) }) })] }), _jsxs("section", { className: "panel", children: [_jsxs("header", { className: "panel-header", children: [_jsxs("div", { children: [_jsx("h2", { children: tr('overview.nextSchedules') }), _jsx("p", { children: tr('schedules.subtitle') })] }), _jsx("a", { className: "btn-link", href: "#/schedules", children: tr('overview.viewAll') })] }), _jsx("ul", { className: "overview-list", id: "next-schedules", children: upcoming.length ? upcoming.map(s => _jsx(ScheduleMini, { schedule: s }, s.id)) : _jsx("li", { className: "empty", children: tr('overview.noSchedules') }) })] })] })] })] }));
|
|
147
|
+
return (_jsxs("section", { className: "page hero-page", children: [_jsxs("div", { className: "page-heading", children: [_jsxs("div", { children: [_jsx("p", { className: "eyebrow", children: tr('app.subtitle') }), _jsx("h1", { children: tr('overview.title') }), _jsx("p", { id: "overview-sub", children: tr('overview.subtitle') })] }), _jsxs("div", { className: "hero-pills", id: "overview-pills", children: [_jsxs("span", { className: "pill", children: [tr('overview.workingSessions'), " ", _jsx("b", { children: busy.length })] }), _jsxs("span", { className: `pill${attentionRows.length ? ' pill-hot' : ''}`, children: [tr('overview.attention'), " ", _jsx("b", { children: attentionRows.length })] }), _jsxs("span", { className: "pill", children: [tr('overview.onlineBots'), " ", _jsx("b", { children: onlineBots })] })] })] }), _jsxs("div", { className: "sect-head", children: [_jsx("h2", { children: tr('overview.team') }), _jsx("span", { children: tr('overview.teamHint') }), _jsx("a", { href: "#/bot-defaults", children: tr('overview.viewAll') })] }), _jsx("div", { className: "team-grid", id: "team-grid", ref: teamRef, children: visibleCards.length ? visibleCards.map(card => _jsx(MateCard, { card: card }, card.larkAppId ?? card.botName)) : _jsx("div", { className: "empty", children: tr('overview.noSessions') }) }), _jsx("button", { type: "button", className: "team-toggle", id: "team-toggle", hidden: cards.length <= collapsedN, onClick: toggleTeam, children: teamExpanded ? tr('overview.teamCollapse') : tr('overview.teamExpand', { count: cards.length }) }), _jsxs("div", { className: "sect-head", id: "attention-head", children: [_jsx("h2", { children: tr('overview.attention') }), _jsx("span", { children: tr('overview.attentionHint') })] }), _jsx("div", { className: "qgrid", id: "attention-list", children: attentionRows.length ? attentionRows.map(s => _jsx(AttentionCard, { session: s }, s.sessionId)) : _jsx("div", { className: "qcard qcard-empty", children: tr('overview.noAttention') }) }), _jsxs("div", { className: "overview-cols", children: [_jsxs("section", { className: "panel", children: [_jsxs("header", { className: "panel-header", children: [_jsxs("div", { children: [_jsx("h2", { children: tr('overview.activeSessions') }), _jsx("p", { children: tr('overview.activeSessionsHint') })] }), _jsx("a", { className: "btn-link", href: "#/sessions", children: tr('overview.viewAll') })] }), _jsx("ul", { className: "overview-list", id: "recent-sessions", children: recent.length ? recent.map(s => _jsx(ActiveSessionRow, { session: s }, s.sessionId)) : _jsx("li", { className: "empty", children: tr('overview.noSessions') }) })] }), _jsxs("div", { className: "overview-side", children: [_jsxs("section", { className: "panel", children: [_jsx("header", { className: "panel-header", children: _jsxs("div", { children: [_jsx("h2", { children: tr('overview.today') }), _jsx("p", { children: tr('overview.todayHint') })] }) }), _jsx("div", { className: "donut-row", id: "today-donut", children: _jsx(Donut, { working: busy.length, attention: attentionRows.length, idle: Math.max(0, idle) }) })] }), _jsxs("section", { className: "panel", children: [_jsxs("header", { className: "panel-header", children: [_jsxs("div", { children: [_jsx("h2", { children: tr('overview.nextSchedules') }), _jsx("p", { children: tr('schedules.subtitle') })] }), _jsx("a", { className: "btn-link", href: "#/schedules", children: tr('overview.viewAll') })] }), _jsx("ul", { className: "overview-list", id: "next-schedules", children: upcoming.length ? upcoming.map(s => _jsx(ScheduleMini, { schedule: s, timeZone: scheduleTimeZone }, s.id)) : _jsx("li", { className: "empty", children: tr('overview.noSchedules') }) })] })] })] })] }));
|
|
145
148
|
}
|
|
146
149
|
export function renderOverviewPage(root) {
|
|
147
150
|
return mountReactPage(root, _jsx(OverviewPage, {}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"overview-page.js","sourceRoot":"","sources":["../../../src/dashboard/web/overview-page.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAqB,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,OAAO,EACP,kBAAkB,GAEnB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAgB,MAAM,eAAe,CAAC;AAKhF,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAC9E,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;AACnD,MAAM,eAAe,GAAG,8BAA8B,CAAC;AACvD,MAAM,eAAe,GAAG,GAAG,CAAC;AAC5B,MAAM,aAAa,GAAG,EAAE,CAAC;AACzB,MAAM,mBAAmB,GAAG,CAAC,CAAC;AAE9B,SAAS,IAAI,CAAC,KAAuB;IACnC,OAAO,eAAM,KAAK,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,uBAAuB,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,GAAI,CAAC;AACnG,CAAC;AAED,SAAS,gBAAgB;IACvB,IAAI,CAAC;QAAC,OAAO,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,GAAG,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,KAAK,CAAC;IAAC,CAAC;AAC9F,CAAC;AAED,SAAS,mBAAmB,CAAC,CAAU;IACrC,IAAI,CAAC;QAAC,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;AAC7F,CAAC;AAED,SAAS,WAAW,CAAC,MAAe;IAClC,OAAO,MAAM,CAAC,MAAM,IAAI,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;AAChF,CAAC;AAED,SAAS,iBAAiB,CAAC,MAAe,EAAE,EAA2B;IACrE,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,IAAI,SAAS,CAAC,CAAC;IACxC,MAAM,GAAG,GAAG,mBAAmB,GAAG,EAAE,CAAC;IACrC,MAAM,KAAK,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;IACtB,OAAO,KAAK,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;AACrC,CAAC;AAED,SAAS,kBAAkB,CAAC,MAA0B;IACpD,MAAM,KAAK,GAAG,MAAM,EAAE,WAAW,IAAI,CAAC,CAAC;IACvC,IAAI,CAAC,KAAK;QAAE,OAAO,mBAAmB,GAAG,CAAC,CAAC;IAC3C,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,eAAe,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;IAClG,OAAO,IAAI,GAAG,mBAAmB,CAAC;AACpC,CAAC;AAED,SAAS,QAAQ,CAAC,EAAE,IAAI,EAAqB;IAC3C,MAAM,EAAE,GAAG,IAAI,EAAE,CAAC;IAClB,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;IACzD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;IAC3C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IAClC,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;IAC5E,IAAI,IAA0B,CAAC;IAC/B,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/F,IAAI,GAAG,8BAAE,sBAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAK,EAAC,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC;IAClH,CAAC;SAAM,IAAI,IAAI,EAAE,CAAC;QAChB,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,aAAa,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxG,IAAI,GAAG,sBAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAK,CAAC;IAC5E,CAAC;SAAM,IAAI,OAAO,EAAE,CAAC;QACnB,IAAI,GAAG,EAAE,CAAC,qBAAqB,CAAC,CAAC;IACnC,CAAC;SAAM,CAAC;QACN,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,CAAC;IAChC,CAAC;IACD,MAAM,GAAG,GAAG,QAAQ;QAClB,CAAC,CAAC,eAAM,SAAS,EAAC,cAAc,YAAE,EAAE,CAAC,sBAAsB,CAAC,GAAQ;QACpE,CAAC,CAAC,IAAI;YACJ,CAAC,CAAC,eAAM,SAAS,EAAC,aAAa,YAAE,EAAE,CAAC,kBAAkB,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,GAAQ;YAC5F,CAAC,CAAC,OAAO;gBACP,CAAC,CAAC,eAAM,SAAS,EAAC,aAAa,YAAE,EAAE,CAAC,iBAAiB,CAAC,GAAQ;gBAC9D,CAAC,CAAC,eAAM,SAAS,EAAC,YAAY,YAAE,EAAE,CAAC,mBAAmB,CAAC,GAAQ,CAAC;IAEtE,OAAO,CACL,mBAAS,SAAS,EAAE,OAAO,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,aACpF,eAAK,SAAS,EAAC,UAAU,aACvB,KAAC,IAAI,IAAC,IAAI,EAAE,aAAa,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,YAAY,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,GAAI,EAC7H,eAAK,SAAS,EAAC,SAAS,aACtB,sBAAI,IAAI,CAAC,OAAO,GAAK,EACrB,eAAM,SAAS,EAAC,WAAW,YAAE,IAAI,CAAC,KAAK,GAAQ,IAC3C,IACF,EACN,cAAK,SAAS,EAAC,WAAW,YAAE,IAAI,GAAO,EACvC,eAAK,SAAS,EAAC,WAAW,aACvB,GAAG,EACJ,yBAAO,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,qBAAqB,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,GAAQ,IACnH,IACE,CACX,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,EAAE,OAAO,EAA2B;IACzD,MAAM,EAAE,GAAG,IAAI,EAAE,CAAC;IAClB,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IACxC,OAAO,CACL,mBAAS,SAAS,EAAC,OAAO,aAAU,OAAO,CAAC,SAAS,aACnD,KAAC,IAAI,IAAC,IAAI,EAAE,aAAa,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,GAAI,EAC1F,eAAK,SAAS,EAAC,UAAU,aACvB,wBAAI,OAAO,cAAK,CAAC,kBAAkB,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,IAAK,EAC1F,2BAAO,eAAe,CAAC,OAAO,CAAC,IAAI,EAAE,cAAK,OAAO,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,IAAQ,IAClF,EACN,YAAG,SAAS,EAAC,UAAU,EAAC,IAAI,EAAC,YAAY,YAAE,EAAE,CAAC,cAAc,CAAC,GAAK,IAC1D,CACX,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,EAAE,OAAO,EAA2B;IAC5D,MAAM,EAAE,GAAG,IAAI,EAAE,CAAC;IAClB,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IACxC,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,IAAI,SAAS,CAAC,CAAC;IACnD,OAAO,CACL,cAAI,SAAS,EAAC,UAAU,aACtB,KAAC,IAAI,IAAC,IAAI,EAAE,aAAa,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,GAAI,EAC1F,eAAK,SAAS,EAAC,SAAS,aACtB,sBAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAK,EAC9E,2BAAO,OAAO,cAAK,gBAAgB,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,KAAK,IAAI,SAAS,cAAK,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,IAAQ,IACjH,EACN,eAAM,SAAS,EAAE,iBAAiB,WAAW,CAAC,MAAM,CAAC,EAAE,YACpD,iBAAiB,CAAC,MAAM,EAAE,EAAE,CAAC,GACzB,IACJ,CACN,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,EAAE,QAAQ,EAA6B;IAC3D,MAAM,IAAI,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;IACtF,OAAO,CACL,cAAI,SAAS,EAAC,mBAAmB,aAC/B,0BACE,2BAAS,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,EAAE,GAAU,EAC/C,2BAAO,cAAc,CAAC,QAAQ,CAAC,cAAK,QAAQ,CAAC,MAAM,EAAE,OAAO,IAAI,EAAE,IAAQ,IACtE,EACN,yBAAO,IAAI,GAAQ,IAChB,CACN,CAAC;AACJ,CAAC;AAED,SAAS,KAAK,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAwD;IAC/F,MAAM,EAAE,GAAG,IAAI,EAAE,CAAC;IAClB,MAAM,KAAK,GAAG,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC;IACzC,MAAM,UAAU,GAAG,KAAK,KAAK,CAAC;QAC5B,CAAC,CAAC,wCAAwC;QAC1C,CAAC,CAAC,CAAC,GAAG,EAAE;YACJ,MAAM,IAAI,GAAG,CAAC,OAAO,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC;YACrC,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,SAAS,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC;YAC9C,OAAO,kCAAkC,IAAI,uBAAuB,IAAI,OAAO,IAAI,uBAAuB,IAAI,aAAa,CAAC;QAC9H,CAAC,CAAC,EAAE,CAAC;IACT,OAAO,CACL,8BACE,eAAK,SAAS,EAAC,YAAY,aACzB,cAAK,SAAS,EAAC,OAAO,EAAC,KAAK,EAAE,EAAE,UAAU,EAAE,GAAI,EAChD,eAAK,SAAS,EAAC,cAAc,aAAC,sBAAI,KAAK,GAAK,EAAA,yBAAO,EAAE,CAAC,uBAAuB,CAAC,GAAQ,IAAM,IACxF,EACN,eAAK,SAAS,EAAC,cAAc,aAC3B,2BAAM,YAAG,KAAK,EAAE,EAAE,UAAU,EAAE,eAAe,EAAE,GAAI,EAAC,EAAE,CAAC,0BAA0B,CAAC,OAAG,OAAO,IAAQ,EACpG,2BAAM,YAAG,KAAK,EAAE,EAAE,UAAU,EAAE,gBAAgB,EAAE,GAAI,EAAC,EAAE,CAAC,oBAAoB,CAAC,OAAG,SAAS,IAAQ,EACjG,2BAAM,YAAG,KAAK,EAAE,EAAE,UAAU,EAAE,gBAAgB,EAAE,GAAI,EAAC,EAAE,CAAC,qBAAqB,CAAC,OAAG,IAAI,IAAQ,IACzF,IACL,CACJ,CAAC;AACJ,CAAC;AAED,SAAS,YAAY;IACnB,MAAM,EAAE,GAAG,IAAI,EAAE,CAAC;IAClB,MAAM,OAAO,GAAG,MAAM,CAAwB,IAAI,CAAC,CAAC;IACpD,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IACnE,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,mBAAmB,GAAG,CAAC,CAAC,CAAC;IACtE,MAAM,CAAC,YAAY,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IACtD,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC5D,QAAQ,EAAE,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAiB;QACzD,SAAS,EAAE,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,CAAkB;KAC7D,CAAC,CAAC,CAAC;IAEJ,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,aAAa,CAAC,kBAAkB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;QACzE,OAAO,EAAE,CAAC;QACV,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC3C,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC7D,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,SAAS,CAAC,GAAG,EAAE;QACb,KAAK,kBAAkB,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACpE,KAAK,YAAY,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAChE,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IACtF,MAAM,aAAa,GAAG,OAAO,CAC3B,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC,EAC1G,CAAC,MAAM,CAAC,CACT,CAAC;IACF,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAC7G,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,GAAG,aAAa,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAChE,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC;IAC/E,MAAM,YAAY,GAAG,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;IACvE,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;IAC7E,MAAM,MAAM,GAAG,OAAO,CACpB,GAAG,EAAE,CAAC,MAAM;SACT,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;SACvE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,aAAa,IAAI,CAAC,CAAC,CAAC;SAC3E,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EACd,CAAC,MAAM,CAAC,CACT,CAAC;IACF,MAAM,QAAQ,GAAG,OAAO,CACtB,GAAG,EAAE,CAAC,SAAS;SACZ,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;SACxB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;SACjE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EACd,CAAC,SAAS,CAAC,CACZ,CAAC;IAEF,MAAM,UAAU,GAAG,GAAG,EAAE;QACtB,eAAe,CAAC,CAAC,CAAC,EAAE;YAClB,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC;YACxB,OAAO,CAAC,CAAC,CAAC;QACZ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,OAAO,CACL,mBAAS,SAAS,EAAC,gBAAgB,aACjC,eAAK,SAAS,EAAC,cAAc,aAC3B,0BACE,YAAG,SAAS,EAAC,SAAS,YAAE,EAAE,CAAC,cAAc,CAAC,GAAK,EAC/C,uBAAK,EAAE,CAAC,gBAAgB,CAAC,GAAM,EAC/B,YAAG,EAAE,EAAC,cAAc,YAAE,EAAE,CAAC,mBAAmB,CAAC,GAAK,IAC9C,EACN,eAAK,SAAS,EAAC,YAAY,EAAC,EAAE,EAAC,gBAAgB,aAC7C,gBAAM,SAAS,EAAC,MAAM,aAAE,EAAE,CAAC,0BAA0B,CAAC,OAAE,sBAAI,IAAI,CAAC,MAAM,GAAK,IAAO,EACnF,gBAAM,SAAS,EAAE,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,aAAG,EAAE,CAAC,oBAAoB,CAAC,OAAE,sBAAI,aAAa,CAAC,MAAM,GAAK,IAAO,EAClI,gBAAM,SAAS,EAAC,MAAM,aAAE,EAAE,CAAC,qBAAqB,CAAC,OAAE,sBAAI,UAAU,GAAK,IAAO,IACzE,IACF,EAEN,eAAK,SAAS,EAAC,WAAW,aACxB,uBAAK,EAAE,CAAC,eAAe,CAAC,GAAM,EAAA,yBAAO,EAAE,CAAC,mBAAmB,CAAC,GAAQ,EACpE,YAAG,IAAI,EAAC,gBAAgB,YAAE,EAAE,CAAC,kBAAkB,CAAC,GAAK,IACjD,EACN,cAAK,SAAS,EAAC,WAAW,EAAC,EAAE,EAAC,WAAW,EAAC,GAAG,EAAE,OAAO,YACnD,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,KAAC,QAAQ,IAAsC,IAAI,EAAE,IAAI,IAA1C,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,OAAO,CAAgB,CAAC,CAAC,CAAC,CAAC,cAAK,SAAS,EAAC,OAAO,YAAE,EAAE,CAAC,qBAAqB,CAAC,GAAO,GACrK,EACN,iBAAQ,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,aAAa,EAAC,EAAE,EAAC,aAAa,EAAC,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,UAAU,EAAE,OAAO,EAAE,UAAU,YACnH,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,qBAAqB,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,GACzF,EAET,eAAK,SAAS,EAAC,WAAW,EAAC,EAAE,EAAC,gBAAgB,aAC5C,uBAAK,EAAE,CAAC,oBAAoB,CAAC,GAAM,EAAA,yBAAO,EAAE,CAAC,wBAAwB,CAAC,GAAQ,IAC1E,EACN,cAAK,SAAS,EAAC,OAAO,EAAC,EAAE,EAAC,gBAAgB,YACvC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAC,aAAa,IAAmB,OAAO,EAAE,CAAC,IAAvB,CAAC,CAAC,SAAS,CAAgB,CAAC,CAAC,CAAC,CAAC,cAAK,SAAS,EAAC,mBAAmB,YAAE,EAAE,CAAC,sBAAsB,CAAC,GAAO,GACnK,EAEN,eAAK,SAAS,EAAC,eAAe,aAC5B,mBAAS,SAAS,EAAC,OAAO,aACxB,kBAAQ,SAAS,EAAC,cAAc,aAC9B,0BACE,uBAAK,EAAE,CAAC,yBAAyB,CAAC,GAAM,EACxC,sBAAI,EAAE,CAAC,6BAA6B,CAAC,GAAK,IACtC,EACN,YAAG,SAAS,EAAC,UAAU,EAAC,IAAI,EAAC,YAAY,YAAE,EAAE,CAAC,kBAAkB,CAAC,GAAK,IAC/D,EACT,aAAI,SAAS,EAAC,eAAe,EAAC,EAAE,EAAC,iBAAiB,YAC/C,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAC,gBAAgB,IAAmB,OAAO,EAAE,CAAC,IAAvB,CAAC,CAAC,SAAS,CAAgB,CAAC,CAAC,CAAC,CAAC,aAAI,SAAS,EAAC,OAAO,YAAE,EAAE,CAAC,qBAAqB,CAAC,GAAM,GAC1I,IACG,EACV,eAAK,SAAS,EAAC,eAAe,aAC5B,mBAAS,SAAS,EAAC,OAAO,aACxB,iBAAQ,SAAS,EAAC,cAAc,YAC9B,0BACE,uBAAK,EAAE,CAAC,gBAAgB,CAAC,GAAM,EAC/B,sBAAI,EAAE,CAAC,oBAAoB,CAAC,GAAK,IAC7B,GACC,EACT,cAAK,SAAS,EAAC,WAAW,EAAC,EAAE,EAAC,aAAa,YACzC,KAAC,KAAK,IAAC,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAI,GACrF,IACE,EACV,mBAAS,SAAS,EAAC,OAAO,aACxB,kBAAQ,SAAS,EAAC,cAAc,aAC9B,0BACE,uBAAK,EAAE,CAAC,wBAAwB,CAAC,GAAM,EACvC,sBAAI,EAAE,CAAC,oBAAoB,CAAC,GAAK,IAC7B,EACN,YAAG,SAAS,EAAC,UAAU,EAAC,IAAI,EAAC,aAAa,YAAE,EAAE,CAAC,kBAAkB,CAAC,GAAK,IAChE,EACT,aAAI,SAAS,EAAC,eAAe,EAAC,EAAE,EAAC,gBAAgB,YAC9C,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAC,YAAY,IAAY,QAAQ,EAAE,CAAC,IAAjB,CAAC,CAAC,EAAE,CAAiB,CAAC,CAAC,CAAC,CAAC,aAAI,SAAS,EAAC,OAAO,YAAE,EAAE,CAAC,sBAAsB,CAAC,GAAM,GACrI,IACG,IACN,IACF,IACE,CACX,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,IAAiB;IAClD,OAAO,cAAc,CAAC,IAAI,EAAE,KAAC,YAAY,KAAG,CAAC,CAAC;AAChD,CAAC"}
|
|
1
|
+
{"version":3,"file":"overview-page.js","sourceRoot":"","sources":["../../../src/dashboard/web/overview-page.tsx"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@ export interface ScheduleFilters {
|
|
|
7
7
|
kind: string;
|
|
8
8
|
enabledOnly: boolean;
|
|
9
9
|
}
|
|
10
|
-
export declare function fmtScheduleDate(s?: string): string;
|
|
10
|
+
export declare function fmtScheduleDate(s?: string, timeZone?: string): string;
|
|
11
11
|
export declare function filterSchedules(rows: ScheduleRow[], filters: ScheduleFilters): ScheduleRow[];
|
|
12
12
|
export declare function renderSchedulesPage(root: HTMLElement): PageDisposer;
|
|
13
13
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schedules-page.d.ts","sourceRoot":"","sources":["../../../src/dashboard/web/schedules-page.tsx"],"names":[],"mappings":"AACA,OAAO,EAAkB,KAAK,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGrE,KAAK,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC;AAGxD,MAAM,WAAW,eAAe;IAC9B,CAAC,EAAE,MAAM,CAAC;IACV,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,wBAAgB,eAAe,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"schedules-page.d.ts","sourceRoot":"","sources":["../../../src/dashboard/web/schedules-page.tsx"],"names":[],"mappings":"AACA,OAAO,EAAkB,KAAK,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGrE,KAAK,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC;AAGxD,MAAM,WAAW,eAAe;IAC9B,CAAC,EAAE,MAAM,CAAC;IACV,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,wBAAgB,eAAe,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CASrE;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,OAAO,EAAE,eAAe,GAAG,WAAW,EAAE,CAY5F;AAqKD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,WAAW,GAAG,YAAY,CAEnE"}
|
|
@@ -2,12 +2,15 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
import { useMemo, useState } from 'react';
|
|
3
3
|
import { mountReactPage } from './react-mount.js';
|
|
4
4
|
import { useStoreSelector, useT } from './react-hooks.js';
|
|
5
|
-
export function fmtScheduleDate(s) {
|
|
5
|
+
export function fmtScheduleDate(s, timeZone) {
|
|
6
6
|
if (!s)
|
|
7
7
|
return '—';
|
|
8
8
|
try {
|
|
9
9
|
const d = new Date(s);
|
|
10
|
-
|
|
10
|
+
// Render in the scheduler's effective zone (with a short zone suffix so a
|
|
11
|
+
// viewer in another zone isn't misled). Empty tz ⇒ browser-local (legacy).
|
|
12
|
+
const opts = timeZone ? { timeZone, timeZoneName: 'short' } : undefined;
|
|
13
|
+
return d.toLocaleString(undefined, opts);
|
|
11
14
|
}
|
|
12
15
|
catch {
|
|
13
16
|
return s;
|
|
@@ -42,6 +45,7 @@ function repeatLabel(s) {
|
|
|
42
45
|
function SchedulesPage() {
|
|
43
46
|
const tr = useT();
|
|
44
47
|
const scheduleRows = useStoreSelector(snapshot => [...snapshot.schedules.values()]);
|
|
48
|
+
const scheduleTz = useStoreSelector(snapshot => snapshot.scheduleTimeZone);
|
|
45
49
|
const [filters, setFilters] = useState({ q: '', kind: '', enabledOnly: false });
|
|
46
50
|
const [pending, setPending] = useState(null);
|
|
47
51
|
const labels = {
|
|
@@ -73,7 +77,7 @@ function SchedulesPage() {
|
|
|
73
77
|
setPending(cur => cur === key ? null : cur);
|
|
74
78
|
}
|
|
75
79
|
}
|
|
76
|
-
return (_jsxs("section", { className: "page schedules-page", children: [_jsx("div", { className: "page-heading", children: _jsxs("div", { children: [_jsx("p", { className: "eyebrow", children: tr('nav.schedules') }), _jsx("h1", { children: tr('schedules.title') }), _jsx("p", { children: tr('schedules.subtitle') })] }) }), _jsxs("form", { id: "sched-filters", className: "filters", children: [_jsx("input", { type: "search", name: "q", placeholder: tr('schedules.search'), value: filters.q, onChange: e => setFilters(f => ({ ...f, q: e.currentTarget.value })) }), _jsxs("select", { name: "kind", value: filters.kind, onChange: e => setFilters(f => ({ ...f, kind: e.currentTarget.value })), children: [_jsx("option", { value: "", children: tr('schedules.anyKind') }), _jsx("option", { value: "cron", children: "cron" }), _jsx("option", { value: "interval", children: "interval" }), _jsx("option", { value: "once", children: "once" })] }), _jsxs("label", { children: [_jsx("input", { type: "checkbox", name: "enabled", checked: filters.enabledOnly, onChange: e => setFilters(f => ({ ...f, enabledOnly: e.currentTarget.checked })) }), ' ', tr('schedules.enabledOnly')] })] }), _jsxs("table", { className: "schedules-table", children: [_jsx("thead", { children: _jsxs("tr", { children: [_jsx("th", { children: labels.name }), _jsx("th", { children: labels.bot }), _jsx("th", { children: labels.schedule }), _jsx("th", { children: labels.delivery }), _jsx("th", { children: labels.next }), _jsx("th", { children: labels.last }), _jsx("th", { children: labels.repeat }), _jsx("th", { children: labels.enabled }), _jsx("th", { children: labels.actions })] }) }), _jsx("tbody", { id: "schedules-tbody", children: rows.length === 0 ? (_jsx("tr", { className: "schedule-empty-row", children: _jsx("td", { colSpan: 9, className: "empty", children: tr('schedules.empty') }) })) : rows.map(s => (_jsxs("tr", { "data-id": s.id, children: [_jsx("td", { "data-label": labels.name, children: s.name ?? s.id }), _jsx("td", { "data-label": labels.bot, children: s.botName ?? s.larkAppId ?? '-' }), _jsx("td", { "data-label": labels.schedule, children: _jsx("code", { children: s.parsed?.display ?? '?' }) }), _jsx("td", { "data-label": labels.delivery, children: deliveryLabel(s, tr) }), _jsx("td", { "data-label": labels.next, children: fmtScheduleDate(s.nextRunAt) }), _jsxs("td", { "data-label": labels.last, children: [fmtScheduleDate(s.lastRunAt), " ", s.lastStatus === 'error' ? '⚠️' : ''] }), _jsx("td", { "data-label": labels.repeat, children: repeatLabel(s) }), _jsx("td", { "data-label": labels.enabled, children: s.enabled ? '✓' : '✗' }), _jsx("td", { className: "actions-cell", "data-label": labels.actions, children: _jsxs("div", { className: "schedule-actions", children: [_jsx(ActionButton, { op: "run", label: tr('schedules.runNow'), pending: pending === `${s.id}:run`, onClick: () => void runAction(s.id, 'run') }), s.enabled ? (_jsx(ActionButton, { op: "pause", label: tr('schedules.pause'), pending: pending === `${s.id}:pause`, onClick: () => void runAction(s.id, 'pause') })) : (_jsx(ActionButton, { op: "resume", label: tr('schedules.resume'), pending: pending === `${s.id}:resume`, onClick: () => void runAction(s.id, 'resume') })), s.deliver === 'local' ? null : (_jsx(ActionButton, { op: "delivery", label: s.deliver === 'new-topic' ? tr('schedules.useOrigin') : tr('schedules.useNewTopic'), pending: pending === `${s.id}:delivery`, onClick: () => void runAction(s.id, 'delivery') }))] }) })] }, s.id))) })] })] }));
|
|
80
|
+
return (_jsxs("section", { className: "page schedules-page", children: [_jsx("div", { className: "page-heading", children: _jsxs("div", { children: [_jsx("p", { className: "eyebrow", children: tr('nav.schedules') }), _jsx("h1", { children: tr('schedules.title') }), _jsx("p", { children: tr('schedules.subtitle') })] }) }), _jsxs("form", { id: "sched-filters", className: "filters", children: [_jsx("input", { type: "search", name: "q", placeholder: tr('schedules.search'), value: filters.q, onChange: e => setFilters(f => ({ ...f, q: e.currentTarget.value })) }), _jsxs("select", { name: "kind", value: filters.kind, onChange: e => setFilters(f => ({ ...f, kind: e.currentTarget.value })), children: [_jsx("option", { value: "", children: tr('schedules.anyKind') }), _jsx("option", { value: "cron", children: "cron" }), _jsx("option", { value: "interval", children: "interval" }), _jsx("option", { value: "once", children: "once" })] }), _jsxs("label", { children: [_jsx("input", { type: "checkbox", name: "enabled", checked: filters.enabledOnly, onChange: e => setFilters(f => ({ ...f, enabledOnly: e.currentTarget.checked })) }), ' ', tr('schedules.enabledOnly')] })] }), _jsxs("table", { className: "schedules-table", children: [_jsx("thead", { children: _jsxs("tr", { children: [_jsx("th", { children: labels.name }), _jsx("th", { children: labels.bot }), _jsx("th", { children: labels.schedule }), _jsx("th", { children: labels.delivery }), _jsx("th", { children: labels.next }), _jsx("th", { children: labels.last }), _jsx("th", { children: labels.repeat }), _jsx("th", { children: labels.enabled }), _jsx("th", { children: labels.actions })] }) }), _jsx("tbody", { id: "schedules-tbody", children: rows.length === 0 ? (_jsx("tr", { className: "schedule-empty-row", children: _jsx("td", { colSpan: 9, className: "empty", children: tr('schedules.empty') }) })) : rows.map(s => (_jsxs("tr", { "data-id": s.id, children: [_jsx("td", { "data-label": labels.name, children: s.name ?? s.id }), _jsx("td", { "data-label": labels.bot, children: s.botName ?? s.larkAppId ?? '-' }), _jsx("td", { "data-label": labels.schedule, children: _jsx("code", { children: s.parsed?.display ?? '?' }) }), _jsx("td", { "data-label": labels.delivery, children: deliveryLabel(s, tr) }), _jsx("td", { "data-label": labels.next, children: fmtScheduleDate(s.nextRunAt, scheduleTz) }), _jsxs("td", { "data-label": labels.last, children: [fmtScheduleDate(s.lastRunAt, scheduleTz), " ", s.lastStatus === 'error' ? '⚠️' : ''] }), _jsx("td", { "data-label": labels.repeat, children: repeatLabel(s) }), _jsx("td", { "data-label": labels.enabled, children: s.enabled ? '✓' : '✗' }), _jsx("td", { className: "actions-cell", "data-label": labels.actions, children: _jsxs("div", { className: "schedule-actions", children: [_jsx(ActionButton, { op: "run", label: tr('schedules.runNow'), pending: pending === `${s.id}:run`, onClick: () => void runAction(s.id, 'run') }), s.enabled ? (_jsx(ActionButton, { op: "pause", label: tr('schedules.pause'), pending: pending === `${s.id}:pause`, onClick: () => void runAction(s.id, 'pause') })) : (_jsx(ActionButton, { op: "resume", label: tr('schedules.resume'), pending: pending === `${s.id}:resume`, onClick: () => void runAction(s.id, 'resume') })), s.deliver === 'local' ? null : (_jsx(ActionButton, { op: "delivery", label: s.deliver === 'new-topic' ? tr('schedules.useOrigin') : tr('schedules.useNewTopic'), pending: pending === `${s.id}:delivery`, onClick: () => void runAction(s.id, 'delivery') }))] }) })] }, s.id))) })] })] }));
|
|
77
81
|
}
|
|
78
82
|
function ActionButton(props) {
|
|
79
83
|
return (_jsx("button", { type: "button", "data-op": props.op, disabled: props.pending, onClick: props.onClick, children: props.pending ? '...' : props.label }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schedules-page.js","sourceRoot":"","sources":["../../../src/dashboard/web/schedules-page.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAqB,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAW1D,MAAM,UAAU,eAAe,CAAC,CAAU;
|
|
1
|
+
{"version":3,"file":"schedules-page.js","sourceRoot":"","sources":["../../../src/dashboard/web/schedules-page.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1134,14 +1134,14 @@ export function wireSessionsPage(root) {
|
|
|
1134
1134
|
}
|
|
1135
1135
|
else {
|
|
1136
1136
|
const team = kanbanTeams.find(tm => tm.key === kanbanTeamKey) ?? kanbanTeams[0];
|
|
1137
|
-
//
|
|
1137
|
+
// 「团队群」白名单(既定规则):
|
|
1138
1138
|
// A. dashboard 团队页发起的协作群(建群时落盘的 team↔chatId 绑定)
|
|
1139
1139
|
// B. 群里 /introduce 过该团队成员机器人的群——介绍记录按名字与团队
|
|
1140
1140
|
// roster 匹配;介绍过的若不是本团队成员,不算(防误筛)
|
|
1141
1141
|
// 命中群里所有 bot 的会话都展示(本质 = 同团队 bot 所在群/话题的会话)。
|
|
1142
1142
|
const teamChats = teamChatIdsFor(team);
|
|
1143
1143
|
const teamRows = team ? rows.filter(r => teamChats.has(String(r.chatId))) : [];
|
|
1144
|
-
// ── hub
|
|
1144
|
+
// ── hub 团队看板合并(既定架构:编排存团队 host)──────────────────────
|
|
1145
1145
|
// 本地行(实时)+ 对方部署上报的裁剪行(host 快照);共享编排的列/排序
|
|
1146
1146
|
// 覆盖个人看板字段——团队视图里大家看到同一份摆放。
|
|
1147
1147
|
if (team)
|
|
@@ -1,3 +1,12 @@
|
|
|
1
1
|
import { type PageDisposer } from './react-mount.js';
|
|
2
|
+
export declare function TimeZoneRow(props: {
|
|
3
|
+
value: string;
|
|
4
|
+
host: string;
|
|
5
|
+
/** TRUE effective zone (env → config → host) for the "currently effective"
|
|
6
|
+
* hint. Must come from the backend, not be reconstructed as value||host. */
|
|
7
|
+
effective: string;
|
|
8
|
+
disabled: boolean;
|
|
9
|
+
onSave(tz: string | null): void;
|
|
10
|
+
}): import("react").JSX.Element;
|
|
2
11
|
export declare function renderSettingsPage(root: HTMLElement): PageDisposer;
|
|
3
12
|
//# sourceMappingURL=settings-page.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings-page.d.ts","sourceRoot":"","sources":["../../../src/dashboard/web/settings-page.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAkB,KAAK,YAAY,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"settings-page.d.ts","sourceRoot":"","sources":["../../../src/dashboard/web/settings-page.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAkB,KAAK,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAkuBrE,wBAAgB,WAAW,CAAC,KAAK,EAAE;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb;iFAC6E;IAC7E,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;CACjC,+BAkCA;AA6JD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,WAAW,GAAG,YAAY,CAElE"}
|
|
@@ -2,16 +2,37 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
|
|
|
2
2
|
import { useCallback, useEffect, useRef, useState } from 'react';
|
|
3
3
|
import { useT } from './react-hooks.js';
|
|
4
4
|
import { mountReactPage } from './react-mount.js';
|
|
5
|
+
import { store } from './store.js';
|
|
6
|
+
/** A handful of common IANA zones offered as a datalist for the timezone field. */
|
|
7
|
+
const COMMON_TIMEZONES = [
|
|
8
|
+
'Asia/Shanghai', 'Asia/Hong_Kong', 'Asia/Tokyo', 'Asia/Singapore', 'Asia/Kolkata',
|
|
9
|
+
'UTC', 'Europe/London', 'Europe/Paris', 'Europe/Moscow',
|
|
10
|
+
'America/Los_Angeles', 'America/New_York', 'America/Sao_Paulo', 'Australia/Sydney',
|
|
11
|
+
];
|
|
5
12
|
function parseSettings(s) {
|
|
6
13
|
return {
|
|
7
14
|
publicReadOnly: s?.publicReadOnly === true,
|
|
8
15
|
openTerminalInFeishu: s?.openTerminalInFeishu === true,
|
|
9
16
|
chatBotDiscovery: s?.chatBotDiscovery !== false,
|
|
17
|
+
vcMeetingAgent: {
|
|
18
|
+
enabled: s?.vcMeetingAgent?.enabled !== false,
|
|
19
|
+
listenerBotAppId: typeof s?.vcMeetingAgent?.listenerBotAppId === 'string' ? s.vcMeetingAgent.listenerBotAppId : null,
|
|
20
|
+
listenerBotOptions: Array.isArray(s?.vcMeetingAgent?.listenerBotOptions) ? s.vcMeetingAgent.listenerBotOptions : [],
|
|
21
|
+
},
|
|
10
22
|
repoPickerMode: s?.repoPickerMode === 'repos' ? 'repos' : 'all',
|
|
11
23
|
maintenance: (s?.maintenance && typeof s.maintenance === 'object') ? s.maintenance : {},
|
|
12
24
|
localDevInstall: s?.localDevInstall === true,
|
|
13
25
|
whiteboard: { enabled: s?.whiteboard?.enabled === true },
|
|
14
26
|
remoteAccess: s?.remoteAccess === true,
|
|
27
|
+
scheduleTimeZone: typeof s?.scheduleTimeZone === 'string' ? s.scheduleTimeZone : '',
|
|
28
|
+
hostTimeZone: typeof s?.hostTimeZone === 'string' && s.hostTimeZone ? s.hostTimeZone : 'UTC',
|
|
29
|
+
// Prefer the backend's true effective zone (includes env override); fall back
|
|
30
|
+
// to configured||host only if an older backend didn't send it.
|
|
31
|
+
effectiveScheduleTimeZone: typeof s?.effectiveScheduleTimeZone === 'string' && s.effectiveScheduleTimeZone
|
|
32
|
+
? s.effectiveScheduleTimeZone
|
|
33
|
+
: (typeof s?.scheduleTimeZone === 'string' && s.scheduleTimeZone
|
|
34
|
+
? s.scheduleTimeZone
|
|
35
|
+
: (typeof s?.hostTimeZone === 'string' && s.hostTimeZone ? s.hostTimeZone : 'UTC')),
|
|
15
36
|
};
|
|
16
37
|
}
|
|
17
38
|
function taskUi(m, key) {
|
|
@@ -140,8 +161,15 @@ function SettingsPage() {
|
|
|
140
161
|
return;
|
|
141
162
|
if (!r.ok || body.ok === false)
|
|
142
163
|
throw new Error(body?.error ?? `HTTP ${r.status}`);
|
|
143
|
-
|
|
164
|
+
const saved = parseSettings(body.settings);
|
|
165
|
+
setSettings(saved);
|
|
166
|
+
// Sync the shared store to the TRUE effective zone (env → config → host,
|
|
167
|
+
// as computed by the backend) so this SPA's schedules/overview re-render
|
|
168
|
+
// correctly — reconstructing configured||host here would drop an env
|
|
169
|
+
// override. Other browsers pick it up via the schedule.timezone SSE event.
|
|
170
|
+
store.setScheduleTimeZone(saved.effectiveScheduleTimeZone);
|
|
144
171
|
setSettingsMsg({ text: tr('settings.saved'), cls: 'hint-ok' });
|
|
172
|
+
setTimer(() => setSettingsMsg(current => (current?.cls === 'hint-ok' ? null : current)), 2400);
|
|
145
173
|
}
|
|
146
174
|
catch (e) {
|
|
147
175
|
if (!mountedRef.current)
|
|
@@ -279,21 +307,47 @@ function SettingsPage() {
|
|
|
279
307
|
setUpMsg({ text: tr('update.updateFailed', { detail: e instanceof Error ? e.message : String(e) }), cls: 'hint-warn-inline' });
|
|
280
308
|
}
|
|
281
309
|
}
|
|
282
|
-
const settingsBody = settings ? (_jsx(SettingsBody, { settings: settings, canWrite: canWrite, bound: bound, savingKey: savingKey,
|
|
283
|
-
return (_jsxs("section", { className: "page", children: [_jsx("div", { className: "page-heading", children: _jsxs("div", { children: [_jsx("p", { className: "eyebrow", children: tr('nav.settings') }), _jsx("h1", { children: tr('settings.title') }), _jsx("p", { children: tr('settings.subtitle') })] }) }), settingsBody, _jsx(UpdateCard, { canWrite: canWrite, status: upStatus, statusError: upStatusError, changelog: upChangelog, changelogOpen: upChangelogOpen, changelogOk: upChangelogOk, changelogRateLimited: upChangelogRateLimited, releasesUrl: upReleasesUrl, busy: upBusy, message: upMsg, onCheck: () => {
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
310
|
+
const settingsBody = settings ? (_jsx(SettingsBody, { settings: settings, canWrite: canWrite, bound: bound, savingKey: savingKey, onSave: saveSettings })) : loadError ? (_jsxs("p", { className: "hint-warn st-banner", children: [tr('settings.loadFailed'), ": ", loadError] })) : (_jsx("p", { className: "empty st-banner", children: tr('settings.loading') }));
|
|
311
|
+
return (_jsxs("section", { className: "page", children: [_jsx("div", { className: "page-heading", children: _jsxs("div", { children: [_jsx("p", { className: "eyebrow", children: tr('nav.settings') }), _jsx("h1", { children: tr('settings.title') }), _jsx("p", { children: tr('settings.subtitle') })] }) }), _jsxs("div", { className: "settings-grid", children: [settingsBody, _jsx(UpdateCard, { canWrite: canWrite, status: upStatus, statusError: upStatusError, changelog: upChangelog, changelogOpen: upChangelogOpen, changelogOk: upChangelogOk, changelogRateLimited: upChangelogRateLimited, releasesUrl: upReleasesUrl, busy: upBusy, message: upMsg, onCheck: () => {
|
|
312
|
+
setUpStatus(null);
|
|
313
|
+
setUpChangelog(null);
|
|
314
|
+
setUpChangelogOpen(false);
|
|
315
|
+
setUpMsg(null);
|
|
316
|
+
setUpStatusError(null);
|
|
317
|
+
void fetchStatus();
|
|
318
|
+
}, onToggleChangelog: () => {
|
|
319
|
+
const next = !upChangelogOpen;
|
|
320
|
+
setUpChangelogOpen(next);
|
|
321
|
+
if (next && upChangelog === null)
|
|
322
|
+
void loadChangelog();
|
|
323
|
+
}, onUpdate: () => void doUpdate(), onRestart: () => { if (window.confirm(tr('update.confirmPlainRestart')))
|
|
324
|
+
void doRestart(null); } })] }), settingsMsg ? (_jsx("div", { className: `st-status ${settingsMsg.cls ?? ''}`, "data-settings-status": true, role: "status", children: settingsMsg.text })) : null] }));
|
|
325
|
+
}
|
|
326
|
+
function SectionIcon(props) {
|
|
327
|
+
const shapes = {
|
|
328
|
+
access: (_jsxs(_Fragment, { children: [_jsx("path", { d: "M8 1.7l5 1.9v4.1c0 3.2-2.1 5.6-5 6.6-2.9-1-5-3.4-5-6.6V3.6z" }), _jsx("path", { d: "M5.9 8l1.5 1.5 2.7-2.8" })] })),
|
|
329
|
+
cards: _jsx("path", { d: "M2.2 3.2h11.6v7.4H8.3L5.1 13.2v-2.6H2.2z" }),
|
|
330
|
+
experimental: (_jsxs(_Fragment, { children: [_jsx("path", { d: "M6.1 1.8h3.8M7 1.8v4L3.1 12.4a1.35 1.35 0 001.2 2h7.4a1.35 1.35 0 001.2-2L9 5.8v-4" }), _jsx("path", { d: "M4.7 10.6h6.6" })] })),
|
|
331
|
+
meeting: (_jsxs(_Fragment, { children: [_jsx("rect", { x: "1.6", y: "4.1", width: "8.9", height: "7.8", rx: "1.4" }), _jsx("path", { d: "M10.5 7.4l3.9-2.3v5.8l-3.9-2.3" })] })),
|
|
332
|
+
whiteboard: (_jsxs(_Fragment, { children: [_jsx("rect", { x: "1.9", y: "2.4", width: "12.2", height: "8.4", rx: "1.2" }), _jsx("path", { d: "M4.7 8.2c1-.9 1.8-2.5 2.5-1.8.7.7-.5 2 .3 2.3.7.3 1.8-1.6 3.8-1.9" }), _jsx("path", { d: "M5.3 13.9h5.4M8 10.8v3.1" })] })),
|
|
333
|
+
repo: (_jsxs(_Fragment, { children: [_jsx("circle", { cx: "4.3", cy: "3.6", r: "1.7" }), _jsx("circle", { cx: "4.3", cy: "12.4", r: "1.7" }), _jsx("circle", { cx: "11.9", cy: "5.3", r: "1.7" }), _jsx("path", { d: "M4.3 5.3v5.4M11.9 7c0 2.7-3.6 2.9-5.7 3.6" })] })),
|
|
334
|
+
maintenance: (_jsx(_Fragment, { children: _jsx("path", { d: "M13.9 4.7a3.7 3.7 0 01-4.9 4.5l-4.4 4.4a1.6 1.6 0 01-2.2-2.2L6.8 7a3.7 3.7 0 014.5-4.9L8.9 4.5l2.6 2.6z" }) })),
|
|
335
|
+
update: (_jsxs(_Fragment, { children: [_jsx("path", { d: "M13.5 6.2A5.8 5.8 0 103 10.9" }), _jsx("path", { d: "M13.7 2.5v3.9H9.8" }), _jsx("path", { d: "M8 5.6v4.6M6 8.3l2 1.9 2-1.9" })] })),
|
|
336
|
+
};
|
|
337
|
+
return (_jsx("svg", { viewBox: "0 0 16 16", fill: "none", stroke: "currentColor", strokeWidth: "1.4", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: shapes[props.name] }));
|
|
338
|
+
}
|
|
339
|
+
function SectionCard(props) {
|
|
340
|
+
return (_jsxs("article", { className: "bd-card st-card", "data-saving": props.saving ? '' : undefined, children: [_jsxs("header", { className: "st-card-head", children: [_jsx("span", { className: "st-chip", "aria-hidden": "true", children: _jsx(SectionIcon, { name: props.icon }) }), _jsx("h3", { children: props.title })] }), props.children] }));
|
|
341
|
+
}
|
|
342
|
+
/** Long help copy defaults to a 2-line clamp; click toggles the full text
|
|
343
|
+
* (same interaction as bot-defaults' bd-help, without flipping the switch). */
|
|
344
|
+
function HelpText(props) {
|
|
345
|
+
const [open, setOpen] = useState(false);
|
|
346
|
+
return (_jsx("small", { className: open ? 'open' : undefined, onClick: e => {
|
|
347
|
+
e.preventDefault();
|
|
348
|
+
e.stopPropagation();
|
|
349
|
+
setOpen(v => !v);
|
|
350
|
+
}, children: props.text }));
|
|
297
351
|
}
|
|
298
352
|
function SettingsBody(props) {
|
|
299
353
|
const tr = useT();
|
|
@@ -305,33 +359,68 @@ function SettingsBody(props) {
|
|
|
305
359
|
const saveBoolean = (key, value) => {
|
|
306
360
|
void props.onSave(key, { [key]: value }, s => ({ ...s, [key]: value }));
|
|
307
361
|
};
|
|
308
|
-
return (
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
362
|
+
return (_jsxs(_Fragment, { children: [canWrite ? null : _jsx("p", { className: "hint-warn st-banner", children: tr('settings.readOnlyVisitor') }), _jsxs(SectionCard, { icon: "access", title: tr('settings.sectionAccess'), saving: savingKey === 'publicReadOnly' || savingKey === 'remoteAccess', children: [_jsx(ToggleRow, { title: tr('settings.publicReadOnly'), help: tr('settings.publicReadOnlyHelp'), checked: settings.publicReadOnly, disabled: dis || savingKey === 'publicReadOnly', onChange: value => saveBoolean('publicReadOnly', value) }), bound ? (_jsx(ToggleRow, { title: tr('settings.remoteAccess'), help: tr('settings.remoteAccessHelp'), checked: settings.remoteAccess, disabled: dis || savingKey === 'remoteAccess', onChange: value => saveBoolean('remoteAccess', value) })) : null] }), _jsxs(SectionCard, { icon: "meeting", title: tr('settings.sectionVcMeetingAgent'), saving: savingKey === 'vcMeetingAgent', children: [_jsx(ToggleRow, { title: tr('settings.vcMeetingAgent'), help: tr('settings.vcMeetingAgentHelp'), checked: settings.vcMeetingAgent.enabled, disabled: dis || savingKey === 'vcMeetingAgent', onChange: value => {
|
|
363
|
+
void props.onSave('vcMeetingAgent', { vcMeetingAgent: { enabled: value } }, s => ({ ...s, vcMeetingAgent: { ...s.vcMeetingAgent, enabled: value } }));
|
|
364
|
+
} }), _jsxs("label", { className: "st-field", children: [_jsx("span", { children: tr('settings.vcMeetingListenerBot') }), _jsxs("select", { value: settings.vcMeetingAgent.listenerBotAppId ?? '', disabled: dis || savingKey === 'vcMeetingAgent', onChange: e => {
|
|
365
|
+
const value = e.currentTarget.value || null;
|
|
366
|
+
void props.onSave('vcMeetingAgent', { vcMeetingAgent: { listenerBotAppId: value } }, s => ({ ...s, vcMeetingAgent: { ...s.vcMeetingAgent, listenerBotAppId: value } }));
|
|
367
|
+
}, children: [_jsx("option", { value: "", children: tr('settings.vcMeetingListenerBotAuto') }), settings.vcMeetingAgent.listenerBotOptions.map(bot => {
|
|
368
|
+
const label = bot.botName || bot.larkAppId;
|
|
369
|
+
const detail = bot.cliId ? ` · ${bot.cliId}` : '';
|
|
370
|
+
const suffixParts = [
|
|
371
|
+
bot.vcMeetingAgentEnabled === true ? undefined : tr('settings.vcMeetingListenerBotDisabled'),
|
|
372
|
+
bot.hasLarkCliProfile === true ? undefined : tr('settings.vcMeetingListenerBotNoProfile'),
|
|
373
|
+
].filter(Boolean);
|
|
374
|
+
const suffix = suffixParts.length > 0 ? ` · ${suffixParts.join(' · ')}` : '';
|
|
375
|
+
return (_jsxs("option", { value: bot.larkAppId, children: [label, detail, suffix] }, bot.larkAppId));
|
|
376
|
+
})] }), _jsx(HelpText, { text: tr('settings.vcMeetingListenerBotHelp') })] })] }), _jsx(SectionCard, { icon: "cards", title: tr('settings.sectionCards'), saving: savingKey === 'openTerminalInFeishu', children: _jsx(ToggleRow, { title: tr('settings.openTerminalInFeishu'), help: tr('settings.openTerminalInFeishuHelp'), checked: settings.openTerminalInFeishu, disabled: dis || savingKey === 'openTerminalInFeishu', onChange: value => saveBoolean('openTerminalInFeishu', value) }) }), _jsx(SectionCard, { icon: "experimental", title: tr('settings.sectionExperimental'), saving: savingKey === 'chatBotDiscovery', children: _jsx(ToggleRow, { title: tr('settings.chatBotDiscovery'), help: tr('settings.chatBotDiscoveryHelp'), checked: settings.chatBotDiscovery, disabled: dis || savingKey === 'chatBotDiscovery', onChange: value => saveBoolean('chatBotDiscovery', value) }) }), _jsx(SectionCard, { icon: "whiteboard", title: tr('settings.sectionWhiteboard'), saving: savingKey === 'whiteboard', children: _jsx(ToggleRow, { title: tr('settings.whiteboardEnable'), help: tr('settings.whiteboardEnableHelp'), checked: settings.whiteboard.enabled, disabled: dis || savingKey === 'whiteboard', onChange: value => {
|
|
377
|
+
void props.onSave('whiteboard', { whiteboard: { enabled: value } }, s => ({ ...s, whiteboard: { enabled: value } }));
|
|
378
|
+
} }) }), _jsx(SectionCard, { icon: "repo", title: tr('settings.sectionRepoPicker'), saving: savingKey === 'repoPickerMode', children: _jsxs("label", { className: "st-field", children: [_jsx("span", { children: tr('settings.repoPickerMode') }), _jsxs("select", { value: settings.repoPickerMode, disabled: dis || savingKey === 'repoPickerMode', onChange: e => {
|
|
379
|
+
const value = e.currentTarget.value === 'repos' ? 'repos' : 'all';
|
|
380
|
+
void props.onSave('repoPickerMode', { repoPickerMode: value }, s => ({ ...s, repoPickerMode: value }));
|
|
381
|
+
}, children: [_jsx("option", { value: "all", children: tr('settings.repoPickerModeAll') }), _jsx("option", { value: "repos", children: tr('settings.repoPickerModeRepos') })] }), _jsx(HelpText, { text: tr('settings.repoPickerModeHelp') })] }) }), _jsx(SectionCard, { icon: "maintenance", title: tr('settings.sectionSchedule'), saving: savingKey === 'scheduleTimeZone', children: _jsx(TimeZoneRow, { value: settings.scheduleTimeZone, host: settings.hostTimeZone, effective: settings.effectiveScheduleTimeZone, disabled: dis || savingKey === 'scheduleTimeZone', onSave: tz => {
|
|
382
|
+
void props.onSave('scheduleTimeZone', { scheduleTimeZone: tz }, s => ({ ...s, scheduleTimeZone: tz ?? '' }));
|
|
383
|
+
} }) }), _jsxs(SectionCard, { icon: "maintenance", title: tr('settings.sectionMaintenance'), saving: savingKey === 'autoUpdate' || savingKey === 'autoRestart', children: [_jsx(ToggleRow, { title: tr('settings.autoUpdate'), help: tr('settings.autoUpdateHelp'), checked: autoUpdate.enabled, disabled: autoUpdateDisabled || savingKey === 'autoUpdate', onChange: value => {
|
|
384
|
+
const task = { enabled: value, time: autoUpdate.time };
|
|
385
|
+
void props.onSave('autoUpdate', { maintenance: { autoUpdate: task } }, s => ({
|
|
386
|
+
...s,
|
|
387
|
+
maintenance: { ...s.maintenance, autoUpdate: task },
|
|
388
|
+
}));
|
|
389
|
+
} }), _jsx("div", { className: "st-subrow", children: _jsxs("label", { className: "st-field", children: [_jsx("span", { children: tr('settings.maintenanceTime') }), _jsx("input", { type: "time", value: autoUpdate.time, disabled: autoUpdateDisabled || savingKey === 'autoUpdate', onChange: e => {
|
|
390
|
+
const task = { enabled: autoUpdate.enabled, time: e.currentTarget.value || '04:00' };
|
|
391
|
+
void props.onSave('autoUpdate', { maintenance: { autoUpdate: task } }, s => ({
|
|
392
|
+
...s,
|
|
393
|
+
maintenance: { ...s.maintenance, autoUpdate: task },
|
|
394
|
+
}));
|
|
395
|
+
} })] }) }), settings.localDevInstall ? _jsx("p", { className: "hint-warn", children: tr('settings.autoUpdateLocalDev') }) : null, _jsx(ToggleRow, { title: tr('settings.autoRestart'), help: tr('settings.autoRestartHelp'), checked: settings.maintenance.autoRestart?.enabled === true, disabled: autoRestartDisabled || savingKey === 'autoRestart', onChange: value => {
|
|
396
|
+
const task = { enabled: value };
|
|
397
|
+
void props.onSave('autoRestart', { maintenance: { autoRestart: task } }, s => ({
|
|
398
|
+
...s,
|
|
399
|
+
maintenance: { ...s.maintenance, autoRestart: task },
|
|
400
|
+
}));
|
|
401
|
+
} })] })] }));
|
|
402
|
+
}
|
|
403
|
+
export function TimeZoneRow(props) {
|
|
404
|
+
const tr = useT();
|
|
405
|
+
const [draft, setDraft] = useState(props.value);
|
|
406
|
+
// Re-sync when a save round-trips (or another client changes the value).
|
|
407
|
+
useEffect(() => { setDraft(props.value); }, [props.value]);
|
|
408
|
+
const commit = () => {
|
|
409
|
+
const next = draft.trim();
|
|
410
|
+
if (next === props.value.trim())
|
|
411
|
+
return; // unchanged — skip the PUT
|
|
412
|
+
props.onSave(next === '' ? null : next); // empty ⇒ clear override, follow host
|
|
413
|
+
};
|
|
414
|
+
const effective = props.effective || props.value.trim() || props.host;
|
|
415
|
+
return (_jsxs("label", { className: "form-row", children: [_jsx("span", { children: tr('settings.scheduleTimeZone') }), _jsx("input", { type: "text", list: "tz-common", value: draft, placeholder: props.host, disabled: props.disabled, onChange: e => setDraft(e.currentTarget.value), onBlur: commit, onKeyDown: e => {
|
|
416
|
+
if (e.key === 'Enter') {
|
|
417
|
+
e.preventDefault();
|
|
418
|
+
e.currentTarget.blur();
|
|
419
|
+
}
|
|
420
|
+
} }), _jsx("datalist", { id: "tz-common", children: COMMON_TIMEZONES.map(z => _jsx("option", { value: z }, z)) }), _jsx("small", { children: tr('settings.scheduleTimeZoneHelp', { host: props.host, effective }) })] }));
|
|
332
421
|
}
|
|
333
422
|
function ToggleRow(props) {
|
|
334
|
-
return (_jsxs("label", { className: "toggle-row", children: [_jsx("input", { type: "checkbox", checked: props.checked, disabled: props.disabled, onChange: e => props.onChange(e.currentTarget.checked) }), _jsx("span", { className: "switch", "aria-hidden": "true" }), _jsxs("span", { className: "toggle-tx", children: [_jsx("strong", { children: props.title }), _jsx(
|
|
423
|
+
return (_jsxs("label", { className: "toggle-row", children: [_jsx("input", { type: "checkbox", checked: props.checked, disabled: props.disabled, onChange: e => props.onChange(e.currentTarget.checked) }), _jsx("span", { className: "switch", "aria-hidden": "true" }), _jsxs("span", { className: "toggle-tx", children: [_jsx("strong", { children: props.title }), _jsx(HelpText, { text: props.help })] })] }));
|
|
335
424
|
}
|
|
336
425
|
function UpdateCard(props) {
|
|
337
426
|
const tr = useT();
|
|
@@ -348,9 +437,9 @@ function UpdateCard(props) {
|
|
|
348
437
|
else {
|
|
349
438
|
const s = props.status;
|
|
350
439
|
const updateDisabled = s.localDevInstall || props.busy;
|
|
351
|
-
inner = (_jsxs(_Fragment, { children: [_jsxs("p", { className: "update-version", children: [
|
|
440
|
+
inner = (_jsxs(_Fragment, { children: [_jsxs("p", { className: "update-version", children: [_jsx("span", { className: "st-update-label", children: tr('update.current') }), _jsxs("strong", { className: "st-update-ver", children: ["v", s.current] }), _jsx(UpdateBadge, { status: s })] }), !s.node.ok ? _jsx("p", { className: "hint-warn", children: tr('update.nodeWarn', { version: s.node.version, required: s.node.required }) }) : null, s.localDevInstall ? _jsx("p", { className: "hint-warn", children: tr('update.localDev') }) : null, s.installs.multiple ? _jsx(MultiInstallWarning, { entries: s.installs.entries }) : null, _jsxs("div", { className: "update-actions", children: [_jsx("button", { type: "button", "data-up": "check", disabled: props.busy, onClick: props.onCheck, children: tr('update.btnCheck') }), _jsx("button", { type: "button", "data-up": "changelog", disabled: props.busy, onClick: props.onToggleChangelog, children: props.changelogOpen ? tr('update.btnChangelogHide') : tr('update.btnChangelog') }), _jsx("button", { type: "button", className: "primary", "data-up": "update", disabled: updateDisabled, onClick: props.onUpdate, children: tr('update.btnUpdate') }), _jsx("button", { type: "button", "data-up": "restart", disabled: props.busy, onClick: props.onRestart, children: tr('update.btnRestart') })] }), props.changelogOpen ? (_jsx(ChangelogPanel, { changelog: props.changelog, ok: props.changelogOk, rateLimited: props.changelogRateLimited, releasesUrl: props.releasesUrl })) : null, props.message ? _jsx("p", { className: `oncall-status ${props.message.cls ?? ''}`, children: props.message.text }) : null] }));
|
|
352
441
|
}
|
|
353
|
-
return (_jsx(
|
|
442
|
+
return (_jsx(SectionCard, { icon: "update", title: tr('update.section'), children: inner }));
|
|
354
443
|
}
|
|
355
444
|
function UpdateBadge(props) {
|
|
356
445
|
const tr = useT();
|