aboutsummaryrefslogtreecommitdiffstats
path: root/app/inputs/search_timeband_input.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/inputs/search_timeband_input.rb')
-rw-r--r--app/inputs/search_timeband_input.rb44
1 files changed, 44 insertions, 0 deletions
diff --git a/app/inputs/search_timeband_input.rb b/app/inputs/search_timeband_input.rb
new file mode 100644
index 000000000..bad262ef2
--- /dev/null
+++ b/app/inputs/search_timeband_input.rb
@@ -0,0 +1,44 @@
+class SearchTimebandInput < Formtastic::Inputs::SearchInput
+
+ def search
+ if options[:json]
+ template.content_tag( :script,
+ ("$(document).ready(function() {
+ var timeband_formatter = function(item){
+ return '<li>' + item.name + '</li>';
+ };
+ $('##{dom_id}').tokenInput('#{options[:json]}', {
+ zindex: 1061,
+ crossDomain: false,
+ tokenLimit: 1,
+ minChars: 2,
+ propertyToSearch: 'name',
+ preventDuplicates: true,
+ hintText: '#{options[:hint_text]}',
+ noResultsText: '#{options[:no_result_text]}',
+ searchingText: '#{options[:searching_text]}',
+ resultsFormatter: timeband_formatter,
+ tokenFormatter: timeband_formatter,
+ });
+ });").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