Class: ActiveAdminAddons::ToggleBoolBuilder
- Inherits:
-
CustomBuilder
- Object
- CustomBuilder
- ActiveAdminAddons::ToggleBoolBuilder
- Defined in:
- lib/activeadmin_addons/addons/toggle_bool_builder.rb
Constant Summary collapse
- SWITCHES_IMAGES_SIZE =
"40x16"
Instance Attribute Summary
Attributes inherited from CustomBuilder
#args, #block, #context, #model
Instance Method Summary collapse
Methods inherited from CustomBuilder
builder_method_name, create_view_methods, #initialize
Constructor Details
This class inherits a constructor from ActiveAdminAddons::CustomBuilder
Instance Method Details
#conditional_eval_hide? ⇒ Boolean
34 35 36 37 38 39 40 41 42 |
# File 'lib/activeadmin_addons/addons/toggle_bool_builder.rb', line 34 def conditional_eval_hide? [:if, :unless].any? do |cond| if [cond] raise ArgumentError, "'#{cond}' option should be a proc" unless [cond].is_a?(Proc) result = [cond].call(model) cond == :if ? !result : result end end end |
#render ⇒ Object
5 6 7 8 9 10 11 12 13 |
# File 'lib/activeadmin_addons/addons/toggle_bool_builder.rb', line 5 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 [true, false].each do |value| context.span switch_image_for value end end end |
#switch_image_for(value) ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/activeadmin_addons/addons/toggle_bool_builder.rb', line 15 def switch_image_for(value) img_tag_class = 'toggle-bool-switch' img_tag_class += ' hidden-switch' if value == !data img_tag_class += ' notify-success' if [:success_message] context.image_tag( "switches/switch_#{value ? :on : :off}.png", size: SWITCHES_IMAGES_SIZE, id: "toggle-#{class_name}-#{model.id}-#{attribute}-#{value}", class: img_tag_class, 'data-model': class_name, 'data-object_id': model.id, 'data-field': attribute, 'data-value': value, 'data-url': context.resource_path(model), 'data-success_message': [:success_message] ) end |