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 (
  • {I18n.t('activerecord.attributes.vehicle_journey.constraint_exclusions')}

    ×
    {(this.props.modal.type == 'constraint_exclusions_edit') && (
    {this.excluded_constraint_zones().map((contraint_zone, i) => )} { this.props.editMode &&
    }
    { this.props.editMode &&
    }
    )}
  • ) } else { return false } } } ConstraintExclusionEditVehicleJourney.propTypes = { onOpenCalendarsEditModal: PropTypes.func.isRequired, onModalClose: PropTypes.func.isRequired, disabled: PropTypes.bool.isRequired }