aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorcedricnjanga2017-12-13 11:18:11 +0100
committercedricnjanga2017-12-13 11:54:26 +0100
commit71718a7996ac4848f9762f45b31bc7ff5f106c0f (patch)
tree57356c27e949e15e755e542e22d213caf8ec6ef1
parent5404d56ece41ec949f142457f161c7b9663dd5fc (diff)
downloadchouette-core-71718a7996ac4848f9762f45b31bc7ff5f106c0f.tar.bz2
Refs #5153 Add form validation for VJ creation on journey_pattern select2 (required field)
-rw-r--r--app/javascript/vehicle_journeys/actions/index.js6
-rw-r--r--app/javascript/vehicle_journeys/components/VehicleJourney.js4
-rw-r--r--app/javascript/vehicle_journeys/components/tools/CreateModal.js2
-rw-r--r--app/javascript/vehicle_journeys/components/tools/EditVehicleJourney.js1
-rw-r--r--app/javascript/vehicle_journeys/components/tools/TimetablesEditVehicleJourney.js4
-rw-r--r--app/javascript/vehicle_journeys/components/tools/select2s/CompanySelect2.js4
-rw-r--r--app/javascript/vehicle_journeys/components/tools/select2s/MissionSelect2.js4
-rw-r--r--app/javascript/vehicle_journeys/components/tools/select2s/TimetableSelect2.js2
-rw-r--r--app/javascript/vehicle_journeys/components/tools/select2s/VJSelect2.js2
-rw-r--r--app/javascript/vehicle_journeys/reducers/vehicleJourneys.js1
10 files changed, 15 insertions, 15 deletions
diff --git a/app/javascript/vehicle_journeys/actions/index.js b/app/javascript/vehicle_journeys/actions/index.js
index ddb54d615..ce4b9209d 100644
--- a/app/javascript/vehicle_journeys/actions/index.js
+++ b/app/javascript/vehicle_journeys/actions/index.js
@@ -162,7 +162,7 @@ const actions = {
resetValidation: (target) => {
$(target).parent().removeClass('has-error').children('.help-block').remove()
},
- validateFields : (fields) => {
+ validateFields : (...fields) => {
const test = []
Object.keys(fields).map(function(key) {
@@ -457,10 +457,6 @@ const actions = {
minute: actions.simplePad(newArrivalDT.getUTCMinutes())
}
}
- },
- escapeWildcardCharacters(search) {
- let newSearch = search.replace(/^_/, "\\_")
- return newSearch.replace(/^%/, "\\%")
}
}
diff --git a/app/javascript/vehicle_journeys/components/VehicleJourney.js b/app/javascript/vehicle_journeys/components/VehicleJourney.js
index 8fb4b8a7e..929cbc5c4 100644
--- a/app/javascript/vehicle_journeys/components/VehicleJourney.js
+++ b/app/javascript/vehicle_journeys/components/VehicleJourney.js
@@ -49,8 +49,8 @@ export default class VehicleJourney extends Component {
return (
<div className={'t2e-item' + (this.props.value.deletable ? ' disabled' : '') + (this.props.value.errors ? ' has-error': '')}>
<div className='th'>
- <div className='strong mb-xs'>{this.props.value.objectid ? this.props.value.short_id : '-'}</div>
- <div>{this.props.value.journey_pattern.short_id}</div>
+ <div className='strong mb-xs'>{this.props.value.short_id || '-'}</div>
+ <div>{this.props.value.journey_pattern.short_id || '-'}</div>
<div>
{time_tables.slice(0,3).map((tt, i)=>
<span key={i} className='vj_tt'>{this.timeTableURL(tt)}</span>
diff --git a/app/javascript/vehicle_journeys/components/tools/CreateModal.js b/app/javascript/vehicle_journeys/components/tools/CreateModal.js
index 2bffebdf6..33873219c 100644
--- a/app/javascript/vehicle_journeys/components/tools/CreateModal.js
+++ b/app/javascript/vehicle_journeys/components/tools/CreateModal.js
@@ -9,7 +9,7 @@ export default class CreateModal extends Component {
}
handleSubmit() {
- if(actions.validateFields(this.refs) == true && this.props.modal.modalProps.selectedJPModal) {
+ if (actions.validateFields(...this.refs, $('.vjCreateSelectJP')[0]) && this.props.modal.modalProps.selectedJPModal) {
this.props.onAddVehicleJourney(this.refs, this.props.modal.modalProps.selectedJPModal, this.props.stopPointsList, this.props.modal.modalProps.selectedCompany)
this.props.onModalClose()
$('#NewVehicleJourneyModal').modal('hide')
diff --git a/app/javascript/vehicle_journeys/components/tools/EditVehicleJourney.js b/app/javascript/vehicle_journeys/components/tools/EditVehicleJourney.js
index 7d91896eb..f8d6add03 100644
--- a/app/javascript/vehicle_journeys/components/tools/EditVehicleJourney.js
+++ b/app/javascript/vehicle_journeys/components/tools/EditVehicleJourney.js
@@ -97,6 +97,7 @@ export default class EditVehicleJourney extends Component {
<div className='form-group'>
<label className='control-label'>Transporteur</label>
<CompanySelect2
+ editModal={this.props.modal.type == "edit"}
editMode={this.props.editMode}
company = {this.props.modal.modalProps.vehicleJourney.company}
onSelect2Company = {(e) => this.props.onSelect2Company(e)}
diff --git a/app/javascript/vehicle_journeys/components/tools/TimetablesEditVehicleJourney.js b/app/javascript/vehicle_journeys/components/tools/TimetablesEditVehicleJourney.js
index fef3cdcc9..6629135dd 100644
--- a/app/javascript/vehicle_journeys/components/tools/TimetablesEditVehicleJourney.js
+++ b/app/javascript/vehicle_journeys/components/tools/TimetablesEditVehicleJourney.js
@@ -29,7 +29,7 @@ export default class TimetablesEditVehicleJourney extends Component {
<li className='st_action'>
<button
type='button'
- disabled={(actions.getSelected(this.props.vehicleJourneys).length != 1 || this.props.disabled)}
+ disabled={(actions.getSelected(this.props.vehicleJourneys).length < 1 || this.props.disabled)}
data-toggle='modal'
data-target='#CalendarsEditVehicleJourneyModal'
onClick={() => this.props.onOpenCalendarsEditModal(actions.getSelected(this.props.vehicleJourneys))}
@@ -56,7 +56,7 @@ export default class TimetablesEditVehicleJourney extends Component {
<div className='wrapper'>
<div>
<div className='form-group'>
- <label className='control-label'>Calendriers associés</label>
+ <label className='control-label'>{this.props.modal.modalProps.timetables.length == 0 ? "Aucun calendrier associé" : "Calendriers associés"}</label>
</div>
</div>
<div></div>
diff --git a/app/javascript/vehicle_journeys/components/tools/select2s/CompanySelect2.js b/app/javascript/vehicle_journeys/components/tools/select2s/CompanySelect2.js
index 0697e9141..79ba8f094 100644
--- a/app/javascript/vehicle_journeys/components/tools/select2s/CompanySelect2.js
+++ b/app/javascript/vehicle_journeys/components/tools/select2s/CompanySelect2.js
@@ -21,7 +21,7 @@ export default class BSelect4 extends Component {
value={(this.props.company) ? this.props.company.name : undefined}
onSelect={(e) => this.props.onSelect2Company(e) }
onUnselect={() => this.props.onUnselect2Company()}
- disabled={!this.props.editMode}
+ disabled={!this.props.editMode && this.props.editModal}
multiple={false}
ref='company_id'
options={{
@@ -36,7 +36,7 @@ export default class BSelect4 extends Component {
delay: '500',
data: function(params) {
return {
- q: { name_cont: actions.escapeWildcardCharacters(params.term)},
+ q: { name_cont: 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 5b4ae564c..fa847886c 100644
--- a/app/javascript/vehicle_journeys/components/tools/select2s/MissionSelect2.js
+++ b/app/javascript/vehicle_journeys/components/tools/select2s/MissionSelect2.js
@@ -21,6 +21,8 @@ export default class BSelect4 extends Component {
onSelect={(e) => this.props.onSelect2JourneyPattern(e)}
multiple={false}
ref='journey_pattern_id'
+ className={!this.props.isFilter ? "vjCreateSelectJP" : null}
+ required={!this.props.isFilter}
options={{
allowClear: false,
theme: 'bootstrap',
@@ -33,7 +35,7 @@ export default class BSelect4 extends Component {
delay: '500',
data: function(params) {
return {
- q: { published_name_or_objectid_or_registration_number_cont: actions.escapeWildcardCharacters(params.term)},
+ q: { published_name_or_objectid_or_registration_number_cont: 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 a90a9f7b8..19c183839 100644
--- a/app/javascript/vehicle_journeys/components/tools/select2s/TimetableSelect2.js
+++ b/app/javascript/vehicle_journeys/components/tools/select2s/TimetableSelect2.js
@@ -34,7 +34,7 @@ export default class BSelect4 extends Component {
data: function(params) {
return {
q: {
- comment_or_objectid_cont_any: actions.escapeWildcardCharacters(params.term)
+ comment_or_objectid_cont_any: 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 37628fce0..b063abeca 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: actions.escapeWildcardCharacters(params.term)},
+ q: { objectid_cont: params.term},
};
},
processResults: function(data, params) {
diff --git a/app/javascript/vehicle_journeys/reducers/vehicleJourneys.js b/app/javascript/vehicle_journeys/reducers/vehicleJourneys.js
index 775fefdca..136e1b41a 100644
--- a/app/javascript/vehicle_journeys/reducers/vehicleJourneys.js
+++ b/app/javascript/vehicle_journeys/reducers/vehicleJourneys.js
@@ -38,6 +38,7 @@ const vehicleJourney= (state = {}, action, keep) => {
published_journey_name: action.data.published_journey_name.value,
published_journey_identifier: action.data.published_journey_identifier.value,
objectid: '',
+ short_id: '',
footnotes: [],
time_tables: [],
vehicle_journey_at_stops: pristineVjasList,