From 548bb2f165ca83da60ff883dab2592b75a755ac6 Mon Sep 17 00:00:00 2001 From: Edwin Betancourt Date: Fri, 25 Jun 2021 15:09:43 -0400 Subject: [PATCH] fix: Process logs request duplicated (#940) * fix: Process logs request duplicated * deleted mutations. --- .../modules/ADempiere/process/actions.js | 56 +---- .../modules/ADempiere/process/getters.js | 13 +- .../modules/ADempiere/process/mutations.js | 17 +- src/store/modules/ADempiere/process/state.js | 2 - src/store/modules/ADempiere/processLog.js | 128 +++++++++++ src/utils/ADempiere/apiConverts/process.js | 2 +- src/views/ADempiere/ProcessActivity/index.vue | 167 ++------------ .../ADempiere/ProcessActivity/modeDesktop.vue | 104 +++++---- .../ADempiere/ProcessActivity/modeMobile.vue | 108 ++++++---- .../ProcessActivity/processActivity.js | 203 ++++++++++++++++++ 10 files changed, 480 insertions(+), 320 deletions(-) create mode 100644 src/store/modules/ADempiere/processLog.js create mode 100644 src/views/ADempiere/ProcessActivity/processActivity.js diff --git a/src/store/modules/ADempiere/process/actions.js b/src/store/modules/ADempiere/process/actions.js index b429847f..7753d9b5 100644 --- a/src/store/modules/ADempiere/process/actions.js +++ b/src/store/modules/ADempiere/process/actions.js @@ -1,6 +1,5 @@ import { - requestRunProcess, - requestListProcessesLogs + requestRunProcess } from '@/api/ADempiere/process' import { showNotification } from '@/utils/ADempiere/notification' import { isEmptyValue } from '@/utils/ADempiere/valueUtils' @@ -989,60 +988,7 @@ export default { }) } }, - /** - * List log of process/reports executed - * @author Edwin Betancourt - * @param {string} pageToken - * @param {number} pageSize default 50 - */ - getSessionProcessFromServer({ commit, dispatch, getters, rootGetters }, { - pageToken, - pageSize - }) { - // process Activity - return requestListProcessesLogs({ pageToken, pageSize }) - .then(processActivityResponse => { - const responseList = processActivityResponse.processLogsList.map(processLogItem => { - const processMetadata = rootGetters.getProcess(processLogItem.uuid) - // if no exists metadata into store and no request in progess - if (isEmptyValue(processMetadata)) { - const processRequest = getters.getInRequestMetadata(processLogItem.uuid) - if (isEmptyValue(processRequest)) { - commit('addInRequestMetadata', processLogItem.uuid) - dispatch('getProcessFromServer', { - containerUuid: processLogItem.uuid - }) - .finally(() => { - commit('deleteInRequestMetadata', processLogItem.uuid) - }) - } - } - - const process = { - ...processLogItem, - processUuid: processLogItem.uuid - } - return process - }) - - const processResponseList = { - recordCount: processActivityResponse.recordCount, - processList: responseList, - nextPageToken: processActivityResponse.nextPageToken - } - commit('setSessionProcess', processResponseList) - return processResponseList - }) - .catch(error => { - showNotification({ - title: language.t('notifications.error'), - message: error.message, - type: 'error' - }) - console.warn(`Error getting process activity: ${error.message}. Code: ${error.code}.`) - }) - }, /** * Show modal dialog with process/report, tab (sequence) metadata * @param {String} type of panel or panelType ('process', 'report', 'window') diff --git a/src/store/modules/ADempiere/process/getters.js b/src/store/modules/ADempiere/process/getters.js index d0bc8d20..9e1464c1 100644 --- a/src/store/modules/ADempiere/process/getters.js +++ b/src/store/modules/ADempiere/process/getters.js @@ -25,18 +25,7 @@ export default { getNotificationProcess: (state) => { return state.notificationProcess }, - /** - * Process receibed from server associated whith this session - */ - getAllSessionProcess: (state) => { - return state.sessionProcess - }, - /** - * Process request metadata from server filter form uuid process - */ - getInRequestMetadata: (state) => (containerUuid) => { - return state.inRequestMetadata.find(item => item === containerUuid) - }, + getProcessResult: (state) => { return state.reportObject }, diff --git a/src/store/modules/ADempiere/process/mutations.js b/src/store/modules/ADempiere/process/mutations.js index 385bef33..c9fcc3cf 100644 --- a/src/store/modules/ADempiere/process/mutations.js +++ b/src/store/modules/ADempiere/process/mutations.js @@ -18,14 +18,7 @@ export default { deleteInExecution(state, payload) { state.inExecution = state.inExecution.filter(item => item.containerUuid !== payload.containerUuid) }, - // Add process in request metadata from server - addInRequestMetadata(state, payload) { - state.inRequestMetadata.push(payload) - }, - // Delete process in request metadata - deleteInRequestMetadata(state, payload) { - state.inRequestMetadata = state.inRequestMetadata.filter(item => item !== payload) - }, + addStartedProcess(state, payload) { state.process.push(payload) }, @@ -52,9 +45,7 @@ export default { state.reportList.push(payload) } }, - setSessionProcess(state, payload) { - state.sessionProcess = payload.processList - }, + changeFormatReport(state, payload) { state.reportFormat = payload }, @@ -64,9 +55,7 @@ export default { setTotalResponse(state, payload) { state.totalResponse = payload }, - setTotalSelection(state, payload) { - state.totalSelection = payload - }, + setSuccessSelection(state, payload) { state.successSelection = payload }, diff --git a/src/store/modules/ADempiere/process/state.js b/src/store/modules/ADempiere/process/state.js index d1f1cde5..a415010c 100644 --- a/src/store/modules/ADempiere/process/state.js +++ b/src/store/modules/ADempiere/process/state.js @@ -9,9 +9,7 @@ export default { reportList: [], metadata: {}, process: [], // process to run finish - sessionProcess: [], notificationProcess: [], - inRequestMetadata: [], reportViewList: [], totalResponse: 0, totalRequest: 0, diff --git a/src/store/modules/ADempiere/processLog.js b/src/store/modules/ADempiere/processLog.js new file mode 100644 index 00000000..b6bdb2c2 --- /dev/null +++ b/src/store/modules/ADempiere/processLog.js @@ -0,0 +1,128 @@ +// ADempiere-Vue (Frontend) for ADempiere ERP & CRM Smart Business Solution +// Copyright (C) 2017-Present E.R.P. Consultores y Asociados, C.A. +// Contributor(s): Edwin Betancourt EdwinBetanc0urt@outlook.com www.erpya.com +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +import { + requestListProcessesLogs +} from '@/api/ADempiere/process.js' +import { showNotification } from '@/utils/ADempiere/notification.js' +import { isEmptyValue } from '@/utils/ADempiere/valueUtils.js' +import language from '@/lang' + +/** + * Process Vuex Module + * @author Edwin Betancourt + */ +const processLog = { + state: { + sessionProcess: [], + inRequestMetadata: [] + }, + + mutations: { + setSessionProcess(state, payload) { + state.sessionProcess = payload.processList + }, + + // Add process in request metadata from server + addInRequestMetadata(state, payload) { + state.inRequestMetadata.push(payload) + }, + + // Delete process in request metadata + deleteInRequestMetadata(state, payload) { + state.inRequestMetadata = state.inRequestMetadata.filter(item => item !== payload) + } + }, + + actions: { + /** + * List log of process/reports executed + * @author Edwin Betancourt + * @param {string} pageToken + * @param {number} pageSize default 50 + */ + getSessionProcessFromServer({ commit, dispatch, getters, rootGetters }, { + pageToken, + pageSize + }) { + // process Activity + return requestListProcessesLogs({ pageToken, pageSize }) + .then(processActivityResponse => { + const responseList = processActivityResponse.processLogsList.map(processLogItem => { + const { uuid: containerUuid } = processLogItem + const processMetadata = rootGetters.getProcess(containerUuid) + + // if no exists metadata into store + if (isEmptyValue(processMetadata)) { + const processRequest = getters.getInRequestMetadata(containerUuid) + // if no request dictionary metadata in progess + if (isEmptyValue(processRequest)) { + commit('addInRequestMetadata', containerUuid) + + dispatch('getProcessFromServer', { + containerUuid + }) + .finally(() => { + commit('deleteInRequestMetadata', containerUuid) + }) + } + } + + const process = { + ...processLogItem, + processUuid: containerUuid + } + return process + }) + + const processResponseList = { + recordCount: processActivityResponse.recordCount, + processList: responseList, + nextPageToken: processActivityResponse.nextPageToken + } + commit('setSessionProcess', processResponseList) + + return processResponseList + }) + .catch(error => { + showNotification({ + title: language.t('notifications.error'), + message: error.message, + type: 'error' + }) + console.warn(`Error getting process activity: ${error.message}. Code: ${error.code}.`) + }) + } + }, + + getters: { + /** + * Process request metadata from server filter form uuid process + */ + getInRequestMetadata: (state) => (containerUuid) => { + return state.inRequestMetadata.find(item => item === containerUuid) + }, + + /** + * Process receibed from server associated whith this session + */ + getAllSessionProcess: (state) => { + return state.sessionProcess + } + } +} + +export default processLog diff --git a/src/utils/ADempiere/apiConverts/process.js b/src/utils/ADempiere/apiConverts/process.js index fca377c6..40135278 100644 --- a/src/utils/ADempiere/apiConverts/process.js +++ b/src/utils/ADempiere/apiConverts/process.js @@ -20,7 +20,7 @@ import { convertReportOutput } from './report.js' export function convertProcessLog(processLog) { const convertedProcessLog = camelizeObjectKeys(processLog) - convertedProcessLog.paramenters = [] + convertedProcessLog.parameters = [] convertedProcessLog.output = isEmptyValue(processLog.output) ? {} : convertReportOutput(processLog.output) return convertedProcessLog } diff --git a/src/views/ADempiere/ProcessActivity/index.vue b/src/views/ADempiere/ProcessActivity/index.vue index ba880af6..673bce26 100644 --- a/src/views/ADempiere/ProcessActivity/index.vue +++ b/src/views/ADempiere/ProcessActivity/index.vue @@ -22,168 +22,29 @@