diff options
| author | Marc Florisson | 2014-11-18 22:23:09 +0100 |
|---|---|---|
| committer | Marc Florisson | 2014-11-18 22:23:09 +0100 |
| commit | d3dbdbbc532eacb11d77e1912f822fed92e30547 (patch) | |
| tree | 59dd40d9eb085cd59969a9ab2be314da3d518f00 /app | |
| parent | 0df2ab4ef16ade6547db4f707472cc9506c12892 (diff) | |
| download | chouette-core-d3dbdbbc532eacb11d77e1912f822fed92e30547.tar.bz2 | |
add registration_number in stop area auto complete. Mantis 30118
Diffstat (limited to 'app')
| -rw-r--r-- | app/controllers/stop_area_children_controller.rb | 20 | ||||
| -rw-r--r-- | app/controllers/stop_area_parents_controller.rb | 20 | ||||
| -rw-r--r-- | app/inputs/search_stop_area_input.rb | 35 | ||||
| -rw-r--r-- | app/views/stop_areas/index.rabl | 4 | ||||
| -rw-r--r-- | app/views/stop_areas/show.rabl | 2 |
5 files changed, 42 insertions, 39 deletions
diff --git a/app/controllers/stop_area_children_controller.rb b/app/controllers/stop_area_children_controller.rb index f115ff35a..773f6e1b8 100644 --- a/app/controllers/stop_area_children_controller.rb +++ b/app/controllers/stop_area_children_controller.rb @@ -3,27 +3,19 @@ class StopAreaChildrenController < ChouetteController respond_to :json, :only => :index def index - respond_to do |format| - format.json { render :json => children_maps } - end + respond_to do |format| + format.json { render :json => children_maps } + end end protected def children_maps - children.collect do |area| - { :id => area.id.to_s, - :name => area.name, - :country_code => area.country_code, - :zip_code => area.zip_code || "", - :city_name => area.city_name || "", - :area_type => t("area_types.label.#{area.area_type.underscore}") - } - end + children.map { |c| c.attributes} end - def children - referential.stop_areas.find(params[:stop_area_id]).possible_children.select{ |p| p.name =~ /#{params[:q]}/i } + 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 index 1dbb0796c..06b462075 100644 --- a/app/controllers/stop_area_parents_controller.rb +++ b/app/controllers/stop_area_parents_controller.rb @@ -3,25 +3,17 @@ class StopAreaParentsController < ChouetteController respond_to :json, :only => :index def index - respond_to do |format| - format.json { render :json => parents_maps } - end + respond_to do |format| + format.json { render :json => parents_maps } + end end def parents_maps - parents.collect do |area| - { :id => area.id.to_s, - :name => area.name, - :country_code => area.country_code, - :zip_code => area.zip_code || "", - :city_name => area.city_name || "", - :area_type => t("area_types.label.#{area.area_type.underscore}") - } - end + parents.map { |p| p.attributes} end - def parents - referential.stop_areas.find(params[:stop_area_id]).possible_parents.select{ |p| p.name =~ /#{params[:q]}/i } + 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/inputs/search_stop_area_input.rb b/app/inputs/search_stop_area_input.rb index 1feb58d00..901715dc1 100644 --- a/app/inputs/search_stop_area_input.rb +++ b/app/inputs/search_stop_area_input.rb @@ -2,9 +2,28 @@ class SearchStopAreaInput < Formtastic::Inputs::SearchInput def search if options[:json] - tokenLimit = options[:tokenLimit].present? ? options[:tokenLimit] : "null" + 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 + ')'; + } + 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; + } + return '<li><div class=\"name\">' + item_name( item) + '</div><div class=\"info\">' + item.area_type + '</div><div class=\"info\">' + info + '</div></li>' + }; $('##{dom_id}').tokenInput('#{options[:json]}', { crossDomain: false, tokenLimit: #{tokenLimit}, @@ -13,21 +32,21 @@ class SearchStopAreaInput < Formtastic::Inputs::SearchInput hintText: '#{options[:hint_text]}', noResultsText: '#{options[:no_result_text]}', searchingText: '#{options[:searching_text]}', - resultsFormatter: function(item){ return '<li><div class=\"name\">' + item.name + '</div><div class=\"info\">' + item.area_type + '</div><div class=\"info\">' + item.zip_code + ' ' + item.city_name + '</div></li>' }, - tokenFormatter: function(item){ return '<li><div class=\"name\">' + item.name + '</div><div class=\"info\">' + item.area_type + '</div><div class=\"info\">' + item.zip_code + ' ' + item.city_name + '</div></li>' }, + resultsFormatter: item_format, + tokenFormatter: item_format }); });").html_safe) end end - + def to_html - input_wrapping do + input_wrapping do label_html << builder.search_field(method, input_html_options) << search end end - + def input_html_options super.merge({ :required => nil, @@ -35,6 +54,6 @@ class SearchStopAreaInput < Formtastic::Inputs::SearchInput :class => 'token-input', 'data-model-name' => object.class.model_name.human }) - end - + end + end diff --git a/app/views/stop_areas/index.rabl b/app/views/stop_areas/index.rabl index 72b736858..d7f2365bb 100644 --- a/app/views/stop_areas/index.rabl +++ b/app/views/stop_areas/index.rabl @@ -1,9 +1,9 @@ collection @stop_areas node do |stop_area| - { :id => stop_area.id, :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 || "", :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
\ No newline at end of file +end diff --git a/app/views/stop_areas/show.rabl b/app/views/stop_areas/show.rabl index a03a3511d..f406c4eff 100644 --- a/app/views/stop_areas/show.rabl +++ b/app/views/stop_areas/show.rabl @@ -1,7 +1,7 @@ object @stop_area node do |stop_area| - { :id => stop_area.id, :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 || "", :name => stop_area.name || "", :zip_code => stop_area.zip_code || "", :city_name => stop_area.city_name || "" } end node :area_type do |area| |
