diff --git a/resources/assets/js/components/home/debugger/Debugger.vue b/resources/assets/js/components/home/debugger/Debugger.vue
index 747c1d51c..1241724e4 100644
--- a/resources/assets/js/components/home/debugger/Debugger.vue
+++ b/resources/assets/js/components/home/debugger/Debugger.vue
@@ -30,10 +30,15 @@
+ >
+ {{props.row.code}}
+
@@ -51,7 +56,7 @@ export default {
},
components: {
Tabs,
- Tab,
+ Tab
},
data() {
return {
@@ -64,6 +69,7 @@ export default {
dataTable: [],
dataTableTriggers: [],
columns: ["key", "value"],
+ columnsTriggers: ["name", "execution","code"],
options: {
perPage: 200,
filterable: true,
@@ -73,7 +79,19 @@ export default {
headings: {
key: this.$i18n.t("ID_NAME"),
value: this.$i18n.t("ID_FIELD_DYNAFORM_TEXT")
+ }
+ },
+ optionsTriggers: {
+ perPage: 200,
+ filterable: true,
+ pagination: {
+ show: false
},
+ headings: {
+ name: this.$i18n.t("ID_NAME"),
+ execution: this.$i18n.t("ID_EXECUTION"),
+ code: this.$i18n.t("ID_CAPTCHA_CODE"),
+ }
},
optionsDebugVars: {
selected: "all",
@@ -86,8 +104,7 @@ export default {
};
},
mounted() {
- this.getDebugVars({ filter: "all" });
- this.getDebugVarsTriggers();
+ this.loadData();
},
methods: {
classBtn(cls) {
@@ -96,6 +113,13 @@ export default {
showDebugger() {
this.$refs["modal-debugger"].show();
},
+ /**
+ * Load the data for debugger
+ */
+ loadData() {
+ this.getDebugVars({ filter: "all" });
+ this.getDebugVarsTriggers();
+ },
/**
* Get debug variables
*/
@@ -119,11 +143,12 @@ export default {
let that = this,
dt = [];
api.cases.debugVarsTriggers(data).then((response) => {
- if (response.data.length > 0) {
- _.forIn(response.data.data[0], function (value, key) {
+ if (response.data.data.length > 0) {
+ _.each(response.data.data, function (o) {
dt.push({
- key,
- value
+ name: o.name,
+ execution: o.execution_time,
+ code: o.code
});
});
this.dataTableTriggers = dt;
@@ -136,7 +161,7 @@ export default {
changeOption(opt) {
this.getDebugVars({ filter: opt });
}
- },
+ }
};
@@ -305,4 +330,16 @@ input[type="radio"] {
line-height: 1.5;
border-radius: .2rem;
}
+
+.debugger-container .php{
+ font-family: Consolas, monospace;
+ color: #000;
+ margin-bottom: 0px;
+ margin-top: 0px;
+ background: #fff;
+ border-radius: 0px;
+ padding: 0px;
+ line-height: 1.5;
+ overflow: auto;
+}
\ No newline at end of file
diff --git a/resources/assets/js/components/search/CasesFilter.vue b/resources/assets/js/components/search/CasesFilter.vue
index 525fea6ae..fc4e53193 100644
--- a/resources/assets/js/components/search/CasesFilter.vue
+++ b/resources/assets/js/components/search/CasesFilter.vue
@@ -236,6 +236,7 @@ export default {
self.searchTags.push(component.id);
self.selected = component.id;
self.itemModel[component.id] = component;
+ self.itemModel[component.id].autoShow = typeof item.autoShow !== "undefined" ? item.autoShow : true
}
});
},
diff --git a/resources/assets/js/components/vuetable/GroupedCell.vue b/resources/assets/js/components/vuetable/GroupedCell.vue
index 2291ea6db..93b7c55d8 100644
--- a/resources/assets/js/components/vuetable/GroupedCell.vue
+++ b/resources/assets/js/components/vuetable/GroupedCell.vue
@@ -18,6 +18,7 @@
variant="info"
:src="item.AVATAR"
size="2em"
+ v-show="item.UNASSIGNED"
>
diff --git a/resources/assets/js/home/Draft.vue b/resources/assets/js/home/Draft.vue
index cf32f72d4..2a5f3ab4b 100644
--- a/resources/assets/js/home/Draft.vue
+++ b/resources/assets/js/home/Draft.vue
@@ -141,6 +141,24 @@ export default {
APP_UID: params.app_uid,
DEL_INDEX: params.del_index
});
+ this.$emit("cleanDefaultOption");
+ }
+ //force to search in the parallel tasks
+ if (params && params.openapplicationuid) {
+ this.onUpdateFilters({
+ params: [
+ {
+ fieldId: "caseNumber",
+ filterVar: "caseNumber",
+ label: "",
+ options:[],
+ value: params.openapplicationuid,
+ autoShow: false
+ }
+ ],
+ refresh: true
+ });
+ this.$emit("cleanDefaultOption");
}
}
},
@@ -233,7 +251,7 @@ export default {
DEL_INDEX: item.DEL_INDEX,
PRO_UID: item.PRO_UID,
TAS_UID: item.TAS_UID,
- ACTION: "draft",
+ ACTION: "draft"
});
this.$emit("onUpdatePage", "XCase");
},
diff --git a/resources/assets/js/home/Home.vue b/resources/assets/js/home/Home.vue
index f272713b8..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",
@@ -121,12 +123,14 @@ export default {
eventMethod === "attachEvent" ? "onmessage" : "message";
eventer(messageEvent, function(e) {
- if (
- e.data === "redirect=todo" ||
- e.message === "redirect=todo"
- ) {
+ if ( e.data === "redirect=todo" || e.message === "redirect=todo"){
that.page = "todo";
}
+ if ( e.data === "update=debugger" || e.message === "update=debugger"){
+ if(that.$refs["component"].updateView){
+ that.$refs["component"].updateView();
+ }
+ }
});
},
/**
@@ -154,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";
}
},
/**
@@ -188,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/ModalNewRequest.vue b/resources/assets/js/home/ModalNewRequest.vue
index a87c0a507..cbe39d478 100644
--- a/resources/assets/js/home/ModalNewRequest.vue
+++ b/resources/assets/js/home/ModalNewRequest.vue
@@ -164,6 +164,7 @@ export default {
APP_UID: data.data.APPLICATION,
DEL_INDEX: 1,
ACTION: "draft",
+ PRO_UID: data.data.PROCESS
};
self.disable = false;
self.$parent.$parent.page = "XCase";
diff --git a/resources/assets/js/home/MyCases.vue b/resources/assets/js/home/MyCases.vue
index 12a55bffa..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
*
@@ -304,8 +336,15 @@ export default {
*/
formantPendingTask(data) {
var i,
+ userDataFormat,
dataFormat = [];
for (i = 0; i < data.length; i += 1) {
+ userDataFormat = utils.userNameDisplayFormat({
+ userName: data[i].user_tooltip.usr_username || "",
+ firstName: data[i].user_tooltip.usr_firstname || "",
+ lastName: data[i].user_tooltip.usr_lastname || "",
+ format: window.config.FORMATS.format || null
+ });
dataFormat.push(
{
TAS_NAME: data[i].tas_title,
@@ -313,17 +352,13 @@ export default {
DELAYED_TITLE: data[i].tas_status === "OVERDUE" ?
this.$i18n.t("ID_DELAYED") + ":" : this.statusTitle[data[i].tas_status],
DELAYED_MSG: data[i].tas_status === "OVERDUE" ? data[i].delay : "",
- AVATAR: window.config.SYS_SERVER +
+ AVATAR: userDataFormat !== "" ? window.config.SYS_SERVER +
window.config.SYS_URI +
- `users/users_ViewPhotoGrid?pUID=${data[i].user_id}`,
- USERNAME: utils.userNameDisplayFormat({
- userName: data[i].user_tooltip.usr_username,
- firstName: data[i].user_tooltip.usr_firstname,
- lastName: data[i].user_tooltip.usr_lastname,
- format: window.config.FORMATS.format || null
- }),
+ `users/users_ViewPhotoGrid?pUID=${data[i].user_id}` : "",
+ USERNAME: userDataFormat !== "" ? userDataFormat : this.$i18n.t("ID_UNASSIGNED"),
POSITION: data[i].user_tooltip.usr_position,
- EMAIL: data[i].user_tooltip.usr_email
+ EMAIL: data[i].user_tooltip.usr_email,
+ UNASSIGNED: userDataFormat !== "" ? true : false
}
);
}
diff --git a/resources/assets/js/home/Paused.vue b/resources/assets/js/home/Paused.vue
index ff5e01d0f..008796a0e 100644
--- a/resources/assets/js/home/Paused.vue
+++ b/resources/assets/js/home/Paused.vue
@@ -76,7 +76,7 @@ export default {
ModalUnpauseCase,
CasesFilter,
},
- props: {},
+ props: ["defaultOption"],
data() {
return {
newCase: {
@@ -137,7 +137,10 @@ export default {
}
};
},
- mounted() {},
+ mounted() {
+ // force to open case
+ this.openDefaultCase();
+ },
watch: {},
computed: {
/**
@@ -150,7 +153,40 @@ 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");
+ }
+ //force to search in the parallel tasks
+ if (params && params.openapplicationuid) {
+ this.onUpdateFilters({
+ params: [
+ {
+ fieldId: "caseNumber",
+ filterVar: "caseNumber",
+ label: "",
+ options:[],
+ value: params.openapplicationuid,
+ autoShow: false
+ }
+ ],
+ refresh: true
+ });
+ this.$emit("cleanDefaultOption");
+ }
+ }
+ },
+ /**
* On row click event handler
* @param {object} event
*/
@@ -236,6 +272,21 @@ export default {
});
return data;
},
+ /**
+ * Open selected cases in the inbox
+ *
+ * @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/Todo.vue b/resources/assets/js/home/Todo.vue
index e025695f1..649eedc4e 100644
--- a/resources/assets/js/home/Todo.vue
+++ b/resources/assets/js/home/Todo.vue
@@ -130,7 +130,10 @@ export default {
}
};
},
- mounted() {},
+ mounted() {
+ // force to open case
+ this.openDefaultCase();
+ },
watch: {},
computed: {
/**
@@ -155,6 +158,24 @@ export default {
APP_UID: params.app_uid,
DEL_INDEX: params.del_index
});
+ this.$emit("cleanDefaultOption");
+ }
+ //force to search in the parallel tasks
+ if (params && params.openapplicationuid) {
+ this.onUpdateFilters({
+ params: [
+ {
+ fieldId: "caseNumber",
+ filterVar: "caseNumber",
+ label: "",
+ options:[],
+ value: params.openapplicationuid,
+ autoShow: false
+ }
+ ],
+ refresh: true
+ });
+ this.$emit("cleanDefaultOption");
}
}
},
@@ -255,7 +276,7 @@ export default {
DEL_INDEX: item.DEL_INDEX,
PRO_UID: item.PRO_UID,
TAS_UID: item.TAS_UID,
- ACTION: "todo",
+ ACTION: "todo"
});
this.$emit("onUpdatePage", "XCase");
},
diff --git a/resources/assets/js/home/Unassigned.vue b/resources/assets/js/home/Unassigned.vue
index 3ceaed225..8701511b0 100644
--- a/resources/assets/js/home/Unassigned.vue
+++ b/resources/assets/js/home/Unassigned.vue
@@ -58,6 +58,7 @@ import TaskCell from "../components/vuetable/TaskCell.vue";
import CasesFilter from "../components/search/CasesFilter";
import ModalClaimCase from "./modal/ModalClaimCase.vue";
import api from "./../api/index";
+import utils from "./../utils/utils";
export default {
name: "Paused",
@@ -69,7 +70,7 @@ export default {
ModalClaimCase,
CasesFilter,
},
- props: {},
+ props: ["defaultOption"],
data() {
return {
newCase: {
@@ -130,7 +131,10 @@ export default {
}
};
},
- mounted() {},
+ mounted() {
+ // force to open case
+ this.openDefaultCase();
+ },
watch: {},
computed: {
/**
@@ -143,6 +147,39 @@ 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");
+ }
+ //force to search in the parallel tasks
+ if (params && params.openapplicationuid) {
+ this.onUpdateFilters({
+ params: [
+ {
+ fieldId: "caseNumber",
+ filterVar: "caseNumber",
+ label: "",
+ options:[],
+ value: params.openapplicationuid,
+ autoShow: false
+ }
+ ],
+ refresh: true
+ });
+ this.$emit("cleanDefaultOption");
+ }
+ }
+ },
/**
* On row click event handler
* @param {object} event
@@ -237,6 +274,21 @@ export default {
});
});
},
+ /**
+ * Open selected cases in the inbox
+ *
+ * @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/XCase.vue b/resources/assets/js/home/XCase.vue
index 85a2e3afb..3049e26d7 100644
--- a/resources/assets/js/home/XCase.vue
+++ b/resources/assets/js/home/XCase.vue
@@ -9,7 +9,7 @@
allowfullscreen
@load="onLoadIframe"
>
-
+
@@ -62,6 +62,14 @@ export default {
classBtn(cls) {
return "btn v-btn-request " + cls;
},
+ /**
+ * update view in component
+ */
+ updateView(){
+ if(this.openDebug){
+ this.$refs["debugger"].loadData();
+ }
+ },
onLoadIframe() {},
},
};
diff --git a/resources/assets/js/utils/utils.js b/resources/assets/js/utils/utils.js
index 0651f365f..6349ffd81 100644
--- a/resources/assets/js/utils/utils.js
+++ b/resources/assets/js/utils/utils.js
@@ -5,19 +5,21 @@ export default {
* @param {object} params
*/
userNameDisplayFormat(params) {
- let aux;
- let defaultValues = {
+ let aux = "",
+ defaultValues = {
userName: '',
firstName: '',
lastName: '',
format: '(@lastName, @firstName) @userName'
};
_.assignIn(defaultValues, params);
- aux = defaultValues.format;
- aux = aux.replace('@userName',defaultValues.userName);
- aux = aux.replace('@firstName',defaultValues.firstName);
- aux = aux.replace('@lastName',defaultValues.lastName);
- return aux.trim();
+ if (defaultValues.userName !== "" || defaultValues.firstName !== "" || defaultValues.lastName !== "") {
+ aux = defaultValues.format;
+ aux = aux.replace('@userName',defaultValues.userName);
+ aux = aux.replace('@firstName',defaultValues.firstName);
+ aux = aux.replace('@lastName',defaultValues.lastName);
+ }
+ return aux;
},
/**
* Parse an url string and prepare an object of the parameters
diff --git a/workflow/engine/methods/cases/viena_init.php b/workflow/engine/methods/cases/viena_init.php
index 3dd09e401..607ec9a8b 100644
--- a/workflow/engine/methods/cases/viena_init.php
+++ b/workflow/engine/methods/cases/viena_init.php
@@ -3,6 +3,7 @@
use Eusebiu\JavaScript\Facades\ScriptVariables;
use Illuminate\Support\Facades\View;
use ProcessMaker\Core\System;
+use ProcessMaker\Model\Application;
$conf = new Configurations();
@@ -95,8 +96,9 @@ if (isset($_SESSION['__OPEN_APPLICATION_UID__'])) {
$openCaseIE = true;
$defaultOption = '../cases/open?APP_UID=' . $openAppUid . '&DEL_INDEX=' . $arrayDelIndex[0] . '&action=' . $action;
} else {
+ $appNumber = Application::getCaseNumber($openAppUid);
//We will to show the list: more than one thread
- $defaultOption = '../cases/casesListExtJs?action=' . $action . '&openApplicationUid=' . $openAppUid;
+ $defaultOption = '../cases/casesListExtJs?action=' . $action . '&openApplicationUid=' . $appNumber;
}
} else {
if (isset($_GET['id'])) {
diff --git a/workflow/engine/templates/cases/open.js b/workflow/engine/templates/cases/open.js
index d92bf314b..169d7300d 100644
--- a/workflow/engine/templates/cases/open.js
+++ b/workflow/engine/templates/cases/open.js
@@ -598,6 +598,14 @@ Ext.onReady(function(){
Ext.getCmp('actionMenu').hide();
Ext.getCmp('returnButton').hide();
+ // Hacky Code for update the debugger in new UI
+ document.getElementById("openCaseFrame").onload = function ()
+ {
+ if(window.parent){
+ window.parent.postMessage("update=debugger","*");
+ }
+ };
+
hideCaseNavigatorPanel();
if(typeof appStatus !== "undefined") {
showCaseNavigatorPanel(appStatus);