diff options
| author | Luc Donnet | 2014-09-18 08:39:57 +0200 |
|---|---|---|
| committer | Luc Donnet | 2014-09-18 08:39:57 +0200 |
| commit | 83ef73e839e2b9efd71fe74ab993cdf1ffa66903 (patch) | |
| tree | 48690e27f30437eaf7dafe4166f8c9df5c4f55d1 /app/inputs | |
| parent | dd081b8b95ab74ab9702dcf1035ae8f1b4c0289a (diff) | |
| download | chouette-core-83ef73e839e2b9efd71fe74ab993cdf1ffa66903.tar.bz2 | |
Fix data-pre render for stop areas and add time_table with token input Refs #0028814
Diffstat (limited to 'app/inputs')
| -rw-r--r-- | app/inputs/search_stop_area_input.rb | 2 | ||||
| -rw-r--r-- | app/inputs/search_time_table_input.rb | 40 |
2 files changed, 41 insertions, 1 deletions
diff --git a/app/inputs/search_stop_area_input.rb b/app/inputs/search_stop_area_input.rb index 8003a513a..44f9cf82a 100644 --- a/app/inputs/search_stop_area_input.rb +++ b/app/inputs/search_stop_area_input.rb @@ -13,7 +13,7 @@ class SearchStopAreaInput < Formtastic::Inputs::SearchInput 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><p>' + item.name + '</p></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>' }, }); });").html_safe) end diff --git a/app/inputs/search_time_table_input.rb b/app/inputs/search_time_table_input.rb new file mode 100644 index 000000000..49f266d7a --- /dev/null +++ b/app/inputs/search_time_table_input.rb @@ -0,0 +1,40 @@ +class SearchTimeTableInput < Formtastic::Inputs::SearchInput + + def search + if options[:json] + tokenLimit = options[:tokenLimit].present? ? options[:tokenLimit] : "null" + template.content_tag( :script, + ("$(document).ready(function() { + $('##{dom_id}').tokenInput('#{options[:json]}', { + crossDomain: false, + tokenLimit: #{tokenLimit}, + minChars: 2, + preventDuplicates: true, + hintText: '#{options[:hint_text]}', + noResultsText: '#{options[:no_result_text]}', + searchingText: '#{options[:searching_text]}', + resultsFormatter: function(item){ return '<li><div class=\"comment\">' + item.comment + '</div><div class=\"info\">' + item.time_table_bounding + '</div><div class=\"info\">' + item.composition_info + '</div></li>' }, + tokenFormatter: function(item){ return '<li><div class=\"comment\">' + item.comment + '</div><div class=\"info\">' + item.time_table_bounding + '</div><div class=\"info\">' + item.composition_info + '</div></li>' }, + }); + });").html_safe) + end + end + + def to_html + input_wrapping do + label_html << + builder.search_field(method, input_html_options) << + search + end + end + + def input_html_options + super.merge({ + :required => nil, + :autofocus => nil, + :class => 'token-input', + 'data-model-name' => object.class.model_name.human + }) + end + +end |
