diff options
| -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 | 
