From 853c7494b908c8b9dea3b91332ab1265aa40f428 Mon Sep 17 00:00:00 2001 From: Zog Date: Wed, 10 Jan 2018 15:21:42 +0100 Subject: Refs #5529 @0.5h; Prevent double submitting of react forms --- .../journey_patterns/components/SaveJourneyPattern.js | 17 +++++++++++++++-- .../vehicle_journeys/components/SaveVehicleJourneys.js | 15 ++++++++++++++- 2 files changed, 29 insertions(+), 3 deletions(-) (limited to 'app/javascript') diff --git a/app/javascript/journey_patterns/components/SaveJourneyPattern.js b/app/javascript/journey_patterns/components/SaveJourneyPattern.js index 7e4492e0e..d973147a0 100644 --- a/app/javascript/journey_patterns/components/SaveJourneyPattern.js +++ b/app/javascript/journey_patterns/components/SaveJourneyPattern.js @@ -7,6 +7,18 @@ export default class SaveJourneyPattern extends Component { super(props) } + btnDisabled(){ + return !this.props.status.fetchSuccess || this.props.status.isFetching + } + + btnClass(){ + let className = ['btn btn-default'] + if(this.btnDisabled()){ + className.push('disabled') + } + return className.join(' ') + } + render() { if(this.props.status.policy['journey_patterns.update'] == false) { return false @@ -16,8 +28,9 @@ export default class SaveJourneyPattern extends Component {
{e.preventDefault()}}> +
+ + + + ) + } + } +} diff --git a/app/javascript/journey_patterns/components/SaveJourneyPattern.js b/app/javascript/journey_patterns/components/SaveJourneyPattern.js index d973147a0..4bb6a73a0 100644 --- a/app/javascript/journey_patterns/components/SaveJourneyPattern.js +++ b/app/javascript/journey_patterns/components/SaveJourneyPattern.js @@ -1,48 +1,19 @@ import React, { Component } from 'react' import PropTypes from 'prop-types' +import SaveButton from '../../helpers/save_button' import actions from '../actions' -export default class SaveJourneyPattern extends Component { - constructor(props){ - super(props) +export default class SaveJourneyPattern extends SaveButton { + hasPolicy(){ + return this.props.status.policy['journey_patterns.update'] == true } - btnDisabled(){ - return !this.props.status.fetchSuccess || this.props.status.isFetching + formClassName(){ + return 'jp_collection' } - btnClass(){ - let className = ['btn btn-default'] - if(this.btnDisabled()){ - className.push('disabled') - } - return className.join(' ') - } - - render() { - if(this.props.status.policy['journey_patterns.update'] == false) { - return false - }else{ - return ( -
-
-
{e.preventDefault()}}> - -
-
-
- ) - } + submitForm(){ + this.props.onSubmitJourneyPattern(this.props.dispatch, this.props.journeyPatterns) } } diff --git a/app/javascript/vehicle_journeys/components/SaveVehicleJourneys.js b/app/javascript/vehicle_journeys/components/SaveVehicleJourneys.js index 64fd7310e..6e94b04a3 100644 --- a/app/javascript/vehicle_journeys/components/SaveVehicleJourneys.js +++ b/app/javascript/vehicle_journeys/components/SaveVehicleJourneys.js @@ -1,50 +1,19 @@ import React, { Component } from 'react' import PropTypes from 'prop-types' +import SaveButton from '../../helpers/save_button' import actions from '../actions' -export default class SaveVehicleJourneys extends Component{ - constructor(props){ - super(props) +export default class SaveVehicleJourneys extends SaveButton{ + hasPolicy(){ + return this.props.filters.policy['vehicle_journeys.update'] == true } - btnDisabled(){ - return !this.props.status.fetchSuccess || this.props.status.isFetching + formClassName(){ + return 'vehicle_journeys' } - btnClass(){ - let className = ['btn btn-default'] - if(this.btnDisabled()){ - className.push('disabled') - } - return className.join(' ') - } - - render() { - if (this.props.filters.policy['vehicle_journeys.update'] == false) { - return false - }else{ - return ( -
-
-
{e.preventDefault()}}> -
- -
-
-
-
- ) - } + submitForm(){ + this.props.onSubmitVehicleJourneys(this.props.dispatch, this.props.vehicleJourneys) } } -- cgit v1.2.3