Bug 30393: Make datatables wrapper handle searching for %, _, \

This patch makes searching for '%','_' and '\' work by escaping those
symbols in the query before sending them to the API.

To test:
1. Go to the cities page
2. Add two cities:
   - 'Cordoba %'
   - 'Buenos Aires _'
   - 'London \'
3. Use the column search on the name, alternating _, \ and % as the query
=> FAIL: Weird behavior
4. Apply this patch and reload
5. Repeat 3
=> SUCCESS: Filtering works correctly!
6. Sign off :-D

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Séverine Queune <severine.queune@bulac.fr>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
This commit is contained in:
Tomas Cohen Arazi 2022-03-30 12:10:26 +02:00 committed by Kyle Hall
parent e3bd129317
commit 7688c4a628
1 changed files with 4 additions and 1 deletions

View File

@ -583,8 +583,11 @@ jQuery.fn.dataTable.ext.errMode = function(settings, note, message) {
_per_page: length
};
function build_query(col, value){
// escape SQL special characters
value = value.replace(/(\%|\_|\\)/g, "\\$1" );
var parts = [];
var attributes = col.data.split(':');
for (var i=0;i<attributes.length;i++){