aboutsummaryrefslogtreecommitdiffstats
path: root/app/javascript
diff options
context:
space:
mode:
authorAlban Peignier2018-02-22 10:08:37 +0100
committerGitHub2018-02-22 10:08:37 +0100
commitb5db0e9477f22e0d2acdd40c5db710f16d517a10 (patch)
tree24d6ee57c0d52f6eeb806ba6a346578a2716d253 /app/javascript
parent91d683f6ad7a818312e9dc37b88eccd916e3b4d0 (diff)
parent020c42f3e5046377c71daab0e57abdbb1809bf0f (diff)
downloadchouette-core-b5db0e9477f22e0d2acdd40c5db710f16d517a10.tar.bz2
Merge pull request #324 from af83/5942-apply-user-tz
Apply user tz. Refs #5942
Diffstat (limited to 'app/javascript')
-rw-r--r--app/javascript/vehicle_journeys/components/tools/CreateModal.js5
-rw-r--r--app/javascript/vehicle_journeys/reducers/vehicleJourneys.js94
2 files changed, 65 insertions, 34 deletions
diff --git a/app/javascript/vehicle_journeys/components/tools/CreateModal.js b/app/javascript/vehicle_journeys/components/tools/CreateModal.js
index 8536f66e6..24d9a23c2 100644
--- a/app/javascript/vehicle_journeys/components/tools/CreateModal.js
+++ b/app/javascript/vehicle_journeys/components/tools/CreateModal.js
@@ -117,6 +117,11 @@ export default class CreateModal extends Component {
className='form-control'
onKeyDown={(e) => actions.resetValidation(e.currentTarget)}
/>
+ <input
+ type='hidden'
+ ref='tz_offset'
+ value={new Date().getTimezoneOffset()}
+ />
</div>
</div>
</div>
diff --git a/app/javascript/vehicle_journeys/reducers/vehicleJourneys.js b/app/javascript/vehicle_journeys/reducers/vehicleJourneys.js
index 383dea4a0..8705b3cf2 100644
--- a/app/javascript/vehicle_journeys/reducers/vehicleJourneys.js
+++ b/app/javascript/vehicle_journeys/reducers/vehicleJourneys.js
@@ -14,47 +14,73 @@ const vehicleJourney= (state = {}, action, keep) => {
hour: 0,
minute: 0
}
- if(action.data["start_time.hour"] && action.data["start_time.minute"] && action.selectedJourneyPattern.full_schedule){
- current_time.hour = parseInt(action.data["start_time.hour"].value)
- current_time.minute = parseInt(action.data["start_time.minute"].value) || 0
+ let computeSchedule = false
+ let userTZOffet = 0
+ if(action.data["start_time.hour"] && action.data["start_time.hour"].value && action.data["start_time.hour"].value.length > 0 && action.data["start_time.minute"] && action.selectedJourneyPattern.full_schedule && action.selectedJourneyPattern.costs){
+ computeSchedule = true
+ userTZOffet = action.data["tz_offset"] && parseInt(action.data["tz_offset"].value) || 0
+ current_time.hour = parseInt(action.data["start_time.hour"].value) + parseInt(userTZOffet / 60)
+ current_time.minute = 0
+ if(action.data["start_time.minute"].value){
+ current_time.minute = parseInt(action.data["start_time.minute"].value) + (userTZOffet - 60 * parseInt(userTZOffet / 60))
+ }
}
_.each(action.stopPointsList, (sp) =>{
let inJourney = false
- if(action.selectedJourneyPattern.full_schedule && action.selectedJourneyPattern.costs && action.selectedJourneyPattern.costs[prevSp.stop_area_id + "-" + sp.stop_area_id]){
- let delta = parseInt(action.selectedJourneyPattern.costs[prevSp.stop_area_id + "-" + sp.stop_area_id].time)
- current_time = actions.addMinutesToTime(current_time, delta)
- prevSp = sp
- inJourney = true
- }
- let offsetHours = sp.time_zone_offset / 3600
- let offsetminutes = sp.time_zone_offset/60 - 60*offsetHours
- let newVjas = {
- delta: 0,
- arrival_time:{
- hour: (24 + current_time.hour + offsetHours) % 24,
- minute: current_time.minute + offsetminutes
- },
- stop_point_objectid: sp.object_id,
- stop_area_cityname: sp.city_name,
- dummy: true
- }
+ let newVjas
+ if(computeSchedule){
+ if(action.selectedJourneyPattern.costs[prevSp.stop_area_id + "-" + sp.stop_area_id]){
+ let delta = parseInt(action.selectedJourneyPattern.costs[prevSp.stop_area_id + "-" + sp.stop_area_id].time)
+ current_time = actions.addMinutesToTime(current_time, delta)
+ prevSp = sp
+ inJourney = true
+ }
+ let offsetHours = sp.time_zone_offset / 3600
+ let offsetminutes = sp.time_zone_offset/60 - 60*offsetHours
+ newVjas = {
+ delta: 0,
+ arrival_time:{
+ hour: (24 + current_time.hour + offsetHours) % 24,
+ minute: current_time.minute + offsetminutes
+ },
+ stop_point_objectid: sp.object_id,
+ stop_area_cityname: sp.city_name,
+ dummy: true
+ }
- if(sp.waiting_time && inJourney){
- current_time = actions.addMinutesToTime(current_time, parseInt(sp.waiting_time))
- }
+ if(sp.waiting_time && inJourney){
+ current_time = actions.addMinutesToTime(current_time, parseInt(sp.waiting_time))
+ }
- newVjas.departure_time = {
- hour: (24 + current_time.hour + offsetHours) % 24,
- minute: current_time.minute + offsetminutes
- }
+ newVjas.departure_time = {
+ hour: (24 + current_time.hour + offsetHours) % 24,
+ minute: current_time.minute + offsetminutes
+ }
- if(current_time.hour + offsetHours > 24){
- newVjas.departure_day_offset = 1
- newVjas.arrival_day_offset = 1
+ if(current_time.hour + offsetHours > 24){
+ newVjas.departure_day_offset = 1
+ newVjas.arrival_day_offset = 1
+ }
+ if(current_time.hour + offsetHours < 0){
+ newVjas.departure_day_offset = -1
+ newVjas.arrival_day_offset = -1
+ }
}
- if(current_time.hour + offsetHours < 0){
- newVjas.departure_day_offset = -1
- newVjas.arrival_day_offset = -1
+ else{
+ newVjas = {
+ delta: 0,
+ arrival_time: {
+ hour: 0,
+ minute: 0
+ },
+ departure_time: {
+ hour: 0,
+ minute: 0
+ },
+ stop_point_objectid: sp.object_id,
+ stop_area_cityname: sp.city_name,
+ dummy: true
+ }
}
_.each(action.selectedJourneyPattern.stop_areas, (jp) =>{