From 28864bbb32fc875027c736cdd5826cfabee91d83 Mon Sep 17 00:00:00 2001 From: luNunezProcessmaker Date: Mon, 30 Sep 2024 17:16:43 -0400 Subject: [PATCH 1/7] feature/FOUR-19330 --- .../cases/casesDetail/api/index.js | 73 +++++++++++++++---- .../casesDetail/components/RequestTable.vue | 21 +++++- .../cases/casesDetail/config/columns.js | 4 +- 3 files changed, 76 insertions(+), 22 deletions(-) diff --git a/resources/jscomposition/cases/casesDetail/api/index.js b/resources/jscomposition/cases/casesDetail/api/index.js index f1d3f30f26..5b26a657a8 100644 --- a/resources/jscomposition/cases/casesDetail/api/index.js +++ b/resources/jscomposition/cases/casesDetail/api/index.js @@ -1,25 +1,66 @@ import { api } from "../variables"; -export const getData = async () => { - const objectsList = []; +export const formatActiveTasks = (value) => value.map((task) => ` + + ${task.element_name} + + `).join("
"); - for (let i = 0; i <= 31; i += 1) { - const obj = { - id: `${i}`, - case_number: 100, - case_title: `Case Title ${i}`, - process_name: `Process ${i}`, - assigned: `Avatar ${i}`, - current_task: `Task ${i}`, - status: `badge ${i}`, - started: `21/21/${i}`, - due_date: `21/21/${i}`, - }; +export const formatStatus = (status) => { + let color; + let label; + switch (status) { + case "DRAFT": + color = "danger"; + label = "Draft"; + break; + case "CANCELED": + color = "danger"; + label = "Canceled"; + break; + case "COMPLETED": + color = "primary"; + label = "Completed"; + break; + case "ERROR": + color = "danger"; + label = "Error"; + break; + default: + color = "success"; + label = "In Progress"; + } + return ( + `${this.$t(label)}` + ); +}; - objectsList.push(obj); +export const transformData = (dataInput) => { + const data = _.cloneDeep(dataInput); + // Clean up fields for meta pagination so vue table pagination can understand + data.meta.last_page = data.meta.total_pages; + data.meta.from = (data.meta.current_page - 1) * data.meta.per_page; + data.meta.to = data.meta.from + data.meta.count; + data.data = this.jsonRows(data.data); + for (let record of data.data) { + if (record["active_tasks"]) { + record["active_tasks"] = formatActiveTasks(record["active_tasks"]); + } + record["status"] = this.formatStatus(record["status"]); + record["participants"] = this.formatParticipants(record["participants"]); } + return data; +}; + +export const getData = async ({ params, pagination }) => { + const response = await api.get("requests-by-case", { + params: { + ...params, + ...pagination, + }, + }); - return objectsList; + return transformData(response.data); }; export const getDataTask = async ({ params, pagination }) => { diff --git a/resources/jscomposition/cases/casesDetail/components/RequestTable.vue b/resources/jscomposition/cases/casesDetail/components/RequestTable.vue index 797ed4606b..c5287841be 100644 --- a/resources/jscomposition/cases/casesDetail/components/RequestTable.vue +++ b/resources/jscomposition/cases/casesDetail/components/RequestTable.vue @@ -16,6 +16,7 @@ import { defineComponent, ref, onMounted } from "vue"; import { BaseTable, Pagination } from "../../../base"; import { getData } from "../api/index"; import { getColumns } from "../config/columns"; +import { getRequestId } from "../variables"; export default defineComponent({ components: { BaseTable, Pagination }, @@ -23,14 +24,25 @@ export default defineComponent({ const data = ref(null); const columnsConfig = ref(null); const dataPagination = ref({ - total: 153, - page: 0, - pages: 10, + total: 15, + page: 1, + pages: 1, perPage: 15, }); + const formatData = () => ({ + params: { + case_number: getRequestId(), + include: "participants,activeTasks", + }, + pagination: { + page: dataPagination.value.page, + perPage: dataPagination.value.perPage, + }, + }); + onMounted(async () => { - data.value = await getData(); + data.value = await getData(formatData()); columnsConfig.value = getColumns("requests"); }); @@ -38,6 +50,7 @@ export default defineComponent({ data, dataPagination, columnsConfig, + formatData, }; }, }); diff --git a/resources/jscomposition/cases/casesDetail/config/columns.js b/resources/jscomposition/cases/casesDetail/config/columns.js index a3be35c151..05e753f046 100644 --- a/resources/jscomposition/cases/casesDetail/config/columns.js +++ b/resources/jscomposition/cases/casesDetail/config/columns.js @@ -78,7 +78,7 @@ const requestNumberColumn = () => ({ }); const requestNameColumn = () => ({ - field: "case_title", + field: "name", header: "Request Name", resizable: true, width: 200, @@ -108,7 +108,7 @@ const statusColumn = () => ({ }); const startedColumn = () => ({ - field: "started_date", + field: "created_at", header: "started", resizable: true, width: 200, From ef065bd7a57931d997c0286f48d2040365b64d95 Mon Sep 17 00:00:00 2001 From: luNunezProcessmaker Date: Mon, 30 Sep 2024 17:18:35 -0400 Subject: [PATCH 2/7] feature/FOUR-19330 --- .../jscomposition/cases/casesDetail/api/index.js | 12 ++++++------ .../cases/casesDetail/config/columns.js | 4 ++++ 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/resources/jscomposition/cases/casesDetail/api/index.js b/resources/jscomposition/cases/casesDetail/api/index.js index 5b26a657a8..9712f7d293 100644 --- a/resources/jscomposition/cases/casesDetail/api/index.js +++ b/resources/jscomposition/cases/casesDetail/api/index.js @@ -42,13 +42,13 @@ export const transformData = (dataInput) => { data.meta.from = (data.meta.current_page - 1) * data.meta.per_page; data.meta.to = data.meta.from + data.meta.count; data.data = this.jsonRows(data.data); - for (let record of data.data) { - if (record["active_tasks"]) { - record["active_tasks"] = formatActiveTasks(record["active_tasks"]); + data.data.forEach(record => { + if (record.active_tasks) { + record.active_tasks = formatActiveTasks(record.active_tasks); } - record["status"] = this.formatStatus(record["status"]); - record["participants"] = this.formatParticipants(record["participants"]); - } + record.status = formatStatus(record.status); + record.participants = this.formatParticipants(record.participants); + }); return data; }; diff --git a/resources/jscomposition/cases/casesDetail/config/columns.js b/resources/jscomposition/cases/casesDetail/config/columns.js index 05e753f046..81e27ab897 100644 --- a/resources/jscomposition/cases/casesDetail/config/columns.js +++ b/resources/jscomposition/cases/casesDetail/config/columns.js @@ -66,6 +66,7 @@ const requestNumberColumn = () => ({ field: "id", header: "Request #", resizable: true, + sortable: true, width: 200, cellRenderer: () => ({ component: LinkCell, @@ -80,6 +81,7 @@ const requestNumberColumn = () => ({ const requestNameColumn = () => ({ field: "name", header: "Request Name", + sortable: true, resizable: true, width: 200, cellRenderer: () => ({ @@ -102,6 +104,7 @@ const currentTaskColumn = () => ({ const statusColumn = () => ({ field: "status", header: "Status", + sortable: true, resizable: true, width: 200, cellRenderer: () => StatusCell, @@ -110,6 +113,7 @@ const statusColumn = () => ({ const startedColumn = () => ({ field: "created_at", header: "started", + sortable: true, resizable: true, width: 200, }); From 748e4abf220c7bb5a3d4f26e3e4df6029029692a Mon Sep 17 00:00:00 2001 From: luNunezProcessmaker Date: Tue, 1 Oct 2024 16:46:57 -0400 Subject: [PATCH 3/7] feature/FOUR-19330 --- .../cases/casesDetail/api/index.js | 66 +++++-------------- .../casesDetail/components/RequestTable.vue | 22 +++++-- .../cases/casesDetail/config/columns.js | 36 +++++++--- .../cases/casesMain/config/columns.js | 1 + .../system/table/cell/StatusCell.vue | 4 ++ .../table/cell/TruncatedOptionsCell.vue | 36 +++++++++- 6 files changed, 98 insertions(+), 67 deletions(-) diff --git a/resources/jscomposition/cases/casesDetail/api/index.js b/resources/jscomposition/cases/casesDetail/api/index.js index 9712f7d293..7586bb903a 100644 --- a/resources/jscomposition/cases/casesDetail/api/index.js +++ b/resources/jscomposition/cases/casesDetail/api/index.js @@ -1,56 +1,20 @@ import { api } from "../variables"; -export const formatActiveTasks = (value) => value.map((task) => ` - - ${task.element_name} - - `).join("
"); +export const formatActiveTasks = (value) => value.map((task) => `${task.element_name}`).join(", "); -export const formatStatus = (status) => { - let color; - let label; - switch (status) { - case "DRAFT": - color = "danger"; - label = "Draft"; - break; - case "CANCELED": - color = "danger"; - label = "Canceled"; - break; - case "COMPLETED": - color = "primary"; - label = "Completed"; - break; - case "ERROR": - color = "danger"; - label = "Error"; - break; - default: - color = "success"; - label = "In Progress"; - } - return ( - `${this.$t(label)}` - ); -}; - -export const transformData = (dataInput) => { - const data = _.cloneDeep(dataInput); - // Clean up fields for meta pagination so vue table pagination can understand - data.meta.last_page = data.meta.total_pages; - data.meta.from = (data.meta.current_page - 1) * data.meta.per_page; - data.meta.to = data.meta.from + data.meta.count; - data.data = this.jsonRows(data.data); - data.data.forEach(record => { - if (record.active_tasks) { - record.active_tasks = formatActiveTasks(record.active_tasks); - } - record.status = formatStatus(record.status); - record.participants = this.formatParticipants(record.participants); - }); - return data; -}; +// export const transformData = (dataInput) => { +// const data = _.cloneDeep(dataInput); +// // Clean up fields for meta pagination so vue table pagination can understand +// data.meta.last_page = data.meta.total_pages; +// data.meta.from = (data.meta.current_page - 1) * data.meta.per_page; +// data.meta.to = data.meta.from + data.meta.count; +// for (let record of data.data) { +// if (record.active_tasks) { +// record.current_task = formatActiveTasks(record.active_tasks); +// } +// }; +// return data; +// }; export const getData = async ({ params, pagination }) => { const response = await api.get("requests-by-case", { @@ -60,7 +24,7 @@ export const getData = async ({ params, pagination }) => { }, }); - return transformData(response.data); + return response.data.data; }; export const getDataTask = async ({ params, pagination }) => { diff --git a/resources/jscomposition/cases/casesDetail/components/RequestTable.vue b/resources/jscomposition/cases/casesDetail/components/RequestTable.vue index c5287841be..bc4cef05de 100644 --- a/resources/jscomposition/cases/casesDetail/components/RequestTable.vue +++ b/resources/jscomposition/cases/casesDetail/components/RequestTable.vue @@ -1,9 +1,10 @@