From bbdbdaee9ef0c126d6117be11708a7cd192b20d6 Mon Sep 17 00:00:00 2001 From: Bruno Perles Date: Thu, 29 Oct 2015 10:35:59 +0100 Subject: Add vehicle_journey_frequency form with time band --- app/assets/stylesheets/main/layout.css.scss | 2 +- .../main/vehicle_journey_frequencies.scss | 19 ++--- .../vehicle_journey_frequencies_controller.rb | 16 +++- app/controllers/vehicle_journeys_controller.rb | 6 +- app/helpers/breadcrumb_helper.rb | 2 +- app/presenters/timeband_presenter.rb | 15 ++++ .../_form_footer.html.erb | 13 +++- .../_form_vehicle_journey_at_stops.html.erb | 16 ++-- .../_journey_frequency_fields.html.erb | 2 +- .../_show_journey_frequencies.html.erb | 28 +++++++ .../_show_sidebar.html.erb | 31 +++++--- .../_show_vehicle_journey_at_stops.html.erb | 29 +++++++ .../_vehicle_journey_at_stop_fields.html.erb | 40 +++++----- .../vehicle_journey_frequencies/edit.html.erb | 6 +- app/views/vehicle_journey_frequencies/edit.js.erb | 10 +++ app/views/vehicle_journey_frequencies/new.html.erb | 5 +- app/views/vehicle_journey_frequencies/new.js.erb | 18 ++--- .../select_journey_pattern.js.erb | 12 ++- .../vehicle_journey_frequencies/show.html.erb | 3 + app/views/vehicle_journeys/_show_details.html.erb | 87 +++++++++++++++++++++ app/views/vehicle_journeys/new.html.erb | 2 +- app/views/vehicle_journeys/show.html.erb | 89 +--------------------- 22 files changed, 282 insertions(+), 169 deletions(-) create mode 100644 app/presenters/timeband_presenter.rb create mode 100644 app/views/vehicle_journey_frequencies/_show_journey_frequencies.html.erb create mode 100644 app/views/vehicle_journey_frequencies/edit.js.erb create mode 100644 app/views/vehicle_journey_frequencies/show.html.erb create mode 100644 app/views/vehicle_journeys/_show_details.html.erb (limited to 'app') 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,7 +1,4 @@ #workspace { - .ce-TimeBandFormTable { - display: none; - } .ce-TimeBandFormTable { .btn { white-space: normal; @@ -9,8 +6,8 @@ } } .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 @@
| <%= t('activerecord.attributes.journey_frequency.timeband') %> | +<%= t('activerecord.attributes.journey_frequency.first_departure_time') %> | +<%= t('activerecord.attributes.journey_frequency.last_departure_time') %> | +<%= t('activerecord.attributes.journey_frequency.scheduled_headway_interval') %> | +<%= t('activerecord.attributes.journey_frequency.exact_time') %> | +
|---|---|---|---|---|
| + <%= link_to TimebandPresenter.new(journey_frequency.timeband).title, + referential_timeband_path(@referential, journey_frequency.timeband) %> + | +<%= l(journey_frequency.first_departure_time, format: :hour) %> | +<%= l(journey_frequency.last_departure_time, format: :hour) %> | +<%= l(journey_frequency.scheduled_headway_interval, format: :hour) %> | +<%= ''.html_safe if journey_frequency.exact_time %> | +
| <%= t('vehicle_journeys.show.stop_title') %> | ++ | <%= t('vehicle_journeys.show.arrival') %> | +<%= t('vehicle_journeys.show.departure') %> | +
|---|---|---|---|
| <%= link_to vjas.stop_point.stop_area.name, [@referential, vjas.stop_point.stop_area] %> | ++ + + | ++ <%= l(vjas.arrival_time, format: :hour) if vjas.arrival_time %> + | ++ <%= l(vjas.departure_time, format: :hour) if vjas.departure_time %> + | +
+ + <%= link_to journey_name(vehicle_journey.journey_pattern), [@referential, @line, @route, vehicle_journey.journey_pattern] %> +
++ + <%= vehicle_journey.number %> +
++ + <%= vehicle_journey.published_journey_name %> +
++ + <%= vehicle_journey.published_journey_identifier %> +
+ ++ + <% 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 %> +
++ + <% 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 %> +
+ ++ + <%= vehicle_journey.comment %> +
++ + <%= vehicle_journey.status_value %> +
++ + <%= vehicle_journey.facility %> +
++ + <%= vehicle_journey.vehicle_type_identifier %> +
++ +
- - <%= link_to journey_name(@vehicle_journey.journey_pattern), [@referential, @line, @route, @vehicle_journey.journey_pattern] %> -
-- - <%= @vehicle_journey.number %> -
-- - <%= @vehicle_journey.published_journey_name %> -
-- - <%= @vehicle_journey.published_journey_identifier %> -
- -- - <% 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 %> -
-- - <% 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 %> -
- -- - <%= @vehicle_journey.comment %> -
-- - <%= @vehicle_journey.status_value %> -
-- - <%= @vehicle_journey.facility %> -
-- - <%= @vehicle_journey.vehicle_type_identifier %> -
-- -