From c56e67188cec1ee150dc5e988ae1476ed96e7998 Mon Sep 17 00:00:00 2001 From: Fabio Date: Tue, 1 Oct 2024 15:01:03 -0400 Subject: [PATCH 1/2] FOUR-18638:Create a component with collpase the row and show some content --- .../jscomposition/base/table/BaseTable.vue | 84 +++++++++++++++---- .../jscomposition/base/table/ContainerRow.vue | 23 +++++ resources/jscomposition/base/table/TCell.vue | 18 ++-- resources/jscomposition/base/table/TRow.vue | 18 +++- .../cases/casesDetail/api/index.js | 27 ++++-- .../casesDetail/components/CaseDetail.vue | 6 +- .../casesDetail/components/CompletedForms.vue | 58 +++++++++++++ .../casesDetail/components/DisplayForm.vue | 44 ++++++++++ .../casesDetail/components/EllipsisMenu.vue | 54 ++++++++++++ .../casesDetail/components/TaskTable.vue | 8 +- .../cases/casesDetail/config/columns.js | 28 ++++++- .../system/table/cell/CollapseFormCell.vue | 51 +++++++++++ .../jscomposition/system/table/cell/index.js | 2 + 13 files changed, 382 insertions(+), 39 deletions(-) create mode 100644 resources/jscomposition/base/table/ContainerRow.vue create mode 100644 resources/jscomposition/cases/casesDetail/components/CompletedForms.vue create mode 100644 resources/jscomposition/cases/casesDetail/components/DisplayForm.vue create mode 100644 resources/jscomposition/cases/casesDetail/components/EllipsisMenu.vue create mode 100644 resources/jscomposition/system/table/cell/CollapseFormCell.vue diff --git a/resources/jscomposition/base/table/BaseTable.vue b/resources/jscomposition/base/table/BaseTable.vue index 5c757cd94e..6e0b02a8a4 100644 --- a/resources/jscomposition/base/table/BaseTable.vue +++ b/resources/jscomposition/base/table/BaseTable.vue @@ -1,7 +1,8 @@ diff --git a/resources/jscomposition/base/table/ContainerRow.vue b/resources/jscomposition/base/table/ContainerRow.vue new file mode 100644 index 0000000000..0e960b83b0 --- /dev/null +++ b/resources/jscomposition/base/table/ContainerRow.vue @@ -0,0 +1,23 @@ + + + diff --git a/resources/jscomposition/base/table/TCell.vue b/resources/jscomposition/base/table/TCell.vue index c9e267a9b7..81aba43a3c 100644 --- a/resources/jscomposition/base/table/TCell.vue +++ b/resources/jscomposition/base/table/TCell.vue @@ -1,13 +1,14 @@ @@ -50,14 +53,17 @@ export default defineComponent({ return get(props.row, props.column?.field) || ""; }; - const getComponent = () => props.column.cellRenderer().component; + const getComponent = () => props.column.cellRenderer().component || props.column.cellRenderer(); const getParams = () => props.column.cellRenderer().params || {}; + const collapseContainer = (value) => emit("toogleContainer", value); + return { getComponent, getParams, getValue, + collapseContainer, }; }, }); diff --git a/resources/jscomposition/base/table/TRow.vue b/resources/jscomposition/base/table/TRow.vue index ad929a275a..7506895657 100644 --- a/resources/jscomposition/base/table/TRow.vue +++ b/resources/jscomposition/base/table/TRow.vue @@ -1,15 +1,25 @@ diff --git a/resources/jscomposition/cases/casesDetail/api/index.js b/resources/jscomposition/cases/casesDetail/api/index.js index f1d3f30f26..2ceea6cd63 100644 --- a/resources/jscomposition/cases/casesDetail/api/index.js +++ b/resources/jscomposition/cases/casesDetail/api/index.js @@ -1,19 +1,25 @@ import { api } from "../variables"; -export const getData = async () => { +const getData = async () => { const objectsList = []; 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}`, + element_name: `Case Title ${i}`, + process: { + name: `Process ${i}`, + }, + user: { + fullname: `Avatar ${i}`, + }, current_task: `Task ${i}`, - status: `badge ${i}`, + status: "IN_PROGRESS", started: `21/21/${i}`, - due_date: `21/21/${i}`, + due_at: `21/21/${i}`, + completed_date: `21/21/${i}`, + screen_id: 4, }; objectsList.push(obj); @@ -22,7 +28,7 @@ export const getData = async () => { return objectsList; }; -export const getDataTask = async ({ params, pagination }) => { +const getDataTask = async ({ params, pagination }) => { const response = await api.get("tasks-by-case/", { params: { ...params, @@ -32,3 +38,10 @@ export const getDataTask = async ({ params, pagination }) => { return response.data.data; }; +const getScreenData = (id) => { + const response = ProcessMaker.apiClient.get(`screens/${id}`); + + return response; +}; + +export { getData, getDataTask, getScreenData }; diff --git a/resources/jscomposition/cases/casesDetail/components/CaseDetail.vue b/resources/jscomposition/cases/casesDetail/components/CaseDetail.vue index b568e843a3..d244d7550e 100644 --- a/resources/jscomposition/cases/casesDetail/components/CaseDetail.vue +++ b/resources/jscomposition/cases/casesDetail/components/CaseDetail.vue @@ -1,7 +1,8 @@ diff --git a/resources/jscomposition/cases/casesDetail/components/DisplayForm.vue b/resources/jscomposition/cases/casesDetail/components/DisplayForm.vue new file mode 100644 index 0000000000..3ffb06bc86 --- /dev/null +++ b/resources/jscomposition/cases/casesDetail/components/DisplayForm.vue @@ -0,0 +1,44 @@ + + + diff --git a/resources/jscomposition/cases/casesDetail/components/EllipsisMenu.vue b/resources/jscomposition/cases/casesDetail/components/EllipsisMenu.vue new file mode 100644 index 0000000000..4376c3bf79 --- /dev/null +++ b/resources/jscomposition/cases/casesDetail/components/EllipsisMenu.vue @@ -0,0 +1,54 @@ + + + diff --git a/resources/jscomposition/cases/casesDetail/components/TaskTable.vue b/resources/jscomposition/cases/casesDetail/components/TaskTable.vue index fd5689f016..60276e8a0a 100644 --- a/resources/jscomposition/cases/casesDetail/components/TaskTable.vue +++ b/resources/jscomposition/cases/casesDetail/components/TaskTable.vue @@ -5,14 +5,16 @@ :columns="columnsConfig" :data="data" class="tw-grow tw-overflow-y-scroll tw-overflow-hidden" - @changeFilter="onChangeFilter" /> + @changeFilter="onChangeFilter" + /> + @go="onGo" + /> @@ -27,7 +29,7 @@ const data = ref(null); const columnsConfig = ref(null); const dataPagination = ref({ total: 153, - page: 0, + page: 1, pages: 10, perPage: 15, }); diff --git a/resources/jscomposition/cases/casesDetail/config/columns.js b/resources/jscomposition/cases/casesDetail/config/columns.js index a3be35c151..bd462cf035 100644 --- a/resources/jscomposition/cases/casesDetail/config/columns.js +++ b/resources/jscomposition/cases/casesDetail/config/columns.js @@ -1,13 +1,14 @@ import { StatusCell, LinkCell, + CollapseFormCell, } from "../../../system/index"; export default {}; // Column for Task const taskNumberColumn = () => ({ - field: "id", + field: "case_number", header: "Tasks #", resizable: true, width: 200, @@ -114,6 +115,22 @@ const startedColumn = () => ({ width: 200, }); +const completedDateColumn = () => ({ + field: "completed_date", + header: "Completed Date", + resizable: true, + width: 200, +}); + +const actionColumn = () => ({ + field: "", + header: "", + resizable: false, + width: 50, + cellRenderer: () => CollapseFormCell, + params: {}, +}); + export const getColumns = (type) => { const columns = { tasks: [ @@ -130,6 +147,15 @@ export const getColumns = (type) => { statusColumn(), startedColumn(), ], + completed_forms: [ + actionColumn(), + taskNumberColumn(), + taskNameColumn(), + processNameColumn(), + assignedColumn(), + completedDateColumn(), + dueDateColumn(), + ], }; return columns[type]; diff --git a/resources/jscomposition/system/table/cell/CollapseFormCell.vue b/resources/jscomposition/system/table/cell/CollapseFormCell.vue new file mode 100644 index 0000000000..0ee802781f --- /dev/null +++ b/resources/jscomposition/system/table/cell/CollapseFormCell.vue @@ -0,0 +1,51 @@ + + + diff --git a/resources/jscomposition/system/table/cell/index.js b/resources/jscomposition/system/table/cell/index.js index 5af39e9029..218f02f1da 100644 --- a/resources/jscomposition/system/table/cell/index.js +++ b/resources/jscomposition/system/table/cell/index.js @@ -3,6 +3,7 @@ import TruncatedOptionsCell from "./TruncatedOptionsCell.vue"; import StatusCell from "./StatusCell.vue"; import CaseTitleCell from "./CaseTitleCell.vue"; import LinkCell from "./LinkCell.vue"; +import CollapseFormCell from "./CollapseFormCell.vue"; export { ParticipantsCell, @@ -10,4 +11,5 @@ export { StatusCell, CaseTitleCell, LinkCell, + CollapseFormCell, }; From c884ec8813e4f59004949b347f3ee118d13c3327 Mon Sep 17 00:00:00 2001 From: Fabio Rodolfo Guachalla Blanco Date: Wed, 2 Oct 2024 08:09:47 -0400 Subject: [PATCH 2/2] Update CollapseFormCell.vue --- resources/jscomposition/system/table/cell/CollapseFormCell.vue | 2 -- 1 file changed, 2 deletions(-) diff --git a/resources/jscomposition/system/table/cell/CollapseFormCell.vue b/resources/jscomposition/system/table/cell/CollapseFormCell.vue index 0ee802781f..ab2d971895 100644 --- a/resources/jscomposition/system/table/cell/CollapseFormCell.vue +++ b/resources/jscomposition/system/table/cell/CollapseFormCell.vue @@ -43,8 +43,6 @@ export default defineComponent({ return { viewScreen, showScreen, - color: "red", - label: "fabio", }; }, });