diff options
| -rw-r--r-- | app/controllers/vehicle_journeys_controller.rb | 28 | ||||
| -rw-r--r-- | app/views/vehicle_journeys/_form.html.erb | 18 | ||||
| -rw-r--r-- | app/views/vehicle_journeys/edit.html.erb | 4 | ||||
| -rw-r--r-- | app/views/vehicle_journeys/select_journey_pattern.js.erb | 4 | ||||
| -rw-r--r-- | config/routes.rb | 6 |
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 |
