Skip to content

Commit 33f54ed

Browse files
committed
Fix: Make case-insensitive search for the usergroup and multi selection columns
Signed-off-by: Kostiantyn Miakshyn <molodchick@gmail.com>
1 parent e505892 commit 33f54ed

8 files changed

Lines changed: 42 additions & 25 deletions

File tree

src/shared/components/ncTable/mixins/columnsTypes/relation.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -79,11 +79,11 @@ export default class RelationColumn extends AbstractColumn {
7979
* @return {boolean} Whether the filter matches
8080
*/
8181
isFilterFound(cell, filter) {
82-
const filterValue = filter.magicValuesEnriched ? filter.magicValuesEnriched : filter.value
83-
const cellLabel = this.getLabel(cell.value)
82+
const filterValue = (filter.magicValuesEnriched ? filter.magicValuesEnriched : filter.value).toLowerCase()
83+
const cellLabel = this.getLabel(cell.value)?.toLowerCase()
8484
const filterMethod = {
85-
[FilterIds.Contains]() { return cellLabel?.toLowerCase().includes(filterValue?.toLowerCase()) },
86-
[FilterIds.DoesNotContain]() { return !cellLabel?.toLowerCase().includes(filterValue?.toLowerCase()) },
85+
[FilterIds.Contains]() { return cellLabel?.includes(filterValue) },
86+
[FilterIds.DoesNotContain]() { return !cellLabel?.includes(filterValue) },
8787
[FilterIds.IsEqual]() { return cellLabel === filterValue },
8888
[FilterIds.IsNotEqual]() { return cellLabel !== filterValue },
8989
[FilterIds.IsEmpty]() { return !cellLabel },

src/shared/components/ncTable/mixins/columnsTypes/selection.js

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -52,15 +52,15 @@ export default class SelectionColumn extends AbstractSelectionColumn {
5252

5353
isFilterFound(cell, filter) {
5454
const filterValue = filter.magicValuesEnriched ? filter.magicValuesEnriched : filter.value
55-
const cellLabel = this.getLabel(cell.value)
55+
const cellLabel = this.getLabel(cell.value)?.toLowerCase()
5656
const filterMethod = {
5757
[FilterIds.ContainsItem]() { return filterValue.map(option => option.id).includes(cell.value) },
58-
[FilterIds.Contains]() { return cellLabel?.toLowerCase().includes(filterValue?.toLowerCase()) },
59-
[FilterIds.DoesNotContain]() { return !cellLabel?.toLowerCase().includes(filterValue?.toLowerCase()) },
60-
[FilterIds.BeginsWith]() { return cellLabel?.startsWith(filterValue) },
61-
[FilterIds.EndsWith]() { return cellLabel?.endsWith(filterValue) },
62-
[FilterIds.IsEqual]() { return cellLabel === filterValue },
63-
[FilterIds.IsNotEqual]() { return cellLabel !== filterValue },
58+
[FilterIds.Contains]() { return cellLabel?.includes(filterValue.toLowerCase()) },
59+
[FilterIds.DoesNotContain]() { return !cellLabel?.includes(filterValue.toLowerCase()) },
60+
[FilterIds.BeginsWith]() { return cellLabel?.startsWith(filterValue.toLowerCase()) },
61+
[FilterIds.EndsWith]() { return cellLabel?.endsWith(filterValue.toLowerCase()) },
62+
[FilterIds.IsEqual]() { return cellLabel === filterValue.toLowerCase() },
63+
[FilterIds.IsNotEqual]() { return cellLabel !== filterValue.toLowerCase() },
6464
[FilterIds.IsEmpty]() { return !cellLabel },
6565
}[filter.operator.id]
6666
return super.isFilterFound(filterMethod, cell)

src/shared/components/ncTable/mixins/columnsTypes/selectionMulti.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ export default class SelectionMutliColumn extends AbstractSelectionColumn {
6868

6969
isFilterFound(cell, filter) {
7070
const filterValue = filter.magicValuesEnriched ? filter.magicValuesEnriched : filter.value
71-
const valueString = this.getValueString(cell)
71+
const valueString = this.getValueString(cell)?.toLowerCase()
7272

7373
const filterMethod = {
7474
[FilterIds.ContainsItem]() {
@@ -78,10 +78,10 @@ export default class SelectionMutliColumn extends AbstractSelectionColumn {
7878
const filterOptionIds = filter.value.map(option => option.id)
7979
return cell.value.filter(v => filterOptionIds.includes(v)).length > 0
8080
},
81-
[FilterIds.Contains]() { return valueString?.includes(filterValue) },
82-
[FilterIds.DoesNotContain]() { return !valueString?.includes(filterValue) },
83-
[FilterIds.IsEqual]() { return valueString === filterValue },
84-
[FilterIds.IsNotEqual]() { return valueString !== filterValue },
81+
[FilterIds.Contains]() { return valueString?.includes(filterValue.toLowerCase()) },
82+
[FilterIds.DoesNotContain]() { return !valueString?.includes(filterValue.toLowerCase()) },
83+
[FilterIds.IsEqual]() { return valueString === filterValue.toLowerCase() },
84+
[FilterIds.IsNotEqual]() { return valueString !== filterValue.toLowerCase() },
8585
[FilterIds.IsEmpty]() { return !valueString },
8686
}[filter.operator.id]
8787
return super.isFilterFound(filterMethod, cell)

src/shared/components/ncTable/mixins/columnsTypes/textLink.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ export default class TextLinkColumn extends AbstractTextColumn {
5252
}
5353

5454
isFilterFound(cell, filter) {
55-
const filterValue = filter.magicValuesEnriched ? filter.magicValuesEnriched : filter.value
55+
const filterValue = (filter.magicValuesEnriched ? filter.magicValuesEnriched : filter.value).toLowerCase()
5656
const value = this.getValueFromCellValue(cell.value)
5757

5858
const filterMethod = {

src/shared/components/ncTable/mixins/columnsTypes/textLong.js

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,12 @@ export default class TextLongColumn extends AbstractTextColumn {
2222
}
2323

2424
isFilterFound(cell, filter) {
25-
const filterValue = filter.magicValuesEnriched ? filter.magicValuesEnriched : filter.value
25+
const filterValue = (filter.magicValuesEnriched ? filter.magicValuesEnriched : filter.value).toLowerCase()
26+
const cellValue = cell.value.toLowerCase()
2627

2728
const filterMethod = {
28-
[FilterIds.Contains]() { return cell.value.includes(filterValue) },
29-
[FilterIds.DoesNotContain]() { return !cell.value.includes(filterValue) },
29+
[FilterIds.Contains]() { return cellValue && cellValue.includes(filterValue) },
30+
[FilterIds.DoesNotContain]() { return cellValue && !cellValue.includes(filterValue) },
3031
[FilterIds.IsEmpty]() { return !cell.value },
3132
}[filter.operator.id]
3233
return super.isFilterFound(filterMethod, cell)

src/shared/components/ncTable/mixins/columnsTypes/textRich.js

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,12 @@ export default class TextRichColumn extends AbstractTextColumn {
1818
}
1919

2020
isFilterFound(cell, filter) {
21-
const filterValue = filter.magicValuesEnriched ? filter.magicValuesEnriched : filter.value
21+
const filterValue = (filter.magicValuesEnriched ? filter.magicValuesEnriched : filter.value).toLowerCase()
22+
const cellValue = cell.value?.toLowerCase()
2223

2324
const filterMethod = {
24-
[FilterIds.Contains]() { return cell.value && cell.value.includes(filterValue) },
25-
[FilterIds.DoesNotContain]() { return cell.value && !cell.value.includes(filterValue) },
25+
[FilterIds.Contains]() { return cellValue && cellValue.includes(filterValue) },
26+
[FilterIds.DoesNotContain]() { return cellValue && !cellValue.includes(filterValue) },
2627
[FilterIds.IsEmpty]() { return !cell.value },
2728
}[filter.operator.id]
2829
return super.isFilterFound(filterMethod, cell)

src/shared/components/ncTable/mixins/columnsTypes/usergroup.js

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
*/
55
import { AbstractUsergroupColumn } from '../columnClass.js'
66
import { ColumnTypes } from '../columnHandler.js'
7+
import { FilterIds } from '../filter.js'
78

89
export default class UsergroupColumn extends AbstractUsergroupColumn {
910

@@ -44,4 +45,18 @@ export default class UsergroupColumn extends AbstractUsergroupColumn {
4445
return super.isSearchStringFound(this.getValueString(cell), cell, searchString)
4546
}
4647

48+
isFilterFound(cell, filter) {
49+
const filterValue = (filter.magicValuesEnriched ? filter.magicValuesEnriched : filter.value).toLowerCase()
50+
const valueString = this.getValueString(cell).toLowerCase()
51+
52+
const filterMethod = {
53+
[FilterIds.Contains]() { return valueString?.includes(filterValue) },
54+
[FilterIds.DoesNotContain]() { return !valueString?.includes(filterValue) },
55+
[FilterIds.IsEqual]() { return valueString === filterValue },
56+
[FilterIds.IsNotEqual]() { return valueString !== filterValue },
57+
[FilterIds.IsEmpty]() { return !valueString },
58+
}[filter.operator.id]
59+
return super.isFilterFound(filterMethod, cell)
60+
}
61+
4762
}

src/shared/components/ncTable/partials/TableHeaderColumnOptions.vue

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -374,8 +374,8 @@ export default {
374374
const columnFilters = this.getFilterForColumn(this.column)
375375
if (columnFilters && columnFilters
376376
.filter(fil => fil.operator.id === this.selectedOperator.id)
377-
.map(fil => fil.value)
378-
.includes(this.searchValue)) {
377+
.map(fil => fil.value.toLowerCase())
378+
.includes(this.searchValue.toLowerCase())) {
379379
this.reset()
380380
return
381381
}

0 commit comments

Comments
 (0)