From df5d0a81ece88776bf14f8165d6229905735275a Mon Sep 17 00:00:00 2001 From: Steve Kinney Date: Thu, 30 Dec 2021 08:51:01 -0800 Subject: [PATCH] Implement compact view for activities --- src/lib/components/event-details.svelte | 4 +- src/lib/models/activity.ts | 4 ++ src/lib/utilities/route-for.ts | 32 +++++++++ .../[run]/history/compact/__layout.svelte | 2 +- .../activity-[eventId]/__layout.svelte | 69 +++++++++++++++++++ .../activity-[eventId]/events/[id].svelte | 23 +++++++ .../compact/activity-[eventId]/index.svelte | 23 +++++++ .../history/compact/activity-[id].svelte | 29 -------- .../[run]/history/full/__layout.svelte | 2 +- 9 files changed, 156 insertions(+), 32 deletions(-) create mode 100644 src/routes/namespaces/[namespace]/workflows/[workflow]/[run]/history/compact/activity-[eventId]/__layout.svelte create mode 100644 src/routes/namespaces/[namespace]/workflows/[workflow]/[run]/history/compact/activity-[eventId]/events/[id].svelte create mode 100644 src/routes/namespaces/[namespace]/workflows/[workflow]/[run]/history/compact/activity-[eventId]/index.svelte delete mode 100644 src/routes/namespaces/[namespace]/workflows/[workflow]/[run]/history/compact/activity-[id].svelte diff --git a/src/lib/components/event-details.svelte b/src/lib/components/event-details.svelte index d64e37d66e..ea5562866f 100644 --- a/src/lib/components/event-details.svelte +++ b/src/lib/components/event-details.svelte @@ -11,7 +11,7 @@ {#each Object.entries(attributes) as [key, value]}

{format(key)}

@@ -23,6 +23,8 @@ {:else if value}

{value}

+ {:else} +

Undefined

{/if}
diff --git a/src/lib/models/activity.ts b/src/lib/models/activity.ts index 5a9b1e8c94..9083255723 100644 --- a/src/lib/models/activity.ts +++ b/src/lib/models/activity.ts @@ -43,6 +43,10 @@ export class Activity { return this._events.get(type); } + toArray(): HistoryEventWithId[] { + return [...this]; + } + get events(): typeof this._events { return this._events; } diff --git a/src/lib/utilities/route-for.ts b/src/lib/utilities/route-for.ts index f145155783..3841f7beae 100644 --- a/src/lib/utilities/route-for.ts +++ b/src/lib/utilities/route-for.ts @@ -7,6 +7,7 @@ type RoutePath = | 'workflow.events.full.pending' | 'workflow.events.compact' | 'workflow.events.compact.activity' + | 'workflow.events.compact.activity.event' | 'workflow.events.json' | 'workflow.stack-trace' | 'workflow.query' @@ -23,6 +24,9 @@ export type WorkflowParameters = { export type EventParameter = { eventId: string; } & WorkflowParameters; +export type ActivityParameter = { + activityId: string; +} & EventParameter; export type TaskQueueParameter = { queue: string; } & NamespaceParameter; @@ -30,6 +34,7 @@ export type TaskQueueParameter = { export type RouteParameters = NamespaceParameter & WorkflowParameters & EventParameter & + ActivityParameter & TaskQueueParameter; const routeForNamespace = ({ namespace }: NamespaceParameter): string => { @@ -68,6 +73,19 @@ const routeForEventHistoryItem = ( return `${routeForEventHistory(parameters, view)}/${eventType}-${eventId}`; }; +const routeForActivity = ( + parameters: WorkflowParameters, + view: EventHistoryView, + eventType: EventView, + activityId: string, + eventId: string, +): string => { + return `${routeForEventHistory( + parameters, + view, + )}/${eventType}-${eventId}/events/${activityId}`; +}; + const routeForWorkers = ({ queue, ...parameters }: TaskQueueParameter) => { return `${routeForNamespace(parameters)}/workers/${queue}`; }; @@ -94,6 +112,10 @@ export function routeFor( | 'workflow.events.compact.activity', parameters: EventParameter, ): string; +export function routeFor( + path: 'workflow.events.compact.activity.event', + parameters: ActivityParameter, +): string; export function routeFor( path: 'workers', parameters: TaskQueueParameter, @@ -150,6 +172,16 @@ export function routeFor(path: RoutePath, parameters: RouteParameters): string { ); } + if (path === 'workflow.events.compact.activity.event') { + return routeForActivity( + parameters, + 'compact', + 'activity', + parameters.eventId, + parameters.activityId, + ); + } + if (path === 'workflow.query') { return routeForWorkflow(parameters) + '/query'; } diff --git a/src/routes/namespaces/[namespace]/workflows/[workflow]/[run]/history/compact/__layout.svelte b/src/routes/namespaces/[namespace]/workflows/[workflow]/[run]/history/compact/__layout.svelte index 464276728f..ca6a50663c 100644 --- a/src/routes/namespaces/[namespace]/workflows/[workflow]/[run]/history/compact/__layout.svelte +++ b/src/routes/namespaces/[namespace]/workflows/[workflow]/[run]/history/compact/__layout.svelte @@ -24,7 +24,7 @@ -
+
diff --git a/src/routes/namespaces/[namespace]/workflows/[workflow]/[run]/history/compact/activity-[eventId]/__layout.svelte b/src/routes/namespaces/[namespace]/workflows/[workflow]/[run]/history/compact/activity-[eventId]/__layout.svelte new file mode 100644 index 0000000000..1cce372a8c --- /dev/null +++ b/src/routes/namespaces/[namespace]/workflows/[workflow]/[run]/history/compact/activity-[eventId]/__layout.svelte @@ -0,0 +1,69 @@ + + + + +
+ + +
+ + diff --git a/src/routes/namespaces/[namespace]/workflows/[workflow]/[run]/history/compact/activity-[eventId]/events/[id].svelte b/src/routes/namespaces/[namespace]/workflows/[workflow]/[run]/history/compact/activity-[eventId]/events/[id].svelte new file mode 100644 index 0000000000..5cc6c9fbd2 --- /dev/null +++ b/src/routes/namespaces/[namespace]/workflows/[workflow]/[run]/history/compact/activity-[eventId]/events/[id].svelte @@ -0,0 +1,23 @@ + + + + + diff --git a/src/routes/namespaces/[namespace]/workflows/[workflow]/[run]/history/compact/activity-[eventId]/index.svelte b/src/routes/namespaces/[namespace]/workflows/[workflow]/[run]/history/compact/activity-[eventId]/index.svelte new file mode 100644 index 0000000000..cce3afc1cb --- /dev/null +++ b/src/routes/namespaces/[namespace]/workflows/[workflow]/[run]/history/compact/activity-[eventId]/index.svelte @@ -0,0 +1,23 @@ + diff --git a/src/routes/namespaces/[namespace]/workflows/[workflow]/[run]/history/compact/activity-[id].svelte b/src/routes/namespaces/[namespace]/workflows/[workflow]/[run]/history/compact/activity-[id].svelte deleted file mode 100644 index 8354a915fa..0000000000 --- a/src/routes/namespaces/[namespace]/workflows/[workflow]/[run]/history/compact/activity-[id].svelte +++ /dev/null @@ -1,29 +0,0 @@ - - - - -
-

{activity.name} (To be implemented.)

-
diff --git a/src/routes/namespaces/[namespace]/workflows/[workflow]/[run]/history/full/__layout.svelte b/src/routes/namespaces/[namespace]/workflows/[workflow]/[run]/history/full/__layout.svelte index a19e3efe43..535c808712 100644 --- a/src/routes/namespaces/[namespace]/workflows/[workflow]/[run]/history/full/__layout.svelte +++ b/src/routes/namespaces/[namespace]/workflows/[workflow]/[run]/history/full/__layout.svelte @@ -45,7 +45,7 @@
-
+