Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -71,8 +71,8 @@ export default class SelectionMutliColumn extends AbstractSelectionColumn {
const valueString = this.getValueString(cell)

const filterMethod = {
[FilterIds.Contains]() { return valueString?.includes(filterValue) },
[FilterIds.DoesNotContain]() { return !valueString?.includes(filterValue) },
[FilterIds.Contains]() { return valueString?.toLowerCase().includes(filterValue.toLowerCase()) },
[FilterIds.DoesNotContain]() { return !valueString?.toLowerCase().includes(filterValue.toLowerCase()) },
Comment on lines +74 to +75
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

At https://github.com/nextcloud/tables/blob/main/src/shared/components/ncTable/partials/TableHeaderColumnOptions.vue#L315, there’s a small check meant to stop adding the same Contains or Does not contain filter twice. I think that conflicts with this?

[FilterIds.IsEqual]() { return valueString === filterValue },
[FilterIds.IsNotEqual]() { return valueString !== filterValue },
[FilterIds.IsEmpty]() { return !valueString },
Expand Down
17 changes: 16 additions & 1 deletion src/shared/components/ncTable/mixins/columnsTypes/usergroup.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
*/
import { AbstractUsergroupColumn } from '../columnClass.js'
import { ColumnTypes } from '../columnHandler.js'
import { FilterIds } from '../filter.js'

export default class UsergroupColumn extends AbstractUsergroupColumn {

Expand All @@ -29,7 +30,7 @@ export default class UsergroupColumn extends AbstractUsergroupColumn {
ret += ', ' + obj.id
}
})
return ret
return ret.toLowerCase()
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is it intentional that the search is case insentive but the other filters aren't?
For the Is equal / Is not equal operators. The filter UI stores whatever casing the user typed, so a row containing Alice now becomes alice before comparison. That makes Is equal "Alice" fail and Is not equal "Alice" incorrectly pass?

}

getObjects(values) {
Expand All @@ -44,4 +45,18 @@ export default class UsergroupColumn extends AbstractUsergroupColumn {
return super.isSearchStringFound(this.getValueString(cell), cell, searchString)
}

isFilterFound(cell, filter) {
const filterValue = filter.magicValuesEnriched ? filter.magicValuesEnriched : filter.value
const valueString = this.getValueString(cell)

const filterMethod = {
[FilterIds.Contains]() { return valueString?.toLowerCase().includes(filterValue.toLowerCase()) },
[FilterIds.DoesNotContain]() { return !valueString?.toLowerCase().includes(filterValue.toLowerCase()) },
[FilterIds.IsEqual]() { return valueString === filterValue },
[FilterIds.IsNotEqual]() { return valueString !== filterValue },
[FilterIds.IsEmpty]() { return !valueString },
}[filter.operator.id]
return super.isFilterFound(filterMethod, cell)
}

}
Loading