Class: Forms::Toggle

Inherits:
Phlex::HTML
  • Object
show all
Includes:
PhlexForms::DelegatedField
Defined in:
lib/forms/toggle.rb

Overview

A model-bound toggle switch, delegating to DaisyUI::Toggle. Emits a hidden field carrying the unchecked value so an unchecked box still submits (the Rails checkbox convention).

Constant Summary

Constants included from PhlexForms::DelegatedField

PhlexForms::DelegatedField::IGNORED_MODIFIERS

Instance Method Summary collapse

Constructor Details

#initialize(*modifiers, name: nil, id: nil, value: "1", unchecked_value: "0", checked: false, error: false, disabled: false, required: false, **attributes) ⇒ Toggle

Returns a new instance of Toggle.



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/forms/toggle.rb', line 10

def initialize(*modifiers, name: nil, id: nil, value: "1", unchecked_value: "0",
               checked: false, error: false, disabled: false, required: false, **attributes)
  @modifiers = normalize_modifiers(modifiers)
  @name = name
  @id = id
  @value = value
  @unchecked_value = unchecked_value
  @checked = checked
  @error = error
  @disabled = disabled
  @required = required
  @full_width = false
  @attributes = attributes
  super()
end

Instance Method Details

#view_templateObject



26
27
28
29
# File 'lib/forms/toggle.rb', line 26

def view_template
  input(type: "hidden", name: @name, value: @unchecked_value) if @unchecked_value && @name
  render DaisyUI::Toggle.new(*daisy_modifiers, value: @value, **checkbox_attributes)
end