diff options
| author | cedricnjanga | 2017-10-26 12:48:32 +0200 |
|---|---|---|
| committer | cedricnjanga | 2017-10-26 12:48:32 +0200 |
| commit | f185f0d86460af1b200358e2adac63543f76a151 (patch) | |
| tree | 7e3e7ed7063e7f41ebd3383f653c7ea3f78b21cd | |
| parent | 438f7c293f14e0db6a132128bf36e3fb2e9829db (diff) | |
| download | chouette-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
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) { |
