From c710ff22cda8b7ab6eeb78a26443300d0b7eb1aa Mon Sep 17 00:00:00 2001 From: jpl Date: Wed, 11 Jan 2017 15:42:52 +0100 Subject: dealing with validations on jp collections --- .../journey_patterns/actions/index.js | 26 +++++- .../journey_patterns/components/CreateModal.js | 70 ++++++++------- .../journey_patterns/components/JourneyPattern.js | 99 +++++++++++++--------- 3 files changed, 121 insertions(+), 74 deletions(-) (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/es6_browserified/journey_patterns/actions/index.js b/app/assets/javascripts/es6_browserified/journey_patterns/actions/index.js index 4031f9bf1..05929cc3c 100644 --- a/app/assets/javascripts/es6_browserified/journey_patterns/actions/index.js +++ b/app/assets/javascripts/es6_browserified/journey_patterns/actions/index.js @@ -67,10 +67,34 @@ const actions = { type: 'SAVE_PAGE', dispatch }), - updateTotalCount: (diff) =>({ + updateTotalCount: (diff) => ({ type: 'UPDATE_TOTAL_COUNT', diff }), + resetValidation: (target) => { + $(target).parent().removeClass('has-error').children('.help-block').remove() + }, + validateFields : (fields) => { + const test = [] + + Object.keys(fields).map(function(key) { + test.push(fields[key].validity.valid) + }) + if(test.indexOf(false) >= 0) { + // Form is invalid + test.map(function(item, i) { + if(item == false) { + const k = Object.keys(fields)[i] + $(fields[k]).parent().addClass('has-error').children('.help-block').remove() + $(fields[k]).parent().append("" + fields[k].validationMessage + "") + } + }) + return false + } else { + // Form is valid + return true + } + }, submitJourneyPattern : (dispatch, state, next) => { let urlJSON = window.location.pathname + ".json" let req = new Request(urlJSON, { diff --git a/app/assets/javascripts/es6_browserified/journey_patterns/components/CreateModal.js b/app/assets/javascripts/es6_browserified/journey_patterns/components/CreateModal.js index 2c75dd808..b0e812dab 100644 --- a/app/assets/javascripts/es6_browserified/journey_patterns/components/CreateModal.js +++ b/app/assets/javascripts/es6_browserified/journey_patterns/components/CreateModal.js @@ -1,14 +1,18 @@ var React = require('react') var Component = require('react').Component var PropTypes = require('react').PropTypes +var actions = require('../actions') class CreateModal extends Component { constructor(props) { super(props) } - handleSubmit(e) { - e.preventDefault() - this.props.onAddJourneyPattern(this.refs) + + handleSubmit() { + if(actions.validateFields(this.refs) == true) { + this.props.onAddJourneyPattern(this.refs) + $('#NewJourneyPatternModal').modal('hide') + } } render() { @@ -31,61 +35,65 @@ class CreateModal extends Component {
-
- Name: {props.value.name}
-
-
- {(props.value.errors) && (
-
- {props.value.errors.name.map(function(msg, i){
- return (
- {msg}
- )
- })}
-
- )}
+ {/* Errors */}
+ {(props.value.errors) && (
+
+ Name: {props.value.name} +
+ + {/* Published name */} ++ Published name: {props.value.published_name} +
+ + {/* Registration number */} ++ Registration number: {props.value.registration_number} +
+ + {/* Object_id */} ++ ObjectID: {props.value.object_id}
-ObjectID: {props.value.object_id}
-Published name: {props.value.published_name}
+ {/* Stop points */} ++ Stop points: +
+Stop points:
-