diff options
| author | Marc Florisson | 2012-06-27 15:09:24 +0200 |
|---|---|---|
| committer | Marc Florisson | 2012-06-27 15:09:24 +0200 |
| commit | b9e5f8f5dd642e7efd7969a3dd1571edea2facb8 (patch) | |
| tree | b22ea612fbac0ab6c8dc5e25e7fcb56bebe40453 | |
| parent | 1f66921f559367af0b452a13f95a7d8c00c41b44 (diff) | |
| download | chouette-core-b9e5f8f5dd642e7efd7969a3dd1571edea2facb8.tar.bz2 | |
fix Refs #77
| -rw-r--r-- | app/controllers/journey_patterns_controller.rb | 8 | ||||
| -rw-r--r-- | app/controllers/vehicle_journeys_controller.rb | 15 | ||||
| -rw-r--r-- | app/views/vehicle_journeys/_form.html.erb | 19 | ||||
| -rw-r--r-- | app/views/vehicle_journeys/index.html.erb | 1 | ||||
| -rw-r--r-- | app/views/vehicle_journeys/new.js.erb | 11 | ||||
| -rw-r--r-- | config/locales/vehicle_journeys.yml | 8 | ||||
| -rw-r--r-- | config/routes.rb | 6 | ||||
| -rw-r--r-- | spec/views/vehicle_journeys/_form.html.erb_spec.rb | 6 |
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 |
