diff options
| author | Xinhui | 2017-12-28 11:07:42 +0100 | 
|---|---|---|
| committer | Xinhui | 2017-12-28 11:07:42 +0100 | 
| commit | 81d44acf0ea19349b36699b6cded54a42a7c39d7 (patch) | |
| tree | b13c43f8e512f4e2c5448f8876a64bbd923da87c /app | |
| parent | 4bc32eb584ed669a8859b4897d020781d2d4ff43 (diff) | |
| download | chouette-core-81d44acf0ea19349b36699b6cded54a42a7c39d7.tar.bz2 | |
New route autocomplete_stop_area_referential_stop_areas
Refs #5313
Diffstat (limited to 'app')
| -rw-r--r-- | app/controllers/stop_areas_controller.rb | 12 | ||||
| -rw-r--r-- | app/views/stop_areas/_form.html.slim | 2 | ||||
| -rw-r--r-- | app/views/stop_areas/autocomplete.rabl | 24 | 
3 files changed, 32 insertions, 6 deletions
| diff --git a/app/controllers/stop_areas_controller.rb b/app/controllers/stop_areas_controller.rb index b478d38fa..178a2413f 100644 --- a/app/controllers/stop_areas_controller.rb +++ b/app/controllers/stop_areas_controller.rb @@ -1,7 +1,7 @@  class StopAreasController < ChouetteController    include ApplicationHelper    include Activatable -   +    defaults :resource_class => Chouette::StopArea    belongs_to :stop_area_referential @@ -14,10 +14,12 @@ class StopAreasController < ChouetteController    respond_to :html, :kml, :xml, :json    respond_to :js, :only => :index -  # def complete -  #   @stop_areas = line.stop_areas -  #   render :layout => false -  # end +  def autocomplete +    scope = stop_area_referential.stop_areas.where(deleted_at: nil) +    args  = [].tap{|arg| 4.times{arg << "%#{params[:q]}%"}} +    @stop_areas = scope.where("unaccent(name) ILIKE unaccent(?) OR unaccent(city_name) ILIKE unaccent(?) OR registration_number ILIKE ? OR objectid ILIKE ?", *args).limit(50) +    @stop_areas +  end    def select_parent      @stop_area = stop_area diff --git a/app/views/stop_areas/_form.html.slim b/app/views/stop_areas/_form.html.slim index 399f57b3b..ef19d248a 100644 --- a/app/views/stop_areas/_form.html.slim +++ b/app/views/stop_areas/_form.html.slim @@ -7,7 +7,7 @@          = f.input :id, as: :hidden          = f.input :name, :input_html => {:title => t("formtastic.titles#{format_restriction_for_locales(@referential)}.stop_area.name")} -        = f.input :parent_id, as: :select, :collection => [f.object.parent_id], input_html: { data: { select2_ajax: 'true', url: referential_autocomplete_stop_areas_path(@stop_area_referential), initvalue: {id: f.object.parent_id, text: f.object.parent.try(:full_name)}}} +        = f.input :parent_id, as: :select, :collection => [f.object.parent_id], input_html: { data: { select2_ajax: 'true', url: autocomplete_stop_area_referential_stop_areas_path(@stop_area_referential), initvalue: {id: f.object.parent_id, text: f.object.parent.try(:full_name)}}}          = f.input :area_type, as: :select, :input_html => {:disabled => !@stop_area.new_record?}, :collection => Chouette::AreaType.options, :include_blank => false diff --git a/app/views/stop_areas/autocomplete.rabl b/app/views/stop_areas/autocomplete.rabl new file mode 100644 index 000000000..3208289b5 --- /dev/null +++ b/app/views/stop_areas/autocomplete.rabl @@ -0,0 +1,24 @@ +collection @stop_areas + +node do |stop_area| +  { +    :id                        => stop_area.id, +    :registration_number       => stop_area.registration_number || "", +    :short_registration_number => truncate(stop_area.registration_number, :length => 10) || "", +    :name                      => stop_area.name || "", +    :short_name                => truncate(stop_area.name, :length => 30) || "", +    :zip_code                  => stop_area.zip_code || "", +    :city_name                 => stop_area.city_name || "", +    :short_city_name           => truncate(stop_area.city_name, :length => 15) || "", +    :user_objectid             => stop_area.user_objectid, +    :longitude                 => stop_area.longitude, +    :latitude                  => stop_area.latitude, +    :area_type                 => stop_area.area_type, +    :comment                   => stop_area.comment, +    :text                      => stop_area.full_name +  } +end + +node(:stop_area_path) { |stop_area| +  stop_area_picture_url(stop_area) || "" +} | 
