diff --git a/src/shared/components/ncTable/mixins/filter.js b/src/shared/components/ncTable/mixins/filter.js
index 0e3a4f91c8..55af215391 100644
--- a/src/shared/components/ncTable/mixins/filter.js
+++ b/src/shared/components/ncTable/mixins/filter.js
@@ -126,3 +126,10 @@ export const Filters = {
noSearchValue: true,
}),
}
+
+export function getFiltersForColumn(column, viewSetting) {
+ if (viewSetting?.filter?.length > 0) {
+ return viewSetting.filter.filter(filter => filter.columnId === column.id)
+ }
+ return []
+}
diff --git a/src/shared/components/ncTable/partials/TableHeader.vue b/src/shared/components/ncTable/partials/TableHeader.vue
index 86b0e5a80c..42831a7581 100644
--- a/src/shared/components/ncTable/partials/TableHeader.vue
+++ b/src/shared/components/ncTable/partials/TableHeader.vue
@@ -25,7 +25,7 @@
@edit-column="col => $emit('edit-column', col)"
@delete-column="col => $emit('delete-column', col)" />
-
+
item.columnId === column.id)
+ return getFiltersForColumn(column, this.localViewSetting)
},
hasRightHiddenNeighbor(colId) {
return this.localViewSetting?.hiddenColumns?.includes(this.columns[this.columns.indexOf(this.columns.find(col => col.id === colId)) + 1]?.id)
diff --git a/src/shared/components/ncTable/sections/CustomTable.vue b/src/shared/components/ncTable/sections/CustomTable.vue
index 2b3c58a417..397365cdb7 100644
--- a/src/shared/components/ncTable/sections/CustomTable.vue
+++ b/src/shared/components/ncTable/sections/CustomTable.vue
@@ -98,6 +98,7 @@ import {
import { MetaColumns } from '../mixins/metaColumns.js'
import { translate as t } from '@nextcloud/l10n'
import { useTablesStore } from '../../../../store/store.js'
+import { getFiltersForColumn } from '../mixins/filter.js'
export default {
name: 'CustomTable',
@@ -221,7 +222,7 @@ export default {
}
let filterStatus = null
let searchStatus = true
- const filters = this.getFiltersForColumn(column)
+ const filters = getFiltersForColumn(column, this.viewSetting)
let cell
if (column.id < 0) {
cell = { columnId: column.id }
@@ -257,15 +258,13 @@ export default {
delete cell.searchStringFound
delete cell.filterFound
- // if we should filter
- if (filters !== null) {
- filters.forEach(fil => {
- this.addMagicFieldsValues(fil)
- if (filterStatus === null || filterStatus === true) {
- filterStatus = column.isFilterFound(cell, fil)
- }
- })
- }
+ // apply filters (if any)
+ filters.forEach(fil => {
+ this.addMagicFieldsValues(fil)
+ if (filterStatus === null || filterStatus === true) {
+ filterStatus = column.isFilterFound(cell, fil)
+ }
+ })
// if we should search
if (searchString) {
console.debug('look for searchString', searchString)
@@ -355,15 +354,6 @@ export default {
}
})
},
- getFiltersForColumn(column) {
- if (this.viewSetting?.filter?.length > 0) {
- const columnFilter = this.viewSetting.filter.filter(item => item.columnId === column.id)
- if (columnFilter.length > 0) {
- return columnFilter
- }
- }
- return null
- },
deselectAllRows(elementId, isView) {
if (parseInt(elementId) === parseInt(this.elementId) && isView === this.isView) {
this.selectedRows = []