diff options
Diffstat (limited to 'app/inputs/reference_ids_input.rb')
| -rw-r--r-- | app/inputs/reference_ids_input.rb | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/app/inputs/reference_ids_input.rb b/app/inputs/reference_ids_input.rb new file mode 100644 index 000000000..a54be36b9 --- /dev/null +++ b/app/inputs/reference_ids_input.rb @@ -0,0 +1,42 @@ +class ReferenceIdsInput < Formtastic::Inputs::SearchInput + + def search + if options[:json] + tokenLimit = options[:tokenLimit].present? ? options[:tokenLimit] : "null" + template.content_tag( :script, + ("$(document).ready(function() { + + $('##{options[:id]}').tokenInput('#{options[:json]}', { + zindex: 1061, + disabled: #{options[:disabled] || false}, + crossDomain: false, + tokenLimit: #{tokenLimit}, + minChars: 2, + preventDuplicates: true, + hintText: '#{options[:hint_text]}', + noResultsText: '#{options[:no_result_text]}', + searchingText: '#{options[:searching_text]}', + }); + });").html_safe) + end + end + + def to_html + input_wrapping do + label_html << + builder.text_field(method, input_html_options) << + search + end + end + + def input_html_options + css_class = super[:class] + super.merge({ + :required => nil, + :autofocus => nil, + :class => "#{css_class} token-input", + 'data-model-name' => object.class.model_name.human + }) + end + +end |
