From 880126763fcc4b6e2a093a1183cbe3966b7abaa3 Mon Sep 17 00:00:00 2001 From: Gustavo Bascope Date: Fri, 9 Jun 2023 16:38:52 -0400 Subject: [PATCH 01/14] Implement loading state for tooltip --- .../modeler/components/ProcessMap.vue | 17 +++++++ .../modeler/components/ProcessMapTooltip.vue | 45 ++++++++++++++++--- 2 files changed, 56 insertions(+), 6 deletions(-) diff --git a/resources/js/processes/modeler/components/ProcessMap.vue b/resources/js/processes/modeler/components/ProcessMap.vue index 8d8fe2431d..5d214d8dc9 100644 --- a/resources/js/processes/modeler/components/ProcessMap.vue +++ b/resources/js/processes/modeler/components/ProcessMap.vue @@ -13,6 +13,7 @@ left: `${tooltip.newX}px`, top: `${tooltip.newY}px` }" + @is-loading="getIsLoading" /> { + this.calculateTooltipPosition(); + }); + } + }, + deep: true, + }, + }, mounted() { ProcessMaker.$modeler = this.$refs.modeler; }, @@ -106,6 +120,9 @@ export default { this.tooltip.newX = window.innerWidth - this.rectTooltip.width; } }, + getIsLoading(value) { + this.tooltip.isLoading = value; + }, }, }; diff --git a/resources/js/processes/modeler/components/ProcessMapTooltip.vue b/resources/js/processes/modeler/components/ProcessMapTooltip.vue index a9120a8816..83671b5399 100644 --- a/resources/js/processes/modeler/components/ProcessMapTooltip.vue +++ b/resources/js/processes/modeler/components/ProcessMapTooltip.vue @@ -4,6 +4,16 @@ class="card shadow-sm" >
+
+
+
@@ -11,16 +21,16 @@ {{ nodeId }}

- Status:Complete + {{ $t('Status') }}:Complete

- Completed By:UserName + {{ $t('Completed By') }}:UserName

- Time Started:11/21/23 16:51 + {{ $t('Time Started') }}:11/21/23 16:51

- Time Completed:11/21/23 16:53 + {{ $t('Time Completed') }}:11/21/23 16:53

@@ -35,10 +45,33 @@ export default { return ""; }, }, - }, - + data() { + return { + isLoading: false, + }; + }, + watch: { + nodeId() { + this.getInformation(); + }, + isLoading(value) { + this.$emit("is-loading", value); + }, + }, + mounted() { + // + }, + methods: { + getInformation() { + this.isLoading = true; + setTimeout(() => { + this.isLoading = false; + }, 2000); + }, + }, }; + @endsection From 6218f76429996ab84a804981c5991872ea5ab93d Mon Sep 17 00:00:00 2001 From: Gustavo Bascope Date: Tue, 13 Jun 2023 15:23:42 -0400 Subject: [PATCH 04/14] ProcessRequestToken endpoint and tooltip information --- .../Api/ProcessRequestController.php | 13 ++- .../Controllers/Process/ModelerController.php | 1 + .../modeler/components/ProcessMap.vue | 5 + .../modeler/components/ProcessMapTooltip.vue | 95 ++++++++++++++----- .../processes/modeler/inflight.blade.php | 1 + 5 files changed, 87 insertions(+), 28 deletions(-) diff --git a/ProcessMaker/Http/Controllers/Api/ProcessRequestController.php b/ProcessMaker/Http/Controllers/Api/ProcessRequestController.php index c7ef45d8ed..723d7d7eb1 100644 --- a/ProcessMaker/Http/Controllers/Api/ProcessRequestController.php +++ b/ProcessMaker/Http/Controllers/Api/ProcessRequestController.php @@ -613,9 +613,16 @@ private function getTaskName($fields, $request) public function getRequestToken(Request $httpRequest, ProcessRequest $request) { $maxIdToken = $request->tokens() - ->where(['element_id' => 'node_220'])->max('id'); - - $token = ProcessRequestToken::where(['id' => $maxIdToken])->get(); + ->where(['element_id' => $httpRequest->element_id])->max('id'); + + $token = ProcessRequestToken::where(['process_request_tokens.id' => $maxIdToken]) + ->join('users', 'users.id', 'process_request_tokens.user_id') + ->selectRaw('element_id, element_name, process_request_tokens.created_at, completed_at, username, + CASE + WHEN process_request_tokens.status = "CLOSED" THEN "Completed" + WHEN process_request_tokens.status = "ACTIVE" THEN "In Progress" + END as status') + ->get(); return new ApiResource($token); } diff --git a/ProcessMaker/Http/Controllers/Process/ModelerController.php b/ProcessMaker/Http/Controllers/Process/ModelerController.php index 688f02c0de..2a0b4e0575 100644 --- a/ProcessMaker/Http/Controllers/Process/ModelerController.php +++ b/ProcessMaker/Http/Controllers/Process/ModelerController.php @@ -74,6 +74,7 @@ public function inflight(ModelerManager $manager, Process $process, Request $req 'bpmn' => $bpmn, 'requestCompletedNodes' => $filteredCompletedNodes, 'requestInProgressNodes' => $requestInProgressNodes, + 'requestId' => $request->request_id, ]); } } diff --git a/resources/js/processes/modeler/components/ProcessMap.vue b/resources/js/processes/modeler/components/ProcessMap.vue index 5d214d8dc9..1c726196f2 100644 --- a/resources/js/processes/modeler/components/ProcessMap.vue +++ b/resources/js/processes/modeler/components/ProcessMap.vue @@ -9,6 +9,8 @@ v-show="tooltip.isActive" ref="tooltip" :node-id="tooltip.nodeId" + :node-name="tooltip.nodeName" + :request-id="requestId" :style="{ left: `${tooltip.newX}px`, top: `${tooltip.newY}px` @@ -52,6 +54,7 @@ export default { isActive: false, isLoading: false, nodeId: null, + nodeName: null, allowedNodes: [ "bpmn:Task", "bpmn:ManualTask", @@ -65,6 +68,7 @@ export default { }, requestCompletedNodes: window.ProcessMaker.modeler.requestCompletedNodes, requestInProgressNodes: window.ProcessMaker.modeler.requestInProgressNodes, + requestId: window.ProcessMaker.modeler.requestId, }; }, watch: { @@ -98,6 +102,7 @@ export default { if ((isNodeTooltipAllowed && this.tooltip.isActive === false) || (isNodeTooltipAllowed && this.tooltip.nodeId !== node.id)) { this.tooltip.nodeId = node.id; + this.tooltip.nodeName = node.name; this.tooltip.isActive = true; this.$nextTick(() => { this.tooltip.coordinates = { x: event.clientX, y: event.clientY }; diff --git a/resources/js/processes/modeler/components/ProcessMapTooltip.vue b/resources/js/processes/modeler/components/ProcessMapTooltip.vue index 9357c38c59..10ececc3c8 100644 --- a/resources/js/processes/modeler/components/ProcessMapTooltip.vue +++ b/resources/js/processes/modeler/components/ProcessMapTooltip.vue @@ -17,25 +17,41 @@ class="card-body" style="padding-top: 10px; padding-bottom: 5px" > -

- {{ nodeId }} -

-

- {{ $t('Status') }}:Complete -

-

- {{ $t('Completed By') }}:UserName -

-

- {{ $t('Time Started') }}:11/21/23 16:51 -

-

- {{ $t('Time Completed') }}:11/21/23 16:53 -

+
+

+ {{ tokenResult.element_name }} +

+

+ {{ $t('Status') }}: + {{ tokenResult.status }} +

+

+ {{ $t('Completed By') }}: + {{ tokenResult.username }} +

+

+ {{ $t('Time Started') }}: + {{ tokenResult.created_at }} +

+

+ {{ $t('Time Completed') }}: + {{ tokenResult.completed_at }} +

+
+
+

+ {{ nodeName }} +

+

+ {{ tokenResult.message }} +

+
diff --git a/resources/views/processes/modeler/inflight.blade.php b/resources/views/processes/modeler/inflight.blade.php index 47e388b796..2c6ba08c8f 100644 --- a/resources/views/processes/modeler/inflight.blade.php +++ b/resources/views/processes/modeler/inflight.blade.php @@ -28,8 +28,6 @@