@@ -19,6 +19,7 @@ import * as stopStrategiesActions from '../../actions/map/stopStrategies'
19
19
import * as tripPatternActions from '../../actions/tripPattern'
20
20
import { getEntityName , getAbbreviatedStopName } from '../../util/gtfs'
21
21
import MinuteSecondInput from '../MinuteSecondInput'
22
+ import { getComponentMessages } from '../../../common/util/config'
22
23
import type { Feed , Pattern , PatternStop } from '../../../types'
23
24
24
25
import NormalizeStopTimesTip from './NormalizeStopTimesTip'
@@ -55,7 +56,7 @@ type PickupDropoffSelectProps = {
55
56
activePattern : Pattern ,
56
57
controlLabel : string ,
57
58
onChange : ( evt : SyntheticInputEvent < HTMLInputElement > ) => void ,
58
- selectType : string ,
59
+ selectType : "pickupType" | "dropOffType" | "continuousPickup" | "continuousDropOff" ,
59
60
shouldHaveDisabledOption : boolean ,
60
61
title : string ,
61
62
value : string | number
@@ -67,22 +68,27 @@ type State = {
67
68
update : boolean
68
69
}
69
70
71
+ const patternStopCardMessages = getComponentMessages ( 'PatternStopCard' )
72
+
70
73
const pickupDropoffOptions = [
71
74
{
72
- value : 0 ,
73
- text : 'Available (0)'
75
+ value : '' // Default text is defined conditionally based on the type of select (continuous-service or pickup-dropoff)
76
+ } ,
77
+ {
78
+ text : patternStopCardMessages ( 'PickupDropOffSelect.available' ) ,
79
+ value : 0
74
80
} ,
75
81
{
76
- value : 1 ,
77
- text : 'Not available (1)'
82
+ text : patternStopCardMessages ( 'PickupDropOffSelect.notAvailable' ) ,
83
+ value : 1
78
84
} ,
79
85
{
80
- value : 2 ,
81
- text : 'Must phone agency to arrange (2)'
86
+ text : patternStopCardMessages ( 'PickupDropOffSelect.mustPhoneAgency' ) ,
87
+ value : 2
82
88
} ,
83
89
{
84
- value : 3 ,
85
- text : 'Must coordinate with driver to arrange (3)'
90
+ text : patternStopCardMessages ( 'PickupDropOffSelect.mustCoordinate' ) ,
91
+ value : 3
86
92
}
87
93
]
88
94
@@ -117,7 +123,11 @@ const PickupDropoffSelect = (props: PickupDropoffSelectProps) => {
117
123
value = { value }
118
124
>
119
125
{ pickupDropoffOptions . map ( o => (
120
- < option key = { o . value } value = { o . value } > { o . text } </ option >
126
+ < option key = { o . value } value = { o . value } >
127
+ { o . value !== '' ? o . text : selectType . includes ( 'continuous' )
128
+ ? patternStopCardMessages ( 'PickupDropOffSelect.continuousServiceDefault' )
129
+ : patternStopCardMessages ( 'PickupDropOffSelect.pickupDropOffDefault' ) }
130
+ </ option >
121
131
) ) }
122
132
</ FormControl >
123
133
</ FormGroup >
@@ -334,6 +344,18 @@ class PatternStopContents extends Component<Props, State> {
334
344
updatePatternStops ( activePattern , patternStops )
335
345
}
336
346
347
+ _onHeadsignChange = ( e : SyntheticInputEvent < HTMLInputElement > ) => {
348
+ const { activePattern, index, updatePatternStops} = this . props
349
+ const patternStops = [ ...activePattern . patternStops ]
350
+ patternStops [ index ] = {
351
+ ...patternStops [ index ] ,
352
+ stopHeadsign : e . target . value
353
+ }
354
+
355
+ this . setState ( { update : true } )
356
+ updatePatternStops ( activePattern , patternStops )
357
+ }
358
+
337
359
render ( ) {
338
360
const { active, activePattern, patternEdited, patternStop} = this . props
339
361
// This component has a special shouldComponentUpdate to ensure that state
@@ -350,7 +372,7 @@ class PatternStopContents extends Component<Props, State> {
350
372
< Checkbox
351
373
checked = { patternStop . timepoint }
352
374
onChange = { this . _onChangeTimepoint } >
353
- Timepoint?
375
+ { patternStopCardMessages ( 'PatternStopContents.timepoint' ) }
354
376
</ Checkbox >
355
377
</ Col >
356
378
< Col xs = { 8 } >
@@ -369,10 +391,10 @@ class PatternStopContents extends Component<Props, State> {
369
391
bsSize = 'small' >
370
392
< ControlLabel
371
393
title = { this . props . index === 0
372
- ? 'Travel time for first stop must be zero'
373
- : 'Define the default time it takes to travel to this stop from the previous stop.'
394
+ ? patternStopCardMessages ( 'PatternStopContents.firstStopTravelTime' )
395
+ : patternStopCardMessages ( 'PatternStopContents.travelTimeHelp' )
374
396
}
375
- className = 'small' > Default travel time </ ControlLabel >
397
+ className = 'small' > { patternStopCardMessages ( 'PatternStopContents.defaultTravelTime' ) } </ ControlLabel >
376
398
< MinuteSecondInput
377
399
disabled = { this . props . index === 0 }
378
400
seconds = { this . state . initialTravelTime }
@@ -383,7 +405,7 @@ class PatternStopContents extends Component<Props, State> {
383
405
< FormGroup
384
406
controlId = 'defaultDwellTime'
385
407
bsSize = 'small' >
386
- < ControlLabel className = 'small' > Default dwell time </ ControlLabel >
408
+ < ControlLabel className = 'small' > { patternStopCardMessages ( 'PatternStopContents.defaultDwellTime' ) } </ ControlLabel >
387
409
< MinuteSecondInput
388
410
seconds = { this . state . initialDwellTime }
389
411
onChange = { this . _onDwellTimeChange } />
@@ -399,8 +421,8 @@ class PatternStopContents extends Component<Props, State> {
399
421
onChange = { this . _onPickupOrDropOffChange }
400
422
selectType = 'pickupType'
401
423
shouldHaveDisabledOption = { false }
402
- title = 'Define the pickup method/availability at this stop.'
403
- value = { patternStop . pickupType || '' }
424
+ title = { patternStopCardMessages ( 'PickupDropOffSelect.pickupTitle' ) }
425
+ value = { ( patternStop . pickupType || patternStop . pickupType === 0 ) ? patternStop . pickupType : '' }
404
426
/>
405
427
</ Col >
406
428
< Col xs = { 6 } >
@@ -410,8 +432,8 @@ class PatternStopContents extends Component<Props, State> {
410
432
onChange = { this . _onPickupOrDropOffChange }
411
433
selectType = 'dropOffType'
412
434
shouldHaveDisabledOption = { false }
413
- title = 'Define the dropff method/availability at this stop.'
414
- value = { patternStop . dropOffType || '' }
435
+ title = { patternStopCardMessages ( 'PickupDropOffSelect.dropOffTitle' ) }
436
+ value = { ( patternStop . dropOffType || patternStop . dropOffType === 0 ) ? patternStop . dropOffType : '' }
415
437
/>
416
438
</ Col >
417
439
</ Row >
@@ -423,8 +445,8 @@ class PatternStopContents extends Component<Props, State> {
423
445
onChange = { this . _onPickupOrDropOffChange }
424
446
selectType = 'continuousPickup'
425
447
shouldHaveDisabledOption
426
- title = 'Indicates whether a rider can board the transit vehicle anywhere along the vehicle’s travel path.'
427
- value = { ( patternStop . continuousPickup || patternStop . continuousPickup === 0 ) ? patternStop . continuousPickup : 1 }
448
+ title = { patternStopCardMessages ( 'PickupDropOffSelect.continuousPickupTitle' ) }
449
+ value = { ( patternStop . continuousPickup || patternStop . continuousPickup === 0 ) ? patternStop . continuousPickup : '' }
428
450
/>
429
451
</ Col >
430
452
< Col xs = { 6 } >
@@ -434,11 +456,30 @@ class PatternStopContents extends Component<Props, State> {
434
456
onChange = { this . _onPickupOrDropOffChange }
435
457
selectType = 'continuousDropOff'
436
458
shouldHaveDisabledOption
437
- title = 'Indicates whether a rider can alight from the transit vehicle at any point along the vehicle’s travel path.'
438
- value = { ( patternStop . continuousDropOff || patternStop . continuousDropOff === 0 ) ? patternStop . continuousDropOff : 1 }
459
+ title = { patternStopCardMessages ( 'PickupDropOffSelect.continuousDropOffTitle' ) }
460
+ value = { ( patternStop . continuousDropOff || patternStop . continuousDropOff === 0 ) ? patternStop . continuousDropOff : '' }
439
461
/>
440
462
</ Col >
441
463
</ Row >
464
+ < Row >
465
+ < Col xs = { 12 } >
466
+ < FormGroup
467
+ controlId = 'stopHeadsign'
468
+ bsSize = 'small' >
469
+ < ControlLabel
470
+ className = 'small'
471
+ title = { patternStopCardMessages ( 'PatternStopContents.stopHeadsignTitle' ) } >
472
+ { patternStopCardMessages ( 'PatternStopContents.stopHeadsignText' ) }
473
+ </ ControlLabel >
474
+ < FormControl
475
+ onChange = { this . _onHeadsignChange }
476
+ placeholder = { patternStopCardMessages ( 'PatternStopContents.stopHeadsignPlaceholder' ) }
477
+ type = 'text'
478
+ value = { patternStop . stopHeadsign || '' }
479
+ />
480
+ </ FormGroup >
481
+ </ Col >
482
+ </ Row >
442
483
< NormalizeStopTimesTip />
443
484
</ div >
444
485
}
0 commit comments