Module: ActionView::Helpers::SliderHelper
- Defined in:
- lib/helpers/slider_helper.rb
Instance Method Summary collapse
-
#slider_element(element_id, options = {}) ⇒ Object
Creates a slider control out of an element.
-
#slider_field(object, method, options = {}) ⇒ Object
Creates a simple slider control and associates it with a hidden text field.
- #slider_stylesheet ⇒ Object
Instance Method Details
#slider_element(element_id, options = {}) ⇒ Object
Creates a slider control out of an element.
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 63 64 65 66 67 |
# File 'lib/helpers/slider_helper.rb', line 30 def (element_id, ={}) prepare = "Element.cleanWhitespace('#{element_id}');" [:change, :slide].each do |k| if .include?(k) name = 'on' + k.to_s.capitalize [name] = "function(value){#{[k]}}" .delete k end end [:spans, :axis].each do |k| [k] = array_or_string_for_javascript([k]) if [k] end [:sliderValue] = array_or_numeric_for_javascript([:sliderValue]) if [:sliderValue] [:range] = "$R(#{[:range].min},#{[:range].max})" if [:range] [:values] = "$R(#{[:values].min},#{[:values].max})" if [:values] = '' if [:hidden_fields] == true = if [:handles].kind_of?(Array) hidden_fields = [:handles].collect { |h| hidden_field_tag(h.to_s + "_value") } hidden_fields.join("\n") elsif ![:handles].nil? hidden_field_tag([:handles].to_s + "_value") end .delete(:hidden_fields) end handle = array_or_string_for_javascript([:handles]) || "$('#{element_id}').firstChild" .delete :handles += javascript_tag("#{prepare} #{element_id} = new Control.Slider(#{handle},'#{element_id}', #{()})") end |
#slider_field(object, method, options = {}) ⇒ Object
Creates a simple slider control and associates it with a hidden text field
70 71 72 73 74 75 76 77 78 79 80 81 82 |
# File 'lib/helpers/slider_helper.rb', line 70 def (object, method, ={}) .merge!({ :change => "$('#{object}_#{method}').value = value", :hidden_fields => false }) if = instance_variable_get("@#{object}").send(method) .merge!({ :sliderValue => }) end hidden_field(object, method) << content_tag('div',content_tag('div', ''), :class => 'slider', :id => "#{object}_#{method}_slider") << ("#{object}_#{method}_slider", ).html_safe end |
#slider_stylesheet ⇒ Object
84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 |
# File 'lib/helpers/slider_helper.rb', line 84 def content_tag("style", <<-EOT div.slider { width: 150px; height: 5px; margin-top:5px; margin-bottom:5px; background: #ddd; position: relative; } div.slider div { position:absolute; width:8px; height:15px; margin-top:-5px; background: #999; border:1px outset white; } EOT ) end |