Merged in release/3.6.0 (pull request #7797)

release/3.6.0

Approved-by: Julio Cesar Laura Avendaño <contact@julio-laura.com>
This commit is contained in:
Paula Quispe
2021-02-01 15:23:08 +00:00
committed by Julio Cesar Laura Avendaño
14 changed files with 293 additions and 43 deletions

View File

@@ -30,10 +30,15 @@
<div>
<v-client-table
:data="dataTableTriggers"
:columns="columns"
:options="options"
:columns="columnsTriggers"
:options="optionsTriggers"
ref="vueTableTriggers"
/>
>
<span
slot="code"
v-html="props.row.code"
slot-scope="props">{{props.row.code}}</span>
</v-client-table>
</div>
</tab>
</tabs>
@@ -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 });
}
},
}
};
</script>
@@ -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;
}
</style>

View File

@@ -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
}
});
},

View File

@@ -18,6 +18,7 @@
variant="info"
:src="item.AVATAR"
size="2em"
v-show="item.UNASSIGNED"
></b-avatar>
</div>
<b-popover
@@ -32,6 +33,7 @@
variant="info"
:src="item.AVATAR"
size="4em"
v-show="item.UNASSIGNED"
></b-avatar>
</b-col>
<b-col md="9">

View File

@@ -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");
},

View File

@@ -31,6 +31,7 @@
@onUpdateDataCase="onUpdateDataCase"
@onLastPage="onLastPage"
@onUpdateFilters="onUpdateFilters"
@cleanDefaultOption="cleanDefaultOption"
></component>
</div>
</div>
@@ -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";

View File

@@ -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";

View File

@@ -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
}
);
}

View File

@@ -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
*

View File

@@ -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");
},

View File

@@ -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
*

View File

@@ -9,7 +9,7 @@
allowfullscreen
@load="onLoadIframe"
></iframe>
<Debugger v-if="openDebug === true" :style="'height:' + height + 'px'" />
<Debugger v-if="openDebug === true" :style="'height:' + height + 'px'" ref="debugger"/>
</div>
</template>
@@ -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() {},
},
};

View File

@@ -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

View File

@@ -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'])) {

View File

@@ -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);