Summary: | DT - Exact search not applied on second attribute for column filters | ||
---|---|---|---|
Product: | Koha | Reporter: | Jonathan Druart <jonathan.druart> |
Component: | Staff interface | Assignee: | Jonathan Druart <jonathan.druart> |
Status: | Pushed to stable --- | QA Contact: | Testopia <testopia> |
Severity: | normal | ||
Priority: | P5 - low | CC: | gmcharlt, lucas, paul.derscheid |
Version: | unspecified | ||
Hardware: | All | ||
OS: | All | ||
GIT URL: | Change sponsored?: | --- | |
Patch complexity: | --- | Documentation contact: | |
Documentation submission: | Text to go in the release notes: | ||
Version(s) released in: |
25.11.00,25.05.04
|
Circulation function: | |
Bug Depends on: | |||
Bug Blocks: | 40565 | ||
Attachments: |
Bug 40876: Apply 'exact' to all attributes when column filtering
Bug 40876: Apply 'exact' to all attributes when column filtering Bug 40876: Apply 'exact' to all attributes when column filtering Bug 40876: Apply 'exact' to all attributes when column filtering |
Description
Jonathan Druart
2025-09-25 10:30:26 UTC
Created attachment 186910 [details] [review] Bug 40876: Apply 'exact' to all attributes when column filtering If you select an option in a column filter, the "exact" behaviour will only apply to the first attribute mapped to this column eg. on the patron search we have "Libraries" mapped to library.name and library.library_id. If you select Centerville/CPL, the generated q parameter will be {name: CPL, id: {like: "%CPL%"}} This is caused by: if (value.match(/^\^(.*)\$$/)) { value = value.replace(/^\^/, "").replace(/\$$/, ""); On the second parameter we have lost the ^$ markers Moving it out of the loop fixes the problem (and does not impact the other behaviours: we search the same value for all the attributes Test plan: Create a library with code=CPLL and use if for a patron Go to http://localhost:8081/cgi-bin/koha/members/members-home.pl Click search Select "Centerville" in the "Libraries" column filter => Without this patch you get the patrons from CPL and CPLL => With this patch applied only patrons from CPL are listed Created attachment 186918 [details] [review] Bug 40876: Apply 'exact' to all attributes when column filtering If you select an option in a column filter, the "exact" behaviour will only apply to the first attribute mapped to this column eg. on the patron search we have "Libraries" mapped to library.name and library.library_id. If you select Centerville/CPL, the generated q parameter will be {name: CPL, id: {like: "%CPL%"}} This is caused by: if (value.match(/^\^(.*)\$$/)) { value = value.replace(/^\^/, "").replace(/\$$/, ""); On the second parameter we have lost the ^$ markers Moving it out of the loop fixes the problem (and does not impact the other behaviours: we search the same value for all the attributes Test plan: Create a library with code=CPLL and use if for a patron Go to http://localhost:8081/cgi-bin/koha/members/members-home.pl Click search Select "Centerville" in the "Libraries" column filter => Without this patch you get the patrons from CPL and CPLL => With this patch applied only patrons from CPL are listed Created attachment 186922 [details] [review] Bug 40876: Apply 'exact' to all attributes when column filtering If you select an option in a column filter, the "exact" behaviour will only apply to the first attribute mapped to this column eg. on the patron search we have "Libraries" mapped to library.name and library.library_id. If you select Centerville/CPL, the generated q parameter will be {name: CPL, id: {like: "%CPL%"}} This is caused by: if (value.match(/^\^(.*)\$$/)) { value = value.replace(/^\^/, "").replace(/\$$/, ""); On the second parameter we have lost the ^$ markers Moving it out of the loop fixes the problem (and does not impact the other behaviours: we search the same value for all the attributes Test plan: Create a library with code=CPLL and use if for a patron Go to http://localhost:8081/cgi-bin/koha/members/members-home.pl Click search Select "Centerville" in the "Libraries" column filter => Without this patch you get the patrons from CPL and CPLL => With this patch applied only patrons from CPL are listed Signed-off-by: Lucas Gass <lucas@bywatersolutions.com> Created attachment 186923 [details] [review] Bug 40876: Apply 'exact' to all attributes when column filtering If you select an option in a column filter, the "exact" behaviour will only apply to the first attribute mapped to this column eg. on the patron search we have "Libraries" mapped to library.name and library.library_id. If you select Centerville/CPL, the generated q parameter will be {name: CPL, id: {like: "%CPL%"}} This is caused by: if (value.match(/^\^(.*)\$$/)) { value = value.replace(/^\^/, "").replace(/\$$/, ""); On the second parameter we have lost the ^$ markers Moving it out of the loop fixes the problem (and does not impact the other behaviours: we search the same value for all the attributes Test plan: Create a library with code=CPLL and use if for a patron Go to http://localhost:8081/cgi-bin/koha/members/members-home.pl Click search Select "Centerville" in the "Libraries" column filter => Without this patch you get the patrons from CPL and CPLL => With this patch applied only patrons from CPL are listed Signed-off-by: Lucas Gass <lucas@bywatersolutions.com> Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de> Nice work all! Pushed to main for 25.11.00! Nice work everyone! Pushed to 25.05.x |