diff --git a/src/components/ADempiere/DataTable/index.vue b/src/components/ADempiere/DataTable/index.vue index 93aec2e7..bcbadc31 100644 --- a/src/components/ADempiere/DataTable/index.vue +++ b/src/components/ADempiere/DataTable/index.vue @@ -52,6 +52,13 @@ {{ $t('table.dataTable.showAllAvailableColumns') }} + + {{ getterPanel.isShowedTotals ? $t('table.dataTable.hiddenTotal') : $t('table.dataTable.showTotal') }} + { if (index === 0) { sums[index] = 'Σ' @@ -861,7 +879,7 @@ export default { sums[index] = '' return } - const values = data.map(item => Number(item[column.property])) + const values = this.getDataSelection.map(item => Number(item[column.property])) if (values.every(value => isNaN(value))) { sums[index] = '' } else { diff --git a/src/lang/ADempiere/en.js b/src/lang/ADempiere/en.js index 11548c7b..367bce9c 100644 --- a/src/lang/ADempiere/en.js +++ b/src/lang/ADempiere/en.js @@ -179,7 +179,9 @@ export default { deleteSelection: 'Delete Selected Records', advancedQuery: 'Advanced Query', showOnlyMandatoryColumns: 'Show Only Mandatory Columns', - showAllAvailableColumns: 'Show All Available Columns' + showAllAvailableColumns: 'Show All Available Columns', + showTotal: 'Show Totals', + hiddenTotal: 'Hidden Totals' }, recentItems: { search: 'Filter by name, description or date', diff --git a/src/lang/ADempiere/es.js b/src/lang/ADempiere/es.js index c9a8c716..e09e0d9b 100644 --- a/src/lang/ADempiere/es.js +++ b/src/lang/ADempiere/es.js @@ -179,7 +179,8 @@ export default { deleteSelection: 'Eliminar Registros Seleccionados', advancedQuery: 'Consulta Avanzada', showOnlyMandatoryColumns: 'Mostrar Solo Columnas Obligatorias', - showAllAvailableColumns: 'Mostrar Todas Columnas Disponibles' + showTotal: 'Mostrar Totales', + hiddenTotal: 'Ocultar Totales' }, recentItems: { search: 'Filtrar por nombre, descripción o fecha', diff --git a/src/store/modules/ADempiere/browser.js b/src/store/modules/ADempiere/browser.js index 2bdf3230..a90b68bd 100644 --- a/src/store/modules/ADempiere/browser.js +++ b/src/store/modules/ADempiere/browser.js @@ -18,7 +18,7 @@ const browser = { } }, actions: { - getBrowserFromServer: ({ commit, dispatch }, parameters) => { + getBrowserFromServer({ commit, dispatch }, parameters) { return new Promise((resolve, reject) => { var browserUuid = parameters.containerUuid getBrowserMetadata(browserUuid) @@ -112,7 +112,8 @@ const browser = { panelType: panelType, // app attributes isMandatoryParams: isMandatoryParams, - isShowedCriteria: Boolean(fieldsList.length && isMandatoryParams) + isShowedCriteria: Boolean(fieldsList.length && isMandatoryParams), + isShowedTotals: true } // Convert from gRPC process list const process = response.getProcess() @@ -162,7 +163,7 @@ const browser = { }) }) }, - changeShowedCriteriaBrowser: ({ commit, getters }, { containerUuid, isShowedCriteria }) => { + changeShowedCriteriaBrowser({ commit, getters }, { containerUuid, isShowedCriteria }) { commit('changeShowedCriteriaBrowser', { browser: getters.getBrowser(containerUuid), isShowedCriteria: isShowedCriteria diff --git a/src/store/modules/ADempiere/panel.js b/src/store/modules/ADempiere/panel.js index 8730338f..9297b845 100644 --- a/src/store/modules/ADempiere/panel.js +++ b/src/store/modules/ADempiere/panel.js @@ -32,12 +32,7 @@ const panel = { state.panel = [] }, changePanel(state, payload) { - state = state.panel.map(item => { - if (payload.containerUuid === item.containerUuid) { - return payload.newPanel - } - return item - }) + payload.panel = payload.newPanel }, changeFieldList(state, payload) { payload.fieldList = payload.newFieldList @@ -101,7 +96,8 @@ const panel = { * Used by components/fields/filterFields */ changeFieldShowedFromUser({ commit, dispatch, getters }, params) { - var panel = getters.getPanel(params.containerUuid, params.isAdvancedQuery) + const panel = getters.getPanel(params.containerUuid, params.isAdvancedQuery) + var newPanel = panel var showsFieldsWithValue = false var hiddenFieldsWithValue = false var newFields = panel.fieldList.map(itemField => { @@ -158,7 +154,8 @@ const panel = { panel.fieldList = newFields commit('changePanel', { containerUuid: params.containerUuid, - newPanel: panel + newPanel: newPanel, + panel: panel }) if (showsFieldsWithValue || hiddenFieldsWithValue) { // Updated record result @@ -725,6 +722,15 @@ const panel = { }) } }, + showedTotals({ commit, getters }, containerUuid) { + const panel = getters.getPanel(containerUuid) + const newPanel = panel + newPanel.isShowedTotals = !panel.isShowedTotals + commit('changePanel', { + panel: panel, + newPanel: newPanel + }) + }, dictionaryResetCache({ commit }) { commit('dictionaryResetCache') commit('dictionaryResetCacheContext') diff --git a/src/store/modules/ADempiere/window.js b/src/store/modules/ADempiere/window.js index 9bf61890..a61a0a96 100644 --- a/src/store/modules/ADempiere/window.js +++ b/src/store/modules/ADempiere/window.js @@ -271,7 +271,9 @@ const window = { isAdvancedQuery: isAdvancedQuery, fieldLinkColumnName: fieldLinkColumnName, fieldList: fieldsList, - panelType: panelType + panelType: panelType, + // app attributes + isShowedTotals: false } dispatch('addPanel', panel)