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| | 
