class CrowdaiAdmin::ToggleBooleans

Public Instance Methods

conditional_eval_hide?() click to toggle source
# File lib/crowdai_admin/toggle_booleans.rb, line 29
def conditional_eval_hide?
  [:if, :unless].any? do |cond|
    if options[cond]
      raise ArgumentError, "'#{cond}' option should be a proc" unless options[cond].is_a?(Proc)
      result = options[cond].call(model)
      cond == :if ? !result : result
    end
  end
end
render() click to toggle source
# File lib/crowdai_admin/toggle_booleans.rb, line 3
def render
  raise ArgumentError, 'Block should not be used in toggle bool columns' if block
  return if conditional_eval_hide?
  context.div class: 'toggle-bool-switches-container' do
    context.span toggle
  end
end
toggle() click to toggle source
# File lib/crowdai_admin/toggle_booleans.rb, line 11
def toggle
  toggle_classes = 'toggle-bool-switch'
  toggle_classes += ' on' if data
  toggle_classes += ' notify-success' if options[:success_message]

  context.span(
    '',
    id: "toggle-#{class_name}-#{model.id}-#{attribute}",
    class: toggle_classes,
    'data-model' => class_name,
    'data-object_id' => model.id,
    'data-field' => attribute,
    'data-value' => data,
    'data-url' => context.auto_url_for(model),
    'data-success_message' => options[:success_message]
  )
end