From 170663bf4f065506e9f4d5f42c2dbf5f533c4dc3 Mon Sep 17 00:00:00 2001 From: Fabio Date: Wed, 14 May 2025 15:51:01 -0400 Subject: [PATCH 1/7] FOUR-24227:Add in the display screen a New control - Case Progress Bar --- src/components/index.js | 3 +- src/components/renderer/case-progress-bar.vue | 189 ++++++++++++++++++ src/components/renderer/index.js | 1 + src/form-builder-controls.js | 28 +++ 4 files changed, 220 insertions(+), 1 deletion(-) create mode 100644 src/components/renderer/case-progress-bar.vue diff --git a/src/components/index.js b/src/components/index.js index 5740296da..d44f2c126 100644 --- a/src/components/index.js +++ b/src/components/index.js @@ -48,7 +48,7 @@ import FormListTable from "./renderer/form-list-table.vue"; import FormAnalyticsChart from "./renderer/form-analytics-chart.vue"; import accordions from "@/components/accordions"; import VariableNameGenerator from "@/components/VariableNameGenerator"; -import { LinkButton } from "./renderer"; +import { LinkButton, CaseProgressBar } from "./renderer"; import "../assets/css/tabs.css"; import FormCollectionRecordControl from "./renderer/form-collection-record-control.vue"; import FormCollectionViewControl from "./renderer/form-collection-view-control.vue"; @@ -166,6 +166,7 @@ export default { Vue.use(Vuex); Vue.component("FormListTable", FormListTable); Vue.component("LinkButton", LinkButton); + Vue.component("CaseProgressBar", CaseProgressBar); Vue.component("FormCollectionRecordControl", FormCollectionRecordControl); Vue.component("FormCollectionViewControl", FormCollectionViewControl); const store = new Vuex.Store({ diff --git a/src/components/renderer/case-progress-bar.vue b/src/components/renderer/case-progress-bar.vue new file mode 100644 index 000000000..9bae9ee5a --- /dev/null +++ b/src/components/renderer/case-progress-bar.vue @@ -0,0 +1,189 @@ + + + + diff --git a/src/components/renderer/index.js b/src/components/renderer/index.js index dc0a61768..aca6deff0 100755 --- a/src/components/renderer/index.js +++ b/src/components/renderer/index.js @@ -21,3 +21,4 @@ export { default as FormTasks } from "./form-tasks.vue"; export { default as LinkButton } from "./link-button.vue"; export { default as FormCollectionRecordControl } from "./form-collection-record-control.vue"; export { default as FormCollectionViewControl } from "./form-collection-view-control.vue"; +export { default as CaseProgressBar } from "./case-progress-bar.vue"; diff --git a/src/form-builder-controls.js b/src/form-builder-controls.js index 46a8ca53e..ab6ee7077 100755 --- a/src/form-builder-controls.js +++ b/src/form-builder-controls.js @@ -26,6 +26,7 @@ import { } from '@processmaker/vue-form-elements'; import { dataSourceValues } from '@/components/inspector/data-source-types'; import LinkButton from "./components/renderer/link-button.vue"; +import CaseProgressBar from "./components/renderer/case-progress-bar.vue"; import { bgcolorProperty, @@ -50,6 +51,8 @@ import { bgcolorPropertyRecord, colorPropertyRecord, } from './form-control-common-properties'; +import { editor } from 'monaco-editor'; +import { render } from 'mustache'; export default [ { @@ -1209,5 +1212,30 @@ export default [ } ], }, + }, + { + editorComponent: CaseProgressBar, + editorBinding: 'CaseProgressBar', + rendererComponent: CaseProgressBar, + rendererBinding: 'CaseProgressBar', + control: { + popoverContent: "Add a progress bar to show the status of a case", + order: 7.0, + group: 'Dashboards', + label: 'Case Progress Bar', + component: 'CaseProgressBar', + 'editor-component': 'CaseProgressBar', + 'editor-control': 'CaseProgressBar', + config: { + label: 'New Case Progress Bar', + icon: 'fas fa-chart-bar', + variant: 'primary', + event: 'submit', + name: null, + fieldValue: null, + tooltip: {}, + }, + inspector: [], + } } ]; From 2308d8ce5d10f617cb033ce08d8255de47fdf648 Mon Sep 17 00:00:00 2001 From: Fabio Date: Wed, 14 May 2025 15:54:10 -0400 Subject: [PATCH 2/7] validation --- src/components/renderer/case-progress-bar.vue | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/components/renderer/case-progress-bar.vue b/src/components/renderer/case-progress-bar.vue index 9bae9ee5a..fd3149c78 100644 --- a/src/components/renderer/case-progress-bar.vue +++ b/src/components/renderer/case-progress-bar.vue @@ -52,6 +52,10 @@ export default { }, methods: { getStageStatus(caseNumber) { + if (!caseNumber) { + console.error("Case number is not defined."); + return; + } ProcessMaker.api .get(`cases/${caseNumber}/stages_bar`) .then((response) => { From 332dd18bfd8dc42835bc2d49c1bca07df7116810 Mon Sep 17 00:00:00 2001 From: Fabio Date: Thu, 15 May 2025 16:41:35 -0400 Subject: [PATCH 3/7] Update --- src/components/renderer/case-progress-bar.vue | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/components/renderer/case-progress-bar.vue b/src/components/renderer/case-progress-bar.vue index fd3149c78..0bc3e9484 100644 --- a/src/components/renderer/case-progress-bar.vue +++ b/src/components/renderer/case-progress-bar.vue @@ -28,6 +28,17 @@ +
+
+
+
+
+
No stages available
+
+
+
+
+