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 generate q parameter will be {name: CPL, id: {like: "%CPL%"}}
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