diff --git a/resources/js/components/shared/AssetRedirectMixin.js b/resources/js/components/shared/AssetRedirectMixin.js new file mode 100644 index 0000000000..0bbf099c01 --- /dev/null +++ b/resources/js/components/shared/AssetRedirectMixin.js @@ -0,0 +1,42 @@ +export default { + data() { + return { + redirectUrl: null, + }; + }, + mounted() { + this.setRedirectUrl(); + ProcessMaker.EventBus.$on("redirect", () => { + this.handleRedirection(); + }); + }, + computed: { + isProjectRoute() { + return window.location.pathname.startsWith("/designer/projects/"); + }, + }, + methods: { + appendProjectIdToURL(url, projectId) { + if (this.isProjectRoute) { + url.searchParams.append("project_id", projectId); + } + }, + setRedirectUrl() { + const queryParams = new URLSearchParams(window.location.search); + const projectId = queryParams.get("project_id"); + + if (projectId) { + this.redirectUrl = `/designer/projects/${projectId}`; + } + }, + handleRedirection() { + return new Promise((resolve) => { + if (this.redirectUrl) { + window.location.href = this.redirectUrl; + resolve(true); + } + resolve(false); + }); + }, + }, +}; diff --git a/resources/js/components/shared/index.js b/resources/js/components/shared/index.js index 9013aa80d4..6190426aca 100644 --- a/resources/js/components/shared/index.js +++ b/resources/js/components/shared/index.js @@ -14,6 +14,7 @@ import EllipsisMenu from "./EllipsisMenu"; import EnterPasswordModal from "../../processes/import/components/EnterPasswordModal.vue"; import FileUploadButton from "./FileUploadButton"; import FormErrorsMixin from "./FormErrorsMixin"; +import AssetRedirectMixin from "./AssetRedirectMixin"; import IconSelector from "./IconSelector"; import Modal from "./Modal"; import PmqlInput from "./PmqlInput"; @@ -64,6 +65,7 @@ export { EnterPasswordModal, FileUploadButton, FormErrorsMixin, + AssetRedirectMixin, IconSelector, Modal, PmqlInput, diff --git a/resources/js/processes/components/CreateProcessModal.vue b/resources/js/processes/components/CreateProcessModal.vue index b8b64605e7..ecb3ddbcf8 100644 --- a/resources/js/processes/components/CreateProcessModal.vue +++ b/resources/js/processes/components/CreateProcessModal.vue @@ -1,6 +1,6 @@