aboutsummaryrefslogtreecommitdiffstats
path: root/app/javascript/journey_patterns
diff options
context:
space:
mode:
authorZog2018-01-10 10:08:34 +0100
committerZog2018-01-10 10:08:34 +0100
commitd0e51ea2058163b76863797a4e337ba3f5d6611d (patch)
tree1df6108427493cea287304956877a4c139da88d4 /app/javascript/journey_patterns
parent314c706183146099e385b224e316fdf06f6f91cd (diff)
downloadchouette-core-d0e51ea2058163b76863797a4e337ba3f5d6611d.tar.bz2
Refs #5437 @0.5h; Propagate behaviour to the JourneyPatterns editor
Diffstat (limited to 'app/javascript/journey_patterns')
-rw-r--r--app/javascript/journey_patterns/components/JourneyPattern.js11
-rw-r--r--app/javascript/journey_patterns/components/JourneyPatterns.js37
2 files changed, 28 insertions, 20 deletions
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 (
<div
- className={(bool) ? 'headlined' : ''}
- data-headline={(bool) ? sp.city_name : ''}
+ className={(showHeadline) ? 'headlined' : ''}
+ data-headline={showHeadline}
title={sp.city_name + ' (' + sp.zip_code +')'}
>
<span><span>{sp.name}</span></span>
@@ -76,6 +84,10 @@ export default class JourneyPatterns extends Component {
)
}
+ hasFeature(key) {
+ return this.props.status.features[key]
+ }
+
render() {
this.previousCity = undefined
@@ -121,7 +133,7 @@ export default class JourneyPatterns extends Component {
{this.props.stopPointsList.map((sp, i) =>{
return (
<div key={i} className={'td' + (this.hasFeature('costs_in_journey_patterns') ? ' with-costs' : '')}>
- {this.cityNameChecker(sp)}
+ {this.stopPointHeader(sp)}
</div>
)
})}
@@ -139,6 +151,7 @@ export default class JourneyPatterns extends Component {
onUpdateJourneyPatternCosts={(costs) => this.props.onUpdateJourneyPatternCosts(index, costs)}
status= {this.props.status}
editMode= {this.props.editMode}
+ journeyPatterns= {this}
/>
)}
</div>