diff options
| author | Bruno Perles | 2015-10-29 10:35:59 +0100 |
|---|---|---|
| committer | Bruno Perles | 2015-10-29 10:35:59 +0100 |
| commit | bbdbdaee9ef0c126d6117be11708a7cd192b20d6 (patch) | |
| tree | 1a235b76d30bde6561440546df14aa4af0c15b32 | |
| parent | 5b4136b2907ffc918210495d8f9a29c1e7d681fb (diff) | |
| download | chouette-core-bbdbdaee9ef0c126d6117be11708a7cd192b20d6.tar.bz2 | |
Add vehicle_journey_frequency form with time band
28 files changed, 295 insertions, 170 deletions
diff --git a/app/assets/stylesheets/main/layout.css.scss b/app/assets/stylesheets/main/layout.css.scss index 556ed5116..aac5846c5 100644 --- a/app/assets/stylesheets/main/layout.css.scss +++ b/app/assets/stylesheets/main/layout.css.scss @@ -18,7 +18,7 @@ ol.breadcrumb{ } .ce-hide { - visibility: hidden; + display: none; } #middle{ diff --git a/app/assets/stylesheets/main/vehicle_journey_frequencies.scss b/app/assets/stylesheets/main/vehicle_journey_frequencies.scss index 5ca5f64e7..4d580f35d 100644 --- a/app/assets/stylesheets/main/vehicle_journey_frequencies.scss +++ b/app/assets/stylesheets/main/vehicle_journey_frequencies.scss @@ -1,16 +1,13 @@ #workspace { .ce-TimeBandFormTable { - display: none; - } - .ce-TimeBandFormTable { .btn { white-space: normal; width: 130px; } } .ce-TimeBandFormTable th { - text-align: center; - padding-bottom: 10px; + text-align: left; + padding: 6px 20px 6px 20px; } .ce-TimeBandFormTable td { padding: 6px 20px 6px 20px; @@ -18,10 +15,6 @@ .ce-TimeBandFormTable td { vertical-align: middle; } - .ce-TimeBandFormTable td:last-child { - text-align: right; - padding-right: 4px; - } .ce-TimeBandFormTable-circleLine { position: relative; } @@ -35,10 +28,10 @@ margin-left: -1px; background-color: #61970b; } - .ce-TimeBandFormTable tr:first-child td .ce-TimeBandFormTable-line:after { + tr:first-child td .ce-TimeBandFormTable-line:after { top: 50%; } - .ce-TimeBandFormTable tr:last-child td .ce-TimeBandFormTable-line:after { + tr:last-child td .ce-TimeBandFormTable-line:after { bottom: 50%; } .ce-TimeBandFormTable-circle { @@ -50,7 +43,7 @@ border-radius: 8px; background-color: #4d7809; } - .ce-TimeBandFormTable tr:hover .ce-TimeBandFormTable-circle { + tr:hover .ce-TimeBandFormTable-circle { background-color: #fff; border: 2px solid #61970b; } @@ -91,7 +84,7 @@ } } } - form.vehicle_journey_frequency { + &.vehicle_journey_frequencies { .actions-add-fields { clear: both; padding-left: 25%; diff --git a/app/controllers/vehicle_journey_frequencies_controller.rb b/app/controllers/vehicle_journey_frequencies_controller.rb index 72f1fc7f5..c12400775 100644 --- a/app/controllers/vehicle_journey_frequencies_controller.rb +++ b/app/controllers/vehicle_journey_frequencies_controller.rb @@ -2,5 +2,19 @@ class VehicleJourneyFrequenciesController < VehicleJourneysController defaults resource_class: Chouette::VehicleJourneyFrequency -end + private + def vehicle_journey_frequency_params + params.require(:vehicle_journey_frequency).permit( { footnote_ids: [] } , :journey_pattern_id, :number, :published_journey_name, + :published_journey_identifier, :comment, :transport_mode_name, + :mobility_restricted_suitability, :flexible_service, :status_value, + :facility, :vehicle_type_identifier, :objectid, :time_table_tokens, + { date: [ :hour, :minute ] }, :button, :referential_id, :line_id, + :route_id, :id, { vehicle_journey_at_stops_attributes: [ :arrival_time, + :id, :_destroy, + :stop_point_id, + :departure_time] }, + { journey_frequencies_attributes: [ :id, :_destroy, :scheduled_headway_interval, :first_departure_time, + :last_departure_time, :exact_time, :timeband_id ] } ) + end +end diff --git a/app/controllers/vehicle_journeys_controller.rb b/app/controllers/vehicle_journeys_controller.rb index 2c2a533aa..0c64f0b2c 100644 --- a/app/controllers/vehicle_journeys_controller.rb +++ b/app/controllers/vehicle_journeys_controller.rb @@ -95,11 +95,7 @@ class VehicleJourneysController < ChouetteController :route_id, :id, { vehicle_journey_at_stops_attributes: [ :arrival_time, :id, :_destroy, :stop_point_id, - :departure_time, - :is_frequency] }, - { journey_frequencies_attributes: [ :scheduled_headway_interval, :first_departure_time, - :last_departure_time, - :exact_time ] } ) + :departure_time] } ) end end diff --git a/app/helpers/breadcrumb_helper.rb b/app/helpers/breadcrumb_helper.rb index cb259baf7..52da8b887 100644 --- a/app/helpers/breadcrumb_helper.rb +++ b/app/helpers/breadcrumb_helper.rb @@ -137,7 +137,7 @@ module BreadcrumbHelper def vehicle_journey_frequency_breadcrumb(action) route_breadcrumb :edit add_breadcrumb I18n.t("breadcrumbs.vehicle_journey_frequencies"), referential_line_route_vehicle_journey_frequencies_path(@referential, @line, @route) unless action == :index - add_breadcrumb breadcrumb_label(@vehicle_journey), referential_line_route_vehicle_journey_frequency_path(@referential, @line,@route, @vehicle_journey),:title => breadcrumb_tooltip(@vehicle_journey) if action == :edit + add_breadcrumb breadcrumb_label(@vehicle_journey_frequency), referential_line_route_vehicle_journey_frequency_path(@referential, @line,@route, @vehicle_journey_frequency),:title => breadcrumb_tooltip(@vehicle_journey_frequency) if action == :edit end def vehicle_journey_import_breadcrumb (action) diff --git a/app/presenters/timeband_presenter.rb b/app/presenters/timeband_presenter.rb new file mode 100644 index 000000000..62a29faf5 --- /dev/null +++ b/app/presenters/timeband_presenter.rb @@ -0,0 +1,15 @@ +class TimebandPresenter + + def initialize(timeband) + @timeband = timeband + end + + def title + if @timeband.name.blank? + "#{I18n.l(@timeband.start_time, format: :hour)}-#{I18n.l(@timeband.end_time, format: :hour)}" + else + @timeband.name + end + end + +end diff --git a/app/views/vehicle_journey_frequencies/_form_footer.html.erb b/app/views/vehicle_journey_frequencies/_form_footer.html.erb index 35c797a46..d38f8af0e 100644 --- a/app/views/vehicle_journey_frequencies/_form_footer.html.erb +++ b/app/views/vehicle_journey_frequencies/_form_footer.html.erb @@ -1,5 +1,14 @@ <% if vehicle_journey.new_record? %> - <%= javascript_include_tag new_referential_line_route_vehicle_journey_frequency_path(@referential, @line, @route, :format => :js) %> + <%= javascript_include_tag new_referential_line_route_vehicle_journey_frequency_path( + @referential, + @line, + @route, + format: :js) %> <% else %> - <%= javascript_include_tag edit_referential_line_route_vehicle_journey_frequency_path(@referential, @line, @route, vehicle_journey, :format => :js) %> + <%= javascript_include_tag edit_referential_line_route_vehicle_journey_frequency_path( + @referential, + @line, + @route, + vehicle_journey, + format: :js) %> <% end %> diff --git a/app/views/vehicle_journey_frequencies/_form_vehicle_journey_at_stops.html.erb b/app/views/vehicle_journey_frequencies/_form_vehicle_journey_at_stops.html.erb index 558abf0cf..7f503e547 100644 --- a/app/views/vehicle_journey_frequencies/_form_vehicle_journey_at_stops.html.erb +++ b/app/views/vehicle_journey_frequencies/_form_vehicle_journey_at_stops.html.erb @@ -1,5 +1,5 @@ <li class="input"> - <%= form.label vehicle_journey.human_attribute_name(:vehicle_journey_at_stop_ids), :class => "label" %> + <%= form.label vehicle_journey.human_attribute_name(:vehicle_journey_at_stop_ids), class: 'label' %> <table class="table-striped ce-TimeBandFormTable"> <thead> <tr> @@ -16,9 +16,9 @@ </tr> </thead> <tbody class="journey_pattern_dependent_list"> - <%= render :partial => 'vehicle_journey_at_stop_fields', - :collection => vehicle_journey.vehicle_journey_at_stops, :as => :vehicle_journey_at_stop, - :locals => { :vehicle_journey_at_stops_size => vehicle_journey.vehicle_journey_at_stops.size } %> + <%= render partial: 'vehicle_journey_at_stop_fields', + collection: vehicle_journey.vehicle_journey_at_stops, as: :vehicle_journey_at_stop, + locals: { vehicle_journey_at_stops_size: vehicle_journey.vehicle_journey_at_stops.size } %> </tbody> <tfoot> <tr> @@ -41,17 +41,17 @@ </li> <li class="input"> - <%= form.label vehicle_journey.human_attribute_name(:journey_frequency_ids), :class => "label" %> + <%= form.label vehicle_journey.human_attribute_name(:journey_frequency_ids), class: 'label' %> <ul class="ce-FrequencyFormFields"> - <li>Plages horaires</li> + <li><%= t('activerecord.attributes.journey_frequency.timeband') %></li> <li><%= t('activerecord.attributes.journey_frequency.first_departure_time') %></li> <li><%= t('activerecord.attributes.journey_frequency.last_departure_time') %></li> <li><%= t('activerecord.attributes.journey_frequency.scheduled_headway_interval') %></li> <li></li> <li></li> </ul> - <% form.semantic_fields_for :journey_frequencies do |journey_frequency| %> - <%= render 'journey_frequency_fields', f: journey_frequency %> + <%= form.semantic_fields_for :journey_frequencies do |journey_frequency| %> + <%= render 'journey_frequency_fields', f: journey_frequency %> <% end %> <div class="actions-add-fields"> <%= link_to_add_association t('journey_frequencies.form.add_line'), form, :journey_frequencies, class: 'btn btn-primary' %> diff --git a/app/views/vehicle_journey_frequencies/_journey_frequency_fields.html.erb b/app/views/vehicle_journey_frequencies/_journey_frequency_fields.html.erb index 5d1f923c9..3a944e53e 100644 --- a/app/views/vehicle_journey_frequencies/_journey_frequency_fields.html.erb +++ b/app/views/vehicle_journey_frequencies/_journey_frequency_fields.html.erb @@ -1,6 +1,6 @@ <div class="nested-fields"> <ul class="ce-FrequencyFormFields"> - <li>...</li> + <%= f.input :timeband, collection: Chouette::Timeband.all, label: false %> <%= f.input :first_departure_time, label: false %> <%= f.input :last_departure_time, label: false %> <%= f.input :scheduled_headway_interval, label: false %> diff --git a/app/views/vehicle_journey_frequencies/_show_journey_frequencies.html.erb b/app/views/vehicle_journey_frequencies/_show_journey_frequencies.html.erb new file mode 100644 index 000000000..df12a4f50 --- /dev/null +++ b/app/views/vehicle_journey_frequencies/_show_journey_frequencies.html.erb @@ -0,0 +1,28 @@ +<h3><%= t('vehicle_journeys.show.journey_frequencies') %></h3> +<div class="journey_frequencies content"> + <table class="table table-hover table-striped"> + <thead> + <tr> + <th><%= t('activerecord.attributes.journey_frequency.timeband') %></th> + <th><%= t('activerecord.attributes.journey_frequency.first_departure_time') %></th> + <th><%= t('activerecord.attributes.journey_frequency.last_departure_time') %></th> + <th><%= t('activerecord.attributes.journey_frequency.scheduled_headway_interval') %></th> + <th><%= t('activerecord.attributes.journey_frequency.exact_time') %></th> + </tr> + <thead> + <tbody> + <% @vehicle_journey_frequency.journey_frequencies.each do |journey_frequency| %> + <tr class="<%= cycle :odd, :even %>"> + <td> + <%= link_to TimebandPresenter.new(journey_frequency.timeband).title, + referential_timeband_path(@referential, journey_frequency.timeband) %> + </td> + <td><%= l(journey_frequency.first_departure_time, format: :hour) %></td> + <td><%= l(journey_frequency.last_departure_time, format: :hour) %></td> + <td><%= l(journey_frequency.scheduled_headway_interval, format: :hour) %></td> + <td><%= '<i class="fa fa-check"></i>'.html_safe if journey_frequency.exact_time %></td> + </tr> + <% end %> + </tbody> + </table> +</div> diff --git a/app/views/vehicle_journey_frequencies/_show_sidebar.html.erb b/app/views/vehicle_journey_frequencies/_show_sidebar.html.erb index 4d89785e0..2a7be143c 100644 --- a/app/views/vehicle_journey_frequencies/_show_sidebar.html.erb +++ b/app/views/vehicle_journey_frequencies/_show_sidebar.html.erb @@ -1,16 +1,23 @@ <% content_for :sidebar do %> <ul class="actions"> - <li><%= link_to t('vehicle_journeys.actions.new'), new_referential_line_route_vehicle_journey_path(@referential, @line, @route), :class => "add" %></li> - <li><%= link_to t('vehicle_journeys.actions.new_frequency'), new_referential_line_route_vehicle_journey_frequency_path(@referential, @line, @route), :class => "add" %></li> - <li><%= link_to t('vehicle_journeys.actions.edit_frequency'), edit_referential_line_route_vehicle_journey_frequency_path(@referential, @line, @route, @vehicle_journey), :class => "edit" %></li> - <li><%= link_to t('vehicle_journeys.actions.destroy'), referential_line_route_vehicle_journey_path(@referential, @line, @route, @vehicle_journey), :method => :delete, :data => {:confirm => t('vehicle_journeys.actions.destroy_confirm')}, :class => "remove" %></li> - <% unless @vehicle_journey.vehicle_journey_at_stops.empty? %> - <li> - <i class="fa fa-cubes fa-fw" style="color:#D98F3B;"></i> - TODO - <%# link_to t('vehicle_journeys.show.translation_form'), new_referential_line_route_vehicle_journey_vehicle_translation_path(@referential, @line, @route, @vehicle_journey), {:remote => true, 'data-toggle' => "modal", 'data-target' => '#modal_translation', :class => "with_fa" } %> - </li> - <% end %> + <li> + <%= link_to t('vehicle_journeys.actions.new'), + new_referential_line_route_vehicle_journey_path(@referential, @line, @route), class: "add" %> + </li> + <li> + <%= link_to t('vehicle_journeys.actions.new_frequency'), + new_referential_line_route_vehicle_journey_frequency_path(@referential, @line, @route), class: "add" %> + </li> + <li> + <%= link_to t('vehicle_journeys.actions.edit_frequency'), + edit_referential_line_route_vehicle_journey_frequency_path(@referential, @line, @route, @vehicle_journey_frequency), + class: "edit" %> + </li> + <li> + <%= link_to t('vehicle_journeys.actions.destroy'), + referential_line_route_vehicle_journey_path(@referential, @line, @route, @vehicle_journey_frequency), + method: :delete, data: { confirm: t('vehicle_journeys.actions.destroy_confirm') }, class: "remove" %> + </li> </ul> - <%= creation_tag(@vehicle_journey) %> + <%= creation_tag(@vehicle_journey_frequency) %> <% end %> diff --git a/app/views/vehicle_journey_frequencies/_show_vehicle_journey_at_stops.html.erb b/app/views/vehicle_journey_frequencies/_show_vehicle_journey_at_stops.html.erb index e69de29bb..0a91a8af3 100644 --- a/app/views/vehicle_journey_frequencies/_show_vehicle_journey_at_stops.html.erb +++ b/app/views/vehicle_journey_frequencies/_show_vehicle_journey_at_stops.html.erb @@ -0,0 +1,29 @@ +<div class="vehicle_journey_at_stops content"> + <table class="table-striped ce-TimeBandFormTable"> + <thead> + <tr> + <th class="stop title" ><%= t('vehicle_journeys.show.stop_title') %></th> + <th></th> + <th class="hour title"><%= t('vehicle_journeys.show.arrival') %></th> + <th class="hour title"><%= t('vehicle_journeys.show.departure') %></th> + </tr> + <thead> + <tbody> + <% @vehicle_journey_frequency.vehicle_journey_at_stops.each do |vjas| %> + <tr class="<%= cycle :odd, :even %>"> + <td><%= link_to vjas.stop_point.stop_area.name, [@referential, vjas.stop_point.stop_area] %></td> + <td class="ce-TimeBandFormTable-circleLine"> + <span class="ce-TimeBandFormTable-circle"></span> + <span class="ce-TimeBandFormTable-line"></span> + </td> + <td class="hour <%= 'missing' if vjas.arrival_time.nil? %>"> + <%= l(vjas.arrival_time, format: :hour) if vjas.arrival_time %> + </td> + <td class="hour <%= 'missing' if vjas.departure_time.nil? %>"> + <%= l(vjas.departure_time, format: :hour) if vjas.departure_time %> + </td> + </tr> + <% end %> + </tbody> + </table> +</div> diff --git a/app/views/vehicle_journey_frequencies/_vehicle_journey_at_stop_fields.html.erb b/app/views/vehicle_journey_frequencies/_vehicle_journey_at_stop_fields.html.erb index e99392a38..5a4ed7382 100644 --- a/app/views/vehicle_journey_frequencies/_vehicle_journey_at_stop_fields.html.erb +++ b/app/views/vehicle_journey_frequencies/_vehicle_journey_at_stop_fields.html.erb @@ -1,14 +1,14 @@ -<% vjas = vehicle_journey_at_stop +<% + vjas = vehicle_journey_at_stop tab_counter_arrival = 2 * vehicle_journey_at_stop_counter + 100 tab_counter_departure = (vehicle_journey_at_stops_size * 2) + 2 * vehicle_journey_at_stop_counter + 100 %> -<tr class="time input optional <%= vjas._destroy ? "no_stop" : "" %> <%= (vehicle_journey_at_stop_counter%2==0) ? "odd" : "even" %>" > +<tr class="time input optional <%= 'no_stop' if vjas._destroy %> <%= cycle :odd, :even %>" > <td> <%= { id: vjas.id, _destroy: (vjas._destroy ? 1 : 0), stop_point_id: vjas.stop_point_id, - is_frequency: true, :'departure_time(3i)' => 1, :'departure_time(2i)' => 1, :'departure_time(1i)' => 1, @@ -16,7 +16,7 @@ :'arrival_time(2i)' => 1, :'arrival_time(1i)' => 2000 }.map{ |k, v| - "<input name=\"vehicle_journey[vehicle_journey_at_stops_attributes][#{vehicle_journey_at_stop_counter}][#{k}]\" + "<input name=\"vehicle_journey_frequency[vehicle_journey_at_stops_attributes][#{vehicle_journey_at_stop_counter}][#{k}]\" type=\"hidden\" value=\"#{v}\">" }.join("\n").html_safe %> <%= vjas.stop_point.stop_area.name %> @@ -25,24 +25,28 @@ <span class="ce-TimeBandFormTable-circle"></span> <span class="ce-TimeBandFormTable-line"></span> </td> - <td class="arrival_time <%= vjas.arrival_time.nil? ? "missing" : "" %> <%= vjas.errors[:arrival_time].blank? ? "" : "invalid_position" %>"> + <td class="arrival_time <%= 'missing' unless vjas.arrival_time %> <%= 'invalid_position' if vjas.errors[:arrival_time].present? %>"> <%= select_hour(vjas.arrival_time ? vjas.arrival_time.hour : 0, - { :prefix => "vehicle_journey", - :field_name => "vehicle_journey_at_stops_attributes[#{vehicle_journey_at_stop_counter}][arrival_time(4i)]" }, - :class => "hour", tabindex: tab_counter_arrival + 1) %> + { + prefix: 'vehicle_journey_frequency', + field_name: "vehicle_journey_at_stops_attributes[#{vehicle_journey_at_stop_counter}][arrival_time(4i)]" + }, class: 'hour', tabindex: tab_counter_arrival + 1) %> <%= select_minute(vjas.arrival_time ? vjas.arrival_time.min : 0, - { :prefix => "vehicle_journey", - :field_name => "vehicle_journey_at_stops_attributes[#{vehicle_journey_at_stop_counter}][arrival_time(5i)]" }, - :class => "minute", tabindex: tab_counter_arrival + 2) %> + { + prefix: 'vehicle_journey_frequency', + field_name: "vehicle_journey_at_stops_attributes[#{vehicle_journey_at_stop_counter}][arrival_time(5i)]" + }, class: 'minute', tabindex: tab_counter_arrival + 2) %> </td> - <td class="departure_time <%= vjas.departure_time.nil? ? "missing" : "" %> <%= vjas.errors[:departure_time].blank? ? "" : "invalid_position" %>"> + <td class="departure_time <%= 'missing' unless vjas.departure_time %> <%= 'invalid_position' if vjas.errors[:departure_time].present? %>"> <%= select_hour(vjas.departure_time ? vjas.departure_time.hour : 0, - { :prefix => 'vehicle_journey', - :field_name => "vehicle_journey_at_stops_attributes[#{vehicle_journey_at_stop_counter}][departure_time(4i)]" }, - :class => 'hour', tabindex: tab_counter_departure + 1) %> + { + prefix: 'vehicle_journey_frequency', + field_name: "vehicle_journey_at_stops_attributes[#{vehicle_journey_at_stop_counter}][departure_time(4i)]" + }, class: 'hour', tabindex: tab_counter_departure + 1) %> <%= select_minute(vjas.departure_time ? vjas.departure_time.min : 0, - { :prefix => 'vehicle_journey', - :field_name => "vehicle_journey_at_stops_attributes[#{vehicle_journey_at_stop_counter}][departure_time(5i)]" }, - :class => 'minute', tabindex: tab_counter_departure + 2) %> + { + prefix: 'vehicle_journey_frequency', + field_name: "vehicle_journey_at_stops_attributes[#{vehicle_journey_at_stop_counter}][departure_time(5i)]" + }, class: 'minute', tabindex: tab_counter_departure + 2) %> </td> </tr> diff --git a/app/views/vehicle_journey_frequencies/edit.html.erb b/app/views/vehicle_journey_frequencies/edit.html.erb index 233f2f18d..1bc1e6d88 100644 --- a/app/views/vehicle_journey_frequencies/edit.html.erb +++ b/app/views/vehicle_journey_frequencies/edit.html.erb @@ -1,3 +1,7 @@ <%= title_tag edit_vehicle_title(@vehicle_journey_frequency) %> -<%= render 'vehicle_journeys/form', vehicle_journey: @vehicle_journey_frequency form_url: referential_line_route_vehicle_journey_frequency_path(@referential, @line, @route, id: @vehicle_journey_frequency) %> +<%= render 'vehicle_journeys/form', vehicle_journey: @vehicle_journey_frequency, + form_url: referential_line_route_vehicle_journey_frequency_path(@referential, + @line, + @route, + id: @vehicle_journey_frequency) %> diff --git a/app/views/vehicle_journey_frequencies/edit.js.erb b/app/views/vehicle_journey_frequencies/edit.js.erb new file mode 100644 index 000000000..f5aaf8ad7 --- /dev/null +++ b/app/views/vehicle_journey_frequencies/edit.js.erb @@ -0,0 +1,10 @@ +$(document).ready(function() { + $("#vehicle_journey_frequency_journey_pattern_id").change( + function(){ + var url = "<%= select_journey_pattern_referential_line_route_vehicle_journey_path( @referential, @line, @route, @vehicle_journey_frequency)%>?journey_pattern_id="+ + $("#vehicle_journey_frequency_journey_pattern_input select option:selected").attr("value"); + url += "&journey_category=frequency"; + $.get(url); + } + ); +}); diff --git a/app/views/vehicle_journey_frequencies/new.html.erb b/app/views/vehicle_journey_frequencies/new.html.erb index 354f49169..677605276 100644 --- a/app/views/vehicle_journey_frequencies/new.html.erb +++ b/app/views/vehicle_journey_frequencies/new.html.erb @@ -1,3 +1,6 @@ <%= title_tag t('vehicle_journeys.new.title_frequency') %> -<%= render 'vehicle_journeys/form', vehicle_journey: @vehicle_journey_frequency, form_url: referential_line_route_vehicle_journey_frequencies_path(@referential, @line, @route) %> +<%= render 'vehicle_journeys/form', vehicle_journey: @vehicle_journey_frequency, + form_url: referential_line_route_vehicle_journey_frequencies_path(@referential, + @line, + @route) %> diff --git a/app/views/vehicle_journey_frequencies/new.js.erb b/app/views/vehicle_journey_frequencies/new.js.erb index 6310d14b3..b5fc75aef 100644 --- a/app/views/vehicle_journey_frequencies/new.js.erb +++ b/app/views/vehicle_journey_frequencies/new.js.erb @@ -1,13 +1,13 @@ $(document).ready(function() { $("#vehicle_journey_frequency_journey_pattern_id").change( - function(){ - var vehicle_journey_journey_pattern_id = $("#vehicle_journey_frequency_journey_pattern_input select option:selected").attr("value"); - if (vehicle_journey_journey_pattern_id > 0) { - var url = "<%= referential_line_route_journey_patterns_path(@referential.id,@line.id,@route.id) %>"; - url = url + "/" + vehicle_journey_journey_pattern_id + - "/new_vehicle_journey?journey_category=frequency"; - $.get(url); - } + function(){ + var vehicle_journey_journey_pattern_id = $("#vehicle_journey_frequency_journey_pattern_input select option:selected").attr("value"); + if (vehicle_journey_journey_pattern_id > 0) { + var url = "<%= referential_line_route_journey_patterns_path(@referential.id,@line.id,@route.id) %>"; + url = url + "/" + vehicle_journey_journey_pattern_id + + "/new_vehicle_journey?journey_category=frequency"; + $.get(url); } - ) + } + ); }); diff --git a/app/views/vehicle_journey_frequencies/select_journey_pattern.js.erb b/app/views/vehicle_journey_frequencies/select_journey_pattern.js.erb index 0f287cc27..8fe20ed37 100644 --- a/app/views/vehicle_journey_frequencies/select_journey_pattern.js.erb +++ b/app/views/vehicle_journey_frequencies/select_journey_pattern.js.erb @@ -1,7 +1,5 @@ -var $selector = $('.journey_pattern_dependent_list'); -$selector.html('<%= escape_javascript( - render(:partial => "vehicle_journey_frequencies/vehicle_journey_at_stop_fields", - :collection => @vehicle_journey.vehicle_journey_at_stops, - :as => :vehicle_journey_at_stop, - :locals => { :vehicle_journey_at_stops_size => @vehicle_journey.vehicle_journey_at_stops.size })).html_safe %>'); -$selector.closest('table').show(); +$('.journey_pattern_dependent_list').html('<%= escape_javascript( + render(partial: 'vehicle_journey_frequencies/vehicle_journey_at_stop_fields', + collection: @vehicle_journey.vehicle_journey_at_stops, + as: :vehicle_journey_at_stop, + locals: { vehicle_journey_at_stops_size: @vehicle_journey.vehicle_journey_at_stops.size })).html_safe %>'); diff --git a/app/views/vehicle_journey_frequencies/show.html.erb b/app/views/vehicle_journey_frequencies/show.html.erb new file mode 100644 index 000000000..7939ae319 --- /dev/null +++ b/app/views/vehicle_journey_frequencies/show.html.erb @@ -0,0 +1,3 @@ +<%= render 'vehicle_journeys/show_details', vehicle_journey: @vehicle_journey_frequency %> +<%= render 'show_journey_frequencies' %> +<%= render 'show_sidebar' %> diff --git a/app/views/vehicle_journeys/_show_details.html.erb b/app/views/vehicle_journeys/_show_details.html.erb new file mode 100644 index 000000000..fccf3d210 --- /dev/null +++ b/app/views/vehicle_journeys/_show_details.html.erb @@ -0,0 +1,87 @@ +<%= title_tag vehicle_title(vehicle_journey) %> + +<div id="modal_translation" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> + <div class="modal-dialog"> + <div class="modal-content"> + <div class="modal-header"> + <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button> + <h4 class="modal-title" id="myModalLabel"><%= t('vehicle_journeys.show.translation_form') %></h4> + <div id="translate_form"></div> + </div> + </div> + </div> +</div> + +<div class="vehicle_journey"> + <div class="summary"> + <p> + <label><%= vehicle_journey.human_attribute_name(:journey_pattern) %>: </label> + <%= link_to journey_name(vehicle_journey.journey_pattern), [@referential, @line, @route, vehicle_journey.journey_pattern] %> + </p> + <p> + <label><%= vehicle_journey.human_attribute_name("number") %>: </label> + <%= vehicle_journey.number %> + </p> + <p> + <label><%= vehicle_journey.human_attribute_name("published_journey_name") %>: </label> + <%= vehicle_journey.published_journey_name %> + </p> + <p> + <label><%= vehicle_journey.human_attribute_name("published_journey_identifier") %>: </label> + <%= vehicle_journey.published_journey_identifier %> + </p> + + <p> + <label><%= vehicle_journey.human_attribute_name("mobility_restricted_suitability") %>: </label> + <% if vehicle_journey.mobility_restricted_suitability.nil? %> + <%= vehicle_journey.human_attribute_name("unspecified_mrs") %> + <% elsif vehicle_journey.mobility_restricted_suitability? %> + <%= vehicle_journey.human_attribute_name("accessible") %> + <% else %> + <%= vehicle_journey.human_attribute_name("not_accessible") %> + <% end %> + </p> + <p> + <label><%= vehicle_journey.human_attribute_name("flexible_service") %>: </label> + <% if vehicle_journey.flexible_service.nil? %> + <%= vehicle_journey.human_attribute_name("unspecified_fs") %> + <% elsif vehicle_journey.flexible_service? %> + <%= vehicle_journey.human_attribute_name("on_demand_fs") %> + <% else %> + <%= vehicle_journey.human_attribute_name("regular_fs") %> + <% end %> + </p> + + <p> + <label><%= vehicle_journey.human_attribute_name("comment") %>: </label> + <%= vehicle_journey.comment %> + </p> + <p> + <label><%= vehicle_journey.human_attribute_name("status_value") %>: </label> + <%= vehicle_journey.status_value %> + </p> + <p> + <label><%= vehicle_journey.human_attribute_name("facility") %>: </label> + <%= vehicle_journey.facility %> + </p> + <p> + <label><%= vehicle_journey.human_attribute_name("vehicle_type_identifier") %>: </label> + <%= vehicle_journey.vehicle_type_identifier %> + </p> + <p> + <label><%= vehicle_journey.human_attribute_name("footnote_ids") %>: </label> + <ul> + <% vehicle_journey.footnotes.each do |footnote| %> + <li><%= footnote.code %> : <%= footnote.label %></li> + <% end %> + </ul> + </p> + </div> +</div> +<h3><%= vehicle_journey.human_attribute_name(:vehicle_journey_at_stop_ids) %></h3> +<%= render 'show_vehicle_journey_at_stops' %> + +<h3><%= t('vehicle_journeys.show.time_tables') %></h3> +<div class="time_tables paginated_content"> + <%= paginated_content vehicle_journey.time_tables, "time_tables/time_table", :delete => false %> +</div> diff --git a/app/views/vehicle_journeys/new.html.erb b/app/views/vehicle_journeys/new.html.erb index c3354449a..d2e9d7c4c 100644 --- a/app/views/vehicle_journeys/new.html.erb +++ b/app/views/vehicle_journeys/new.html.erb @@ -1,4 +1,4 @@ <%= title_tag t('vehicle_journeys.new.title') %> -<%= render partial: 'form', locals: { vehicle_journey: @vehicle_journey, form_url: referential_line_route_vehicle_journeys_path(@referential, @line, @route, @vehicle_journey) } %> +<%= render 'form', { vehicle_journey: @vehicle_journey, form_url: referential_line_route_vehicle_journeys_path(@referential, @line, @route, @vehicle_journey) } %> diff --git a/app/views/vehicle_journeys/show.html.erb b/app/views/vehicle_journeys/show.html.erb index 3bdfbb945..4bf814bbe 100644 --- a/app/views/vehicle_journeys/show.html.erb +++ b/app/views/vehicle_journeys/show.html.erb @@ -1,89 +1,2 @@ -<%= title_tag vehicle_title(@vehicle_journey) %> - -<div id="modal_translation" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> - <div class="modal-dialog"> - <div class="modal-content"> - <div class="modal-header"> - <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button> - <h4 class="modal-title" id="myModalLabel"><%= t('.translation_form') %></h4> - <div id="translate_form"></div> - </div> - </div> - </div> -</div> - -<div class="vehicle_journey"> - <div class="summary"> - <p> - <label><%= @vehicle_journey.human_attribute_name(:journey_pattern) %>: </label> - <%= link_to journey_name(@vehicle_journey.journey_pattern), [@referential, @line, @route, @vehicle_journey.journey_pattern] %> - </p> - <p> - <label><%= @vehicle_journey.human_attribute_name("number") %>: </label> - <%= @vehicle_journey.number %> - </p> - <p> - <label><%= @vehicle_journey.human_attribute_name("published_journey_name") %>: </label> - <%= @vehicle_journey.published_journey_name %> - </p> - <p> - <label><%= @vehicle_journey.human_attribute_name("published_journey_identifier") %>: </label> - <%= @vehicle_journey.published_journey_identifier %> - </p> - - <p> - <label><%= @vehicle_journey.human_attribute_name("mobility_restricted_suitability") %>: </label> - <% if @vehicle_journey.mobility_restricted_suitability.nil? %> - <%= @vehicle_journey.human_attribute_name("unspecified_mrs") %> - <% elsif @vehicle_journey.mobility_restricted_suitability? %> - <%= @vehicle_journey.human_attribute_name("accessible") %> - <% else %> - <%= @vehicle_journey.human_attribute_name("not_accessible") %> - <% end %> - </p> - <p> - <label><%= @vehicle_journey.human_attribute_name("flexible_service") %>: </label> - <% if @vehicle_journey.flexible_service.nil? %> - <%= @vehicle_journey.human_attribute_name("unspecified_fs") %> - <% elsif @vehicle_journey.flexible_service? %> - <%= @vehicle_journey.human_attribute_name("on_demand_fs") %> - <% else %> - <%= @vehicle_journey.human_attribute_name("regular_fs") %> - <% end %> - </p> - - <p> - <label><%= @vehicle_journey.human_attribute_name("comment") %>: </label> - <%= @vehicle_journey.comment %> - </p> - <p> - <label><%= @vehicle_journey.human_attribute_name("status_value") %>: </label> - <%= @vehicle_journey.status_value %> - </p> - <p> - <label><%= @vehicle_journey.human_attribute_name("facility") %>: </label> - <%= @vehicle_journey.facility %> - </p> - <p> - <label><%= @vehicle_journey.human_attribute_name("vehicle_type_identifier") %>: </label> - <%= @vehicle_journey.vehicle_type_identifier %> - </p> - <p> - <label><%= @vehicle_journey.human_attribute_name("footnote_ids") %>: </label> - <ul> - <% @vehicle_journey.footnotes.each do |footnote| %> - <li><%= footnote.code %> : <%= footnote.label %></li> - <% end %> - </ul> - </p> - </div> -</div> -<h3><%= @vehicle_journey.human_attribute_name(:vehicle_journey_at_stop_ids) %></h3> -<%= render 'show_vehicle_journey_at_stops' %> - -<h3><%= t('.time_tables') %></h3> -<div class="time_tables paginated_content"> - <%= paginated_content @vehicle_journey.time_tables, "time_tables/time_table", :delete => false %> -</div> - +<%= render 'show_details', vehicle_journey: @vehicle_journey %> <%= render 'show_sidebar' %> diff --git a/config/locales/journey_frequencies.en.yml b/config/locales/journey_frequencies.en.yml index 6393c13ad..ad4a92432 100644 --- a/config/locales/journey_frequencies.en.yml +++ b/config/locales/journey_frequencies.en.yml @@ -10,3 +10,4 @@ en: last_departure_time: Last departure scheduled_headway_interval: Interval exact_time: Exact? + timeband: Time bands diff --git a/config/locales/journey_frequencies.fr.yml b/config/locales/journey_frequencies.fr.yml index 790bc1150..7bfd6de69 100644 --- a/config/locales/journey_frequencies.fr.yml +++ b/config/locales/journey_frequencies.fr.yml @@ -10,3 +10,4 @@ fr: last_departure_time: Dernier départ scheduled_headway_interval: Intervalle exact_time: Exact ? + timeband: Plage horaires diff --git a/config/locales/vehicle_journeys.en.yml b/config/locales/vehicle_journeys.en.yml index 36b7b11df..83e758394 100644 --- a/config/locales/vehicle_journeys.en.yml +++ b/config/locales/vehicle_journeys.en.yml @@ -46,6 +46,7 @@ en: time_tables: "Calendars list" bounding: "From %{start} to %{end}" translation_form: "Vehicle journey translations" + journey_frequencies: "Interval time duration" index: title: "Vehicle journeys on route %{route}" vehicle_journeys: "Departure's times" diff --git a/config/locales/vehicle_journeys.fr.yml b/config/locales/vehicle_journeys.fr.yml index cf80e0924..ea223ea06 100644 --- a/config/locales/vehicle_journeys.fr.yml +++ b/config/locales/vehicle_journeys.fr.yml @@ -46,6 +46,7 @@ fr: time_tables: "Liste des calendriers" bounding: "De %{start} à %{end}" translation_form: "Cloner la course" + journey_frequencies: "Durée d'intervalle du trajet" index: title: "Horaires de la séquence d'arrêts %{route}" vehicle_journeys: "Horaires de départ aux arrêts" diff --git a/db/migrate/20151028105423_add_timeband_id_to_journey_frequencies.ninoxe_engine.rb b/db/migrate/20151028105423_add_timeband_id_to_journey_frequencies.ninoxe_engine.rb new file mode 100644 index 000000000..094efa005 --- /dev/null +++ b/db/migrate/20151028105423_add_timeband_id_to_journey_frequencies.ninoxe_engine.rb @@ -0,0 +1,6 @@ +# This migration comes from ninoxe_engine (originally 20151028105340) +class AddTimebandIdToJourneyFrequencies < ActiveRecord::Migration + def change + add_reference :journey_frequencies, :timeband, index: true + end +end diff --git a/db/schema.rb b/db/schema.rb index 988693132..38b935b6c 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -11,7 +11,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 20151023101306) do +ActiveRecord::Schema.define(version: 20151028105423) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" @@ -216,8 +216,10 @@ ActiveRecord::Schema.define(version: 20151023101306) do t.boolean "exact_time", default: false t.datetime "created_at" t.datetime "updated_at" + t.integer "timeband_id" end + add_index "journey_frequencies", ["timeband_id"], name: "index_journey_frequencies_on_timeband_id", using: :btree add_index "journey_frequencies", ["vehicle_journey_id"], name: "index_journey_frequencies_on_vehicle_journey_id", using: :btree create_table "journey_patterns", force: true do |t| |
