diff --git a/resources/assets/js/home/Home.vue b/resources/assets/js/home/Home.vue
index 404cf3d7a..97aa7d525 100644
--- a/resources/assets/js/home/Home.vue
+++ b/resources/assets/js/home/Home.vue
@@ -22,6 +22,7 @@
ref="component"
:filters="filters"
:id="pageId"
+ :pageUri="pageUri"
:name="pageName"
@onSubmitFilter="onSubmitFilter"
@onRemoveFilter="onRemoveFilter"
@@ -46,6 +47,7 @@ import CaseDetail from "./CaseDetail";
import XCase from "./XCase";
import TaskReassignments from "./TaskReassignments";
import AdvancedSearch from "./AdvancedSearch";
+import LegacyFrame from "./LegacyFrame";
import api from "./../api/index";
@@ -64,6 +66,7 @@ export default {
Paused,
Unassigned,
CaseDetail,
+ LegacyFrame
},
data() {
return {
@@ -78,7 +81,19 @@ export default {
sidebarWidth: "310px",
pageId: null,
pageName: null,
- filters: null,
+ pageUri: null,
+ filters: null,
+ menuMap: {
+ CASES_MY_CASES: "MyCases",
+ CASES_SEARCH: "advanced-search",
+ CASES_INBOX: "todo",
+ CASES_DRAFT: "draft",
+ CASES_PAUSED: "paused",
+ CASES_SELFSERVICE: "unassigned",
+ CONSOLIDATED_CASES: "batch-routing",
+ CASES_TO_REASSIGN: "task-reassignments",
+ CASES_FOLDERS: "my-documents"
+ }
};
},
mounted() {
@@ -86,20 +101,29 @@ export default {
window.addEventListener("resize", this.onResize);
this.getMenu();
this.listenerIframe();
- window.setInterval(this.setCounter, parseInt(window.config.FORMATS.casesListRefreshTime) * 1000);
+ window.setInterval(
+ this.setCounter,
+ parseInt(window.config.FORMATS.casesListRefreshTime) * 1000
+ );
},
methods: {
/**
* Listener for iframes childs
*/
- listenerIframe(){
+ listenerIframe() {
let that = this,
- eventMethod = window.addEventListener? "addEventListener": "attachEvent",
- eventer = window[eventMethod],
- messageEvent = eventMethod === "attachEvent"? "onmessage": "message";
+ eventMethod = window.addEventListener
+ ? "addEventListener"
+ : "attachEvent",
+ eventer = window[eventMethod],
+ messageEvent =
+ eventMethod === "attachEvent" ? "onmessage" : "message";
- eventer(messageEvent, function (e) {
- if (e.data === "redirect=todo" || e.message === "redirect=todo"){
+ eventer(messageEvent, function(e) {
+ if (
+ e.data === "redirect=todo" ||
+ e.message === "redirect=todo"
+ ) {
that.page = "todo";
}
});
@@ -111,6 +135,7 @@ export default {
api.menu
.get()
.then((response) => {
+ this.setDefaultCasesMenu(response.data);
this.menu = this.mappingMenu(response.data);
this.setCounter();
})
@@ -118,6 +143,18 @@ export default {
console.error(e);
});
},
+ /**
+ * Set default cases menu option
+ */
+ setDefaultCasesMenu(data) {
+ let menuItem = _.find(data, function(o) {
+ return o.id === window.config._nodeId;
+ });
+ if (menuItem && menuItem.href) {
+ this.page = this.menuMap[window.config._nodeId] || "MyCases";
+ this.$router.push(menuItem.href);
+ }
+ },
/**
* Do a mapping of vue view for menus
* @returns array
@@ -126,22 +163,13 @@ export default {
var i,
j,
newData = data,
- auxId,
- viewVue = {
- CASES_MY_CASES: "MyCases",
- CASES_SEARCH: "advanced-search",
- CASES_INBOX: "todo",
- CASES_DRAFT: "draft",
- CASES_PAUSED: "paused",
- CASES_SELFSERVICE: "unassigned",
- CONSOLIDATED_CASES: "batch-routing",
- CASES_TO_REASSIGN: "task-reassignments",
- CASES_FOLDERS: "my-documents",
- };
+ auxId;
for (i = 0; i < data.length; i += 1) {
auxId = data[i].id || "";
- if (auxId !== "" && viewVue[auxId]) {
- newData[i].id = viewVue[auxId];
+ if (auxId !== "" && this.menuMap[auxId]) {
+ newData[i].id = this.menuMap[auxId];
+ } else if (newData[i].href) {
+ newData[i].id = "LegacyFrame";
}
}
return newData;
@@ -151,10 +179,12 @@ export default {
this.page = "advanced-search";
this.filters = item.item.filters;
this.pageId = item.item.id;
+ this.pageUri = item.item.href;
this.pageName = item.item.title;
} else {
this.filters = [];
this.pageId = null;
+ this.pageUri = item.item.href;
this.page = item.item.id || "MyCases";
if (this.$refs["component"] && this.$refs["component"].updateView) {
this.$refs["component"].updateView();
@@ -171,7 +201,7 @@ export default {
var i,
j,
data = response.data;
- that.counters = data;
+ that.counters = data;
for (i = 0; i < that.menu.length; i += 1) {
if (that.menu[i].id && data[that.menu[i].id]) {
that.menu[i].badge.text = data[that.menu[i].id];
@@ -276,7 +306,7 @@ export default {
onUpdateFilters(filters) {
this.filters = filters;
}
- },
+ }
};
diff --git a/resources/assets/js/home/LegacyFrame.vue b/resources/assets/js/home/LegacyFrame.vue
new file mode 100644
index 000000000..e65e2595f
--- /dev/null
+++ b/resources/assets/js/home/LegacyFrame.vue
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+
+
+
diff --git a/resources/assets/js/home/MyCases.vue b/resources/assets/js/home/MyCases.vue
index 8569ca98c..e40bf2b59 100644
--- a/resources/assets/js/home/MyCases.vue
+++ b/resources/assets/js/home/MyCases.vue
@@ -126,6 +126,11 @@ export default {
},
mounted() {
this.getHeaders();
+ // 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") {
+ this.$refs["newRequest"].show();
+ }
},
watch: {},
computed: {
diff --git a/workflow/engine/menus/cases.php b/workflow/engine/menus/cases.php
index 61b69f9f2..c5d3d2ce7 100644
--- a/workflow/engine/menus/cases.php
+++ b/workflow/engine/menus/cases.php
@@ -65,7 +65,7 @@ $G_TMP_MENU->AddIdRawOption(
$G_TMP_MENU->AddIdRawOption(
'CASES_SENT',
'casesListExtJs?action=sent',
- G::LoadTranslation('ID_SENT'),
+ G::LoadTranslation('ID_MY_CASES'),
'icon-cases-outbox.png'
);
$G_TMP_MENU->AddIdRawOption(
diff --git a/workflow/engine/methods/cases/viena_init.php b/workflow/engine/methods/cases/viena_init.php
index f5fcf6aba..3dd09e401 100644
--- a/workflow/engine/methods/cases/viena_init.php
+++ b/workflow/engine/methods/cases/viena_init.php
@@ -131,6 +131,8 @@ $userCanAccess = 1;
global $translation;
$pmDynaform = new PmDynaform();
+ScriptVariables::add('defaultOption', $defaultOption);
+ScriptVariables::add('_nodeId', isset($confDefaultOption) ? $confDefaultOption : "PM_USERS");
ScriptVariables::add('SYS_CREDENTIALS', $pmDynaform->getCredentials());
ScriptVariables::add('SYS_SERVER', System::getHttpServerHostnameRequestsFrontEnd());
ScriptVariables::add('SYS_WORKSPACE', config("system.workspace"));