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) { | 
