From bdff2081ca15c3a341c0f774eed40f7d99134cd7 Mon Sep 17 00:00:00 2001
From: Bruno Perles
Date: Wed, 21 Oct 2015 17:32:59 +0200
Subject: Add vehicle journey frequency
---
.../vehicle_journeys_frequencies.js.coffee | 3 ++
.../main/vehicle_journeys_frequencies.scss | 43 +++++++++++++++++
app/controllers/breadcrumb_controller.rb | 2 +-
app/controllers/journey_patterns_controller.rb | 2 +-
app/controllers/vehicle_journeys_controller.rb | 15 +++++-
.../vehicle_journeys_frequencies_controller.rb | 30 ++++++++++++
app/helpers/application_helper.rb | 2 +
app/helpers/breadcrumb_helper.rb | 8 ++++
app/helpers/vehicle_journeys_frequencies_helper.rb | 2 +
app/views/vehicle_journeys/_form.html.erb | 49 +++-----------------
app/views/vehicle_journeys/_form_footer.html.erb | 5 ++
.../_form_vehicle_journey_at_stops.html.erb | 37 +++++++++++++++
app/views/vehicle_journeys/_show_sidebar.html.erb | 15 ++++++
.../_show_vehicle_journey_at_stops.html.erb | 20 ++++++++
app/views/vehicle_journeys/_sidebar.html.erb | 11 +++--
app/views/vehicle_journeys/edit.html.erb | 3 +-
app/views/vehicle_journeys/new.html.erb | 2 +-
app/views/vehicle_journeys/show.html.erb | 34 +-------------
.../_form_footer.html.erb | 5 ++
.../_form_vehicle_journey_at_stops.html.erb | 32 +++++++++++++
.../_frequency.html.erb | 8 ++++
.../_show_sidebar.html.erb | 16 +++++++
.../_show_vehicle_journey_at_stops.html.erb | 0
.../_vehicle_journey_at_stop_fields.html.erb | 54 ++++++++++++++++++++++
.../vehicle_journeys_frequencies/edit.html.erb | 3 ++
.../vehicle_journeys_frequencies/new.html.erb | 3 ++
app/views/vehicle_journeys_frequencies/new.js.erb | 10 ++++
.../select_journey_pattern.js.erb | 5 ++
28 files changed, 334 insertions(+), 85 deletions(-)
create mode 100644 app/assets/javascripts/vehicle_journeys_frequencies.js.coffee
create mode 100644 app/assets/stylesheets/main/vehicle_journeys_frequencies.scss
create mode 100644 app/controllers/vehicle_journeys_frequencies_controller.rb
create mode 100644 app/helpers/vehicle_journeys_frequencies_helper.rb
create mode 100644 app/views/vehicle_journeys/_form_footer.html.erb
create mode 100644 app/views/vehicle_journeys/_form_vehicle_journey_at_stops.html.erb
create mode 100644 app/views/vehicle_journeys/_show_sidebar.html.erb
create mode 100644 app/views/vehicle_journeys/_show_vehicle_journey_at_stops.html.erb
create mode 100644 app/views/vehicle_journeys_frequencies/_form_footer.html.erb
create mode 100644 app/views/vehicle_journeys_frequencies/_form_vehicle_journey_at_stops.html.erb
create mode 100644 app/views/vehicle_journeys_frequencies/_frequency.html.erb
create mode 100644 app/views/vehicle_journeys_frequencies/_show_sidebar.html.erb
create mode 100644 app/views/vehicle_journeys_frequencies/_show_vehicle_journey_at_stops.html.erb
create mode 100644 app/views/vehicle_journeys_frequencies/_vehicle_journey_at_stop_fields.html.erb
create mode 100644 app/views/vehicle_journeys_frequencies/edit.html.erb
create mode 100644 app/views/vehicle_journeys_frequencies/new.html.erb
create mode 100644 app/views/vehicle_journeys_frequencies/new.js.erb
create mode 100644 app/views/vehicle_journeys_frequencies/select_journey_pattern.js.erb
(limited to 'app')
diff --git a/app/assets/javascripts/vehicle_journeys_frequencies.js.coffee b/app/assets/javascripts/vehicle_journeys_frequencies.js.coffee
new file mode 100644
index 000000000..24f83d18b
--- /dev/null
+++ b/app/assets/javascripts/vehicle_journeys_frequencies.js.coffee
@@ -0,0 +1,3 @@
+# Place all the behaviors and hooks related to the matching controller here.
+# All this logic will automatically be available in application.js.
+# You can use CoffeeScript in this file: http://coffeescript.org/
diff --git a/app/assets/stylesheets/main/vehicle_journeys_frequencies.scss b/app/assets/stylesheets/main/vehicle_journeys_frequencies.scss
new file mode 100644
index 000000000..0fa69f77d
--- /dev/null
+++ b/app/assets/stylesheets/main/vehicle_journeys_frequencies.scss
@@ -0,0 +1,43 @@
+#workspace {
+ .ce-TimeBandFormTable {
+ border-left: 1px solid #616161;
+ }
+ .ce-TimeBandFormTable tr:hover td {
+ background-color: #eee;
+ }
+ .ce-TimeBandFormTable td {
+ padding: 0 20px 8px 20px;
+ vertical-align: top;
+ }
+ .ce-TimeBandFormTable tr:last-child td {
+ padding-bottom: 0;
+ }
+ .ce-TimeBandFormTable td:last-child {
+ text-align: right;
+ }
+ .ce-TimeBandFormTable-circleLine {
+ position: relative;
+ }
+ .ce-TimeBandFormTable-line:after {
+ content: '';
+ position: absolute;
+ top: 0;
+ bottom: 0;
+ left: 50%;
+ width: 2px;
+ margin-left: -1px;
+ background-color: #61970b;
+ }
+ .ce-TimeBandFormTable-circle {
+ position: relative;
+ z-index: 999;
+ display: block;
+ width: 16px;
+ height: 16px;
+ border-radius: 8px;
+ background-color: #4d7809;
+ }
+ .ce-TimeBandFormTable-subList {
+
+ }
+}
diff --git a/app/controllers/breadcrumb_controller.rb b/app/controllers/breadcrumb_controller.rb
index 143651b52..c1bb4289c 100644
--- a/app/controllers/breadcrumb_controller.rb
+++ b/app/controllers/breadcrumb_controller.rb
@@ -27,7 +27,7 @@ class BreadcrumbController < InheritedResources::Base
end
def new
- new! do
+ new! do
build_breadcrumb :new
end
end
diff --git a/app/controllers/journey_patterns_controller.rb b/app/controllers/journey_patterns_controller.rb
index ce59d00b6..13018771d 100644
--- a/app/controllers/journey_patterns_controller.rb
+++ b/app/controllers/journey_patterns_controller.rb
@@ -36,7 +36,7 @@ class JourneyPatternsController < ChouetteController
def new_vehicle_journey
@vehicle_journey = Chouette::VehicleJourney.new(:route_id => route.id)
@vehicle_journey.update_journey_pattern(resource)
- render "vehicle_journeys/select_journey_pattern"
+ render "vehicle_journeys#{"_#{params[:suffix]}" if params[:suffix]}/select_journey_pattern"
end
# overwrite inherited resources to use delete instead of destroy
diff --git a/app/controllers/vehicle_journeys_controller.rb b/app/controllers/vehicle_journeys_controller.rb
index ace7aff5e..03dfbedc2 100644
--- a/app/controllers/vehicle_journeys_controller.rb
+++ b/app/controllers/vehicle_journeys_controller.rb
@@ -87,7 +87,20 @@ class VehicleJourneysController < ChouetteController
private
def vehicle_journey_params
- params.require(:vehicle_journey).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 ] } )
+ params.require(:vehicle_journey).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,
+ :is_frequency] },
+ { frequency: [ :scheduled_headway_interval, :first_departure_time,
+ :last_departure_time,
+ :exact_time ] },
+ :is_frequency )
end
end
diff --git a/app/controllers/vehicle_journeys_frequencies_controller.rb b/app/controllers/vehicle_journeys_frequencies_controller.rb
new file mode 100644
index 000000000..a16523316
--- /dev/null
+++ b/app/controllers/vehicle_journeys_frequencies_controller.rb
@@ -0,0 +1,30 @@
+class VehicleJourneysFrequenciesController < VehicleJourneysController
+
+ defaults :resource_class => Chouette::VehicleJourney, :collection_name => 'vehicle_journeys', :instance_name => 'vehicle_journey'
+
+ def new
+ new! do
+ resource.frequencies.build
+ end
+ end
+
+ protected
+
+ def build_resource
+ set_frequency(super)
+ end
+
+ def resource
+ set_frequency(super)
+ end
+
+ private
+
+ def set_frequency(s)
+ s.tap do |vehicle_journey|
+ vehicle_journey.is_frequency = true
+ end
+ end
+
+end
+
diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb
index d3e9655b9..28e652f2f 100644
--- a/app/helpers/application_helper.rb
+++ b/app/helpers/application_helper.rb
@@ -51,6 +51,8 @@ module ApplicationHelper
"group_of_lines"
when path.include?("/vehicle_journeys")
"vehicle_journeys"
+ when path.include?("/vehicle_journeys_frequencies")
+ "vehicle_journeys"
when path.include?("/journey_patterns")
"journey_patterns"
when path.include?("/routes")
diff --git a/app/helpers/breadcrumb_helper.rb b/app/helpers/breadcrumb_helper.rb
index c98691b72..1f3c9a2ce 100644
--- a/app/helpers/breadcrumb_helper.rb
+++ b/app/helpers/breadcrumb_helper.rb
@@ -16,6 +16,8 @@ module BreadcrumbHelper
journey_pattern_breadcrumb action
when "Chouette::VehicleJourney"
vehicle_journey_breadcrumb action
+ when "Chouette::VehicleJourneysFrequency"
+ vehicle_journeys_frequency_breadcrumb action
when "VehicleJourneyImport"
vehicle_journey_import_breadcrumb action
when "Chouette::StopArea"
@@ -124,6 +126,12 @@ module BreadcrumbHelper
add_breadcrumb breadcrumb_label(@vehicle_journey), referential_line_route_vehicle_journey_path(@referential, @line,@route,@vehicle_journey),:title => breadcrumb_tooltip(@vehicle_journey) if action == :edit
end
+ def vehicle_journeys_frequency_breadcrumb(action)
+ route_breadcrumb :edit
+ add_breadcrumb I18n.t("breadcrumbs.vehicle_journeys_frequencies"), referential_line_route_vehicle_journeys_frequencies_path(@referential, @line, @route) unless action == :index
+ add_breadcrumb breadcrumb_label(@vehicle_journey), referential_line_route_vehicle_journeys_frequency_path(@referential, @line,@route, @vehicle_journey),:title => breadcrumb_tooltip(@vehicle_journey) if action == :edit
+ end
+
def vehicle_journey_import_breadcrumb (action)
route_breadcrumb :edit
end
diff --git a/app/helpers/vehicle_journeys_frequencies_helper.rb b/app/helpers/vehicle_journeys_frequencies_helper.rb
new file mode 100644
index 000000000..b5a7926ea
--- /dev/null
+++ b/app/helpers/vehicle_journeys_frequencies_helper.rb
@@ -0,0 +1,2 @@
+module VehicleJourneysFrequenciesHelper
+end
diff --git a/app/views/vehicle_journeys/_form.html.erb b/app/views/vehicle_journeys/_form.html.erb
index e4b1ce432..2f0a66cfe 100644
--- a/app/views/vehicle_journeys/_form.html.erb
+++ b/app/views/vehicle_journeys/_form.html.erb
@@ -1,5 +1,6 @@
-<%= semantic_form_for [@referential, @line, @route, @vehicle_journey] do |form| %>
+<%= semantic_form_for @vehicle_journey, url: form_url do |form| %>
<%= form.inputs do %>
+ <%= form.input :is_frequency, as: :hidden %>
<%= form.input :journey_pattern, :as => :select, :collection => @route.journey_patterns, :member_label => Proc.new { |jp| journey_name(jp) } %>
<%= form.input :number %>
<%= form.input :published_journey_name %>
@@ -18,52 +19,14 @@
<%= form.label @vehicle_journey.human_attribute_name(:vehicle_journey_at_stop_ids), :class => "label" %>
- <% unless @vehicle_journey.vehicle_journey_at_stops.empty? ||
- @vehicle_journey.vehicle_journey_at_stops.any? { |vjas| vjas.departure_time.nil? } %>
-
-
<%= t(".slide_title") %>
-
-
<%= t(".set") %> <%= select_tag "", options_for_select( [ [t('.slide_departure'), "departure"], [t('.slide_arrival'), "arrival"] ] ), :class => "departure_or_arrival" %>
<%= t(".to") %>
- <%= select_hour(@vehicle_journey.vehicle_journey_at_stops.first.departure_time.hour) %>
- <%= select_minute(@vehicle_journey.vehicle_journey_at_stops.first.departure_time.min) %>
-
<%= t(".slide") %>
-
-
- <% end %>
-
-
-
-
- | <%= t('.arrival') %> |
- <%= t('.stop_title') %> |
- <%= t('.departure') %> |
-
-
-
-
- | <%= t('.to_departures') %> |
- |
- <%= t('.to_arrivals') %> |
-
-
-
- <%= render :partial => "vehicle_journeys/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 'form_vehicle_journey_at_stops' %>
<% end %>
<%= form.actions do %>
- <%= form.action :submit, :as => :button %>
- <%= form.action :cancel, :as => :link %>
+ <%= form.action :submit, as: :button, label: t(".submit#{'_frequency' if @vehicle_journey.is_frequency}") %>
+ <%= 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 %>
- <%= javascript_include_tag edit_referential_line_route_vehicle_journey_path(@referential, @line, @route, @vehicle_journey, :format => :js) %>
-<% end %>
-
+<%= render 'form_footer' %>
diff --git a/app/views/vehicle_journeys/_form_footer.html.erb b/app/views/vehicle_journeys/_form_footer.html.erb
new file mode 100644
index 000000000..1a5259348
--- /dev/null
+++ b/app/views/vehicle_journeys/_form_footer.html.erb
@@ -0,0 +1,5 @@
+<% if @vehicle_journey.new_record? %>
+ <%= javascript_include_tag new_referential_line_route_vehicle_journey_path(@referential, @line, @route, :format => :js) %>
+<% else %>
+ <%= javascript_include_tag edit_referential_line_route_vehicle_journey_path(@referential, @line, @route, @vehicle_journey, :format => :js) %>
+<% end %>
diff --git a/app/views/vehicle_journeys/_form_vehicle_journey_at_stops.html.erb b/app/views/vehicle_journeys/_form_vehicle_journey_at_stops.html.erb
new file mode 100644
index 000000000..826733135
--- /dev/null
+++ b/app/views/vehicle_journeys/_form_vehicle_journey_at_stops.html.erb
@@ -0,0 +1,37 @@
+<% unless @vehicle_journey.vehicle_journey_at_stops.empty? || @vehicle_journey.vehicle_journey_at_stops.any? { |vjas| vjas.departure_time.nil? } %>
+
+
+
<%= t('vehicle_journeys.form.slide_title') %>
+
+
<%= t('vehicle_journeys.form.set') %>
+ <%= select_tag '', options_for_select( [ [t('vehicle_journeys.form.slide_departure'), "departure"], [t('vehicle_journeys.form.slide_arrival'), "arrival"] ] ), :class => "departure_or_arrival" %>
+
<%= t('vehicle_journeys.form.to') %>
+ <%= select_hour(@vehicle_journey.vehicle_journey_at_stops.first.departure_time.hour) %>
+ <%= select_minute(@vehicle_journey.vehicle_journey_at_stops.first.departure_time.min) %>
+
<%= t('vehicle_journeys.form.slide') %>
+
+
+
+<% end %>
+
+
+
+
+ | <%= t('vehicle_journeys.form.arrival') %> |
+ <%= t('vehicle_journeys.form.stop_title') %> |
+ <%= t('vehicle_journeys.form.departure') %> |
+
+
+
+
+ | <%= t('vehicle_journeys.form.to_departures') %> |
+ |
+ <%= t('vehicle_journeys.form.to_arrivals') %> |
+
+
+
+ <%= render :partial => "vehicle_journeys/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 } %>
+
+
diff --git a/app/views/vehicle_journeys/_show_sidebar.html.erb b/app/views/vehicle_journeys/_show_sidebar.html.erb
new file mode 100644
index 000000000..e649edaef
--- /dev/null
+++ b/app/views/vehicle_journeys/_show_sidebar.html.erb
@@ -0,0 +1,15 @@
+<% content_for :sidebar do %>
+
+ - <%= link_to t('vehicle_journeys.actions.new'), new_referential_line_route_vehicle_journey_path(@referential, @line, @route), :class => "add" %>
+ - <%= link_to t('vehicle_journeys.actions.new_frequency'), new_referential_line_route_vehicle_journeys_frequency_path(@referential, @line, @route), :class => "add" %>
+ - <%= link_to t('vehicle_journeys.actions.edit'), edit_referential_line_route_vehicle_journey_path(@referential, @line, @route, @vehicle_journey), :class => "edit" %>
+ - <%= 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" %>
+ <% unless @vehicle_journey.vehicle_journey_at_stops.empty? %>
+ -
+
+ <%= 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" } %>
+
+ <% end %>
+
+ <%= creation_tag(@vehicle_journey) %>
+<% end %>
diff --git a/app/views/vehicle_journeys/_show_vehicle_journey_at_stops.html.erb b/app/views/vehicle_journeys/_show_vehicle_journey_at_stops.html.erb
new file mode 100644
index 000000000..e2e0ef82e
--- /dev/null
+++ b/app/views/vehicle_journeys/_show_vehicle_journey_at_stops.html.erb
@@ -0,0 +1,20 @@
+
+
+
+
+ | <%= t('.arrival') %> |
+ <%= t('.stop_title') %> |
+ <%= t('.departure') %> |
+
+
+
+ <% @vehicle_journey.vehicle_journey_at_stops.each_with_index do |vjas, index| %>
+ ">
+ | "><%= vjas.arrival_time ? l( vjas.arrival_time, :format => :hour) : "" %> |
+ <%= link_to vjas.stop_point.stop_area.name, [@referential, vjas.stop_point.stop_area] %> |
+ "><%= vjas.departure_time ? l( vjas.departure_time, :format => :hour) : "" %> |
+
+ <% end %>
+
+
+
diff --git a/app/views/vehicle_journeys/_sidebar.html.erb b/app/views/vehicle_journeys/_sidebar.html.erb
index 8d6f310d3..4522fa109 100644
--- a/app/views/vehicle_journeys/_sidebar.html.erb
+++ b/app/views/vehicle_journeys/_sidebar.html.erb
@@ -1,6 +1,7 @@
-
- - <%= link_to t('vehicle_journeys.actions.new'), new_referential_line_route_vehicle_journey_path(@referential, @line, @route), :class => "add" %>
- - <%= link_to t('vehicle_journey_imports.new.title'), new_referential_line_route_vehicle_journey_import_path( @referential, @line, @route ), :class => "import" %>
- - <%= link_to t('vehicle_journey_exports.new.title'), referential_line_route_vehicle_journey_exports_path(@referential, @line, @route, :format => :zip), :class => "export" %>
-
+
+ - <%= link_to t('vehicle_journeys.actions.new'), new_referential_line_route_vehicle_journey_path(@referential, @line, @route), :class => "add" %>
+ - <%= link_to t('vehicle_journeys.actions.new_frequency'), new_referential_line_route_vehicle_journeys_frequency_path(@referential, @line, @route), :class => "add" %>
+ - <%= link_to t('vehicle_journey_imports.new.title'), new_referential_line_route_vehicle_journey_import_path( @referential, @line, @route ), :class => "import" %>
+ - <%= link_to t('vehicle_journey_exports.new.title'), referential_line_route_vehicle_journey_exports_path(@referential, @line, @route, :format => :zip), :class => "export" %>
+
diff --git a/app/views/vehicle_journeys/edit.html.erb b/app/views/vehicle_journeys/edit.html.erb
index 51653a34a..2d87ffe57 100644
--- a/app/views/vehicle_journeys/edit.html.erb
+++ b/app/views/vehicle_journeys/edit.html.erb
@@ -1,4 +1,5 @@
<%= title_tag edit_vehicle_title(@vehicle_journey) %>
-<%= render "form" %>
+<%= render 'form', form_url: referential_line_route_vehicle_journey_path(@referential, @line, @route, @vehicle_journey) %>
+
diff --git a/app/views/vehicle_journeys/new.html.erb b/app/views/vehicle_journeys/new.html.erb
index a32e9cc31..19b31e422 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 "form" %>
+<%= render partial: 'form', locals: { 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 695b5c8b5..3bdfbb945 100644
--- a/app/views/vehicle_journeys/show.html.erb
+++ b/app/views/vehicle_journeys/show.html.erb
@@ -79,41 +79,11 @@
<%= @vehicle_journey.human_attribute_name(:vehicle_journey_at_stop_ids) %>
-
-
-
-
- | <%= t('.arrival') %> |
- <%= t('.stop_title') %> |
- <%= t('.departure') %> |
-
-
-
- <% @vehicle_journey.vehicle_journey_at_stops.each_with_index do |vjas, index| %>
- ">
- | "><%= vjas.arrival_time ? l( vjas.arrival_time, :format => :hour) : "" %> |
- <%= link_to vjas.stop_point.stop_area.name, [@referential, vjas.stop_point.stop_area] %> |
- "><%= vjas.departure_time ? l( vjas.departure_time, :format => :hour) : "" %> |
-
- <% end %>
-
-
-
+<%= render 'show_vehicle_journey_at_stops' %>
<%= t('.time_tables') %>
<%= paginated_content @vehicle_journey.time_tables, "time_tables/time_table", :delete => false %>
-
-<% content_for :sidebar do %>
-
- - <%= link_to t('vehicle_journeys.actions.new'), new_referential_line_route_vehicle_journey_path(@referential, @line, @route), :class => "add" %>
- - <%= link_to t('vehicle_journeys.actions.edit'), edit_referential_line_route_vehicle_journey_path(@referential, @line, @route, @vehicle_journey), :class => "edit" %>
- - <%= 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" %>
- <% unless @vehicle_journey.vehicle_journey_at_stops.empty? %>
- - <%= link_to t('.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" } %>
- <% end %>
-
- <%= creation_tag(@vehicle_journey) %>
-<% end %>
+<%= render 'show_sidebar' %>
diff --git a/app/views/vehicle_journeys_frequencies/_form_footer.html.erb b/app/views/vehicle_journeys_frequencies/_form_footer.html.erb
new file mode 100644
index 000000000..1217e2c08
--- /dev/null
+++ b/app/views/vehicle_journeys_frequencies/_form_footer.html.erb
@@ -0,0 +1,5 @@
+<% if @vehicle_journey.new_record? %>
+ <%= javascript_include_tag new_referential_line_route_vehicle_journeys_frequency_path(@referential, @line, @route, :format => :js) %>
+<% else %>
+ <%= javascript_include_tag edit_referential_line_route_vehicle_journeys_frequency_path(@referential, @line, @route, @vehicle_journey, :format => :js) %>
+<% end %>
diff --git a/app/views/vehicle_journeys_frequencies/_form_vehicle_journey_at_stops.html.erb b/app/views/vehicle_journeys_frequencies/_form_vehicle_journey_at_stops.html.erb
new file mode 100644
index 000000000..66351e654
--- /dev/null
+++ b/app/views/vehicle_journeys_frequencies/_form_vehicle_journey_at_stops.html.erb
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
+
+ | <%= t('frequencies.time_band') %> |
+ <%= t('frequencies.first_departure') %> |
+ <%= t('frequencies.last_departure') %> |
+ <%= t('frequencies.scheduled_headway_interval') %> |
+ <%= t('frequencies.exact_time') %> |
+ |
+
+
+
+ <%= render partial: 'frequency', collection: @vehicle_journey.frequencies, as: :frequency %>
+
+
+
+ |
+ |
+
+
+
+
diff --git a/app/views/vehicle_journeys_frequencies/_frequency.html.erb b/app/views/vehicle_journeys_frequencies/_frequency.html.erb
new file mode 100644
index 000000000..a0d4d3ca5
--- /dev/null
+++ b/app/views/vehicle_journeys_frequencies/_frequency.html.erb
@@ -0,0 +1,8 @@
+
+ |
+ <%= frequency.first_departure_time %> |
+ <%= frequency.last_departure_time %> |
+ <%= frequency.scheduled_headway_interval %> |
+ <%= frequency.exact_time %> |
+ |
+
diff --git a/app/views/vehicle_journeys_frequencies/_show_sidebar.html.erb b/app/views/vehicle_journeys_frequencies/_show_sidebar.html.erb
new file mode 100644
index 000000000..7be0e4d63
--- /dev/null
+++ b/app/views/vehicle_journeys_frequencies/_show_sidebar.html.erb
@@ -0,0 +1,16 @@
+<% content_for :sidebar do %>
+
+ - <%= link_to t('vehicle_journeys.actions.new'), new_referential_line_route_vehicle_journey_path(@referential, @line, @route), :class => "add" %>
+ - <%= link_to t('vehicle_journeys.actions.new_frequency'), new_referential_line_route_vehicle_journeys_frequency_path(@referential, @line, @route), :class => "add" %>
+ - <%= link_to t('vehicle_journeys.actions.edit_frequency'), edit_referential_line_route_vehicle_journeys_frequency_path(@referential, @line, @route, @vehicle_journey), :class => "edit" %>
+ - <%= 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" %>
+ <% unless @vehicle_journey.vehicle_journey_at_stops.empty? %>
+ -
+
+ 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" } %>
+
+ <% end %>
+
+ <%= creation_tag(@vehicle_journey) %>
+<% end %>
diff --git a/app/views/vehicle_journeys_frequencies/_show_vehicle_journey_at_stops.html.erb b/app/views/vehicle_journeys_frequencies/_show_vehicle_journey_at_stops.html.erb
new file mode 100644
index 000000000..e69de29bb
diff --git a/app/views/vehicle_journeys_frequencies/_vehicle_journey_at_stop_fields.html.erb b/app/views/vehicle_journeys_frequencies/_vehicle_journey_at_stop_fields.html.erb
new file mode 100644
index 000000000..44da12328
--- /dev/null
+++ b/app/views/vehicle_journeys_frequencies/_vehicle_journey_at_stop_fields.html.erb
@@ -0,0 +1,54 @@
+<% 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
+%>
+
+ |
+ <%= {
+ 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,
+ :'arrival_time(3i)' => 1,
+ :'arrival_time(2i)' => 1,
+ :'arrival_time(1i)' => 2000
+ }.map{ |k, v|
+ "" }.join("\n").html_safe %>
+
+ <%= vjas.stop_point.stop_area.name %>
+ |
+
+
+
+ |
+
+
+ |
+
diff --git a/app/views/vehicle_journeys_frequencies/edit.html.erb b/app/views/vehicle_journeys_frequencies/edit.html.erb
new file mode 100644
index 000000000..8b9942d95
--- /dev/null
+++ b/app/views/vehicle_journeys_frequencies/edit.html.erb
@@ -0,0 +1,3 @@
+<%= title_tag edit_vehicle_title(@vehicle_journey) %>
+
+<%= render 'vehicle_journeys/form', form_url: referential_line_route_vehicle_journeys_frequency_path(@referential, @line, @route, id: @vehicle_journey) %>
diff --git a/app/views/vehicle_journeys_frequencies/new.html.erb b/app/views/vehicle_journeys_frequencies/new.html.erb
new file mode 100644
index 000000000..67ff079a3
--- /dev/null
+++ b/app/views/vehicle_journeys_frequencies/new.html.erb
@@ -0,0 +1,3 @@
+<%= title_tag t('vehicle_journeys.new.title_frequency') %>
+
+<%= render 'vehicle_journeys/form', form_url: referential_line_route_vehicle_journeys_frequencies_path(@referential, @line, @route, @vehicle_journey) %>
diff --git a/app/views/vehicle_journeys_frequencies/new.js.erb b/app/views/vehicle_journeys_frequencies/new.js.erb
new file mode 100644
index 000000000..c6fb98b22
--- /dev/null
+++ b/app/views/vehicle_journeys_frequencies/new.js.erb
@@ -0,0 +1,10 @@
+$(document).ready(function() {
+ $("#vehicle_journey_journey_pattern_id").change(
+ function(){
+ var url = "<%= referential_line_route_journey_patterns_path(@referential.id,@line.id,@route.id) %>";
+ url = url + "/" + $("#vehicle_journey_journey_pattern_input select option:selected").attr("value") +
+ "/new_vehicle_journey?suffix=frequencies";
+ $.get(url);
+ }
+ )
+});
diff --git a/app/views/vehicle_journeys_frequencies/select_journey_pattern.js.erb b/app/views/vehicle_journeys_frequencies/select_journey_pattern.js.erb
new file mode 100644
index 000000000..59e9e2f4a
--- /dev/null
+++ b/app/views/vehicle_journeys_frequencies/select_journey_pattern.js.erb
@@ -0,0 +1,5 @@
+$('.journey_pattern_dependent_list').html('<%= escape_javascript(
+ render(:partial => "vehicle_journeys_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 %>');
--
cgit v1.2.3