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'