From f03b3059bbd56b19af379d18e4601160abf148be Mon Sep 17 00:00:00 2001 From: Roly Gutierrez Date: Fri, 25 Sep 2026 13:50:09 -0400 Subject: [PATCH] fix(FOUR-33528): restore dashboard screen rendering on Home after Vite migration Register ScreenBuilder in the Vite tasks loader so vue-form-renderer is available when viewing custom dashboards from the inbox Home screen. - Add Vue.use(ScreenBuilder.default) and screen-builder CSS to loaderTasks.js - Fix ProcessesDashboardsMenu emit to pass (id, type) instead of an object - Skip redundant dashboard navigation when the same dashboard is already active - Remove duplicate router.push from ParticipantHomeScreen; menu owns navigation https://processmaker.atlassian.net/browse/FOUR-33528 --- .../js/tasks/components/ParticipantHomeScreen.vue | 11 ----------- .../js/tasks/components/ProcessesDashboardsMenu.vue | 13 +++++++++++-- resources/js/vite/tasks/loaderTasks.js | 2 ++ 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/resources/js/tasks/components/ParticipantHomeScreen.vue b/resources/js/tasks/components/ParticipantHomeScreen.vue index 4eaf866d42..47d1466469 100644 --- a/resources/js/tasks/components/ParticipantHomeScreen.vue +++ b/resources/js/tasks/components/ParticipantHomeScreen.vue @@ -347,17 +347,6 @@ export default { }, processDashboardSelected(id, type) { this.selectedProcess = type; - if (type === "process") { - this.$router.push({ - name: "process-browser", - query: { process: id }, - }); - } else if (type === "dashboard") { - this.$router.push({ - name: "dashboard", - query: { dashboard: id }, - }); - } }, toggleMenu(value) { this.showMenu = value; diff --git a/resources/js/tasks/components/ProcessesDashboardsMenu.vue b/resources/js/tasks/components/ProcessesDashboardsMenu.vue index fecda15eca..046d51d8be 100644 --- a/resources/js/tasks/components/ProcessesDashboardsMenu.vue +++ b/resources/js/tasks/components/ProcessesDashboardsMenu.vue @@ -110,16 +110,25 @@ export default { this.getDashboardViewScreen(id.toString()); } - this.$emit("processDashboardSelected", { id, type }); + this.$emit("processDashboardSelected", id, type); this.$emit("menuItemSelected"); }, callDashboardViewScreen(id, screen, formData) { const router = this.$router || this.$root.$router; + const dashboardId = id.toString(); + + if ( + router.currentRoute.name === "dashboard" + && router.currentRoute.params.dashboardId === dashboardId + ) { + return; + } + router .push({ name: "dashboard", params: { - dashboardId: id.toString(), + dashboardId, screen, formData, }, diff --git a/resources/js/vite/tasks/loaderTasks.js b/resources/js/vite/tasks/loaderTasks.js index f2768631fe..16c1da9d6c 100644 --- a/resources/js/vite/tasks/loaderTasks.js +++ b/resources/js/vite/tasks/loaderTasks.js @@ -6,11 +6,13 @@ import modeler from "../../../js/next/modeler"; import screenBuilderNext from "../../../js/next/screenBuilder"; // Load screen-builder for PMBLOCKs import * as ScreenBuilder from "@processmaker/screen-builder"; +import "@processmaker/screen-builder/dist/vue-form-builder.css"; window.ScreenBuilder = ScreenBuilder; setupMain(); screenBuilderNext(); +window.Vue.use(ScreenBuilder.default); modeler(); window.ProcessMaker.taskDraftsEnabled = window.temporal.taskDraftsEnabled;