aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorcedricnjanga2017-10-26 12:48:32 +0200
committercedricnjanga2017-10-26 12:48:32 +0200
commitf185f0d86460af1b200358e2adac63543f76a151 (patch)
tree7e3e7ed7063e7f41ebd3383f653c7ea3f78b21cd
parent438f7c293f14e0db6a132128bf36e3fb2e9829db (diff)
downloadchouette-core-f185f0d86460af1b200358e2adac63543f76a151.tar.bz2
Refs #4586
Escape wildcard character on ILIKE search in the different select2s When the reasearch was '%' or '_' the query interpreted those characters as wildcars. Need to escape them to run properly the ransack query
-rw-r--r--app/javascript/vehicle_journeys/actions/index.js4
-rw-r--r--app/javascript/vehicle_journeys/components/tools/select2s/CompanySelect2.js3
-rw-r--r--app/javascript/vehicle_journeys/components/tools/select2s/MissionSelect2.js2
-rw-r--r--app/javascript/vehicle_journeys/components/tools/select2s/TimetableSelect2.js5
-rw-r--r--app/javascript/vehicle_journeys/components/tools/select2s/VJSelect2.js2
5 files changed, 9 insertions, 7 deletions
diff --git a/app/javascript/vehicle_journeys/actions/index.js b/app/javascript/vehicle_journeys/actions/index.js
index 4272c7915..8d7c4d7a0 100644
--- a/app/javascript/vehicle_journeys/actions/index.js
+++ b/app/javascript/vehicle_journeys/actions/index.js
@@ -458,6 +458,10 @@ const actions = {
}
}
},
+ escapeWildcardCharacters(search) {
+ let newSearch = search.replace(/^_/, "\\_")
+ return newSearch.replace(/^%/, "\\%")
+ }
}
export default actions
diff --git a/app/javascript/vehicle_journeys/components/tools/select2s/CompanySelect2.js b/app/javascript/vehicle_journeys/components/tools/select2s/CompanySelect2.js
index 9c259630d..07f87d891 100644
--- a/app/javascript/vehicle_journeys/components/tools/select2s/CompanySelect2.js
+++ b/app/javascript/vehicle_journeys/components/tools/select2s/CompanySelect2.js
@@ -1,6 +1,7 @@
import _ from 'lodash'
import React, { PropTypes, Component } from 'react'
import Select2 from 'react-select2'
+import actions from '../../../actions'
// get JSON full path
let origin = window.location.origin
@@ -34,7 +35,7 @@ export default class BSelect4 extends Component {
delay: '500',
data: function(params) {
return {
- q: {name_cont: params.term},
+ q: { name_cont: actions.escapeWildcardCharacters(params.term)},
};
},
processResults: function(data, params) {
diff --git a/app/javascript/vehicle_journeys/components/tools/select2s/MissionSelect2.js b/app/javascript/vehicle_journeys/components/tools/select2s/MissionSelect2.js
index e4abdd651..6069bf089 100644
--- a/app/javascript/vehicle_journeys/components/tools/select2s/MissionSelect2.js
+++ b/app/javascript/vehicle_journeys/components/tools/select2s/MissionSelect2.js
@@ -33,7 +33,7 @@ export default class BSelect4 extends Component {
delay: '500',
data: function(params) {
return {
- q: {published_name_or_objectid_or_registration_number_cont: params.term},
+ q: { published_name_or_objectid_or_registration_number_cont: actions.escapeWildcardCharacters(params.term)},
};
},
processResults: function(data, params) {
diff --git a/app/javascript/vehicle_journeys/components/tools/select2s/TimetableSelect2.js b/app/javascript/vehicle_journeys/components/tools/select2s/TimetableSelect2.js
index 606bf8511..60c3eab83 100644
--- a/app/javascript/vehicle_journeys/components/tools/select2s/TimetableSelect2.js
+++ b/app/javascript/vehicle_journeys/components/tools/select2s/TimetableSelect2.js
@@ -32,12 +32,9 @@ export default class BSelect4 extends Component {
dataType: 'json',
delay: '500',
data: function(params) {
- let newParmas = params.term.split(" ")
return {
q: {
- objectid_cont_any: newParmas,
- comment_cont_any: newParmas,
- m: 'or'
+ comment_or_objectid_cont_any: actions.escapeWildcardCharacters(params.term)
}
};
},
diff --git a/app/javascript/vehicle_journeys/components/tools/select2s/VJSelect2.js b/app/javascript/vehicle_journeys/components/tools/select2s/VJSelect2.js
index e1af8816d..7cccbbc05 100644
--- a/app/javascript/vehicle_journeys/components/tools/select2s/VJSelect2.js
+++ b/app/javascript/vehicle_journeys/components/tools/select2s/VJSelect2.js
@@ -33,7 +33,7 @@ export default class BSelect4b extends Component {
delay: '500',
data: function(params) {
return {
- q: {objectid_cont: params.term},
+ q: { objectid_cont: actions.escapeWildcardCharacters(params.term)},
};
},
processResults: function(data, params) {