class IRuby::Input::Multiple

Public Instance Methods

widget_css() click to toggle source
# File lib/iruby/input/multiple.rb, line 25
      def widget_css
        <<-CSS
          .iruby-multiple { 
            display: table;
            min-width: 25%;
          }
          .form-control.iruby-multiple-container { 
            display: table; 
          }
        CSS
      end
widget_html() click to toggle source
# File lib/iruby/input/multiple.rb, line 56
def widget_html
  widget_label do 
    div class: 'form-control iruby-multiple-container' do 
      params = {
        size: @size,
        multiple: true,
        class: 'iruby-multiple', 
        :'data-iruby-key' => @key
      }
      
      select **params do 
        @options.each do |o| 
          option o, selected: @default.include?(o)
        end
      end
    end
  end
end
widget_js() click to toggle source
# File lib/iruby/input/multiple.rb, line 37
      def widget_js
        <<-JS
          $('.iruby-multiple').change(function(){
            var multiple = $(this);
            multiple.data('iruby-value', []);

            multiple.find(':selected').each(function(){
              multiple.data('iruby-value').push($(this).val());
            });

            if (multiple.data('iruby-value').length == 0) {
              multiple.data('iruby-value', null);
            }
          });

          $('.iruby-multiple').trigger('change');
        JS
      end