From d0e51ea2058163b76863797a4e337ba3f5d6611d Mon Sep 17 00:00:00 2001 From: Zog Date: Wed, 10 Jan 2018 10:08:34 +0100 Subject: Refs #5437 @0.5h; Propagate behaviour to the JourneyPatterns editor --- .../journey_patterns/components/JourneyPattern.js | 11 ++----- .../journey_patterns/components/JourneyPatterns.js | 37 +++++++++++++++------- 2 files changed, 28 insertions(+), 20 deletions(-) (limited to 'app/javascript/journey_patterns') diff --git a/app/javascript/journey_patterns/components/JourneyPattern.js b/app/javascript/journey_patterns/components/JourneyPattern.js index 52641c94e..47fb6882d 100644 --- a/app/javascript/journey_patterns/components/JourneyPattern.js +++ b/app/javascript/journey_patterns/components/JourneyPattern.js @@ -33,13 +33,7 @@ export default class JourneyPattern extends Component{ } cityNameChecker(sp) { - let bool = false - - if(sp.city_name != this.previousCity){ - bool = true - this.previousCity = sp.city_name - } - return bool + return this.props.journeyPatterns.showHeader(sp.object_id) } spNode(sp, headlined){ @@ -190,5 +184,6 @@ JourneyPattern.propTypes = { index: PropTypes.number, onCheckboxChange: PropTypes.func.isRequired, onOpenEditModal: PropTypes.func.isRequired, - onDeleteJourneyPattern: PropTypes.func.isRequired + onDeleteJourneyPattern: PropTypes.func.isRequired, + journeyPatterns: PropTypes.object.isRequired } diff --git a/app/javascript/journey_patterns/components/JourneyPatterns.js b/app/javascript/journey_patterns/components/JourneyPatterns.js index 67315346d..c261b408a 100644 --- a/app/javascript/journey_patterns/components/JourneyPatterns.js +++ b/app/javascript/journey_patterns/components/JourneyPatterns.js @@ -7,11 +7,13 @@ import JourneyPattern from './JourneyPattern' export default class JourneyPatterns extends Component { constructor(props){ super(props) - this.previousCity = undefined + this.stopPointsIds = _.map(this.props.stopPointsList, (sp)=>{return sp.stop_area_object_id}) } + componentDidMount() { this.props.onLoadFirstPage() } + componentDidUpdate(prevProps, prevState) { if(this.props.status.isFetching == false){ $('.table-2entries').each(function() { @@ -55,20 +57,26 @@ export default class JourneyPatterns extends Component { } } - hasFeature(key) { - return this.props.status.features[key] + showHeader(object_id) { + let showHeadline = false + let headline = "" + let attribute_to_check = this.hasFeature('long_distance_routes') ? "country_code" : "city_name" + let index = this.stopPointsIds.indexOf(object_id) + let sp = this.props.stopPointsList[index] + let previousBreakpoint = this.props.stopPointsList[index - 1] + if(index == 0 || (sp[attribute_to_check] != previousBreakpoint[attribute_to_check])){ + showHeadline = true + headline = this.hasFeature('long_distance_routes') ? sp.country_name : sp.city_name + } + return showHeadline ? headline : "" } - cityNameChecker(sp) { - let bool = false - if(sp.city_name != this.previousCity){ - bool = true - this.previousCity = sp.city_name - } + stopPointHeader(sp) { + let showHeadline = this.showHeader(sp.stop_area_object_id) return (