Admin Pages Filters: Contains, Starts with, Ends with should be case INsensitive
Bug #1910424 reported by
Michele Morgan
This bug affects 5 people
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Evergreen |
Confirmed
|
Medium
|
Unassigned |
Bug Description
Evergreen Master
In admin pages with the newly added filtering functionality added in bug 1846042, the text filters "Contains", "Starts with", and "Ends with" are case sensitive.
In the angular Acquisitions Search, which includes filters in 3.6 (bug 1850547), these text filters are case INsensitive, and remain so with the streamlined filters in Master.
Contains, Starts with, and Ends with filters should be case INsensitive in all admin pages.
As an example, when filtering the Shelving Location Editor by name, "Contains adult" will NOT retrieve Adult Fiction, Adult Nonfiction
Changed in evergreen: | |
status: | New → Confirmed |
tags: | added: angular |
Changed in evergreen: | |
importance: | Undecided → Medium |
To post a comment you must log in.
Noting an implementation detail: for small tables, SQL queries that use ILIKE or case-insensitive regular expressions aren't a big deal. However, a case-insensitive substring search on a column that isn't indexed appropriately could be very slow, so some attention should be paid to that consideration.
This is probably not a practical problem for all or almost all of the tables in the config schema, but it very much could be a huge deal for certain other grid filters.
Consequently, I propose the following:
- add a Boolean grid-level setting for case-insensitive text filters, defaulting to false
- add a column-level setting that can override the table-level setting
- have the setting adjust the labels on the filter operators to hopefully reduce the chance for user confusion (or have the setting add case-insensitive versions of the operators, but that might be overkill)
- turn the grid-level setting on for all (or almost all) Angular grids drawing from configuration tables, including making it default to true for the auto-generated interfaces
- think _carefully_ about turning it on elsewhere without first verifying that appropriate indexes are in place