import _ from 'lodash' import React, { Component } from 'react' import PropTypes from 'prop-types' import actions from '../../actions' import ConstraintZoneSelect2 from './select2s/ConstraintZoneSelect2' export default class ConstraintExclusionEditVehicleJourney extends Component { constructor(props) { super(props) this.handleSubmit = this.handleSubmit.bind(this) this.constraintZoneUrl = this.constraintZoneUrl.bind(this) this.excluded_constraint_zones = this.excluded_constraint_zones.bind(this) this.constraint_zones = null } handleSubmit() { this.props.onConstraintZonesEditVehicleJourney(this.props.modal.modalProps.vehicleJourneys, this.props.modal.modalProps.selectedConstraintZones) this.props.onModalClose() $('#ConstraintExclusionEditVehicleJourney').modal('hide') } constraintZoneUrl(contraint_zone) { return window.constraint_zones_routes + "/" + contraint_zone.id } excluded_constraint_zones() { let out = [] this.props.modal.modalProps.selectedConstraintZones.map((id, _)=>{ this.constraint_zones.map((zone, _)=>{ if(zone.id == id){ out.push(zone) } }) }) return out } fetch_constraint_zones() { let url = window.constraint_zones_routes + ".json" fetch(url, { credentials: 'same-origin', }).then(response => { return response.json() }).then((json) => { this.constraint_zones = [] json.map((item, i)=>{ this.constraint_zones.push( _.assign({}, item, {text: item.name}) ) }) this.forceUpdate() }) } render() { if(this.constraint_zones === null) { this.fetch_constraint_zones() return false } if(this.props.status.fetchSuccess == true) { return (