diff --git a/resources/assets/js/home/Draft.vue b/resources/assets/js/home/Draft.vue index cf32f72d4..76b8cac31 100644 --- a/resources/assets/js/home/Draft.vue +++ b/resources/assets/js/home/Draft.vue @@ -141,6 +141,7 @@ export default { APP_UID: params.app_uid, DEL_INDEX: params.del_index }); + this.$emit("cleanDefaultOption"); } } }, diff --git a/resources/assets/js/home/Home.vue b/resources/assets/js/home/Home.vue index d02d46ab0..150e46f9c 100644 --- a/resources/assets/js/home/Home.vue +++ b/resources/assets/js/home/Home.vue @@ -31,6 +31,7 @@ @onUpdateDataCase="onUpdateDataCase" @onLastPage="onLastPage" @onUpdateFilters="onUpdateFilters" + @cleanDefaultOption="cleanDefaultOption" > @@ -72,7 +73,7 @@ export default { data() { return { lastPage: "MyCases", - page: "MyCases", + page: null, menu: [], dataCase: {}, hideToggle: true, @@ -86,6 +87,7 @@ export default { filters: null, menuMap: { CASES_MY_CASES: "MyCases", + CASES_SENT: "MyCases", CASES_SEARCH: "advanced-search", CASES_INBOX: "todo", CASES_DRAFT: "draft", @@ -156,6 +158,8 @@ export default { if (menuItem && menuItem.href) { this.page = this.menuMap[window.config._nodeId] || "MyCases"; this.$router.push(menuItem.href); + } else { + this.page = "MyCases"; } }, /** @@ -190,6 +194,12 @@ export default { } return auxData; }, + /** + * Clean the default option property + */ + cleanDefaultOption() { + this.defaultOption = ""; + }, OnClickSidebarItem(item) { if (item.item.page && item.item.page === "/advanced-search") { this.page = "advanced-search"; diff --git a/resources/assets/js/home/MyCases.vue b/resources/assets/js/home/MyCases.vue index a63d54377..2c062944b 100644 --- a/resources/assets/js/home/MyCases.vue +++ b/resources/assets/js/home/MyCases.vue @@ -83,7 +83,7 @@ export default { GroupedCell, ModalComments, }, - props: ["filters"], + props: ["filters", "defaultOption"], data() { return { dataAlert: { @@ -157,6 +157,7 @@ export default { }, mounted() { this.getHeaders(); + this.openDefaultCase(); // force to open start cases modal // if the user has start case as a default case menu option if (window.config._nodeId === "CASES_START_CASE") { @@ -175,6 +176,22 @@ export default { updated() {}, beforeCreate() {}, methods: { + /** + * Open a case when the component was mounted + */ + openDefaultCase() { + let params; + if(this.defaultOption) { + params = utils.getAllUrlParams(this.defaultOption); + if (params && params.app_uid && params.del_index) { + this.openCase({ + APP_UID: params.app_uid, + DEL_INDEX: params.del_index + }); + this.$emit("cleanDefaultOption"); + } + } + }, /** * Row click event handler * @param {object} event @@ -192,6 +209,21 @@ export default { self.openCaseDetail(event.row); } }, + /** + * Open selected case + * + * @param {object} item + */ + openCase(item) { + this.$emit("onUpdateDataCase", { + APP_UID: item.APP_UID, + DEL_INDEX: item.DEL_INDEX, + PRO_UID: item.PRO_UID, + TAS_UID: item.TAS_UID, + ACTION: "todo" + }); + this.$emit("onUpdatePage", "XCase"); + }, /** * Open case detail * diff --git a/resources/assets/js/home/Paused.vue b/resources/assets/js/home/Paused.vue index 976c2ee53..12f885f61 100644 --- a/resources/assets/js/home/Paused.vue +++ b/resources/assets/js/home/Paused.vue @@ -165,6 +165,7 @@ export default { APP_UID: params.app_uid, DEL_INDEX: params.del_index }); + this.$emit("cleanDefaultOption"); } } }, diff --git a/resources/assets/js/home/Todo.vue b/resources/assets/js/home/Todo.vue index a7746beb1..9f5e69cff 100644 --- a/resources/assets/js/home/Todo.vue +++ b/resources/assets/js/home/Todo.vue @@ -158,6 +158,7 @@ export default { APP_UID: params.app_uid, DEL_INDEX: params.del_index }); + this.$emit("cleanDefaultOption"); } } }, diff --git a/resources/assets/js/home/Unassigned.vue b/resources/assets/js/home/Unassigned.vue index 88bf1c4b3..4737e15bd 100644 --- a/resources/assets/js/home/Unassigned.vue +++ b/resources/assets/js/home/Unassigned.vue @@ -159,6 +159,7 @@ export default { APP_UID: params.app_uid, DEL_INDEX: params.del_index }); + this.$emit("cleanDefaultOption"); } } },