Class: Adminsite::MultiSelectBoxInput

Inherits:
Formtastic::Inputs::SelectInput
  • Object
show all
Includes:
ActionView::Helpers::FormOptionsHelper, ActionView::Helpers::FormTagHelper
Defined in:
app/inputs/adminsite/multi_select_box_input.rb

Instance Method Summary collapse

Instance Method Details

#collection_idObject



30
31
32
# File 'app/inputs/adminsite/multi_select_box_input.rb', line 30

def collection_id
  @collection_id ||= "#{object_name}_collection"
end

#multiple?Boolean

Returns:

  • (Boolean)


34
35
36
# File 'app/inputs/adminsite/multi_select_box_input.rb', line 34

def multiple?
  true
end

#operators_htmlObject



20
21
22
23
24
25
26
27
28
# File 'app/inputs/adminsite/multi_select_box_input.rb', line 20

def operators_html
  raw('<div class="operators"><div class="data-ops">') <<
  button_tag('Add',    type: 'button', onClick: "Adminsite.Inputs.addToTarget('##{wrapper_dom_id}'); false;" ) <<
  button_tag('Remove', type: 'button', onClick: "Adminsite.Inputs.removeFromTarget('##{wrapper_dom_id}'); false;" ) <<
  raw('</div><div class="order-ops">') <<
  button_tag('&#8679;'.html_safe, type: 'button', onClick: "Adminsite.Inputs.moveUp('##{dom_id}'); false;" ) <<
  button_tag('&#8681;'.html_safe, type: 'button', onClick: "Adminsite.Inputs.moveDown('##{dom_id}'); false;" ) <<
  raw('</div></div>')
end

#to_htmlObject



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# File 'app/inputs/adminsite/multi_select_box_input.rb', line 4

def to_html
  # super
  puts "this is my own version of Adminsite::MultiSelectBoxInput"
  diff_collection = collection.reject{|k,v| builder.object.send(input_name).include?(k) }
  input_wrapping do
    label_html <<
    raw("<div><span>Available #{(localized_label || humanized_method_name)}:</span><br/>") <<
    select_tag(:collection, options_for_select(diff_collection), input_html_options.merge(:class => 'source', :name=> "#{object_name}[collection][]", :id=> collection_id)) <<
    raw('</div>') <<
    operators_html <<
    raw("<div><span>Selected #{label_text}:</span><br/>") <<
    builder.select(input_name, builder.object.send(input_name), input_options, input_html_options.merge(:class => 'target') ) <<
    raw('</div>')
  end.html_safe
end