module ActionView::Helpers::JqueryUiHelper

Constants

JQUERY_VAR
SCRIPTACULOUS_EFFECTS

Public Instance Methods

array_or_string_for_javascript(option) click to toggle source
# File lib/action_view/helpers/jquery_ui_helper.rb, line 153
def array_or_string_for_javascript(option)
  if option.kind_of?(Array)
    "['#{option.join('\',\'')}']"
  elsif !option.nil?
    "'#{option}'"
  end
end
draggable_element(element_id, options = {}) click to toggle source
# File lib/action_view/helpers/jquery_ui_helper.rb, line 121
def draggable_element(element_id, options = {})
  javascript_tag(draggable_element_js(element_id, options).chop!)
end
draggable_element_js(element_id, options = {}) click to toggle source
# File lib/action_view/helpers/jquery_ui_helper.rb, line 125
def draggable_element_js(element_id, options = {})
  %(#{JQUERY_VAR}("#{jquery_id(element_id)}").draggable(#{options_for_javascript(options)});)
end
drop_receiving_element(element_id, options = {}) click to toggle source
# File lib/action_view/helpers/jquery_ui_helper.rb, line 129
def drop_receiving_element(element_id, options = {})
  javascript_tag(drop_receiving_element_js(element_id, options).chop!)
end
drop_receiving_element_js(element_id, options = {}) click to toggle source
# File lib/action_view/helpers/jquery_ui_helper.rb, line 133
def drop_receiving_element_js(element_id, options = {})
  #convert similar options
  options[:hoverClass] = options.delete(:hoverclass) if options[:hoverclass]
  options[:drop] = options.delete(:onDrop) if options[:onDrop]

  if options[:drop] || options[:url]
    options[:with] ||= "'id=' + encodeURIComponent(#{JQUERY_VAR}(ui.draggable).attr('id'))"
    options[:drop] ||= "function(ev, ui){" + remote_function(options) + "}"
  end

  options.delete_if { |key, value| JqueryHelper::AJAX_OPTIONS.include?(key) }

  options[:accept] = array_or_string_for_javascript(options[:accept]) if options[:accept]
  [:activeClass, :hoverClass, :tolerance].each do |option|
    options[option] = "'#{options[option]}'" if options[option]
  end

  %(#{JQUERY_VAR}('#{jquery_id(element_id)}').droppable(#{options_for_javascript(options)});)
end
sortable_element(element_id, options = {}) click to toggle source
# File lib/action_view/helpers/jquery_ui_helper.rb, line 68
def sortable_element(element_id, options = {})
  javascript_tag(sortable_element_js(element_id, options).chop!)
end
visual_effect(name, element_id = false, js_options = {}) click to toggle source
# File lib/action_view/helpers/jquery_ui_helper.rb, line 36
def visual_effect(name, element_id = false, js_options = {})
  if SCRIPTACULOUS_EFFECTS.has_key? name.to_sym
    effect = SCRIPTACULOUS_EFFECTS[name.to_sym]
    name = effect[:method]
    mode = effect[:mode]
    js_options = js_options.merge(effect[:options]) if effect[:options]
  end

  [:color, :direction, :startcolor, :endcolor].each do |option|
    js_options[option] = "'#{js_options[option]}'" if js_options[option]
  end

  if js_options.has_key? :duration
    speed = js_options.delete :duration
    speed = (speed * 1000).to_i unless speed.nil?
  else
    speed = js_options.delete :speed
  end

  if %w[fadeIn fadeOut fadeToggle].include? name
    javascript = "#{JQUERY_VAR}(\"#{jquery_id(element_id)}\").#{name}("
    javascript << "#{speed}" unless speed.nil?
    javascript << ");"
  else
    javascript = "#{JQUERY_VAR}(\"#{jquery_id(element_id)}\").#{mode || 'effect'}('#{name}'"
    javascript << ",#{options_for_javascript(js_options)}" unless speed.nil? && js_options.empty?
    javascript << ",#{speed}" unless speed.nil?
    javascript << ");"
  end

end