diff --git a/ProcessMaker/Http/Controllers/Process/ModelerController.php b/ProcessMaker/Http/Controllers/Process/ModelerController.php index f372f55a13..b507be3fd9 100644 --- a/ProcessMaker/Http/Controllers/Process/ModelerController.php +++ b/ProcessMaker/Http/Controllers/Process/ModelerController.php @@ -77,6 +77,7 @@ public function show(ModelerManager $manager, Process $process, Request $request 'countScreenCategories' => $countScreenCategories, 'countScriptCategories' => $countScriptCategories, 'isProjectsInstalled' => $isProjectsInstalled, + 'isAiGenerated' => request()->query('ai'), ]); } diff --git a/resources/js/processes/components/CreateProcessModal.vue b/resources/js/processes/components/CreateProcessModal.vue index ecb3ddbcf8..63bc50925a 100644 --- a/resources/js/processes/components/CreateProcessModal.vue +++ b/resources/js/processes/components/CreateProcessModal.vue @@ -106,23 +106,22 @@ import AssetRedirectMixin from "../../components/shared/AssetRedirectMixin"; import ProjectSelect from "../../components/shared/ProjectSelect.vue"; export default { - components: { - Modal, Required, ProjectSelect, - }, - mixins: [FormErrorsMixin, AssetRedirectMixin], + components: { Modal, Required, ProjectSelect }, + mixins: [ FormErrorsMixin, AssetRedirectMixin ], props: [ - "countCategories", - "blankTemplate", - "selectedTemplate", - "templateData", - "generativeProcessData", - "isProjectsInstalled", - "categoryType", + "countCategories", + "blankTemplate", + "selectedTemplate", + "templateData", + "generativeProcessData", + "isProjectsInstalled", + "categoryType", "callFromAiModeler", "isProjectSelectionRequired", "projectId", + "isAiGenerated" ], - data() { + data: function() { return { showModal: false, name: "", @@ -139,12 +138,8 @@ export default { bpmn: "", disabled: false, customModalButtons: [ - { - content: "Cancel", action: "hide()", variant: "outline-secondary", disabled: false, hidden: false, - }, - { - content: "Create", action: "createTemplate", variant: "primary", disabled: false, hidden: false, - }, + {"content": "Cancel", "action": "hide()", "variant": "outline-secondary", "disabled": false, "hidden": false}, + {"content": "Create", "action": "createTemplate", "variant": "primary", "disabled": false, "hidden": false}, ], manager: "", }; @@ -299,9 +294,19 @@ export default { ProcessMaker.alert(this.$t("The process was created."), "success"); - const url = new URL(`/modeler/${data.id}`, window.location.origin); - this.appendProjectIdToURL(url, this.projectId); - this.handleRedirection(url, data); + if (this.callFromAiModeler) { + const url = `/package-ai/processes/create/${response.data.id}`; + this.$emit("process-created-from-modeler", url, response.data.id, response.data.name); + } else if (this.projectId) { + const url = new URL(`/modeler/${data.id}`, window.location.origin); + this.appendProjectIdToURL(url, this.projectId); + this.handleRedirection(url, data); + } else { + window.location = + this.isAiGenerated + ? "/modeler/" + response.data.id + "?ai=true" + : "/modeler/" + response.data.id; + } }) .catch((error) => { this.disabled = false; diff --git a/resources/views/processes/modeler/index.blade.php b/resources/views/processes/modeler/index.blade.php index 018d6a4f41..2a1393e071 100644 --- a/resources/views/processes/modeler/index.blade.php +++ b/resources/views/processes/modeler/index.blade.php @@ -88,6 +88,7 @@ screenTypes: @json($screenTypes), scriptExecutors: @json($scriptExecutors), isProjectsInstalled: @json($isProjectsInstalled), + isAiGenerated: @json($isAiGenerated) } const warnings = @json($process->warnings);