From 76cd55a2009ca7c3ee5ba56d6f934ef438db5671 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCrkan=20G=C3=BCran?= Date: Wed, 8 Mar 2023 20:40:56 +0100 Subject: [PATCH] Refactor --- .../workflow-instances/components/journal.tsx | 34 ++++--------------- .../workflow-instances/components/viewer.tsx | 6 ++-- 2 files changed, 9 insertions(+), 31 deletions(-) diff --git a/src/designer/elsa-workflows-designer/src/modules/workflow-instances/components/journal.tsx b/src/designer/elsa-workflows-designer/src/modules/workflow-instances/components/journal.tsx index 4c1a3166a..98485de13 100644 --- a/src/designer/elsa-workflows-designer/src/modules/workflow-instances/components/journal.tsx +++ b/src/designer/elsa-workflows-designer/src/modules/workflow-instances/components/journal.tsx @@ -1,7 +1,7 @@ import {Component, h, Method, Prop, State, Watch, Event, EventEmitter} from "@stencil/core"; import {Activity, Workflow, WorkflowExecutionLogRecord, WorkflowInstance, Container as ActivityContainer} from "../../../models"; import {Container} from "typedi"; -import {ActivityIconRegistry, ActivityNode, createActivityNodeMap, flatten, walkActivities} from "../../../services"; +import {ActivityIconRegistry} from "../../../services"; import {durationToString, formatTime, getDuration, Hash, isNullOrWhitespace} from "../../../utils"; import {ActivityExecutionEventBlock} from "../models"; import {ActivityIconSize} from "../../../components/icons/activities"; @@ -28,8 +28,6 @@ export class Journal { @Prop() workflowInstance: WorkflowInstance; @Prop() workflowDefinition: WorkflowDefinition; - @State() nodeMap: Hash = {}; - @State() nodes: Array = []; @State() workflowExecutionLogRecords: Array = []; @State() rootBlocks: Array = []; @State() expandedBlocks: Array = []; @@ -38,14 +36,14 @@ export class Journal { @Watch('workflowInstance') async onWorkflowInstanceChanged(value: string) { - this.createGraph(); + this.createActivityMapForJournal(); await this.loadJournalPage(0); } @Watch('workflowDefinition') async onWorkflowDefinitionChanged(value: string) { this.rootBlocks = []; - this.createGraph(); + this.createActivityMapForJournal(); await this.loadJournalPage(0); } @@ -56,8 +54,7 @@ export class Journal { } async componentWillLoad(): Promise { - this.createGraph(); - this.journalActivityMap = this.createActivityMapForJournal(); + this.createActivityMapForJournal(); await this.loadJournalPage(0); } @@ -170,26 +167,6 @@ export class Journal { }); } - private createGraph = () => { - if (!this.workflowInstance || !this.workflowDefinition) - return; - - const workflow: Workflow = { - type: 'Elsa.Workflow', - id: 'Workflow1', // Always 'Workflow1'. - version: this.workflowDefinition.version, - customProperties: this.workflowDefinition.customProperties, - canStartWorkflow: false, - runAsynchronously: false, - metadata: {}, - root: this.workflowDefinition.root, - variables: this.workflowDefinition.variables - }; - - this.nodes = flatten(walkActivities(workflow)); - this.nodeMap = createActivityNodeMap(this.nodes); - }; - private loadJournalPage = async (page: number): Promise => { if (!this.workflowInstance || !this.workflowDefinition) return; @@ -272,7 +249,8 @@ export class Journal { const map = {}; for (const activity of allActivities) map[activity.id] = activity; - return map; + + this.journalActivityMap = map; } private walkActivitiesRecursive(activityContainer: ActivityContainer, allActivities: Array) { diff --git a/src/designer/elsa-workflows-designer/src/modules/workflow-instances/components/viewer.tsx b/src/designer/elsa-workflows-designer/src/modules/workflow-instances/components/viewer.tsx index 975cdaaae..99eef5300 100644 --- a/src/designer/elsa-workflows-designer/src/modules/workflow-instances/components/viewer.tsx +++ b/src/designer/elsa-workflows-designer/src/modules/workflow-instances/components/viewer.tsx @@ -87,9 +87,9 @@ export class WorkflowInstanceViewer { @Listen('journalItemSelected') private async handleJournalItemSelected(e: CustomEvent) { - const activityId = e.detail; + const activityId = e.detail.activity.id; const graph = await this.flowchartElement.getGraph(); - const node = graph.getNodes().find(n => n.id == e.detail.activity.id) + const node = graph.getNodes().find(n => n.id == activityId) if (node != null) { graph.resetSelection(node); @@ -100,7 +100,7 @@ export class WorkflowInstanceViewer { this.selectedActivity = e.detail.activity; } - this.selectedActivityExecutionLog = await this.workflowJournalElement.getExecutionLogByActivityId(e.detail.activity.id); + this.selectedActivityExecutionLog = await this.workflowJournalElement.getExecutionLogByActivityId(activityId); } @Listen('graphUpdated')