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 @@