diff --git a/src/components/ADempiere/DefaultTable/index.vue b/src/components/ADempiere/DefaultTable/index.vue index aaaf2204ca6..2c0b166ea72 100644 --- a/src/components/ADempiere/DefaultTable/index.vue +++ b/src/components/ADempiere/DefaultTable/index.vue @@ -102,7 +102,6 @@ import ColumnsDisplayOption from './ColumnsDisplayOption' import CustomPagination from './CustomPagination.vue' // utils and helper methods -import { fieldIsDisplayed } from '@/utils/ADempiere/dictionaryUtils' import { isLookup } from '@/utils/ADempiere/references' import { tableColumnDataType } from '@/utils/ADempiere/valueUtils' @@ -210,12 +209,7 @@ export default defineComponent({ */ function isDisplayed(field) { // validate with container manager - if (!root.isEmptyValue(props.containerManager) && - props.containerManager.isDisplayedColumn) { - return props.containerManager.isDisplayedColumn(field) - } - - return fieldIsDisplayed(field, true) + return props.containerManager.isDisplayedColumn(field) } /** diff --git a/src/components/ADempiere/PanelDefinition/panelUtils.js b/src/components/ADempiere/PanelDefinition/panelUtils.js deleted file mode 100644 index a3d331b3414..00000000000 --- a/src/components/ADempiere/PanelDefinition/panelUtils.js +++ /dev/null @@ -1,158 +0,0 @@ -// 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 { isEmptyValue } from '@/utils/ADempiere' -import { generateField } from '@/utils/ADempiere/dictionaryUtils' -import { getFieldTemplate } from '@/utils/ADempiere/lookupFactory' -import { sortFields } from '@/utils/ADempiere/dictionary/panel' - -/** - * Generate panel - * @param {string} parentUuid - * @param {string} containerUuid - * @param {object} panelMetadata - * @param {object} fieldOverwrite - * @returns - */ -export function generatePanelAndFields({ - parentUuid, - containerUuid, - panelMetadata = {}, - isAddFieldsRange = false, - isAddFieldUuid = false, - isAddLinkColumn = false, - fieldOverwrite = {} -}) { - const fieldAdditionalAttributes = { - parentUuid, - containerUuid, - // tab attributes - tabTableName: panelMetadata.tableName, - // app attributes - isShowedFromUser: true, - isReadOnlyFromForm: false, - ...fieldOverwrite - } - - const fieldsRangeList = [] - const selectionColumns = [] - let identifierColumns = [] - - let keyColumn - - // convert fields and add app attributes - let fieldsList = panelMetadata.fields.map((fieldItem, index) => { - const fieldDefinition = generateField({ - fieldToGenerate: fieldItem, - moreAttributes: { - ...fieldAdditionalAttributes, - fieldsListIndex: index - } - }) - const { columnName, componentPath } = fieldDefinition - - if (fieldDefinition.isKey) { - keyColumn = columnName - } - if (fieldDefinition.isSelectionColumn) { - selectionColumns.push(columnName) - } - if (fieldDefinition.isIdentifier) { - identifierColumns.push({ - columnName, - identifierSequence: fieldDefinition.identifierSequence, - componentPath - }) - } - - // Add new field if is range number - if (isAddFieldsRange && fieldDefinition.isRange && componentPath === 'FieldNumber') { - const fieldRange = generateField({ - fieldToGenerate: fieldItem, - moreAttributes: fieldAdditionalAttributes, - typeRange: true - }) - - fieldsRangeList.push(fieldRange) - } - - return fieldDefinition - }) - - if (!isEmptyValue(fieldsRangeList)) { - fieldsList = fieldsList.concat(fieldsRangeList) - // order range fields - fieldsList = sortFields({ - fieldsList - }) - } - - identifierColumns = sortFields({ - fieldsList: identifierColumns, - orderBy: 'identifierSequence' - }) - - let fieldLinkColumnName - if (isAddLinkColumn) { - // parent link column name - fieldLinkColumnName = fieldsList.find(fieldItem => { - return fieldItem.isParent - }) - if (fieldLinkColumnName) { - fieldLinkColumnName = fieldLinkColumnName.columnName - } - } - - if (isAddFieldUuid) { - // indicates it contains the uuid field - const isWithUuidField = fieldsList.some(fieldItem => { - return fieldItem.columnName === 'UUID' - }) - // add field uuid column name - if (!isWithUuidField) { - const fieldUuid = getFieldTemplate({ - ...fieldAdditionalAttributes, - fieldsListIndex: fieldsList.length, - isShowedFromUser: false, - name: 'UUID', - columnName: 'UUID', - componentPath: 'FieldText' - }) - - fieldsList.push(fieldUuid) - } - } - - // panel for save on store - const panel = { - ...panelMetadata, - parentUuid, - containerUuid, - fieldLinkColumnName, - fieldsList, - // app attributes - keyColumn, - selectionColumns, - identifierColumns, - isLoadedFieldsList: true, - isShowedTotals: false - } - - // delete unused and dupicated property with 'fieldsList' - delete panel.fields - - return panel -} diff --git a/src/components/ADempiere/RecordNavigation/index.vue b/src/components/ADempiere/RecordNavigation/index.vue index d141f5c5c7b..37297a05fe0 100644 --- a/src/components/ADempiere/RecordNavigation/index.vue +++ b/src/components/ADempiere/RecordNavigation/index.vue @@ -22,7 +22,7 @@ { + return root.$store.getters.getTabData({ + containerUuid: props.containerUuid + }) + }) // get records list const recordsList = computed(() => { - const data = root.$store.getters[vuexStore + '/getContainerData']({ - containerUuid: props.containerUuid - }) - if (data && data.recordsList) { - return data.recordsList - } - return [] + return tabData.value.recordsList }) const recordCount = computed(() => { - const data = root.$store.getters[vuexStore + '/getContainerData']({ - containerUuid: props.containerUuid - }) - if (data && data.recordCount) { - return data.recordCount - } - return 0 + return tabData.value.recordCount }) const actionAdvancedQuery = () => { @@ -131,15 +122,11 @@ export default defineComponent({ activeName.value = activeNames } - // set and/or overwrite methods - const recordNavigationManager = props.containerManager - return { activeName, // computeds recordsList, recordCount, - recordNavigationManager, isLoadedPanel, panelMetadata, tableheaders, diff --git a/src/components/ADempiere/TabManager/index.vue b/src/components/ADempiere/TabManager/index.vue index 5c0d4b767f7..068b2037c82 100644 --- a/src/components/ADempiere/TabManager/index.vue +++ b/src/components/ADempiere/TabManager/index.vue @@ -27,7 +27,7 @@ @@ -63,7 +63,7 @@ key="default-table" :parent-uuid="parentUuid" :container-uuid="tabAttributes.uuid" - :container-manager="containerManagerTab" + :container-manager="containerManager" :header="tableHeaders" :data-table="recordsList" :panel-metadata="tabAttributes" @@ -88,7 +88,7 @@