aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--app/controllers/journey_patterns_controller.rb8
-rw-r--r--app/controllers/vehicle_journeys_controller.rb15
-rw-r--r--app/views/vehicle_journeys/_form.html.erb19
-rw-r--r--app/views/vehicle_journeys/index.html.erb1
-rw-r--r--app/views/vehicle_journeys/new.js.erb11
-rw-r--r--config/locales/vehicle_journeys.yml8
-rw-r--r--config/routes.rb6
-rw-r--r--spec/views/vehicle_journeys/_form.html.erb_spec.rb6
8 files changed, 54 insertions, 20 deletions
diff --git a/app/controllers/journey_patterns_controller.rb b/app/controllers/journey_patterns_controller.rb
index 1ec15f7e8..d8611d6f9 100644
--- a/app/controllers/journey_patterns_controller.rb
+++ b/app/controllers/journey_patterns_controller.rb
@@ -2,6 +2,7 @@ class JourneyPatternsController < ChouetteController
defaults :resource_class => Chouette::JourneyPattern
respond_to :html
+ respond_to :js, :only => [:new_vehicle_journey]
belongs_to :referential do
belongs_to :line, :parent_class => Chouette::Line do
@@ -16,4 +17,11 @@ class JourneyPatternsController < ChouetteController
@stop_points = resource.stop_points.paginate(:page => params[:page], :per_page => 10)
show!
end
+
+ def new_vehicle_journey
+ puts resource.inspect
+ @vehicle_journey = Chouette::VehicleJourney.new(:route_id => route.id)
+ @vehicle_journey.update_journey_pattern(resource)
+ render "vehicle_journeys/select_journey_pattern"
+ end
end
diff --git a/app/controllers/vehicle_journeys_controller.rb b/app/controllers/vehicle_journeys_controller.rb
index d8dca65b5..9248f88de 100644
--- a/app/controllers/vehicle_journeys_controller.rb
+++ b/app/controllers/vehicle_journeys_controller.rb
@@ -1,7 +1,7 @@
class VehicleJourneysController < ChouetteController
defaults :resource_class => Chouette::VehicleJourney
- respond_to :js, :only => [:select_journey_pattern, :edit]
+ respond_to :js, :only => [:select_journey_pattern, :edit, :new]
belongs_to :referential do
belongs_to :line, :parent_class => Chouette::Line do
@@ -18,8 +18,19 @@ class VehicleJourneysController < ChouetteController
end
end
+ def create
+ create!(:alert => t('activerecord.errors.models.vehicle_journey.invalid_times'))
+ end
+
def update
- update!(:alert => "Hey pb")
+ update!(:alert => t('activerecord.errors.models.vehicle_journey.invalid_times'))
+ end
+
+ def new
+ @vehicle_journey = Chouette::VehicleJourney.new( :route => @route)
+ @vehicle_journey.update_journey_pattern( parent.journey_patterns.first) if parent.journey_patterns.first
+
+ new!
end
protected
diff --git a/app/views/vehicle_journeys/_form.html.erb b/app/views/vehicle_journeys/_form.html.erb
index f314e0453..6258d634a 100644
--- a/app/views/vehicle_journeys/_form.html.erb
+++ b/app/views/vehicle_journeys/_form.html.erb
@@ -4,18 +4,11 @@
<%= form.input :published_journey_name %>
<%= form.input :published_journey_identifier %>
<%= form.input :comment %>
- <%= form.input :transport_mode, :as => :select, :collection => Chouette::Line.transport_modes, :include_blank => false, :member_label => Proc.new { |mode| t("transport_modes.label.#{mode}") } %>
+ <%= form.input :transport_mode, :as => :select, :collection => Chouette::Line.transport_modes, :include_blank => true, :member_label => Proc.new { |mode| t("transport_modes.label.#{mode}") } %>
<%= form.input :status_value %>
<%= form.input :facility %>
<%= form.input :vehicle_type_identifier%>
- <% if @vehicle_journey.new_record? %>
- <%= form.input :objectid %>
- <% else %>
- <li>
- <label><%= @vehicle_journey.human_attribute_name("objectid") %>: </label>
- <%= @vehicle_journey.objectid %>
- </li>
- <% end %>
+ <%= form.input :objectid, :input_html => { :disabled => !@vehicle_journey.new_record? } %>
<%= form.inputs :class => "stop_times", :name => @vehicle_journey.human_attribute_name(:vehicle_journey_at_stop_ids) do %>
<table border="0" class="vehicle_journey_at_stops">
@@ -40,11 +33,7 @@
</tbody>
</table>
<% end %>
- <%= form.inputs :class => "time_tables", :name=> @vehicle_journey.human_attribute_name(:time_table_ids) do %>
- <div class="time_table_list">
<%= form.input :time_table_tokens, :label => t('.time_tables'), :as => :text, :input_html => { :"data-pre" => ( @vehicle_journey.time_tables.map { |time_table| { :id => time_table.id, :name => time_table.comment } } ).to_json } %>
- </div>
- <% end %>
<% end %>
@@ -54,7 +43,9 @@
<% end %>
<% end %>
-<% unless @vehicle_journey.new_record? %>
+<% 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/index.html.erb b/app/views/vehicle_journeys/index.html.erb
index d449c839d..3d5bf31ac 100644
--- a/app/views/vehicle_journeys/index.html.erb
+++ b/app/views/vehicle_journeys/index.html.erb
@@ -87,4 +87,3 @@
<%= render :partial => "time_filter", :locals => { :time_field => "departure_time"} %>
<% end %>
-<% end %>
diff --git a/app/views/vehicle_journeys/new.js.erb b/app/views/vehicle_journeys/new.js.erb
new file mode 100644
index 000000000..473c6be57
--- /dev/null
+++ b/app/views/vehicle_journeys/new.js.erb
@@ -0,0 +1,11 @@
+$(document).ready(function() {
+ $("#vehicle_journey_journey_pattern_id").change(
+ function(){
+ var url = "<%= "/referentials/#{@referential.id}/lines/#{@line.id}/routes/#{@route.id}/journey_patterns/" %>";
+ url = url + $("#vehicle_journey_journey_pattern_input select option:selected").attr("value") +
+ "/new_vehicle_journey";
+ $.get(url);
+ }
+ )
+});
+
diff --git a/config/locales/vehicle_journeys.yml b/config/locales/vehicle_journeys.yml
index 879d375a7..801163b82 100644
--- a/config/locales/vehicle_journeys.yml
+++ b/config/locales/vehicle_journeys.yml
@@ -60,6 +60,10 @@ en:
object_version: Version
creation_time: Created on
creator_id: Created by
+ errors:
+ models:
+ vehicle_journey:
+ invalid_times: "Invalid times"
fr:
vehicle_journeys:
@@ -123,4 +127,8 @@ fr:
object_version: Version
creation_time: Créé le
creator_id: Créé par
+ errors:
+ models:
+ vehicle_journey:
+ invalid_times: "Horaires invalides"
diff --git a/config/routes.rb b/config/routes.rb
index 620c1d879..f74c74c28 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -31,7 +31,11 @@ ChouetteIhm::Application.routes.draw do
end
end
resources :routes do
- resources :journey_patterns
+ resources :journey_patterns do
+ member do
+ get 'new_vehicle_journey'
+ end
+ end
resources :vehicle_journeys do
member do
get 'select_journey_pattern'
diff --git a/spec/views/vehicle_journeys/_form.html.erb_spec.rb b/spec/views/vehicle_journeys/_form.html.erb_spec.rb
index 385de64c9..e55867bca 100644
--- a/spec/views/vehicle_journeys/_form.html.erb_spec.rb
+++ b/spec/views/vehicle_journeys/_form.html.erb_spec.rb
@@ -49,7 +49,9 @@ describe "/vehicle_journeys/_form" do
context "when existing vehicle_journey" do
it "should display objectid not as an input" do
render
- rendered.should have_selector("form li", :text => vehicle_journey.objectid)
+ rendered.should have_selector("form") do
+ with_selector "input[type=text][objectid=][disabled=true]", vehicle_journey.objectid
+ end
end
end
context "when new vehicle_journey" do
@@ -57,7 +59,7 @@ describe "/vehicle_journeys/_form" do
it "should render an input for objectid" do
render
rendered.should have_selector("form") do
- with_selector "input[type=text][objectid=]", vehicle_journey.objectid
+ with_selector "input[type=text][objectid=][disabled=false]", vehicle_journey.objectid
end
end
end