diff options
| author | Luc Donnet | 2014-12-02 11:47:49 +0100 |
|---|---|---|
| committer | Luc Donnet | 2014-12-02 11:47:49 +0100 |
| commit | 228c5a383eff1c6175a97a8ed446d6777b9310c8 (patch) | |
| tree | 742766cde2cac2d495d1e7995d64646269eb22d6 | |
| parent | c5379f821a7f280f296f0b0dd0180aa57ce6b9c8 (diff) | |
| download | chouette-core-228c5a383eff1c6175a97a8ed446d6777b9310c8.tar.bz2 | |
Fix autocomplete stop areas in one line Refs #0030224
| -rw-r--r-- | Gemfile.lock | 3 | ||||
| -rw-r--r-- | app/assets/stylesheets/vendor/token-input.css | 2 | ||||
| -rw-r--r-- | app/controllers/autocomplete_stop_areas_controller.rb | 22 | ||||
| -rw-r--r-- | app/helpers/application_helper.rb | 6 | ||||
| -rw-r--r-- | app/inputs/search_stop_area_input.rb | 41 | ||||
| -rw-r--r-- | app/views/autocomplete_stop_areas/index.rabl | 17 | ||||
| -rw-r--r-- | app/views/autocomplete_stop_areas/show.rabl | 18 | ||||
| -rw-r--r-- | app/views/connection_links/select_areas.html.erb | 4 | ||||
| -rw-r--r-- | app/views/stop_areas/add_children.html.erb | 2 | ||||
| -rw-r--r-- | app/views/stop_areas/add_routing_stops.html.erb | 2 | ||||
| -rw-r--r-- | app/views/stop_areas/select_parent.html.erb | 2 |
11 files changed, 73 insertions, 46 deletions
diff --git a/Gemfile.lock b/Gemfile.lock index da39fbd57..7ee8f548a 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -217,9 +217,8 @@ GEM polyamorous (1.1.0) activerecord (>= 3.0) polyglot (0.3.5) - rabl (0.7.8) + rabl (0.11.4) activesupport (>= 2.3.14) - multi_json (~> 1.0) rack (1.4.5) rack-cache (1.2) rack (>= 0.4) diff --git a/app/assets/stylesheets/vendor/token-input.css b/app/assets/stylesheets/vendor/token-input.css index 89dbd802e..5fccc6a38 100644 --- a/app/assets/stylesheets/vendor/token-input.css +++ b/app/assets/stylesheets/vendor/token-input.css @@ -62,7 +62,7 @@ li.token-input-token p { margin: 0; } -li.token-input-token span { +li.token-input-token span.token-input-delete-token { float: right; color: #777; cursor: pointer; diff --git a/app/controllers/autocomplete_stop_areas_controller.rb b/app/controllers/autocomplete_stop_areas_controller.rb index 740383537..64a62efe5 100644 --- a/app/controllers/autocomplete_stop_areas_controller.rb +++ b/app/controllers/autocomplete_stop_areas_controller.rb @@ -1,25 +1,19 @@ -class AutocompleteStopAreasController < ApplicationController - include ApplicationHelper +class AutocompleteStopAreasController < InheritedResources::Base + respond_to :json, :only => [:index, :children, :parent, :physicals] + 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 + def referential + @referential ||= current_organisation.referentials.find params[:referential_id] + end protected - def referential - @referential ||= current_organisation.referentials.find params[:referential_id] - end - - def stop_areas_by_name + def collection result = [] if physical_filter? result = referential.stop_areas.physical diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index bb8cf84e4..88ff3fecf 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -1,5 +1,9 @@ module ApplicationHelper - + + def stop_area_picture_url(stop_area) + image_path("map/#{stop_area.area_type.underscore}.png") + end + def selected_referential? @referential.present? and not @referential.new_record? end diff --git a/app/inputs/search_stop_area_input.rb b/app/inputs/search_stop_area_input.rb index 901715dc1..2365947d0 100644 --- a/app/inputs/search_stop_area_input.rb +++ b/app/inputs/search_stop_area_input.rb @@ -1,29 +1,42 @@ class SearchStopAreaInput < Formtastic::Inputs::SearchInput - + def search if options[:json] tokenLimit = options[:tokenLimit].present? ? options[:tokenLimit] : "null" template.content_tag( :script, ("$(document).ready(function() { + var item_name = function( item){ - var result = item.name; - console.log( item ); - console.log( item.registration_number ); - if ( item.registration_number !=null && item.registration_number.length > 0) { - result += ' (' + item.registration_number + ')'; + var result = item.short_name; + if ( item.short_registration_number != '' ) { + result += ' <small>[' + item.short_registration_number + ']</small>'; } return result; }; - var item_format = function( item ){ - var info = ''; - if ( item.zip_code != null ) { - info += item.zip_code + ' '; - } - if ( item.city_name != null ) { - info += item.city_name; + + var item_localization = function( item){ + var localization = item.zip_code + ' ' + item.short_city_name; + return localization; + }; + + var item_format = function( item ){ + var name = item_name( item ); + var localization = item_localization( item ); + + html_result = '<li>'; + html_result += '<span><image src=\"' + item.stop_area_path + '\" height=\"25px\" width=\"25px\"></span>' + if(name != '') + { + html_result += '<span style=\"height:25px; line-height:25px; margin-left: 5px; \">' + name + '</span>' ; + } + if(localization != '') + { + html_result += '<small style=\"height:25px; line-height:25px; margin-left: 10px; color: #555; \">' + localization + '</small>'; } - return '<li><div class=\"name\">' + item_name( item) + '</div><div class=\"info\">' + item.area_type + '</div><div class=\"info\">' + info + '</div></li>' + html_result += '</li>'; + return html_result; }; + $('##{dom_id}').tokenInput('#{options[:json]}', { crossDomain: false, tokenLimit: #{tokenLimit}, diff --git a/app/views/autocomplete_stop_areas/index.rabl b/app/views/autocomplete_stop_areas/index.rabl index 9864ff2d3..6d81442c7 100644 --- a/app/views/autocomplete_stop_areas/index.rabl +++ b/app/views/autocomplete_stop_areas/index.rabl @@ -1,9 +1,18 @@ 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 || "" } + { + :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) || "" + } end -node :area_type do |area| - I18n.t("area_types.label.#{area.area_type.underscore}") || "" -end +node(:stop_area_path) { |stop_area| + stop_area_picture_url(stop_area) || "" +} diff --git a/app/views/autocomplete_stop_areas/show.rabl b/app/views/autocomplete_stop_areas/show.rabl index 989f6f4b1..73ce277cf 100644 --- a/app/views/autocomplete_stop_areas/show.rabl +++ b/app/views/autocomplete_stop_areas/show.rabl @@ -1,10 +1,18 @@ 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 || "" } + { + :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) || "" + } end -node :area_type do |area| - I18n.t("area_types.label.#{area.area_type.underscore}") || "" -end +node(:stop_area_path) { |stop_area| + stop_area_picture_url(stop_area) || "" +} diff --git a/app/views/connection_links/select_areas.html.erb b/app/views/connection_links/select_areas.html.erb index 0d8f25351..b4c40c5f6 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_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 } %> + <%= 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, :scope => self).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, :scope => self).render } %> <% end %> <%= form.actions do %> diff --git a/app/views/stop_areas/add_children.html.erb b/app/views/stop_areas/add_children.html.erb index 362915a54..4d30ba674 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_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 } %> + <%= 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, :scope => self ).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 8675c199b..310e2f8b0 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 => :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 } %> + <%= 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, :scope => self).render } %> <% end %> <%= form.actions do %> diff --git a/app/views/stop_areas/select_parent.html.erb b/app/views/stop_areas/select_parent.html.erb index 9a830d67d..3f550d370 100644 --- a/app/views/stop_areas/select_parent.html.erb +++ b/app/views/stop_areas/select_parent.html.erb @@ -3,7 +3,7 @@ <%= semantic_form_for [@referential, @stop_area] do |form| %> <div> <%= 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 } %> + <%= 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, :view_path => 'app/views', :format => :json, :scope => self ).render } %> <% end %> <%= form.actions do %> |
