aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--app/controllers/vehicle_journeys_controller.rb28
-rw-r--r--app/views/vehicle_journeys/_form.html.erb18
-rw-r--r--app/views/vehicle_journeys/edit.html.erb4
-rw-r--r--app/views/vehicle_journeys/select_journey_pattern.js.erb4
-rw-r--r--config/routes.rb6
5 files changed, 54 insertions, 6 deletions
diff --git a/app/controllers/vehicle_journeys_controller.rb b/app/controllers/vehicle_journeys_controller.rb
index 3a99d531b..8bbec97f6 100644
--- a/app/controllers/vehicle_journeys_controller.rb
+++ b/app/controllers/vehicle_journeys_controller.rb
@@ -7,7 +7,35 @@ class VehicleJourneysController < ChouetteController
end
end
+ def select_journey_pattern
+ if params[:journey_pattern_id]
+ @vehicle_journey = vehicle_journey
+ @vehicle_journey_at_stops = pseudo_vehicle_journey_at_stops
+ puts "@vehicle_journey=#{@vehicle_journey.inspect}"
+ end
+ end
+
+ def pseudo_vehicle_journey_at_stops
+ vjas_by_sp_id = {}.tap do |hash|
+ @vehicle_journey.vehicle_journey_at_stops.each do |vjas|
+ hash.merge!( vjas.stop_point_id => vjas)
+ end
+ end
+ [].tap do |vjas_array|
+ @selected_journey_pattern.stop_points.each do |sp|
+ if vjas_by_sp_id.include?( sp.id)
+ vjas_array << vjas_by_sp_id[ sp.id]
+ else
+ vjas_array << @vehicle_journey.vehicle_journey_at_stops.build( :stop_point_id => sp.id)
+ end
+ end
+ end
+ end
+
+
protected
+
+ alias_method :vehicle_journey, :resource
def collection
@q = parent.vehicle_journeys.search(params[:q])
diff --git a/app/views/vehicle_journeys/_form.html.erb b/app/views/vehicle_journeys/_form.html.erb
index 9a7d84ed8..9994849fe 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| %>
<%= form.inputs do %>
+ <%= form.input :journey_pattern, :as => :select, :collection => @route.journey_patterns, :include_blank => false, :member_label => Proc.new { |jp| journey_name(jp) } %>
<%= form.input :published_journey_name %>
<%= form.input :published_journey_identifier %>
<%= form.input :comment %>
@@ -16,7 +17,9 @@
</li>
<% end %>
- <%= render :partial => "vehicle_journeys/vehicle_journey_at_stop_fields" %>
+ <%= form.inputs :class => "stop_times" do %>
+ <%= render :partial => "vehicle_journeys/vehicle_journey_at_stop_fields" %>
+ <% end %>
<% end %>
@@ -27,3 +30,16 @@
<% end %>
<% end %>
+<script>
+ $("#vehicle_journey_journey_pattern_id").change(
+ $.ajax({
+ type: 'get',
+ data: "journey_pattern_id="+$("#vehicle_journey_journey_pattern_input select option:selected").attr("value"),
+ dataType: 'script',
+ complete: function(request){
+ $('.stop_times').effect('highlight');
+ },
+ url: "<%= select_journey_pattern_referential_line_route_vehicle_journey_path( @referential, @line, @route, @vehicle_journey)%>"})
+ );
+</script>
+
diff --git a/app/views/vehicle_journeys/edit.html.erb b/app/views/vehicle_journeys/edit.html.erb
index c1079a16d..164f654b6 100644
--- a/app/views/vehicle_journeys/edit.html.erb
+++ b/app/views/vehicle_journeys/edit.html.erb
@@ -10,10 +10,6 @@
<label><%= Chouette::Route.model_name.human %>: </label>
<%= link_to @route.name, [@referential, @line, @route] %>
</p>
- <p>
- <label><%= Chouette::JourneyPattern.model_name.human %>: </label>
- <%= link_to journey_name(@vehicle_journey.journey_pattern), [@referential, @line, @route, @vehicle_journey.journey_pattern] %>
- </p>
<div>
<div>
diff --git a/app/views/vehicle_journeys/select_journey_pattern.js.erb b/app/views/vehicle_journeys/select_journey_pattern.js.erb
new file mode 100644
index 000000000..181f1e108
--- /dev/null
+++ b/app/views/vehicle_journeys/select_journey_pattern.js.erb
@@ -0,0 +1,4 @@
+$('#stop_times').html('<%= escape_javascript render(:partial =>
+'vehicle_journeys/vehicle_journey_at_stop_fields')%>')
+
+
diff --git a/config/routes.rb b/config/routes.rb
index 5e5f68b72..573b7ab7c 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -32,7 +32,11 @@ ChouetteIhm::Application.routes.draw do
end
resources :routes do
resources :journey_patterns
- resources :vehicle_journeys
+ resources :vehicle_journeys do
+ member do
+ get 'select_journey_pattern'
+ end
+ end
resources :stop_points do
collection do
post :sort