diff --git a/src/shared/components/ncTable/mixins/columnsTypes/selection.js b/src/shared/components/ncTable/mixins/columnsTypes/selection.js index 9f84802800..1ec310589f 100644 --- a/src/shared/components/ncTable/mixins/columnsTypes/selection.js +++ b/src/shared/components/ncTable/mixins/columnsTypes/selection.js @@ -20,13 +20,12 @@ export default class SelectionColumn extends AbstractSelectionColumn { } getLabel(id) { - const i = this.selectionOptions?.findIndex((obj) => obj.id === id) - return this.selectionOptions[i]?.label + return this.getOptionObject(id)?.label } - isDeletedLabel(value) { - const i = this.selectionOptions?.findIndex((obj) => obj.id === value) - return !!this.selectionOptions[i]?.deleted + getOptionObject(id) { + if (id === null || id === undefined) return null + return this.selectionOptions?.find((obj) => obj.id === id) || { id, label: String(id), deleted: true } } sort(mode, nextSorts) { diff --git a/src/shared/components/ncTable/mixins/columnsTypes/selectionMulti.js b/src/shared/components/ncTable/mixins/columnsTypes/selectionMulti.js index afc0374d8f..826ac43e4f 100644 --- a/src/shared/components/ncTable/mixins/columnsTypes/selectionMulti.js +++ b/src/shared/components/ncTable/mixins/columnsTypes/selectionMulti.js @@ -41,25 +41,15 @@ export default class SelectionMutliColumn extends AbstractSelectionColumn { } getObjects(values) { - // values is an array of option-ids as string - const objects = [] - values?.forEach(id => { - const optionsObject = this.getOptionObject(parseInt(id)) - // skip options that not exists anymore - if (optionsObject) { - objects.push(optionsObject) - } - }) - return objects + return (values || []) + .map(rawId => parseInt(rawId)) + .filter(id => !Number.isNaN(id)) + .map(id => this.getOptionObject(id)) } getOptionObject(id) { - const i = this.selectionOptions?.findIndex(obj => { - return obj.id === id - }) - if (i !== undefined) { - return this.selectionOptions[i] || null - } + if (id === null || id === undefined) return null + return this.selectionOptions?.find(obj => obj.id === id) || { id, label: String(id), deleted: true } } isSearchStringFound(cell, searchString) { diff --git a/src/shared/components/ncTable/partials/TableCellMultiSelection.vue b/src/shared/components/ncTable/partials/TableCellMultiSelection.vue index 3db06e618b..2ab5a3157b 100644 --- a/src/shared/components/ncTable/partials/TableCellMultiSelection.vue +++ b/src/shared/components/ncTable/partials/TableCellMultiSelection.vue @@ -6,8 +6,13 @@