diff options
| -rw-r--r-- | app/controllers/autocomplete_stop_areas_controller.rb | 60 | ||||
| -rw-r--r-- | app/controllers/stop_area_children_controller.rb | 21 | ||||
| -rw-r--r-- | app/controllers/stop_area_parents_controller.rb | 19 | ||||
| -rw-r--r-- | app/controllers/stop_area_routing_stops_controller.rb | 21 | ||||
| -rw-r--r-- | app/controllers/stop_areas_controller.rb | 3 | ||||
| -rw-r--r-- | app/controllers/stop_point_areas_controller.rb | 20 | ||||
| -rw-r--r-- | app/views/autocomplete_stop_areas/index.rabl | 9 | ||||
| -rw-r--r-- | app/views/autocomplete_stop_areas/show.rabl | 10 | ||||
| -rw-r--r-- | app/views/connection_links/select_areas.html.erb | 4 | ||||
| -rw-r--r-- | app/views/routes/_form.html.erb | 2 | ||||
| -rw-r--r-- | app/views/stop_areas/add_children.html.erb | 2 | ||||
| -rw-r--r-- | app/views/stop_areas/add_routing_stops.html.erb | 15 | ||||
| -rw-r--r-- | app/views/stop_areas/index.rabl | 9 | ||||
| -rw-r--r-- | app/views/stop_areas/select_parent.html.erb | 4 | ||||
| -rw-r--r-- | app/views/stop_areas/show.rabl | 9 | ||||
| -rw-r--r-- | config/routes.rb | 53 |
16 files changed, 90 insertions, 171 deletions
diff --git a/app/controllers/autocomplete_stop_areas_controller.rb b/app/controllers/autocomplete_stop_areas_controller.rb new file mode 100644 index 000000000..740383537 --- /dev/null +++ b/app/controllers/autocomplete_stop_areas_controller.rb @@ -0,0 +1,60 @@ +class AutocompleteStopAreasController < ApplicationController + include ApplicationHelper + before_filter :switch_referential + + def switch_referential + Apartment::Database.switch(referential.slug) + end + + respond_to :json, :only => [:index, :children, :parent, :physicals] + + def index + @options = { :stop_area_path => root_url } + Rabl::Renderer.new('autocomplete_stop_areas/index', stop_areas_by_name, :view_path => 'app/views', :format => :json).render + end + + protected + + def referential + @referential ||= current_organisation.referentials.find params[:referential_id] + end + + def stop_areas_by_name + result = [] + if physical_filter? + result = referential.stop_areas.physical + elsif itl_exclude_filter? + result = Chouette::StopArea.where("area_type != 'ITL'") + elsif target_type? && relation_parent? + result = Chouette::StopArea.new( :area_type => params[ :target_type ] ).possible_parents + elsif target_type? && relation_children? + result = Chouette::StopArea.new( :area_type => params[ :target_type ] ).possible_children + else + result = referential.stop_areas + end + @stop_areas = result.select{ |p| p.name =~ /#{params[:q]}/i } + @stop_areas + end + + def target_type? + params.has_key?( :target_type) && params.has_key?( :relation ) + end + + def relation_parent? + params[ :relation ] == "parent" + end + + def relation_children? + params[ :relation ] == "children" + end + + def itl_exclude_filter? + params[:filter] == "itl_excluded" + end + + def physical_filter? + params[:filter] == "physical" + end + +end + diff --git a/app/controllers/stop_area_children_controller.rb b/app/controllers/stop_area_children_controller.rb deleted file mode 100644 index d60fcb1a6..000000000 --- a/app/controllers/stop_area_children_controller.rb +++ /dev/null @@ -1,21 +0,0 @@ -class StopAreaChildrenController < ChouetteController - - respond_to :json, :only => :index - - def index - respond_to do |format| - format.json { render :json => children_maps } - end - end - - protected - - def children_maps - children.map {|area| area.attributes.merge( :area_type => t("area_types.label.#{area.area_type.underscore}"))} - end - - def children - referential.stop_areas.find(params[:stop_area_id]).possible_children.select{ |p| p.name =~ /#{params[:q]}/i } - end - -end diff --git a/app/controllers/stop_area_parents_controller.rb b/app/controllers/stop_area_parents_controller.rb deleted file mode 100644 index c32e5df17..000000000 --- a/app/controllers/stop_area_parents_controller.rb +++ /dev/null @@ -1,19 +0,0 @@ -class StopAreaParentsController < ChouetteController - - respond_to :json, :only => :index - - def index - respond_to do |format| - format.json { render :json => parents_maps } - end - end - - def parents_maps - parents.map {|area| area.attributes.merge( :area_type => t("area_types.label.#{area.area_type.underscore}"))} - end - - def parents - referential.stop_areas.find(params[:stop_area_id]).possible_parents.select{ |p| p.name =~ /#{params[:q]}/i } - end - -end diff --git a/app/controllers/stop_area_routing_stops_controller.rb b/app/controllers/stop_area_routing_stops_controller.rb deleted file mode 100644 index c5e7980f9..000000000 --- a/app/controllers/stop_area_routing_stops_controller.rb +++ /dev/null @@ -1,21 +0,0 @@ -class StopAreaRoutingStopsController < ChouetteController - - respond_to :json, :only => :index - - def index - respond_to do |format| - format.json { render :json => routing_stops_maps } - end - end - - def routing_stops_maps - routing_stops.collect do |stop| - { :id => stop.id.to_s, :name => "#{stop.name} #{stop.country_code}" } - end - end - - def routing_stops - referential.stop_areas.find(params[:stop_area_id]).possible_children.select{ |p| p.name =~ /#{params[:q]}/i } - end - -end diff --git a/app/controllers/stop_areas_controller.rb b/app/controllers/stop_areas_controller.rb index 53a7575b9..6277b5814 100644 --- a/app/controllers/stop_areas_controller.rb +++ b/app/controllers/stop_areas_controller.rb @@ -36,7 +36,6 @@ class StopAreasController < ChouetteController def add_routing_stops @stop_area = stop_area - @stops = stop_area.routing_stops build_breadcrumb :edit end @@ -100,7 +99,7 @@ class StopAreasController < ChouetteController def update stop_area.position ||= stop_area.default_position map.editable = true - + update! end diff --git a/app/controllers/stop_point_areas_controller.rb b/app/controllers/stop_point_areas_controller.rb deleted file mode 100644 index 1ece8641e..000000000 --- a/app/controllers/stop_point_areas_controller.rb +++ /dev/null @@ -1,20 +0,0 @@ -class StopPointAreasController < ChouetteController - - respond_to :json, :only => :index - - def index - respond_to do |format| - format.json { render :json => areas_maps } - end - end - - def areas_maps - areas.map {|area| area.attributes.merge( :area_type => t("area_types.label.#{area.area_type.underscore}"))} - end - - def areas - Chouette::StopPoint.area_candidates.select{ |p| p.name =~ /#{params[:q]}/i } - end - -end - diff --git a/app/views/autocomplete_stop_areas/index.rabl b/app/views/autocomplete_stop_areas/index.rabl new file mode 100644 index 000000000..9864ff2d3 --- /dev/null +++ b/app/views/autocomplete_stop_areas/index.rabl @@ -0,0 +1,9 @@ +collection @stop_areas + +node do |stop_area| + { :id => stop_area.id, :stop_area_path => @options[ :stop_area_path], :registration_number => stop_area.registration_number || "", :name => stop_area.name || "", :zip_code => stop_area.zip_code || "", :city_name => stop_area.city_name || "" } +end + +node :area_type do |area| + I18n.t("area_types.label.#{area.area_type.underscore}") || "" +end diff --git a/app/views/autocomplete_stop_areas/show.rabl b/app/views/autocomplete_stop_areas/show.rabl new file mode 100644 index 000000000..989f6f4b1 --- /dev/null +++ b/app/views/autocomplete_stop_areas/show.rabl @@ -0,0 +1,10 @@ +object @stop_area +Rails.logger.debug "inside Rabl view call helper for help_path #{self.inspect}" + +node do |stop_area| + { :id => stop_area.id, :registration_number => stop_area.registration_number || "", :image_path => @options[ :image_path ], :name => stop_area.name || "", :zip_code => stop_area.zip_code || "", :city_name => stop_area.city_name || "" } +end + +node :area_type do |area| + I18n.t("area_types.label.#{area.area_type.underscore}") || "" +end diff --git a/app/views/connection_links/select_areas.html.erb b/app/views/connection_links/select_areas.html.erb index ee93d1d0d..0d8f25351 100644 --- a/app/views/connection_links/select_areas.html.erb +++ b/app/views/connection_links/select_areas.html.erb @@ -3,8 +3,8 @@ <%= semantic_form_for [@referential, @connection_link] do |form| %> <div> <%= form.inputs do %> - <%= form.input :departure_id, :as => :search_stop_area, :json => referential_connection_link_connection_link_areas_path(@referential, @connection_link, :format => :json), :tokenLimit => 1, :hint_text => t('search_hint'), :no_result_text => t('no_result_text'),:searching_text => t('searching_term'), :input_html => { :"data-pre" => Rabl::Renderer.new('stop_areas/show', [@departure].compact, :view_path => 'app/views', :format => :json).render } %> - <%= form.input :arrival_id, :as => :search_stop_area, :json => referential_connection_link_connection_link_areas_path(@referential, @connection_link, :format => :json), :tokenLimit => 1, :hint_text => t('search_hint'), :no_result_text => t('no_result_text'),:searching_text => t('searching_term'), :input_html => { :"data-pre" => Rabl::Renderer.new('stop_areas/show', [@arrival].compact, :view_path => 'app/views', :format => :json).render } %> + <%= form.input :departure_id, :as => :search_stop_area, :json => referential_autocomplete_stop_areas_path(@referential, :format => :json)+"?filter=itl_excluded", :tokenLimit => 1, :hint_text => t('search_hint'), :no_result_text => t('no_result_text'),:searching_text => t('searching_term'), :input_html => { :"data-pre" => Rabl::Renderer.new('autocomplete_stop_areas/show', [@departure].compact, :view_path => 'app/views', :format => :json).render } %> + <%= form.input :arrival_id, :as => :search_stop_area, :json => referential_autocomplete_stop_areas_path(@referential, :format => :json)+"?filter=itl_excluded", :tokenLimit => 1, :hint_text => t('search_hint'), :no_result_text => t('no_result_text'),:searching_text => t('searching_term'), :input_html => { :"data-pre" => Rabl::Renderer.new('autocomplete_stop_areas/show', [@arrival].compact, :view_path => 'app/views', :format => :json).render } %> <% end %> <%= form.actions do %> diff --git a/app/views/routes/_form.html.erb b/app/views/routes/_form.html.erb index 270c49911..63ee8cbe2 100644 --- a/app/views/routes/_form.html.erb +++ b/app/views/routes/_form.html.erb @@ -77,7 +77,7 @@ $(document).ready( function() { } return '<li><div class=\"name\">' + item_name( item) + '</div><div class=\"info\">' + item.area_type + '</div><div class=\"info\">' + info + '</div></li>' }; - element.tokenInput('<%= referential_stop_point_areas_path(@referential, :format => :json) %>', + element.tokenInput('<%= referential_autocomplete_stop_areas_path(@referential, :format => :json)+"?filter=physical" %>', { crossDomain: false, tokenLimit: 1, minChars: 3, diff --git a/app/views/stop_areas/add_children.html.erb b/app/views/stop_areas/add_children.html.erb index 732e28466..362915a54 100644 --- a/app/views/stop_areas/add_children.html.erb +++ b/app/views/stop_areas/add_children.html.erb @@ -3,7 +3,7 @@ <%= semantic_form_for [@referential, @stop_area] do |form| %> <div> <%= form.inputs do %> - <%= form.input :children_ids, :as => :search_stop_area, :json => referential_stop_area_stop_area_children_path(@referential, @stop_area, :format => :json), :hint_text => t('search_hint'), :no_result_text => t('no_result_text'),:searching_text => t('searching_term'), :input_html => { :"data-pre" => Rabl::Renderer.new('stop_areas/index', @children, :view_path => 'app/views', :format => :json).render } %> + <%= form.input :children_ids, :as => :search_stop_area, :json => referential_autocomplete_stop_areas_path(@referential, :format => :json)+"?relation=children&target_type=#{@stop_area.area_type}", :hint_text => t('search_hint'), :no_result_text => t('no_result_text'),:searching_text => t('searching_term'), :input_html => { :"data-pre" => Rabl::Renderer.new('autocomplete_stop_areas/index', @children, :view_path => 'app/views', :format => :json).render } %> <% end %> <%= form.actions do %> diff --git a/app/views/stop_areas/add_routing_stops.html.erb b/app/views/stop_areas/add_routing_stops.html.erb index 06a96d575..8675c199b 100644 --- a/app/views/stop_areas/add_routing_stops.html.erb +++ b/app/views/stop_areas/add_routing_stops.html.erb @@ -3,7 +3,7 @@ <%= semantic_form_for [@referential, @stop_area] do |form| %> <div> <%= form.inputs do %> - <%= form.input :routing_stop_ids, :as => :text, :input_html => { :"data-pre" => ( @stops.map { |stop| { :id => stop.id.to_s, :name => "#{stop.name} #{stop.country_code}" } } ).to_json } %> + <%= form.input :routing_stop_ids, :as => :search_stop_area, :json => referential_autocomplete_stop_areas_path(@referential, :format => :json)+"?filter=itl_excluded", :hint_text => t('search_hint'), :no_result_text => t('no_result_text'),:searching_text => t('searching_term'), :input_html => { :"data-pre" => Rabl::Renderer.new('autocomplete_stop_areas/index', @stop_area.routing_stops, :view_path => 'app/views', :format => :json).render } %> <% end %> <%= form.actions do %> @@ -13,19 +13,6 @@ </div> <% end %> -<script> - $(function() { - $( "#stop_area_routing_stop_ids" ).tokenInput('<%= referential_stop_area_stop_area_routing_stops_path(@referential, @stop_area, :format => :json) %>', { - crossDomain: false, - prePopulate: $('#stop_area_routing_stop_id').data('pre'), - minChars: 3, - hintText: '<%= t('search_hint') %>', - noResultsText: '<%= t('no_result_text') %>', - searchingText: '<%= t('searching_term') %>' - }); - }); -</script> - <% content_for :sidebar do %> <ul class="actions"> </ul> diff --git a/app/views/stop_areas/index.rabl b/app/views/stop_areas/index.rabl deleted file mode 100644 index d7f2365bb..000000000 --- a/app/views/stop_areas/index.rabl +++ /dev/null @@ -1,9 +0,0 @@ -collection @stop_areas - -node do |stop_area| - { :id => stop_area.id, :registration_number => stop_area.registration_number || "", :name => stop_area.name || "", :zip_code => stop_area.zip_code || "", :city_name => stop_area.city_name || "" } -end - -node :area_type do |area| - I18n.t("area_types.label.#{area.area_type.underscore}") || "" -end diff --git a/app/views/stop_areas/select_parent.html.erb b/app/views/stop_areas/select_parent.html.erb index fd1b292c6..9a830d67d 100644 --- a/app/views/stop_areas/select_parent.html.erb +++ b/app/views/stop_areas/select_parent.html.erb @@ -2,8 +2,8 @@ <%= semantic_form_for [@referential, @stop_area] do |form| %> <div> - <%= form.inputs do %> - <%= form.input :parent_id, :as => :search_stop_area, :json => referential_stop_area_stop_area_parents_path(@referential, @stop_area, :format => :json), :hint_text => t('search_hint'), :no_result_text => t('no_result_text'), :searching_text => t('searching_term'), :tokenLimit => 1, :input_html => { :"data-pre" => Rabl::Renderer.new('stop_areas/show', [@parent].compact, :view_path => 'app/views', :format => :json).render } %> + <%= form.inputs do %> + <%= form.input :parent_id, :as => :search_stop_area, :json => referential_autocomplete_stop_areas_path(@referential, :format => :json)+"?relation=parent&target_type=#{@stop_area.area_type}", :hint_text => t('search_hint'), :no_result_text => t('no_result_text'), :searching_text => t('searching_term'), :tokenLimit => 1, :input_html => { :"data-pre" => Rabl::Renderer.new('autocomplete_stop_areas/index', [@parent].compact, :stop_area_path => root_url, :view_path => 'app/views', :format => :json).render } %> <% end %> <%= form.actions do %> diff --git a/app/views/stop_areas/show.rabl b/app/views/stop_areas/show.rabl deleted file mode 100644 index f406c4eff..000000000 --- a/app/views/stop_areas/show.rabl +++ /dev/null @@ -1,9 +0,0 @@ -object @stop_area - -node do |stop_area| - { :id => stop_area.id, :registration_number => stop_area.registration_number || "", :name => stop_area.name || "", :zip_code => stop_area.zip_code || "", :city_name => stop_area.city_name || "" } -end - -node :area_type do |area| - I18n.t("area_types.label.#{area.area_type.underscore}") || "" -end diff --git a/config/routes.rb b/config/routes.rb index f629a963f..530e17409 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -9,7 +9,7 @@ ChouetteIhm::Application.routes.draw do authenticated :user do root :to => 'referentials#index' end - + unauthenticated do root :to => 'devise/sessions#new' end @@ -61,29 +61,13 @@ ChouetteIhm::Application.routes.draw do resources :referentials do resources :api_keys resources :rule_parameter_sets - resources :stop_point_areas + resources :autocomplete_stop_areas match 'lines' => 'lines#destroy_all', :via => :delete resources :group_of_lines do - resources :stop_areas do - resources :access_points - resources :stop_area_copies - resources :stop_area_parents - resources :stop_area_children - resources :stop_area_routing_lines - resources :stop_area_routing_stops - member do - get 'add_children' - get 'select_parent' - get 'add_routing_lines' - get 'add_routing_stops' - end - end - resources :lines collection do get :name_filter end end - resources :lines do collection do get :name_filter @@ -91,20 +75,6 @@ ChouetteIhm::Application.routes.draw do end resources :lines, :networks, :group_of_lines do - resources :stop_areas do - resources :access_points - resources :stop_area_copies - resources :stop_area_parents - resources :stop_area_children - resources :stop_area_routing_lines - resources :stop_area_routing_stops - member do - get 'add_children' - get 'select_parent' - get 'add_routing_lines' - get 'add_routing_stops' - end - end resources :routes do resources :journey_patterns do member do @@ -164,10 +134,7 @@ ChouetteIhm::Application.routes.draw do resources :stop_areas do resources :access_points resources :stop_area_copies - resources :stop_area_parents - resources :stop_area_children resources :stop_area_routing_lines - resources :stop_area_routing_stops member do get 'add_children' get 'select_parent' @@ -181,25 +148,11 @@ ChouetteIhm::Application.routes.draw do end resources :connection_links do - resources :connection_link_areas + resources :stop_areas member do get 'select_areas' end - resources :stop_areas do - resources :access_points - resources :stop_area_parents - resources :stop_area_children - resources :stop_area_routing_lines - resources :stop_area_routing_stops - member do - get 'add_children' - get 'select_parent' - get 'add_routing_lines' - get 'add_routing_stops' - end - end end - resources :clean_ups end |
