Merge branch 'release/3.6.0' of https://bitbucket.org/colosa/processmaker into debugger
This commit is contained in:
@@ -45,6 +45,16 @@ export let cases = {
|
|||||||
keys: {}
|
keys: {}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
openSummary(data) {
|
||||||
|
var params = new FormData();
|
||||||
|
params.append('appUid', data.APP_UID);
|
||||||
|
params.append('delIndex', data.DEL_INDEX);
|
||||||
|
params.append('action', 'todo');
|
||||||
|
|
||||||
|
return axios.post(window.config.SYS_SERVER +
|
||||||
|
window.config.SYS_URI +
|
||||||
|
`appProxy/requestOpenSummary`, params);
|
||||||
|
},
|
||||||
inputdocuments(data) {
|
inputdocuments(data) {
|
||||||
var params = new FormData();
|
var params = new FormData();
|
||||||
params.append('appUid', data.APP_UID);
|
params.append('appUid', data.APP_UID);
|
||||||
@@ -73,7 +83,11 @@ export let cases = {
|
|||||||
|
|
||||||
return axios.post(window.config.SYS_SERVER +
|
return axios.post(window.config.SYS_SERVER +
|
||||||
window.config.SYS_URI +
|
window.config.SYS_URI +
|
||||||
`appProxy/getSummary`, params);
|
`appProxy/getSummary`, params, {
|
||||||
|
headers: {
|
||||||
|
'Cache-Control': 'no-cache'
|
||||||
|
}
|
||||||
|
});
|
||||||
},
|
},
|
||||||
casenotes(data) {
|
casenotes(data) {
|
||||||
var params = new FormData();
|
var params = new FormData();
|
||||||
|
|||||||
@@ -72,11 +72,12 @@ export let filters = {
|
|||||||
/**
|
/**
|
||||||
* Service to get the users list
|
* Service to get the users list
|
||||||
*/
|
*/
|
||||||
taskList(query) {
|
taskList(params) {
|
||||||
return Api.get({
|
return Api.get({
|
||||||
service: "TASKS",
|
service: "TASKS",
|
||||||
params: {
|
params: {
|
||||||
text: query,
|
text: params.query,
|
||||||
|
proId: params.proId
|
||||||
},
|
},
|
||||||
keys: {},
|
keys: {},
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -0,0 +1,47 @@
|
|||||||
|
<template>
|
||||||
|
<div class="summaryForm">
|
||||||
|
<iframe
|
||||||
|
:width="width"
|
||||||
|
ref="IFrameSummaryForm"
|
||||||
|
frameborder="0"
|
||||||
|
:src="path"
|
||||||
|
:height="height"
|
||||||
|
allowfullscreen
|
||||||
|
>
|
||||||
|
</iframe>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
name: "MoreInformation",
|
||||||
|
props: {
|
||||||
|
data: Object
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
height: "500px",
|
||||||
|
width: "100%",
|
||||||
|
diffHeight: 10
|
||||||
|
};
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
path() {
|
||||||
|
let url = "";
|
||||||
|
if (this.data && this.data.DYN_UID) {
|
||||||
|
url =
|
||||||
|
window.config.SYS_SERVER +
|
||||||
|
window.config.SYS_URI +
|
||||||
|
'/cases/summary?APP_UID='+this.data.APP_UID +
|
||||||
|
'&DEL_INDEX=' + this.data.DEL_INDEX +
|
||||||
|
'&DYN_UID=' + this.data.DYN_UID;
|
||||||
|
}
|
||||||
|
return url;
|
||||||
|
},
|
||||||
|
},
|
||||||
|
mounted() {},
|
||||||
|
methods: {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
@@ -30,7 +30,7 @@ export default {
|
|||||||
isOnMobile: false,
|
isOnMobile: false,
|
||||||
hideToggle: true,
|
hideToggle: true,
|
||||||
selectedTheme: "",
|
selectedTheme: "",
|
||||||
sidebarWidth: "310px",
|
sidebarWidth: "260px",
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
|
|||||||
@@ -127,6 +127,7 @@
|
|||||||
{{ tagContent(tag) }}
|
{{ tagContent(tag) }}
|
||||||
</div>
|
</div>
|
||||||
<component
|
<component
|
||||||
|
:filters="filters"
|
||||||
v-bind:is="tagComponent(tag)"
|
v-bind:is="tagComponent(tag)"
|
||||||
v-bind:info="tagInfo(tag)"
|
v-bind:info="tagInfo(tag)"
|
||||||
v-bind:tag="tag"
|
v-bind:tag="tag"
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ export default {
|
|||||||
SearchPopover,
|
SearchPopover,
|
||||||
Multiselect
|
Multiselect
|
||||||
},
|
},
|
||||||
props: ["tag", "info", "filter"],
|
props: ["tag", "info", "filters", "filter"],
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
taks: [],
|
taks: [],
|
||||||
@@ -53,9 +53,12 @@ export default {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
asyncFind(query) {
|
asyncFind(query) {
|
||||||
|
let params = {};
|
||||||
this.isLoading = true;
|
this.isLoading = true;
|
||||||
|
params.proId = this.getProcess();
|
||||||
|
params.query = query;
|
||||||
api.filters
|
api.filters
|
||||||
.taskList(query)
|
.taskList(params)
|
||||||
.then((response) => {
|
.then((response) => {
|
||||||
this.taks = response.data;
|
this.taks = response.data;
|
||||||
this.isLoading = false;
|
this.isLoading = false;
|
||||||
@@ -64,6 +67,13 @@ export default {
|
|||||||
console.error(err);
|
console.error(err);
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
/**
|
||||||
|
* Get the process id to manage the dependency
|
||||||
|
*/
|
||||||
|
getProcess() {
|
||||||
|
let component = _.find(this.filters, function(o) { return o.fieldId === "processName"; });
|
||||||
|
return component ? component.value : null;
|
||||||
|
},
|
||||||
/**
|
/**
|
||||||
* Form validations review
|
* Form validations review
|
||||||
*/
|
*/
|
||||||
|
|||||||
81
resources/assets/js/components/vuetable/CurrentUserCell.vue
Normal file
81
resources/assets/js/components/vuetable/CurrentUserCell.vue
Normal file
@@ -0,0 +1,81 @@
|
|||||||
|
<template>
|
||||||
|
<div v-if="data.length" class="grouped-cell">
|
||||||
|
<div v-for="(item, index) in data" v-bind:key="item.TITLE" class="d-flex mb-3">
|
||||||
|
<div class="avatar" :id="id + index">
|
||||||
|
<b-avatar
|
||||||
|
variant="info"
|
||||||
|
:src="item.AVATAR"
|
||||||
|
size="2em"
|
||||||
|
></b-avatar>
|
||||||
|
</div>
|
||||||
|
<b-popover
|
||||||
|
:target="id + index"
|
||||||
|
placement="top"
|
||||||
|
ref="popover"
|
||||||
|
triggers="hover"
|
||||||
|
>
|
||||||
|
<b-row >
|
||||||
|
<b-col md="3">
|
||||||
|
<b-avatar
|
||||||
|
variant="info"
|
||||||
|
:src="item.AVATAR"
|
||||||
|
size="4em"
|
||||||
|
></b-avatar>
|
||||||
|
</b-col>
|
||||||
|
<b-col md="9">
|
||||||
|
<div class="font-weight-bold">{{item.USERNAME_DISPLAY_FORMAT}}</div>
|
||||||
|
<div v-if="item.POSITION !== ''">{{item.POSITION}}</div>
|
||||||
|
<b-link :href="mailto(item.EMAIL)" >{{item.EMAIL}}</b-link>
|
||||||
|
</b-col>
|
||||||
|
</b-row>
|
||||||
|
</b-popover>
|
||||||
|
<div class="col ellipsis">
|
||||||
|
{{ item.USERNAME_DISPLAY_FORMAT }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
name: "CurrentUserCell",
|
||||||
|
props: ["data"],
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
id: "avatar-" + _.random(1000000)
|
||||||
|
};
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
/**
|
||||||
|
* Generates the mail link
|
||||||
|
*/
|
||||||
|
mailto: function(email) {
|
||||||
|
return "mailto:" + email;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.popover {
|
||||||
|
max-width: 600px !important;
|
||||||
|
min-width: 200px !important;
|
||||||
|
}
|
||||||
|
.grouped-cell {
|
||||||
|
font-size: small;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ellipsis {
|
||||||
|
white-space: nowrap;
|
||||||
|
width: 140px;
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
}
|
||||||
|
.color {
|
||||||
|
color: red;
|
||||||
|
}
|
||||||
|
.avatar {
|
||||||
|
color: "red";
|
||||||
|
width: "1.3em";
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<div v-if="data.length" class="grouped-cell">
|
<div v-if="data.length" class="grouped-cell">
|
||||||
<div v-for="item in data" v-bind:key="item.TITLE" class="d-flex mb-3">
|
<div v-for="(item, index) in data" v-bind:key="item.TITLE" class="d-flex mb-3">
|
||||||
<div
|
<div
|
||||||
v-bind:style="{ color: activeColor(item.STATUS) }"
|
v-bind:style="{ color: activeColor(item.STATUS) }"
|
||||||
v-b-popover.hover.top="item.DELAYED_MSG"
|
v-b-popover.hover.top="item.DELAYED_MSG"
|
||||||
@@ -10,7 +10,7 @@
|
|||||||
<div class="col ellipsis" v-b-popover.hover.top="item.TAS_NAME">
|
<div class="col ellipsis" v-b-popover.hover.top="item.TAS_NAME">
|
||||||
{{ item.TAS_NAME }}
|
{{ item.TAS_NAME }}
|
||||||
</div>
|
</div>
|
||||||
<div class="avatar" :id="id">
|
<div class="avatar" :id="id + index">
|
||||||
<b-avatar
|
<b-avatar
|
||||||
variant="info"
|
variant="info"
|
||||||
:src="item.AVATAR"
|
:src="item.AVATAR"
|
||||||
@@ -18,7 +18,7 @@
|
|||||||
></b-avatar>
|
></b-avatar>
|
||||||
</div>
|
</div>
|
||||||
<b-popover
|
<b-popover
|
||||||
:target="id"
|
:target="id + index"
|
||||||
placement="top"
|
placement="top"
|
||||||
ref="popover"
|
ref="popover"
|
||||||
triggers="hover"
|
triggers="hover"
|
||||||
|
|||||||
@@ -55,11 +55,7 @@
|
|||||||
{{ props.row.STATUS }}
|
{{ props.row.STATUS }}
|
||||||
</div>
|
</div>
|
||||||
<div slot="current_user" slot-scope="props">
|
<div slot="current_user" slot-scope="props">
|
||||||
<div class="v-user-cell" v-for="item in props.row.USER">
|
<CurrentUserCell :data="props.row.USER_DATA" />
|
||||||
<div class="col .v-user-cell-ellipsis">
|
|
||||||
{{ item.USER_DATA }}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<div slot="start_date" slot-scope="props">
|
<div slot="start_date" slot-scope="props">
|
||||||
{{ props.row.START_DATE }}
|
{{ props.row.START_DATE }}
|
||||||
@@ -87,6 +83,7 @@ import ButtonFleft from "../components/home/ButtonFleft.vue";
|
|||||||
import ModalNewRequest from "./ModalNewRequest.vue";
|
import ModalNewRequest from "./ModalNewRequest.vue";
|
||||||
import AdvancedFilter from "../components/search/AdvancedFilter";
|
import AdvancedFilter from "../components/search/AdvancedFilter";
|
||||||
import TaskCell from "../components/vuetable/TaskCell.vue";
|
import TaskCell from "../components/vuetable/TaskCell.vue";
|
||||||
|
import CurrentUserCell from "../components/vuetable/CurrentUserCell.vue";
|
||||||
import ModalComments from "./modal/ModalComments.vue";
|
import ModalComments from "./modal/ModalComments.vue";
|
||||||
import api from "./../api/index";
|
import api from "./../api/index";
|
||||||
import utils from "./../utils/utils";
|
import utils from "./../utils/utils";
|
||||||
@@ -98,6 +95,7 @@ export default {
|
|||||||
ButtonFleft,
|
ButtonFleft,
|
||||||
ModalNewRequest,
|
ModalNewRequest,
|
||||||
TaskCell,
|
TaskCell,
|
||||||
|
CurrentUserCell,
|
||||||
ModalComments
|
ModalComments
|
||||||
},
|
},
|
||||||
props: ["id", "name", "filters"],
|
props: ["id", "name", "filters"],
|
||||||
@@ -231,7 +229,7 @@ export default {
|
|||||||
CASE_TITLE: v.DEL_TITLE,
|
CASE_TITLE: v.DEL_TITLE,
|
||||||
PROCESS_NAME: v.PRO_TITLE,
|
PROCESS_NAME: v.PRO_TITLE,
|
||||||
TASK: this.formatTasks(v.THREAD_TASKS),
|
TASK: this.formatTasks(v.THREAD_TASKS),
|
||||||
USER: this.formatUser(v.THREAD_USERS),
|
USER_DATA: this.formatUser(v.THREAD_USERS),
|
||||||
START_DATE: v.APP_CREATE_DATE_LABEL,
|
START_DATE: v.APP_CREATE_DATE_LABEL,
|
||||||
FINISH_DATE: v.APP_FINISH_DATE_LABEL,
|
FINISH_DATE: v.APP_FINISH_DATE_LABEL,
|
||||||
DURATION: v.DURATION,
|
DURATION: v.DURATION,
|
||||||
@@ -263,12 +261,17 @@ export default {
|
|||||||
dataFormat = [];
|
dataFormat = [];
|
||||||
for (i = 0; i < data.length; i += 1) {
|
for (i = 0; i < data.length; i += 1) {
|
||||||
dataFormat.push({
|
dataFormat.push({
|
||||||
USER_DATA: utils.userNameDisplayFormat({
|
USERNAME_DISPLAY_FORMAT: utils.userNameDisplayFormat({
|
||||||
userName: data[i].usr_firstname,
|
userName: data[i].usr_firstname,
|
||||||
firstName: data[i].usr_lastname,
|
firstName: data[i].usr_lastname,
|
||||||
lastName: data[i].usr_username,
|
lastName: data[i].usr_username,
|
||||||
format: window.config.FORMATS.format || null
|
format: window.config.FORMATS.format || null
|
||||||
}),
|
}),
|
||||||
|
EMAIL: data[i].usr_email,
|
||||||
|
POSITION: data[i].usr_position,
|
||||||
|
AVATAR: window.config.SYS_SERVER +
|
||||||
|
window.config.SYS_URI +
|
||||||
|
`users/users_ViewPhotoGrid?pUID=${data[i].user_id}`
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
return dataFormat;
|
return dataFormat;
|
||||||
|
|||||||
@@ -201,6 +201,7 @@ export default {
|
|||||||
this.getInputDocuments();
|
this.getInputDocuments();
|
||||||
this.getOutputDocuments();
|
this.getOutputDocuments();
|
||||||
this.getCasesNotes();
|
this.getCasesNotes();
|
||||||
|
this.requestOpenSummary();
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
postComment(comment, send, files) {
|
postComment(comment, send, files) {
|
||||||
@@ -280,7 +281,7 @@ export default {
|
|||||||
action = _.find(response.data, function(o) { return o.id == "ACTIONS"; });
|
action = _.find(response.data, function(o) { return o.id == "ACTIONS"; });
|
||||||
if(action){
|
if(action){
|
||||||
option = _.find(action.options, function(o) { return o.fn == "cancelCase"; });
|
option = _.find(action.options, function(o) { return o.fn == "cancelCase"; });
|
||||||
if(!option.hide){
|
if(option && !option.hide){
|
||||||
that.dataCaseSummary.onClick = () => {
|
that.dataCaseSummary.onClick = () => {
|
||||||
that.$refs["modal-cancel-case"].show();
|
that.$refs["modal-cancel-case"].show();
|
||||||
};
|
};
|
||||||
@@ -504,7 +505,24 @@ export default {
|
|||||||
ACTION: "todo",
|
ACTION: "todo",
|
||||||
});
|
});
|
||||||
this.$emit("onUpdatePage", "XCase");
|
this.$emit("onUpdatePage", "XCase");
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* Verify if the case has the permission Summary Form
|
||||||
|
* to add dynUid in dataCase
|
||||||
|
*/
|
||||||
|
requestOpenSummary() {
|
||||||
|
Api.cases
|
||||||
|
.openSummary(this.dataCase)
|
||||||
|
.then((response) => {
|
||||||
|
var data = response.data;
|
||||||
|
if (data.dynUid !== "") {
|
||||||
|
this.dataCase.DYN_UID = data.dynUid;
|
||||||
}
|
}
|
||||||
|
})
|
||||||
|
.catch((e) => {
|
||||||
|
console.error(e);
|
||||||
|
});
|
||||||
|
},
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -49,6 +49,7 @@ import ModalNewRequest from "./ModalNewRequest.vue";
|
|||||||
import CasesFilter from "../components/search/CasesFilter";
|
import CasesFilter from "../components/search/CasesFilter";
|
||||||
import TaskCell from "../components/vuetable/TaskCell.vue";
|
import TaskCell from "../components/vuetable/TaskCell.vue";
|
||||||
import api from "./../api/index";
|
import api from "./../api/index";
|
||||||
|
import utils from "./../utils/utils";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "Draft",
|
name: "Draft",
|
||||||
@@ -59,7 +60,7 @@ export default {
|
|||||||
TaskCell,
|
TaskCell,
|
||||||
CasesFilter,
|
CasesFilter,
|
||||||
},
|
},
|
||||||
props: {},
|
props: ["defaultOption"],
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
newCase: {
|
newCase: {
|
||||||
@@ -106,7 +107,9 @@ export default {
|
|||||||
singleClickTimer: null
|
singleClickTimer: null
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
mounted() {},
|
mounted() {
|
||||||
|
this.openDefaultCase();
|
||||||
|
},
|
||||||
watch: {},
|
watch: {},
|
||||||
computed: {
|
computed: {
|
||||||
/**
|
/**
|
||||||
@@ -119,6 +122,21 @@ export default {
|
|||||||
updated() {},
|
updated() {},
|
||||||
beforeCreate() {},
|
beforeCreate() {},
|
||||||
methods: {
|
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
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
/**
|
/**
|
||||||
* On row click event handler
|
* On row click event handler
|
||||||
* @param {object} event
|
* @param {object} event
|
||||||
|
|||||||
@@ -24,6 +24,7 @@
|
|||||||
:id="pageId"
|
:id="pageId"
|
||||||
:pageUri="pageUri"
|
:pageUri="pageUri"
|
||||||
:name="pageName"
|
:name="pageName"
|
||||||
|
:defaultOption="defaultOption"
|
||||||
@onSubmitFilter="onSubmitFilter"
|
@onSubmitFilter="onSubmitFilter"
|
||||||
@onRemoveFilter="onRemoveFilter"
|
@onRemoveFilter="onRemoveFilter"
|
||||||
@onUpdatePage="onUpdatePage"
|
@onUpdatePage="onUpdatePage"
|
||||||
@@ -78,7 +79,7 @@ export default {
|
|||||||
collapsed: false,
|
collapsed: false,
|
||||||
selectedTheme: "",
|
selectedTheme: "",
|
||||||
isOnMobile: false,
|
isOnMobile: false,
|
||||||
sidebarWidth: "310px",
|
sidebarWidth: "260px",
|
||||||
pageId: null,
|
pageId: null,
|
||||||
pageName: null,
|
pageName: null,
|
||||||
pageUri: null,
|
pageUri: null,
|
||||||
@@ -93,7 +94,8 @@ export default {
|
|||||||
CONSOLIDATED_CASES: "batch-routing",
|
CONSOLIDATED_CASES: "batch-routing",
|
||||||
CASES_TO_REASSIGN: "task-reassignments",
|
CASES_TO_REASSIGN: "task-reassignments",
|
||||||
CASES_FOLDERS: "my-documents"
|
CASES_FOLDERS: "my-documents"
|
||||||
}
|
},
|
||||||
|
defaultOption: window.config.defaultOption || ''
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
@@ -311,7 +313,7 @@ export default {
|
|||||||
|
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
#home {
|
#home {
|
||||||
padding-left: 310px;
|
padding-left: 260px;
|
||||||
transition: 0.3s;
|
transition: 0.3s;
|
||||||
}
|
}
|
||||||
#home.collapsed {
|
#home.collapsed {
|
||||||
|
|||||||
@@ -441,6 +441,7 @@ export default {
|
|||||||
onClick: (obj) => {
|
onClick: (obj) => {
|
||||||
that.title = obj.title;
|
that.title = obj.title;
|
||||||
that.filterHeader = obj.item;
|
that.filterHeader = obj.item;
|
||||||
|
that.$refs["vueTable"].setPage(1); // Reset the page when change the header filter
|
||||||
that.$refs["vueTable"].getData();
|
that.$refs["vueTable"].getData();
|
||||||
},
|
},
|
||||||
class: info[v.id].class
|
class: info[v.id].class
|
||||||
|
|||||||
@@ -92,7 +92,6 @@ export default {
|
|||||||
"case_title",
|
"case_title",
|
||||||
"process_name",
|
"process_name",
|
||||||
"task",
|
"task",
|
||||||
"current_user",
|
|
||||||
"due_date",
|
"due_date",
|
||||||
"delegation_date",
|
"delegation_date",
|
||||||
"priority",
|
"priority",
|
||||||
|
|||||||
@@ -4,6 +4,10 @@
|
|||||||
<tab :name="$t('ID_SUMMARY')">
|
<tab :name="$t('ID_SUMMARY')">
|
||||||
<PmCaseSummary :data="dataCaseSummary"> </PmCaseSummary>
|
<PmCaseSummary :data="dataCaseSummary"> </PmCaseSummary>
|
||||||
</tab>
|
</tab>
|
||||||
|
<tab :name="$t('ID_MORE_INFORMATION')">
|
||||||
|
<MoreInformation :data="dataCase" v-if="currentTab == $t('ID_MORE_INFORMATION')">
|
||||||
|
</MoreInformation>
|
||||||
|
</tab>
|
||||||
<tab :name="$t('ID_PROCESS_MAP')">
|
<tab :name="$t('ID_PROCESS_MAP')">
|
||||||
<ProcessMap :data="dataCase" v-if="currentTab == $t('ID_PROCESS_MAP')">
|
<ProcessMap :data="dataCase" v-if="currentTab == $t('ID_PROCESS_MAP')">
|
||||||
</ProcessMap>
|
</ProcessMap>
|
||||||
@@ -25,6 +29,7 @@ import PmCaseSummary from "./../components/home/caseDetail/PmCaseSummary.vue";
|
|||||||
import ProcessMap from "./../components/home/caseDetail/ProcessMap.vue";
|
import ProcessMap from "./../components/home/caseDetail/ProcessMap.vue";
|
||||||
import CaseHistory from "./../components/home/caseDetail/CaseHistory.vue";
|
import CaseHistory from "./../components/home/caseDetail/CaseHistory.vue";
|
||||||
import ChangeLog from "./../components/home/caseDetail/ChangeLog.vue";
|
import ChangeLog from "./../components/home/caseDetail/ChangeLog.vue";
|
||||||
|
import MoreInformation from './../components/home/caseDetail/MoreInformation.vue';
|
||||||
import Api from "../api/index";
|
import Api from "../api/index";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
@@ -36,6 +41,7 @@ export default {
|
|||||||
PmCaseSummary,
|
PmCaseSummary,
|
||||||
CaseHistory,
|
CaseHistory,
|
||||||
ChangeLog,
|
ChangeLog,
|
||||||
|
MoreInformation
|
||||||
},
|
},
|
||||||
props: {
|
props: {
|
||||||
dataCase: Object,
|
dataCase: Object,
|
||||||
|
|||||||
@@ -70,6 +70,7 @@ export default {
|
|||||||
TaskCell,
|
TaskCell,
|
||||||
CasesFilter,
|
CasesFilter,
|
||||||
},
|
},
|
||||||
|
props: ["defaultOption"],
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
newCase: {
|
newCase: {
|
||||||
@@ -85,7 +86,6 @@ export default {
|
|||||||
"case_title",
|
"case_title",
|
||||||
"process_name",
|
"process_name",
|
||||||
"task",
|
"task",
|
||||||
"current_user",
|
|
||||||
"due_date",
|
"due_date",
|
||||||
"delegation_date",
|
"delegation_date",
|
||||||
"priority",
|
"priority",
|
||||||
@@ -136,6 +136,21 @@ export default {
|
|||||||
updated() {},
|
updated() {},
|
||||||
beforeCreate() {},
|
beforeCreate() {},
|
||||||
methods: {
|
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
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
/**
|
/**
|
||||||
* On row click event handler
|
* On row click event handler
|
||||||
* @param {object} event
|
* @param {object} event
|
||||||
|
|||||||
@@ -13,11 +13,79 @@ export default {
|
|||||||
format: '(@lastName, @firstName) @userName'
|
format: '(@lastName, @firstName) @userName'
|
||||||
};
|
};
|
||||||
_.assignIn(defaultValues, params);
|
_.assignIn(defaultValues, params);
|
||||||
console.log(defaultValues);
|
|
||||||
aux = defaultValues.format;
|
aux = defaultValues.format;
|
||||||
aux = aux.replace('@userName',defaultValues.userName);
|
aux = aux.replace('@userName',defaultValues.userName);
|
||||||
aux = aux.replace('@firstName',defaultValues.firstName);
|
aux = aux.replace('@firstName',defaultValues.firstName);
|
||||||
aux = aux.replace('@lastName',defaultValues.lastName);
|
aux = aux.replace('@lastName',defaultValues.lastName);
|
||||||
return aux;
|
return aux;
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* Parse an url string and prepare an object of the parameters
|
||||||
|
* @param {string} url
|
||||||
|
* @returns {object}
|
||||||
|
*/
|
||||||
|
getAllUrlParams(url) {
|
||||||
|
|
||||||
|
// get query string from url (optional) or window
|
||||||
|
var queryString = url ? url.split('?')[1] : window.location.search.slice(1);
|
||||||
|
|
||||||
|
// we'll store the parameters here
|
||||||
|
var obj = {};
|
||||||
|
|
||||||
|
// if query string exists
|
||||||
|
if (queryString) {
|
||||||
|
|
||||||
|
// stuff after # is not part of query string, so get rid of it
|
||||||
|
queryString = queryString.split('#')[0];
|
||||||
|
|
||||||
|
// split our query string into its component parts
|
||||||
|
var arr = queryString.split('&');
|
||||||
|
|
||||||
|
for (var i = 0; i < arr.length; i++) {
|
||||||
|
// separate the keys and the values
|
||||||
|
var a = arr[i].split('=');
|
||||||
|
|
||||||
|
// set parameter name and value (use 'true' if empty)
|
||||||
|
var paramName = a[0];
|
||||||
|
var paramValue = typeof (a[1]) === 'undefined' ? true : a[1];
|
||||||
|
|
||||||
|
// (optional) keep case consistent
|
||||||
|
paramName = paramName.toLowerCase();
|
||||||
|
if (typeof paramValue === 'string') paramValue = paramValue.toLowerCase();
|
||||||
|
|
||||||
|
// if the paramName ends with square brackets, e.g. colors[] or colors[2]
|
||||||
|
if (paramName.match(/\[(\d+)?\]$/)) {
|
||||||
|
|
||||||
|
// create key if it doesn't exist
|
||||||
|
var key = paramName.replace(/\[(\d+)?\]/, '');
|
||||||
|
if (!obj[key]) obj[key] = [];
|
||||||
|
|
||||||
|
// if it's an indexed array e.g. colors[2]
|
||||||
|
if (paramName.match(/\[\d+\]$/)) {
|
||||||
|
// get the index value and add the entry at the appropriate position
|
||||||
|
var index = /\[(\d+)\]/.exec(paramName)[1];
|
||||||
|
obj[key][index] = paramValue;
|
||||||
|
} else {
|
||||||
|
// otherwise add the value to the end of the array
|
||||||
|
obj[key].push(paramValue);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// we're dealing with a string
|
||||||
|
if (!obj[paramName]) {
|
||||||
|
// if it doesn't exist, create property
|
||||||
|
obj[paramName] = paramValue;
|
||||||
|
} else if (obj[paramName] && typeof obj[paramName] === 'string'){
|
||||||
|
// if property does exist and it's a string, convert it to an array
|
||||||
|
obj[paramName] = [obj[paramName]];
|
||||||
|
obj[paramName].push(paramValue);
|
||||||
|
} else {
|
||||||
|
// otherwise add the property
|
||||||
|
obj[paramName].push(paramValue);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return obj;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -32,10 +32,26 @@
|
|||||||
<b-form-invalid-feedback>{{$root.translation('ID_IS_REQUIRED')}}</b-form-invalid-feedback>
|
<b-form-invalid-feedback>{{$root.translation('ID_IS_REQUIRED')}}</b-form-invalid-feedback>
|
||||||
</b-form-group>
|
</b-form-group>
|
||||||
<b-form-group :label="$root.translation('ID_PORT')">
|
<b-form-group :label="$root.translation('ID_PORT')">
|
||||||
|
<b-input-group>
|
||||||
|
<template #append>
|
||||||
|
<b-input-group-text class="p-0">
|
||||||
|
<b-button size="md"
|
||||||
|
variant="outline-light"
|
||||||
|
class="border-0"
|
||||||
|
@click="disabledField.port=!disabledField.port;">
|
||||||
|
<b-icon icon="pencil-fill"
|
||||||
|
aria-hidden="true"
|
||||||
|
variant="primary">
|
||||||
|
</b-icon>
|
||||||
|
</b-button>
|
||||||
|
</b-input-group-text>
|
||||||
|
</template>
|
||||||
<b-form-input v-model="form.port"
|
<b-form-input v-model="form.port"
|
||||||
:state="validateState('port')"
|
:state="validateState('port')"
|
||||||
|
:disabled="disabledField.port"
|
||||||
autocomplete="off"/>
|
autocomplete="off"/>
|
||||||
<b-form-invalid-feedback>{{$root.translation('ID_IS_REQUIRED')}}</b-form-invalid-feedback>
|
<b-form-invalid-feedback>{{$root.translation('ID_IS_REQUIRED')}}</b-form-invalid-feedback>
|
||||||
|
</b-input-group>
|
||||||
</b-form-group>
|
</b-form-group>
|
||||||
<b-form-group :label="$root.translation('ID_ENABLE_AUTOMATIC_REGISTER')"
|
<b-form-group :label="$root.translation('ID_ENABLE_AUTOMATIC_REGISTER')"
|
||||||
label-cols-lg="8">
|
label-cols-lg="8">
|
||||||
@@ -93,30 +109,108 @@
|
|||||||
<b-form-invalid-feedback>{{$root.translation('ID_IS_REQUIRED')}}</b-form-invalid-feedback>
|
<b-form-invalid-feedback>{{$root.translation('ID_IS_REQUIRED')}}</b-form-invalid-feedback>
|
||||||
</b-form-group>
|
</b-form-group>
|
||||||
<b-form-group :label="$root.translation('ID_USER_IDENTIFIER')">
|
<b-form-group :label="$root.translation('ID_USER_IDENTIFIER')">
|
||||||
|
<b-input-group>
|
||||||
|
<template #append>
|
||||||
|
<b-input-group-text class="p-0">
|
||||||
|
<b-button size="md"
|
||||||
|
variant="outline-light"
|
||||||
|
class="border-0"
|
||||||
|
@click="disabledField.userIdentifier=!disabledField.userIdentifier;">
|
||||||
|
<b-icon icon="pencil-fill"
|
||||||
|
aria-hidden="true"
|
||||||
|
variant="primary">
|
||||||
|
</b-icon>
|
||||||
|
</b-button>
|
||||||
|
</b-input-group-text>
|
||||||
|
</template>
|
||||||
<b-form-input v-model="form.userIdentifier"
|
<b-form-input v-model="form.userIdentifier"
|
||||||
autocomplete="off"
|
autocomplete="off"
|
||||||
readonly/>
|
:disabled="disabledField.userIdentifier"/>
|
||||||
|
</b-input-group>
|
||||||
</b-form-group>
|
</b-form-group>
|
||||||
<b-form-group :label="$root.translation('ID_GROUP_IDENTIFIER')">
|
<b-form-group :label="$root.translation('ID_GROUP_IDENTIFIER')">
|
||||||
|
<b-input-group>
|
||||||
|
<template #append>
|
||||||
|
<b-input-group-text class="p-0">
|
||||||
|
<b-button size="md"
|
||||||
|
variant="outline-light"
|
||||||
|
class="border-0"
|
||||||
|
@click="disabledField.groupIdentifier=!disabledField.groupIdentifier;">
|
||||||
|
<b-icon icon="pencil-fill"
|
||||||
|
aria-hidden="true"
|
||||||
|
variant="primary">
|
||||||
|
</b-icon>
|
||||||
|
</b-button>
|
||||||
|
</b-input-group-text>
|
||||||
|
</template>
|
||||||
<b-form-input v-model="form.groupIdentifier"
|
<b-form-input v-model="form.groupIdentifier"
|
||||||
autocomplete="off"
|
autocomplete="off"
|
||||||
readonly/>
|
:disabled="disabledField.groupIdentifier"/>
|
||||||
|
</b-input-group>
|
||||||
</b-form-group>
|
</b-form-group>
|
||||||
<b-form-group :label="$root.translation('ID_FILTER_TO_SEARCH_USERS')">
|
<b-form-group :label="$root.translation('ID_FILTER_TO_SEARCH_USERS')">
|
||||||
<b-form-input v-model="form.filterToSearchUsers"
|
<b-form-input v-model="form.filterToSearchUsers"
|
||||||
autocomplete="off"/>
|
autocomplete="off"/>
|
||||||
</b-form-group>
|
</b-form-group>
|
||||||
<b-form-group :label="$root.translation('ID_USER_CLASS_IDENTIFIER')">
|
<b-form-group :label="$root.translation('ID_USER_CLASS_IDENTIFIER')">
|
||||||
|
<b-input-group>
|
||||||
|
<template #append>
|
||||||
|
<b-input-group-text class="p-0">
|
||||||
|
<b-button size="md"
|
||||||
|
variant="outline-light"
|
||||||
|
class="border-0"
|
||||||
|
@click="disabledField.userClassIdentifier=!disabledField.userClassIdentifier;">
|
||||||
|
<b-icon icon="pencil-fill"
|
||||||
|
aria-hidden="true"
|
||||||
|
variant="primary">
|
||||||
|
</b-icon>
|
||||||
|
</b-button>
|
||||||
|
</b-input-group-text>
|
||||||
|
</template>
|
||||||
<b-form-input v-model="form.userClassIdentifier"
|
<b-form-input v-model="form.userClassIdentifier"
|
||||||
|
:disabled="disabledField.userClassIdentifier"
|
||||||
autocomplete="off"/>
|
autocomplete="off"/>
|
||||||
|
</b-input-group>
|
||||||
</b-form-group>
|
</b-form-group>
|
||||||
<b-form-group :label="$root.translation('ID_GROUP_CLASS_IDENTIFIER')">
|
<b-form-group :label="$root.translation('ID_GROUP_CLASS_IDENTIFIER')">
|
||||||
|
<b-input-group>
|
||||||
|
<template #append>
|
||||||
|
<b-input-group-text class="p-0">
|
||||||
|
<b-button size="md"
|
||||||
|
variant="outline-light"
|
||||||
|
class="border-0"
|
||||||
|
@click="disabledField.groupClassIdentifier=!disabledField.groupClassIdentifier;">
|
||||||
|
<b-icon icon="pencil-fill"
|
||||||
|
aria-hidden="true"
|
||||||
|
variant="primary">
|
||||||
|
</b-icon>
|
||||||
|
</b-button>
|
||||||
|
</b-input-group-text>
|
||||||
|
</template>
|
||||||
<b-form-input v-model="form.groupClassIdentifier"
|
<b-form-input v-model="form.groupClassIdentifier"
|
||||||
|
:disabled="disabledField.groupClassIdentifier"
|
||||||
autocomplete="off"/>
|
autocomplete="off"/>
|
||||||
|
</b-input-group>
|
||||||
</b-form-group>
|
</b-form-group>
|
||||||
<b-form-group :label="$root.translation('ID_DEPARTMENT_CLASS_IDENTIFIER')">
|
<b-form-group :label="$root.translation('ID_DEPARTMENT_CLASS_IDENTIFIER')">
|
||||||
|
<b-input-group>
|
||||||
|
<template #append>
|
||||||
|
<b-input-group-text class="p-0">
|
||||||
|
<b-button size="md"
|
||||||
|
variant="outline-light"
|
||||||
|
class="border-0"
|
||||||
|
@click="disabledField.departmentClassIdentifier=!disabledField.departmentClassIdentifier;">
|
||||||
|
<b-icon icon="pencil-fill"
|
||||||
|
aria-hidden="true"
|
||||||
|
variant="primary">
|
||||||
|
</b-icon>
|
||||||
|
</b-button>
|
||||||
|
</b-input-group-text>
|
||||||
|
</template>
|
||||||
<b-form-input v-model="form.departmentClassIdentifier"
|
<b-form-input v-model="form.departmentClassIdentifier"
|
||||||
|
:disabled="disabledField.departmentClassIdentifier"
|
||||||
autocomplete="off"/>
|
autocomplete="off"/>
|
||||||
|
</b-input-group>
|
||||||
</b-form-group>
|
</b-form-group>
|
||||||
</b-col>
|
</b-col>
|
||||||
</b-row>
|
</b-row>
|
||||||
@@ -228,7 +322,14 @@
|
|||||||
{value: "ds", text: "389 DS"}
|
{value: "ds", text: "389 DS"}
|
||||||
],
|
],
|
||||||
roles: [],
|
roles: [],
|
||||||
show: true
|
disabledField: {
|
||||||
|
port: true,
|
||||||
|
userIdentifier: true,
|
||||||
|
groupIdentifier: true,
|
||||||
|
userClassIdentifier: true,
|
||||||
|
groupClassIdentifier: true,
|
||||||
|
departmentClassIdentifier: true
|
||||||
|
}
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
|||||||
@@ -698,4 +698,35 @@ class Home extends Api
|
|||||||
throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage());
|
throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the process debug status
|
||||||
|
*
|
||||||
|
* @url GET /process-debug-status
|
||||||
|
*
|
||||||
|
* @param string $processUid
|
||||||
|
*
|
||||||
|
* @return bool
|
||||||
|
*
|
||||||
|
* @throws Exception
|
||||||
|
*
|
||||||
|
* @access protected
|
||||||
|
* @class AccessControl {@permission PM_CASES}
|
||||||
|
*/
|
||||||
|
public function getProcessDebugStatus($processUid)
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
// Get the process requested
|
||||||
|
$process = Process::query()->select(['PRO_DEBUG'])->where('PRO_UID', '=', $processUid)->first();
|
||||||
|
if (!is_null($process)) {
|
||||||
|
return $process->PRO_DEBUG === 1;
|
||||||
|
}
|
||||||
|
} catch (Exception $e) {
|
||||||
|
throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage());
|
||||||
|
}
|
||||||
|
// If not exists the requested process throw an 404 error
|
||||||
|
if (is_null($process)) {
|
||||||
|
throw new RestException(404, "Process with Uid '{$processUid}'.");
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1080,26 +1080,39 @@ Ext.onReady(function(){
|
|||||||
var data = Ext.util.JSON.decode(result.responseText);
|
var data = Ext.util.JSON.decode(result.responseText);
|
||||||
if (data.status == true) {
|
if (data.status == true) {
|
||||||
if (!isBrowserIE()) {
|
if (!isBrowserIE()) {
|
||||||
|
if (typeof parent.notify !== "undefined") {
|
||||||
// The case was cancelled
|
// The case was cancelled
|
||||||
parent.notify('', _("ID_CASE_CANCELLED", stringReplace("\\: ", "", _APP_NUM)));
|
parent.notify('', _("ID_CASE_CANCELLED", stringReplace("\\: ", "", _APP_NUM)));
|
||||||
|
}
|
||||||
|
if (typeof parent.updateCasesTree !== "undefined") {
|
||||||
parent.updateCasesTree();
|
parent.updateCasesTree();
|
||||||
|
}
|
||||||
|
if (typeof parent.highlightCasesTree !== "undefined") {
|
||||||
parent.highlightCasesTree();
|
parent.highlightCasesTree();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
if (!isBrowserIE()) {
|
if (!isBrowserIE()) {
|
||||||
|
if (typeof parent.notify !== "undefined") {
|
||||||
// The case wasn't cancel
|
// The case wasn't cancel
|
||||||
parent.notify('', data.msg);
|
parent.notify('', data.msg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
if (isBrowserIE()) {
|
if (isBrowserIE()) {
|
||||||
Ext.MessageBox.alert(_('ID_FAILED'), _('ID_SOMETHING_WRONG'));
|
Ext.MessageBox.alert(_('ID_FAILED'), _('ID_SOMETHING_WRONG'));
|
||||||
} else {
|
} else {
|
||||||
|
if (typeof parent.notify !== "undefined") {
|
||||||
parent.notify('', _('ID_SOMETHING_WRONG'));
|
parent.notify('', _('ID_SOMETHING_WRONG'));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
if (typeof parent.postMessage !== "undefined") {
|
||||||
|
parent.postMessage("redirect=todo","*");
|
||||||
|
} else {
|
||||||
location.href = 'casesListExtJs';
|
location.href = 'casesListExtJs';
|
||||||
|
}
|
||||||
},
|
},
|
||||||
failure: function (result, request) {
|
failure: function (result, request) {
|
||||||
Ext.MessageBox.alert(_('ID_FAILED'), result.responseText);
|
Ext.MessageBox.alert(_('ID_FAILED'), result.responseText);
|
||||||
@@ -1361,13 +1374,22 @@ Ext.onReady(function(){
|
|||||||
var data = Ext.util.JSON.decode(result.responseText);
|
var data = Ext.util.JSON.decode(result.responseText);
|
||||||
if( data.status == 0 ) {
|
if( data.status == 0 ) {
|
||||||
try {
|
try {
|
||||||
|
if (typeof parent.notify !== "undefined") {
|
||||||
parent.notify('', data.msg);
|
parent.notify('', data.msg);
|
||||||
|
}
|
||||||
|
if (typeof parent.updateCasesTree !== "undefined") {
|
||||||
parent.updateCasesTree();
|
parent.updateCasesTree();
|
||||||
|
}
|
||||||
|
if (typeof parent.highlightCasesTree !== "undefined") {
|
||||||
parent.highlightCasesTree();
|
parent.highlightCasesTree();
|
||||||
}
|
}
|
||||||
catch (e) {
|
} catch (e) {
|
||||||
}
|
}
|
||||||
|
if (typeof parent.postMessage !== "undefined") {
|
||||||
|
parent.postMessage("redirect=todo", "*");
|
||||||
|
} else {
|
||||||
location.href = 'casesListExtJs';
|
location.href = 'casesListExtJs';
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
alert(data.msg);
|
alert(data.msg);
|
||||||
}
|
}
|
||||||
@@ -1562,12 +1584,22 @@ Ext.onReady(function(){
|
|||||||
success : function(res, req) {
|
success : function(res, req) {
|
||||||
if(req.result.success) {
|
if(req.result.success) {
|
||||||
try {
|
try {
|
||||||
|
if (typeof parent.notify !== "undefined") {
|
||||||
parent.notify('PAUSE CASE', req.result.msg);
|
parent.notify('PAUSE CASE', req.result.msg);
|
||||||
parent.updateCasesTree();
|
|
||||||
parent.highlightCasesTree();
|
|
||||||
}catch (e) {
|
|
||||||
}
|
}
|
||||||
|
if (typeof parent.updateCasesTree !== "undefined") {
|
||||||
|
parent.updateCasesTree();
|
||||||
|
}
|
||||||
|
if (typeof parent.highlightCasesTree !== "undefined") {
|
||||||
|
parent.highlightCasesTree();
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
}
|
||||||
|
if (typeof parent.postMessage !== "undefined") {
|
||||||
|
parent.postMessage("redirect=todo", "*");
|
||||||
|
} else {
|
||||||
location.href = urlToRedirectAfterPause;
|
location.href = urlToRedirectAfterPause;
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
PMExt.error(_('ID_ERROR'), req.result.msg);
|
PMExt.error(_('ID_ERROR'), req.result.msg);
|
||||||
}
|
}
|
||||||
@@ -1657,13 +1689,22 @@ Ext.onReady(function(){
|
|||||||
var data = Ext.util.JSON.decode(result.responseText);
|
var data = Ext.util.JSON.decode(result.responseText);
|
||||||
if( data.success ) {
|
if( data.success ) {
|
||||||
try {
|
try {
|
||||||
|
if (typeof parent.PMExt.updateCasesTree !== "undefined") {
|
||||||
parent.PMExt.notify(_('ID_DELETE_ACTION'), data.msg);
|
parent.PMExt.notify(_('ID_DELETE_ACTION'), data.msg);
|
||||||
|
}
|
||||||
|
if (typeof parent.updateCasesTree !== "undefined") {
|
||||||
parent.updateCasesTree();
|
parent.updateCasesTree();
|
||||||
|
}
|
||||||
|
if (typeof parent.highlightCasesTree !== "undefined") {
|
||||||
parent.highlightCasesTree();
|
parent.highlightCasesTree();
|
||||||
}
|
}
|
||||||
catch (e) {
|
} catch (e) {
|
||||||
}
|
}
|
||||||
|
if (typeof parent.postMessage !== "undefined") {
|
||||||
|
parent.postMessage("redirect=todo", "*");
|
||||||
|
} else {
|
||||||
location.href = 'casesListExtJs';
|
location.href = 'casesListExtJs';
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
PMExt.error(_('ID_ERROR'), data.msg);
|
PMExt.error(_('ID_ERROR'), data.msg);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user