Class: Matestack::Ui::Bootstrap::Form::Input
- Inherits:
-
VueJs::Components::Form::Input
- Object
- VueJs::Components::Form::Input
- Matestack::Ui::Bootstrap::Form::Input
- Defined in:
- lib/matestack/ui/bootstrap/form/input.rb
Instance Method Summary collapse
- #bootstrap_file_input_attributes ⇒ Object
- #bootstrap_input_attributes ⇒ Object
- #bootstrap_range_attributes ⇒ Object
- #file_input ⇒ Object
- #form_file_wrapper_class ⇒ Object
- #input_error_class ⇒ Object
- #render_errors ⇒ Object
- #render_form_text ⇒ Object
- #response ⇒ Object
Instance Method Details
#bootstrap_file_input_attributes ⇒ Object
56 57 58 59 60 61 |
# File 'lib/matestack/ui/bootstrap/form/input.rb', line 56 def bootstrap_file_input_attributes { class: ([:class] || "") << (" form-file-input"), disabled: context.disabled } end |
#bootstrap_input_attributes ⇒ Object
36 37 38 39 40 41 42 43 44 |
# File 'lib/matestack/ui/bootstrap/form/input.rb', line 36 def bootstrap_input_attributes { class: ([:class] || "") << (" form-control"), disabled: context.disabled, min: context.min, max: context.max, step: context.step } end |
#bootstrap_range_attributes ⇒ Object
46 47 48 49 50 51 52 53 54 |
# File 'lib/matestack/ui/bootstrap/form/input.rb', line 46 def bootstrap_range_attributes { class: ([:class] || "") << (" form-range"), disabled: context.disabled, min: context.min, max: context.max, step: context.step } end |
#file_input ⇒ Object
74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 |
# File 'lib/matestack/ui/bootstrap/form/input.rb', line 74 def file_input div class: form_file_wrapper_class do input .merge(input_attributes).merge(bootstrap_file_input_attributes) label class: "form-file-label", for: attribute_key do span class: "form-file-text", "v-if": "data['#{attribute_key}']" do if context.multiple span "v-for": "file in data['#{attribute_key}']" do plain "{{ file['name'] }}" end else plain "{{ data['#{attribute_key}']['name'] }}" end end span class: "form-file-text", "v-if": "!data['#{attribute_key}']" do plain context.placeholder || "Choose file" end span class: "form-file-button" do plain context. || "Browse" end end render_errors end end |
#form_file_wrapper_class ⇒ Object
63 64 65 66 67 68 69 70 71 72 |
# File 'lib/matestack/ui/bootstrap/form/input.rb', line 63 def form_file_wrapper_class case context.variant when :lg ([:class] || "") << (" form-file form-file-lg") when :sm ([:class] || "") << (" form-file form-file-sm") else ([:class] || "") << (" form-file") end end |
#input_error_class ⇒ Object
106 107 108 |
# File 'lib/matestack/ui/bootstrap/form/input.rb', line 106 def input_error_class 'is-invalid' end |
#render_errors ⇒ Object
98 99 100 101 102 103 104 |
# File 'lib/matestack/ui/bootstrap/form/input.rb', line 98 def render_errors if display_errors? div class: 'invalid-feedback', 'v-for': "error in #{error_key}" do plain '{{ error }}' end end end |
#render_form_text ⇒ Object
110 111 112 113 114 |
# File 'lib/matestack/ui/bootstrap/form/input.rb', line 110 def render_form_text div class: "form-text form-text-for-#{attribute_key}" do plain context.form_text end end |
#response ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/matestack/ui/bootstrap/form/input.rb', line 15 def response div class: "matestack-ui-bootstrap-input" do label input_label, ":for": id, class: "form-label" if input_label case context.type when :range input .merge(input_attributes).merge(bootstrap_range_attributes) if context.show_value div class: "form-text form-text-for-#{attribute_key}" do plain "{{ data['#{attribute_key}'] }}" end end when :file file_input else input .merge(input_attributes).merge(bootstrap_input_attributes) render_errors end render_form_text if context.form_text end end |