ref: master
app/helpers/token_helper.rb
1 2 3 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 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
module TokenHelper def jquery_token_input_messages_json(hintText = _('Type in an keyword'), noResultsText = _('No results'), searchingText = _('Searching...')) "hintText: '#{hintText}', noResultsText: '#{noResultsText}', searchingText: '#{searchingText}'" end def token_input_field_tag(name, element_id, search_action, options = {}, text_field_options = {}, html_options = {}) options[:min_chars] ||= 2 options[:hint_text] ||= _("Type in a search term") options[:no_results_text] ||= _("No results") options[:searching_text] ||= _("Searching...") options[:placeholder] ||= '' options[:search_delay] ||= 1000 options[:prevent_duplicates] ||= true options[:backspace_delete_item] ||= false options[:zindex] ||= 999 options[:focus] ||= false options[:avoid_enter] ||= true options[:on_result] ||= 'null' options[:on_add] ||= 'null' options[:on_delete] ||= 'null' options[:on_ready] ||= 'null' options[:query_param] ||= 'q' options[:theme] ||= 'null' options[:results_formatter] ||= 'null' options[:token_formatter] ||= 'null' result = text_field_tag(name, nil, text_field_options.merge(html_options.merge({:id => element_id}))) result += javascript_tag("jQuery('##{element_id}') .tokenInput('#{url_for(search_action)}', { minChars: #{options[:min_chars].to_json}, prePopulate: #{options[:pre_populate].to_json}, hintText: #{options[:hint_text].to_json}, noResultsText: #{options[:no_results_text].to_json}, searchingText: #{options[:searching_text].to_json}, placeholder: #{options[:placeholder].to_json}, searchDelay: #{options[:search_delay].to_json}, preventDuplicates: #{options[:prevent_duplicates].to_json}, backspaceDeleteItem: #{options[:backspace_delete_item].to_json}, zindex: #{options[:zindex].to_json}, queryParam: #{options[:query_param].to_json}, tokenLimit: #{options[:token_limit].to_json}, onResult: #{options[:on_result]}, onAdd: #{options[:on_add]}, onDelete: #{options[:on_delete]}, onReady: #{options[:on_ready]}, theme: #{options[:theme] == 'null' ? options[:theme] : options[:theme].to_json}, resultsFormater: #{options[:results_formatter]}, tokenFormater: #{options[:token_formatter]}, }); ") result += javascript_tag("jQuery('##{element_id}').focus();") if options[:focus] if options[:avoid_enter] result += javascript_tag("jQuery('#token-input-#{element_id}') .live('keydown', function(event){ if(event.keyCode == '13') return false; });") end result end end |