PMCORE-2605:Next Home: the column messages is not working

fix conflicts

check code style

check code style
This commit is contained in:
Rodrigo Quelca
2020-12-21 11:07:51 +00:00
parent 1943e8ec22
commit 6b9cdcc135
11 changed files with 108 additions and 35 deletions

View File

@@ -104,6 +104,7 @@
:key="tag" :key="tag"
:title="tag" :title="tag"
:variant="tagVariant" :variant="tagVariant"
@click="onClickTag"
class="mr-1" class="mr-1"
> >
@@ -530,6 +531,12 @@ export default {
name: this.name, name: this.name,
filters: this.filters filters: this.filters
}); });
},
/**
* On click tag handler
*/
onClickTag() {
this.$root.$emit('bv::hide::popover');
} }
} }
}; };

View File

@@ -9,6 +9,7 @@
triggers="click" triggers="click"
placement="bottom" placement="bottom"
class="popovercustom" class="popovercustom"
@show="onshow"
> >
<template #title> <template #title>
<b-button @click="onClose" class="close" aria-label="Close"> <b-button @click="onClose" class="close" aria-label="Close">
@@ -47,6 +48,12 @@ export default {
*/ */
onSave() { onSave() {
this.$emit('savePopover'); this.$emit('savePopover');
},
/**
* Show popover event handler
*/
onshow() {
this.$root.$emit('bv::hide::popover');
} }
} }
}; };

View File

@@ -29,7 +29,7 @@
:data="tableData" :data="tableData"
:columns="columns" :columns="columns"
:options="options" :options="options"
ref="test" ref="vueTable"
> >
<div slot="info" slot-scope="props"> <div slot="info" slot-scope="props">
<b-icon <b-icon
@@ -70,13 +70,15 @@
{{ props.row.DURATION }} {{ props.row.DURATION }}
</div> </div>
<div slot="actions" slot-scope="props"> <div slot="actions" slot-scope="props">
<div class="btn-default"> <div class="btn-default" v-bind:style="{ color: props.row.MESSAGE_COLOR}" @click="openComments(props.row)">
<i class="fas fa-comments"></i> <span class="fas fa-comments"></span>
<span class="badge badge-light">9</span>
<span class="sr-only">unread messages</span>
</div> </div>
</div> </div>
</v-server-table> </v-server-table>
<ModalComments
ref="modal-comments"
@postNotes="onPostNotes"
></ModalComments>
</div> </div>
</template> </template>
<script> <script>
@@ -84,6 +86,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 ModalComments from "./modal/ModalComments.vue";
import api from "./../api/index"; import api from "./../api/index";
import { Event } from "vue-tables-2"; import { Event } from "vue-tables-2";
@@ -93,7 +96,8 @@ export default {
AdvancedFilter, AdvancedFilter,
ButtonFleft, ButtonFleft,
ModalNewRequest, ModalNewRequest,
TaskCell TaskCell,
ModalComments
}, },
props: ["id", "name", "filters"], props: ["id", "name", "filters"],
data() { data() {
@@ -160,7 +164,7 @@ export default {
}, },
watch: { watch: {
id: function() { id: function() {
this.$refs.test.refresh(); this.$refs.vueTable.refresh();
}, },
}, },
methods: { methods: {
@@ -198,7 +202,7 @@ export default {
}); });
}, },
/** /**
* Format Response API TODO to grid todo and columns * Format the service response
*/ */
formatDataResponse(response) { formatDataResponse(response) {
let data = []; let data = [];
@@ -214,6 +218,9 @@ export default {
DURATION: v.DURATION, DURATION: v.DURATION,
DEL_INDEX: v.DEL_INDEX, DEL_INDEX: v.DEL_INDEX,
APP_UID: v.APP_UID, APP_UID: v.APP_UID,
PRO_UID: v.PRO_UID,
TAS_UID: v.TAS_UID,
MESSAGE_COLOR: v.CASE_NOTES_COUNT > 0 ? "black":"silver"
}); });
}); });
return data; return data;
@@ -401,6 +408,8 @@ export default {
this.$parent.dataCase = { this.$parent.dataCase = {
APP_UID: item.APP_UID, APP_UID: item.APP_UID,
DEL_INDEX: item.DEL_INDEX, DEL_INDEX: item.DEL_INDEX,
PRO_UID: item.PRO_UID,
TAS_UID: item.TAS_UID,
APP_NUMBER: item.CASE_NUMBER APP_NUMBER: item.CASE_NUMBER
}; };
this.$parent.page = "case-detail"; this.$parent.page = "case-detail";
@@ -495,12 +504,29 @@ export default {
*/ */
onSearch(params) { onSearch(params) {
this.$nextTick(() => { this.$nextTick(() => {
this.$refs.test.refresh(); this.$refs.vueTable.refresh();
}); });
}, },
onUpdateFilters(params) { onUpdateFilters(params) {
this.$emit("onUpdateFilters", params); this.$emit("onUpdateFilters", params);
}, },
/**
* Open the case notes modal
* @param {object} data - needed to create the data
*/
openComments(data) {
let that = this;
api.cases.open(_.extend({ ACTION: "todo" }, data)).then(() => {
that.$refs["modal-comments"].dataCase = data;
that.$refs["modal-comments"].show();
});
},
/**
* Post notes event handler
*/
onPostNotes() {
this.$refs["vueTable"].getData();
},
}, },
}; };
</script> </script>

View File

@@ -445,11 +445,11 @@ export default {
let data = []; let data = [];
_.forEach(response, (v) => { _.forEach(response, (v) => {
data.push({ data.push({
TASK: { TASK: [{
TITLE: v.TAS_TITLE, TITLE: v.TAS_TITLE,
CODE_COLOR: v.TAS_COLOR, CODE_COLOR: v.TAS_COLOR,
COLOR: v.TAS_COLOR_LABEL, COLOR: v.TAS_COLOR_LABEL,
}, }],
CASE_TITLE: v.DEL_TITLE, CASE_TITLE: v.DEL_TITLE,
ASSIGNEE: v.USR_FIRSTNAME + " " + v.USR_LASTNAME, ASSIGNEE: v.USR_FIRSTNAME + " " + v.USR_LASTNAME,
STATUS: v.DEL_THREAD_STATUS, STATUS: v.DEL_THREAD_STATUS,

View File

@@ -31,10 +31,25 @@
<div slot="task" slot-scope="props"> <div slot="task" slot-scope="props">
<TaskCell :data="props.row.TASK" /> <TaskCell :data="props.row.TASK" />
</div> </div>
<div slot="current_user" slot-scope="props">
{{
nameFormatCases(
props.row.USR_FIRSTNAME,
props.row.USR_LASTNAME,
props.row.USR_USERNAME
)
}}
</div>
<div slot="due_date" slot-scope="props">
{{ props.row.DUE_DATE }}
</div>
<div slot="delegation_date" slot-scope="props">
{{ props.row.DELEGATION_DATE }}
</div>
<div slot="priority" slot-scope="props">{{ props.row.PRIORITY }}</div> <div slot="priority" slot-scope="props">{{ props.row.PRIORITY }}</div>
<div slot="actions" slot-scope="props"> <div slot="actions" slot-scope="props">
<button class="btn btn-success btn-sm" @click="openCase(props)"> <button class="btn btn-success btn-sm" @click="openCase(props.row)">
Continue {{ $t("ID_OPEN_CASE") }}
</button> </button>
</div> </div>
</v-server-table> </v-server-table>
@@ -74,6 +89,9 @@ export default {
"case_title", "case_title",
"process_name", "process_name",
"task", "task",
"current_user",
"due_date",
"delegation_date",
"priority", "priority",
"actions", "actions",
], ],
@@ -86,9 +104,11 @@ export default {
case_title: this.$i18n.t("ID_CASE_TITLE"), case_title: this.$i18n.t("ID_CASE_TITLE"),
process_name: this.$i18n.t("ID_PROCESS_NAME"), process_name: this.$i18n.t("ID_PROCESS_NAME"),
task: this.$i18n.t("ID_TASK"), task: this.$i18n.t("ID_TASK"),
current_user: this.$i18n.t("ID_CURRENT_USER"),
due_date: this.$i18n.t("ID_DUE_DATE"),
delegation_date: this.$i18n.t("ID_DELEGATION_DATE"),
priority: this.$i18n.t("ID_PRIORITY"), priority: this.$i18n.t("ID_PRIORITY"),
actions: "", actions: "",
detail: "",
}, },
selectable: { selectable: {
mode: "single", mode: "single",
@@ -162,11 +182,11 @@ export default {
CASE_NUMBER: v.APP_NUMBER, CASE_NUMBER: v.APP_NUMBER,
CASE_TITLE: v.DEL_TITLE, CASE_TITLE: v.DEL_TITLE,
PROCESS_NAME: v.PRO_TITLE, PROCESS_NAME: v.PRO_TITLE,
TASK: { TASK: [{
TITLE: v.TAS_TITLE, TITLE: v.TAS_TITLE,
CODE_COLOR: v.TAS_COLOR, CODE_COLOR: v.TAS_COLOR,
COLOR: v.TAS_COLOR_LABEL, COLOR: v.TAS_COLOR_LABEL,
}, }],
USR_FIRSTNAME: v.USR_FIRSTNAME, USR_FIRSTNAME: v.USR_FIRSTNAME,
USR_LASTNAME: v.USR_LASTNAME, USR_LASTNAME: v.USR_LASTNAME,
USR_USERNAME: v.USR_USERNAME, USR_USERNAME: v.USR_USERNAME,

View File

@@ -154,6 +154,7 @@ export default {
this.pageName = item.item.title; this.pageName = item.item.title;
} else { } else {
this.filters = []; this.filters = [];
this.pageId = null;
this.page = item.item.id || "MyCases"; this.page = item.item.id || "MyCases";
} }
}, },

View File

@@ -3,7 +3,7 @@
<button-fleft :data="newCase"></button-fleft> <button-fleft :data="newCase"></button-fleft>
<MyCasesFilter <MyCasesFilter
:filters="filters" :filters="filters"
:title="$t('ID_MY_CASES')" :title="title"
@onRemoveFilter="onRemoveFilter" @onRemoveFilter="onRemoveFilter"
@onUpdateFilters="onUpdateFilters" @onUpdateFilters="onUpdateFilters"
/> />
@@ -39,14 +39,12 @@
{{ props.row.DURATION }} {{ props.row.DURATION }}
</div> </div>
<div slot="actions" slot-scope="props"> <div slot="actions" slot-scope="props">
<div class="btn-default" @click="openComments(props.row)"> <div class="btn-default" v-bind:style="{ color: props.row.MESSAGE_COLOR}" @click="openComments(props.row)">
<i class="fas fa-comments"></i> <span class="fas fa-comments"></span>
<span class="badge badge-light">{{props.row.CASES_NOTES}}</span>
<span class="sr-only">unread messages</span>
</div> </div>
</div> </div>
</v-server-table> </v-server-table>
<ModalComments ref="modal-comments"></ModalComments> <ModalComments ref="modal-comments" @postNotes="onPostNotes"></ModalComments>
</div> </div>
</template> </template>
@@ -73,6 +71,7 @@ export default {
data() { data() {
return { return {
metrics: [], metrics: [],
title: this.$i18n.t('ID_MY_CASES'),
filter: "CASES_INBOX", filter: "CASES_INBOX",
allView: [], allView: [],
filterHeader: "STARTED", filterHeader: "STARTED",
@@ -203,7 +202,7 @@ export default {
APP_UID: v.APP_UID, APP_UID: v.APP_UID,
PRO_UID: v.PRO_UID, PRO_UID: v.PRO_UID,
TAS_UID: v.TAS_UID, TAS_UID: v.TAS_UID,
CASES_NOTES: v.CASE_NOTES_COUNT MESSAGE_COLOR: v.CASE_NOTES_COUNT > 0 ? "black":"silver"
}); });
}); });
return data; return data;
@@ -403,6 +402,7 @@ export default {
item: v.id, item: v.id,
icon: info[v.id].icon, icon: info[v.id].icon,
onClick: (obj) => { onClick: (obj) => {
that.title = obj.title;
that.filterHeader = obj.item; that.filterHeader = obj.item;
that.$refs["vueTable"].getData(); that.$refs["vueTable"].getData();
}, },
@@ -411,6 +411,10 @@ export default {
}); });
return data; return data;
}, },
/**
* Open the case notes modal
* @param {object} data - needed to create the data
*/
openComments(data) { openComments(data) {
let that = this; let that = this;
api.cases.open(_.extend({ ACTION: "todo" }, data)).then(() => { api.cases.open(_.extend({ ACTION: "todo" }, data)).then(() => {
@@ -428,6 +432,12 @@ export default {
}); });
} }
}, },
/**
* Post notes event handler
*/
onPostNotes() {
this.$refs["vueTable"].getData();
}
}, },
}; };
</script> </script>

View File

@@ -191,11 +191,11 @@ export default {
CASE_NUMBER: v.APP_NUMBER, CASE_NUMBER: v.APP_NUMBER,
CASE_TITLE: v.DEL_TITLE, CASE_TITLE: v.DEL_TITLE,
PROCESS_NAME: v.PRO_TITLE, PROCESS_NAME: v.PRO_TITLE,
TASK: { TASK: [{
TITLE: v.TAS_TITLE, TITLE: v.TAS_TITLE,
CODE_COLOR: v.TAS_COLOR, CODE_COLOR: v.TAS_COLOR,
COLOR: v.TAS_COLOR_LABEL, COLOR: v.TAS_COLOR_LABEL,
}, }],
USR_FIRSTNAME: v.USR_FIRSTNAME, USR_FIRSTNAME: v.USR_FIRSTNAME,
USR_LASTNAME: v.USR_LASTNAME, USR_LASTNAME: v.USR_LASTNAME,
USR_USERNAME: v.USR_USERNAME, USR_USERNAME: v.USR_USERNAME,

View File

@@ -183,11 +183,11 @@ export default {
CASE_NUMBER: v.APP_NUMBER, CASE_NUMBER: v.APP_NUMBER,
CASE_TITLE: v.DEL_TITLE, CASE_TITLE: v.DEL_TITLE,
PROCESS_NAME: v.PRO_TITLE, PROCESS_NAME: v.PRO_TITLE,
TASK: { TASK: [{
TITLE: v.TAS_TITLE, TITLE: v.TAS_TITLE,
CODE_COLOR: v.TAS_COLOR, CODE_COLOR: v.TAS_COLOR,
COLOR: v.TAS_COLOR_LABEL, COLOR: v.TAS_COLOR_LABEL,
}, }],
USR_FIRSTNAME: v.USR_FIRSTNAME, USR_FIRSTNAME: v.USR_FIRSTNAME,
USR_LASTNAME: v.USR_LASTNAME, USR_LASTNAME: v.USR_LASTNAME,
USR_USERNAME: v.USR_USERNAME, USR_USERNAME: v.USR_USERNAME,

View File

@@ -188,11 +188,11 @@ export default {
CASE_NUMBER: v.APP_NUMBER, CASE_NUMBER: v.APP_NUMBER,
CASE_TITLE: v.DEL_TITLE, CASE_TITLE: v.DEL_TITLE,
PROCESS_NAME: v.PRO_TITLE, PROCESS_NAME: v.PRO_TITLE,
TASK: { TASK: [{
TITLE: v.TAS_TITLE, TITLE: v.TAS_TITLE,
CODE_COLOR: v.TAS_COLOR, CODE_COLOR: v.TAS_COLOR,
COLOR: v.TAS_COLOR_LABEL, COLOR: v.TAS_COLOR_LABEL,
}, }],
USR_FIRSTNAME: v.USR_FIRSTNAME, USR_FIRSTNAME: v.USR_FIRSTNAME,
USR_LASTNAME: v.USR_LASTNAME, USR_LASTNAME: v.USR_LASTNAME,
USR_USERNAME: v.USR_USERNAME, USR_USERNAME: v.USR_USERNAME,

View File

@@ -99,6 +99,8 @@ export default {
that.attachDocuments = false; that.attachDocuments = false;
that.dataAttachedDocuments.items = []; that.dataAttachedDocuments.items = [];
that.getCasesNotes(); that.getCasesNotes();
this.$refs["modal-comments"].hide();
this.$emit("postNotes");
} else { } else {
that.showAlert(response.data.message, "danger"); that.showAlert(response.data.message, "danger");
that.dataAttachedDocuments.items = []; that.dataAttachedDocuments.items = [];