diff options
| author | Alban Peignier | 2018-02-22 10:08:37 +0100 |
|---|---|---|
| committer | GitHub | 2018-02-22 10:08:37 +0100 |
| commit | b5db0e9477f22e0d2acdd40c5db710f16d517a10 (patch) | |
| tree | 24d6ee57c0d52f6eeb806ba6a346578a2716d253 /app/javascript | |
| parent | 91d683f6ad7a818312e9dc37b88eccd916e3b4d0 (diff) | |
| parent | 020c42f3e5046377c71daab0e57abdbb1809bf0f (diff) | |
| download | chouette-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.js | 5 | ||||
| -rw-r--r-- | app/javascript/vehicle_journeys/reducers/vehicleJourneys.js | 94 |
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) =>{ |
