From 410457e1c1cad57ed2109fe8de9d1dc1eecf353f Mon Sep 17 00:00:00 2001 From: Zog Date: Mon, 12 Mar 2018 10:42:01 +0100 Subject: Refs #6143; Configurable extra headers on VJs editor --- .../vehicle_journeys/components/VehicleJourney.js | 21 +++++++++++++++++++++ .../vehicle_journeys/components/VehicleJourneys.js | 17 +++++++++++++++++ .../containers/VehicleJourneysList.js | 4 +++- 3 files changed, 41 insertions(+), 1 deletion(-) (limited to 'app/javascript') diff --git a/app/javascript/vehicle_journeys/components/VehicleJourney.js b/app/javascript/vehicle_journeys/components/VehicleJourney.js index a667bf8aa..73d99d120 100644 --- a/app/javascript/vehicle_journeys/components/VehicleJourney.js +++ b/app/javascript/vehicle_journeys/components/VehicleJourney.js @@ -75,6 +75,21 @@ export default class VehicleJourney extends Component { return (bool1 || bool2) } + extraHeaderValue(header) { + if(header.type == "custom_field"){ + let field = this.props.value.custom_fields[header["name"]] + if(field.field_type == "list"){ + return field.options.list_values[field.value] + } + else{ + return field.value + } + } + else{ + return this.props.value[header["name"]] + } + } + render() { this.previousCity = undefined let detailed_calendars = this.hasFeature('detailed_calendars') && !this.disabled @@ -95,6 +110,11 @@ export default class VehicleJourney extends Component {
{this.props.value.published_journey_name && this.props.value.published_journey_name != I18n.t('undefined') ? this.props.value.published_journey_name : '-'}
{this.props.value.journey_pattern.short_id || '-'}
{this.props.value.company ? this.props.value.company.name : '-'}
+ { + this.props.extraHeaders.map((header, i) => +
{this.extraHeaderValue(header)}
+ ) + } { this.hasFeature('purchase_windows') &&
{purchase_windows.slice(0,3).map((tt, i)=> @@ -222,4 +242,5 @@ VehicleJourney.propTypes = { vehicleJourneys: PropTypes.object.isRequired, allTimeTables: PropTypes.array.isRequired, allPurchaseWindows: PropTypes.array.isRequired, + extraHeaders: PropTypes.array.isRequired, } diff --git a/app/javascript/vehicle_journeys/components/VehicleJourneys.js b/app/javascript/vehicle_journeys/components/VehicleJourneys.js index ae38a21af..4b2d8c7a6 100644 --- a/app/javascript/vehicle_journeys/components/VehicleJourneys.js +++ b/app/javascript/vehicle_journeys/components/VehicleJourneys.js @@ -163,6 +163,15 @@ export default class VehicleJourneys extends Component { ) } + extraHeaderLabel(header) { + if(header["type"] == "custom_field"){ + return this.props.customFields[header["name"]]["name"] + } + else{ + return I18n.attribute_name("vehicle_journey", header) + } + } + render() { this.previousBreakpoint = undefined this._allTimeTables = null @@ -231,6 +240,11 @@ export default class VehicleJourneys extends Component { )}
} + { + this.props.extraHeaders.map((header, i) => +
{this.extraHeaderLabel(header)}
+ ) + }
{ detailed_calendars && @@ -278,6 +292,7 @@ export default class VehicleJourneys extends Component { disabled={this.isReturn()} allTimeTables={this.allTimeTables()} allPurchaseWindows={this.allPurchaseWindows()} + extraHeaders={this.props.extraHeaders} /> )}
@@ -293,6 +308,8 @@ export default class VehicleJourneys extends Component { VehicleJourneys.propTypes = { status: PropTypes.object.isRequired, filters: PropTypes.object.isRequired, + extraHeaders: PropTypes.array.isRequired, + customFields: PropTypes.object.isRequired, stopPointsList: PropTypes.array.isRequired, onLoadFirstPage: PropTypes.func.isRequired, onUpdateTime: PropTypes.func.isRequired, diff --git a/app/javascript/vehicle_journeys/containers/VehicleJourneysList.js b/app/javascript/vehicle_journeys/containers/VehicleJourneysList.js index 81d603fd4..f21e2c87e 100644 --- a/app/javascript/vehicle_journeys/containers/VehicleJourneysList.js +++ b/app/javascript/vehicle_journeys/containers/VehicleJourneysList.js @@ -10,7 +10,9 @@ const mapStateToProps = (state) => { status: state.status, filters: state.filters, stopPointsList: state.stopPointsList, - returnStopPointsList: state.returnStopPointsList + returnStopPointsList: state.returnStopPointsList, + extraHeaders: window.extra_headers, + customFields: window.custom_fields, } } -- cgit v1.2.3