From d339f037c07d5dcfeb9734df08b5d8a24ec09c5e Mon Sep 17 00:00:00 2001 From: Elsio Sanchez <45974454+elsiosanchez@users.noreply.github.com> Date: Tue, 22 Oct 2024 09:36:57 -0400 Subject: [PATCH] Add Image to User to Assigned (#2852) * Add Image to User to Assigned * Add Paginations * minimal change * Minimal changes --- .../user-interface/component/issue.js | 14 +++- .../DataTable/Components/CustomPagination.vue | 5 ++ .../Form/Issues/ListIssues/index.vue | 61 ++++++++++++-- .../IssueManagement/IssuesList/issueRow.vue | 13 ++- .../IssueManagement/issueAvatar.vue | 7 +- .../modules/ADempiere/form/issueManagement.js | 84 +++++++++++++++++-- src/utils/ADempiere/constants/resoucer.ts | 2 + 7 files changed, 163 insertions(+), 23 deletions(-) diff --git a/src/api/ADempiere/user-interface/component/issue.js b/src/api/ADempiere/user-interface/component/issue.js index 070b405b2f..903ef48f02 100644 --- a/src/api/ADempiere/user-interface/component/issue.js +++ b/src/api/ADempiere/user-interface/component/issue.js @@ -50,11 +50,13 @@ export function requestExistsIssues({ * @param {string} searchValue */ export function requestListIssues({ + pageSize, recordId, tableName, + pageToken, + categoryId, searchValue, groupId = 0, - categoryId = 0, statusId = 0, projectId = 0, priorityValue, @@ -66,12 +68,14 @@ export function requestListIssues({ url: `/issue-management/issues`, method: 'get', params: { + // page_size: pageSize, + // page_token: pageToken, group_id: groupId, record_id: recordId, - category_id: categoryId, status_id: statusId, table_name: tableName, project_id: projectId, + category_id: categoryId, search_value: searchValue, priority_value: priorityValue, status_category_id: statusCategory, @@ -89,10 +93,12 @@ export function requestListIssues({ */ export function requestListIssuesAll({ + pageSize, recordId, tableName, - searchValue, + pageToken, categoryId, + searchValue, groupId = 0, statusId = 0, projectId = 0, @@ -105,6 +111,8 @@ export function requestListIssuesAll({ url: `/issue-management/issues/all`, method: 'get', params: { + page_size: pageSize, + page_token: pageToken, group_id: groupId, record_id: recordId, status_id: statusId, diff --git a/src/components/ADempiere/DataTable/Components/CustomPagination.vue b/src/components/ADempiere/DataTable/Components/CustomPagination.vue index fd965471ae..62960b36a3 100644 --- a/src/components/ADempiere/DataTable/Components/CustomPagination.vue +++ b/src/components/ADempiere/DataTable/Components/CustomPagination.vue @@ -129,6 +129,10 @@ export default defineComponent({ isShowedSelected: { type: Boolean, default: false + }, + isEmptyIndex: { + type: Boolean, + default: false } }, @@ -188,6 +192,7 @@ export default defineComponent({ }) const currentIndex = computed(() => { + if (props.isEmptyIndex) return '' if (!isEmptyValue(props.rowIndex) || !isEmptyValue(props.rowUid)) { return indexRowByPage({ indexRow: props.rowIndex, diff --git a/src/components/ADempiere/Form/Issues/ListIssues/index.vue b/src/components/ADempiere/Form/Issues/ListIssues/index.vue index a02aaf983c..3f7d96ece5 100644 --- a/src/components/ADempiere/Form/Issues/ListIssues/index.vue +++ b/src/components/ADempiere/Form/Issues/ListIssues/index.vue @@ -281,7 +281,7 @@
-
+
+ + + +
+
+
+
{ + return store.getters.geIssuesData.recordCount + }) + + const pageNumber = computed(() => { + return store.getters.geIssuesData.pageNumber + }) + + const pageSize = computed(() => { + return store.getters.geIssuesData.pageSize + }) + function newIssues(issue) { isNewIssues.value = !isNewIssues.value store.dispatch('changeCurrentIssues', issue) @@ -834,7 +862,10 @@ export default defineComponent({ }) } - function updateListIssues() { + function updateListIssues({ + pageNumber, + pageSize + }) { if (isAll.value) { store.dispatch('listRequestAll', { businessPartnerId: isEmptyValue(businessPartnerField.value) ? 0 : businessPartnerField.value, @@ -843,7 +874,9 @@ export default defineComponent({ statusId: isEmptyValue(statusField.value) ? 0 : statusField.value, groupId: isEmptyValue(groupField.value) ? 0 : groupField.value, taskStatusValue: taskStatusField.value, - priorityValue: priorityField.value + priorityValue: priorityField.value, + pageNumber, + pageSize }) .finally(() => { loadIssues() @@ -857,7 +890,9 @@ export default defineComponent({ statusId: isEmptyValue(statusField.value) ? 0 : statusField.value, groupId: isEmptyValue(groupField.value) ? 0 : groupField.value, taskStatusValue: taskStatusField.value, - priorityValue: priorityField.value + priorityValue: priorityField.value, + pageNumber, + pageSize }) .finally(() => { loadIssues() @@ -959,12 +994,26 @@ export default defineComponent({ }, 500) } + function setPageNumber(pageNumber) { + updateListIssues({ + pageNumber + }) + } + function setPageSize(pageSize) { + updateListIssues({ + pageSize + }) + } + return { statusesExpand, listKanbanGroup, updateDragStatus, isloadinUpdateKanban, // + pageSize, + pageNumber, + recordCount, timeOut, isEdit, isKanban, @@ -1009,6 +1058,8 @@ export default defineComponent({ findCategory, activeKanban, updateStatus, + setPageNumber, + setPageSize, activeGruop, findProject, findStatus, diff --git a/src/components/ADempiere/FormDefinition/IssueManagement/IssuesList/issueRow.vue b/src/components/ADempiere/FormDefinition/IssueManagement/IssuesList/issueRow.vue index 5c20a5c684..e2e637774e 100644 --- a/src/components/ADempiere/FormDefinition/IssueManagement/IssuesList/issueRow.vue +++ b/src/components/ADempiere/FormDefinition/IssueManagement/IssuesList/issueRow.vue @@ -92,11 +92,7 @@ effect="plain" > - - - - - {{ metadata.business_partner.name }} +

@@ -251,10 +247,10 @@ import store from '@/store' import IssuePreview from '@/components/ADempiere/FormDefinition/IssueManagement/IssuesList/issuePreview.vue' import IssueRecordTime from '@/components/ADempiere/FormDefinition/IssueManagement/IssueRecordTime/index.vue' import ProgressPercentage from '@/components/ADempiere/ContainerOptions/ProgressPercentage.vue' - +import IssueAvatar from '@/components/ADempiere/FormDefinition/IssueManagement/issueAvatar.vue' // Constants import { REQUEST_WINDOW_UUID } from '@/utils/ADempiere/dictionary/form/Issues.js' - +import { TABLE_NAME_C_BPARTNER } from '@/utils/ADempiere/constants/resoucer.ts' // Utils and Helper Methods import { formatDate } from '@/utils/ADempiere/formatValue/dateFormat' import { zoomIn } from '@/utils/ADempiere/coreUtils.js' @@ -264,6 +260,7 @@ export default defineComponent({ name: 'IssueRow', components: { + IssueAvatar, IssuePreview, IssueRecordTime, ProgressPercentage @@ -309,6 +306,8 @@ export default defineComponent({ } return { + // Const + TABLE_NAME_C_BPARTNER, // Computed isNewIssues, // Methods diff --git a/src/components/ADempiere/FormDefinition/IssueManagement/issueAvatar.vue b/src/components/ADempiere/FormDefinition/IssueManagement/issueAvatar.vue index 084a685ac0..9d52ef2f39 100644 --- a/src/components/ADempiere/FormDefinition/IssueManagement/issueAvatar.vue +++ b/src/components/ADempiere/FormDefinition/IssueManagement/issueAvatar.vue @@ -46,6 +46,7 @@ import store from '@/store' // Utils and Helper Methods import { pathImageWindows } from '@/utils/ADempiere/resource.js' +import { isEmptyValue } from '@/utils/ADempiere/valueUtils' // Constants import { COLUMN_NAME, TABLE_NAME_USER } from '@/utils/ADempiere/constants/resoucer.ts' @@ -56,6 +57,10 @@ export default defineComponent({ user: { type: Object, default: () => {} + }, + tableName: { + type: String, + default: TABLE_NAME_USER } }, @@ -74,7 +79,7 @@ export default defineComponent({ const imageURL = computed(() => { return pathImageWindows({ clientId: clientId.value, - tableName: TABLE_NAME_USER, + tableName: isEmptyValue(props.tableName) ? TABLE_NAME_USER : props.tableName, recordId: props.user.id, columnName: COLUMN_NAME, resourceName: `${COLUMN_NAME}.png` diff --git a/src/store/modules/ADempiere/form/issueManagement.js b/src/store/modules/ADempiere/form/issueManagement.js index 30c7be4056..ae13fa442b 100644 --- a/src/store/modules/ADempiere/form/issueManagement.js +++ b/src/store/modules/ADempiere/form/issueManagement.js @@ -29,9 +29,13 @@ import { requestDeleteIssueComment } from '@/api/ADempiere/user-interface/component/issue' +// Const +import { ROWS_OF_RECORDS_BY_PAGE } from '@/utils/ADempiere/tableUtils' + // Utils and Helper Methods import { isEmptyValue } from '@/utils/ADempiere/valueUtils' import { formatDate } from '@/utils/ADempiere/formatValue/dateFormat' +import { generatePageToken } from '@/utils/ADempiere/dataUtils' const initStateIssueManagement = { listIssues: [], @@ -40,7 +44,15 @@ const initStateIssueManagement = { isNewIssues: false, currentIssues: {}, listComments: [], - listKanbanGroup: [] + recordCount: 0, + nextPageToken: undefined, + listKanbanGroup: [], + data: { + recordCount: 0, + pageSize: ROWS_OF_RECORDS_BY_PAGE, + pageNumber: 1, + nextPageToken: undefined + } } export default { @@ -67,10 +79,26 @@ export default { }, setListKanbanGroup(state, list) { state.listKanbanGroup = list + }, + setListIssuesData(state, { + recordCount, + pageSize, + pageNumber, + nextPageToken + }) { + state.data = { + recordCount, + pageSize, + pageNumber, + nextPageToken + } } + // setListIssuesNextPageToken(state, token) { + // state.nextPageToken = token + // } }, actions: { - listRequestAll({ commit }, { + listRequestAll({ commit, getters }, { tableName, recordId, recordUuid, @@ -83,9 +111,18 @@ export default { statusId, groupId, pageSize, - pageToken + pageNumber }) { return new Promise((resolve, reject) => { + const issuesData = getters.geIssuesData + if (isEmptyValue(pageNumber) || pageNumber < 1) { + const { + pageNumber: storedPageNumber + } = issuesData + // refresh with same page + pageNumber = storedPageNumber + } + const pageToken = generatePageToken({ pageNumber }) // commit('setIsLoadListIssuesAll', true) return requestListIssuesAll({ tableName, @@ -103,7 +140,11 @@ export default { pageToken }) .then(responseList => { - const { records } = responseList + const { + records, + record_count, + next_page_token + } = responseList if (isEmptyValue(records)) { commit('setListIssuesAll', []) @@ -127,6 +168,13 @@ export default { }) commit('setListIssuesAll', list) commit('setIsLoadListIssues', false) + commit('setListIssuesData', { + nextPageToken: next_page_token, + recordCount: Number(record_count), + pageNumber, + pageSize + }) + // commit('setListIssuesNextPageToken', next_page_token) resolve(list) }) .catch(error => { @@ -136,7 +184,7 @@ export default { }) }) }, - listRequest({ commit }, { + listRequest({ commit, getters }, { tableName, recordId, recordUuid, @@ -149,9 +197,18 @@ export default { statusId, groupId, pageSize, - pageToken + pageNumber }) { return new Promise((resolve, reject) => { + const issuesData = getters.geIssuesData + if (isEmptyValue(pageNumber) || pageNumber < 1) { + const { + pageNumber: storedPageNumber + } = issuesData + // refresh with same page + pageNumber = storedPageNumber + } + const pageToken = generatePageToken({ pageNumber }) commit('setIsLoadListIssues', true) return requestListIssues({ tableName, @@ -169,7 +226,11 @@ export default { pageToken }) .then(responseList => { - const { records } = responseList + const { + records, + record_count, + next_page_token + } = responseList if (isEmptyValue(records)) { commit('setListIssues', []) @@ -194,6 +255,12 @@ export default { }) commit('setListIssues', list) commit('setIsLoadListIssues', false) + commit('setListIssuesData', { + nextPageToken: next_page_token, + recordCount: Number(record_count), + pageNumber, + pageSize + }) resolve(list) }) .catch(error => { @@ -501,6 +568,9 @@ export default { }, getListKanbanGroup: (state) => { return state.listKanbanGroup + }, + geIssuesData: (state) => { + return state.data } } } diff --git a/src/utils/ADempiere/constants/resoucer.ts b/src/utils/ADempiere/constants/resoucer.ts index e99ab2fd9c..ce90de153a 100644 --- a/src/utils/ADempiere/constants/resoucer.ts +++ b/src/utils/ADempiere/constants/resoucer.ts @@ -21,3 +21,5 @@ export const COLUMN_NAME = 'logo_id' export const TABLE_NAME_USER = 'ad_user' export const TABLE_NAME_CLIENT = 'ad_clientinfo' + +export const TABLE_NAME_C_BPARTNER = 'c_bpartner'