Module: AutocompleteHelper
- Defined in:
- lib/autocomplete_helper.rb
Instance Method Summary collapse
- #_uuid ⇒ Object
-
#autocomplete(options = {}) ⇒ Object
generate autocomplete text-field.
Instance Method Details
#_uuid ⇒ Object
39 40 41 42 |
# File 'lib/autocomplete_helper.rb', line 39 def _uuid o = [('a'..'z'),('A'..'Z'),(0..9)].map{|i| i.to_a}.flatten; string = (0..10).map{ o[rand(o.length)] }.join; end |
#autocomplete(options = {}) ⇒ Object
generate autocomplete text-field
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/autocomplete_helper.rb', line 4 def autocomplete(={}) return nil unless [:model] [:name] ||= :autocomplete_keyword [:multi] ||= false; [:multi_height] ||= 150 [:uuid] = _uuid [:map][:value] ||= :id [:map][:label] ||= [:name] [:map][:search] ||= [] #txt_name = options[:multi] ? "autocomplete-keyword-#{options[:uuid]}" : options[:name] txt_name = "autocomplete-keyword-#{options[:uuid]}" ret = [] ret << javascript_include_tag("autocomplete") ret << stylesheet_link_tag("autocomplete") ret << label_tag([:name], [:model].camelize) ret << text_field_tag(txt_name, nil, { :onfocus => "Autocomplete(this, " + .to_json.to_s + ")" }) if [:multi] ret << content_tag(:div, '<a class="autocomplete-remove" href="javascript:void(0);">remove selected</a> select <a href="javascript:void(0)" class="autocomplete-select-all">all</a> / <a href="javascript:void(0)" class="autocomplete-select-none">none</a>', :class=>"autocomplete-multi-controls") ret << content_tag(:div, "", :class=>"autocomplete-multi-container", :style=>"height: #{options[:multi_height]}px") ret << content_tag(:div, "<span class=\"length\">0</span> items", :class=>"autocomplete-multi-status") else ret << hidden_field_tag([:name], "") end return ret.join("\r\n") end |