diff options
| author | Marc Florisson | 2014-08-14 16:53:33 +0200 |
|---|---|---|
| committer | Marc Florisson | 2014-08-14 16:53:33 +0200 |
| commit | 1eae962b088d006be8d4cde19096aa5eca6608c8 (patch) | |
| tree | 5e1400d6a0584f2dab2708293d24b279dcc693af | |
| parent | 8157af57a17b75eb4e710de940b8fe15244bf561 (diff) | |
| download | chouette-core-1eae962b088d006be8d4cde19096aa5eca6608c8.tar.bz2 | |
fix and generalize first departure time shift. Mantis 26840
| -rw-r--r-- | app/assets/javascripts/vehicle_journey.js.coffee | 52 | ||||
| -rw-r--r-- | app/views/vehicle_journeys/_form.html.erb | 25 | ||||
| -rw-r--r-- | config/locales/vehicle_journeys.yml | 21 |
3 files changed, 56 insertions, 42 deletions
diff --git a/app/assets/javascripts/vehicle_journey.js.coffee b/app/assets/javascripts/vehicle_journey.js.coffee index df15d79ba..145e86f0f 100644 --- a/app/assets/javascripts/vehicle_journey.js.coffee +++ b/app/assets/javascripts/vehicle_journey.js.coffee @@ -1,37 +1,37 @@ jQuery -> - swap_hour_minute = ( from, to) -> - rows = $('.vehicle_journeys tbody.journey_pattern_dependent_list tr') - for row in rows + swap_hour_minute = ( from, to) -> + rows = $('.vehicle_journeys tbody.journey_pattern_dependent_list tr.time') + for row in rows do (row) -> $(row).find( to).find('.hour')[0].value = $(row).find( from).find('.hour')[0].value $(row).find( to).find('.minute')[0].value = $(row).find( from).find('.minute')[0].value - copy_departures_to_arrivals = (event) -> + copy_departures_to_arrivals = (event) -> event.preventDefault() swap_hour_minute( '.departure_time', '.arrival_time') $(document).on("click", '.vehicle_journeys a.to_arrivals', copy_departures_to_arrivals) - copy_arrivals_to_departures = (event) -> + copy_arrivals_to_departures = (event) -> event.preventDefault() swap_hour_minute( '.arrival_time', '.departure_time') $(document).on("click", '.vehicle_journeys a.to_departures', copy_arrivals_to_departures) - switch_vehicle_journey_at_stops = (event) -> + switch_vehicle_journey_at_stops = (event) -> event.preventDefault() $('.vehicle_journeys.show .vehicle_journey_at_stops.content').toggle('slow') $('a.vehicle_journey_at_stops .switcher').toggle() $('.vehicle_journeys.show a.vehicle_journey_at_stops').click(switch_vehicle_journey_at_stops) - switch_time_tables = (event) -> + switch_time_tables = (event) -> event.preventDefault() $('.vehicle_journeys.show .vehicle_journey_time_tables.content').toggle('slow') $('a.vehicle_journey_time_tables .switcher').toggle() $('.vehicle_journeys.show a.vehicle_journey_time_tables').click(switch_time_tables) - + convert = (val) -> if (val < 10) return "0" + val.toString() @@ -40,24 +40,34 @@ jQuery -> slide_to = ( col, duration) -> rows = $('.vehicle_journeys tbody.journey_pattern_dependent_list .time') - for row in rows + for row in rows do (row) -> - oldHour = parseInt($(row).find( col).find('.hour')[0].value, 10) - oldMinute = parseInt($(row).find( col).find('.minute')[0].value, 10) + + oldHour = parseInt( $( $(row).find( col).find('.hour')).val()) + oldMinute = parseInt( $( $(row).find( col).find('.minute')).val()) aTime = (((oldHour - 1) * 60) + oldMinute + duration) * 60000 newValue = new Date(aTime) - $(row).find( col).find('.hour')[0].value = convert(newValue.getHours()) - $(row).find( col).find('.minute')[0].value = convert(newValue.getMinutes()) + $( $(row).find( col).find('select.hour')).prop( "selectedIndex", convert(newValue.getHours())) + $( $(row).find( col).find('select.minute')).prop( "selectedIndex", convert(newValue.getMinutes())) - slide = (event) -> + slide = (event) -> event.preventDefault() - # hour = $(".vehicle_journeys .date option[selected='selected']")[0].value - hour = $(".vehicle_journeys .date select#date_hour")[0].value - # minute = $(".vehicle_journeys .date option[selected='selected']")[1].value - minute = $(".vehicle_journeys .date select#date_minute")[0].value - departure_hour = $(".stop_times .journey_pattern_dependent_list .hour option[selected='selected']")[1].value - departure_minute = $(".stop_times .journey_pattern_dependent_list .minute option[selected='selected']")[1].value - duration = (hour - departure_hour) * 60 + (minute - departure_minute) + hour = parseInt( $(".vehicle_journeys .date select#date_hour").val()) + minute = parseInt( $(".vehicle_journeys .date select#date_minute").val()) + + selector_prefix = ".stop_times .journey_pattern_dependent_list" + if $(this).hasClass("departure") + vjas_hour_selector = selector_prefix + " .departure_time select.hour" + vjas_minute_selector = selector_prefix + " .departure_time select.minute" + else + vjas_hour_selector = selector_prefix + " .arrival_time select.hour" + vjas_minute_selector = selector_prefix + " .arrival_time select.minute" + + vjas_hour = $( vjas_hour_selector).prop( "selectedIndex" ) + vjas_minute = $( vjas_minute_selector).prop( "selectedIndex" ) + + duration = (hour - vjas_hour) * 60 + (minute - vjas_minute) + slide_to( '.departure_time', duration) slide_to( '.arrival_time', duration) diff --git a/app/views/vehicle_journeys/_form.html.erb b/app/views/vehicle_journeys/_form.html.erb index e29d3cc92..934e76066 100644 --- a/app/views/vehicle_journeys/_form.html.erb +++ b/app/views/vehicle_journeys/_form.html.erb @@ -19,23 +19,24 @@ <th class="hour title"><%= t('.arrival') %></th> <th class="stop title" ><%= t('.stop_title') %></th> <th class="hour title"><%= t('.departure') %></th> - <% unless @vehicle_journey.vehicle_journey_at_stops.empty? || - @vehicle_journey.vehicle_journey_at_stops.any? { |vjas| vjas.departure_time.nil? } %> - <th class="date"> - <%= select_hour(@vehicle_journey.vehicle_journey_at_stops.first.departure_time.hour, :class => "hour") %> - <%= select_minute(@vehicle_journey.vehicle_journey_at_stops.first.departure_time.min, :class => "minute") %> - </th> - <th class="title"> <a class="slide"><%= t('.slide') %></a></th> - <% end %> </tr> + <% unless @vehicle_journey.vehicle_journey_at_stops.empty? || + @vehicle_journey.vehicle_journey_at_stops.any? { |vjas| vjas.departure_time.nil? } %> + <tr> + <td class="title"> <a class="slide arrival"><%= t('.slide_arrival') %></a></td> + <td class="date"> + <%= select_hour(@vehicle_journey.vehicle_journey_at_stops.first.departure_time.hour, :class => "hour") %> + <%= select_minute(@vehicle_journey.vehicle_journey_at_stops.first.departure_time.min, :class => "minute") %> + </td> + <td class="title"> <a class="slide departure"><%= t('.slide_departure') %></a></td> + </tr> + <% end %> </thead> <tfoot> <tr> <td class="title"> <a class="to_departures"><%= t('.to_departures') %></a></td> <td class="title" ></td> <td class="title"><a class="to_arrivals"><%= t('.to_arrivals') %></a></td> - <td></td> - <td></td> </tr> </tfoot> <tbody class="journey_pattern_dependent_list"> @@ -45,7 +46,7 @@ </table> <% end %> <%= form.input :time_table_tokens, :label => t('.time_tables'), :as => :text, :input_html => { :"data-pre" => ( @vehicle_journey.time_tables.map { |time_table| { :id => time_table.id, :name => time_table_description(time_table) } } ).to_json } %> - + <% end %> <%= form.actions do %> @@ -53,7 +54,7 @@ <%= form.action :cancel, :as => :link %> <% end %> <% end %> - + <% if @vehicle_journey.new_record? %> <%= javascript_include_tag new_referential_line_route_vehicle_journey_path(@referential, @line, @route, :format => :js) %> <% else %> diff --git a/config/locales/vehicle_journeys.yml b/config/locales/vehicle_journeys.yml index c8c46cc40..01a59217a 100644 --- a/config/locales/vehicle_journeys.yml +++ b/config/locales/vehicle_journeys.yml @@ -22,6 +22,8 @@ en: to_departures: "Copy arrivals to departures" time_tables: "Associated calendars to vehicle journey" slide: "Slide" + slide_departure: "Shift 1° departure time" + slide_arrival: "Shift 1° arrival time" timeless: title: "Timeless vehicle journeys" vehicle_journeys: "Vehicle journeys with times at stop" @@ -43,10 +45,10 @@ en: selection_all: "All" time_range: "Departure time threshold" time_filter: - time_range_filter: "Filter" - activerecord: - models: - vehicle_journey: + time_range_filter: "Filter" + activerecord: + models: + vehicle_journey: zero: "vehicle journey" one: "vehicle journey" other: "vehicle journeys" @@ -111,7 +113,8 @@ fr: to_arrivals: "Copie départs vers arrivées" to_departures: "Copie arrivées vers départs" time_tables: "Calendriers associés à la course" - slide: "Décaler" + slide_departure: "Fixer 1° horaire départ à" + slide_arrival: "Fixer 1° horaire arrivée à" timeless: title: "Courses sans horaire" vehicle_journeys: "Courses ayant des horaires" @@ -133,10 +136,10 @@ fr: selection_all: "Tous" time_range: "Seuil horaire au départ" time_filter: - time_range_filter: "Filtrer" - activerecord: - models: - vehicle_journey: + time_range_filter: "Filtrer" + activerecord: + models: + vehicle_journey: zero: "Course" one: "Course" other: "Courses" |
