Class: Matestack::Ui::Bootstrap::Form::Input
- Inherits:
-
Core::Form::Input::Base
- Object
- Core::Form::Input::Base
- Matestack::Ui::Bootstrap::Form::Input
- Defined in:
- app/concepts/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
54 55 56 57 58 59 |
# File 'app/concepts/matestack/ui/bootstrap/form/input.rb', line 54 def bootstrap_file_input_attributes { class: ([:class] || "") << (" form-file-input"), disabled: disabled } end |
#bootstrap_input_attributes ⇒ Object
36 37 38 39 40 41 42 |
# File 'app/concepts/matestack/ui/bootstrap/form/input.rb', line 36 def bootstrap_input_attributes { id: ([:id] || attr_key), class: ([:class] || "") << (" form-control"), disabled: disabled } end |
#bootstrap_range_attributes ⇒ Object
44 45 46 47 48 49 50 51 52 |
# File 'app/concepts/matestack/ui/bootstrap/form/input.rb', line 44 def bootstrap_range_attributes { class: ([:class] || "") << (" form-range"), disabled: disabled, min: min, max: max, steps: step } end |
#file_input ⇒ Object
72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 |
# File 'app/concepts/matestack/ui/bootstrap/form/input.rb', line 72 def file_input div class: form_file_wrapper_class do input html_attributes.merge(attributes: vue_attributes).merge(bootstrap_file_input_attributes) label class: "form-file-label", for: attr_key do span class: "form-file-text", attributes: { "v-if": "data['#{attr_key}']" } do if multiple span attributes: { "v-for": "file in data['#{attr_key}']" } do plain "{{ file['name'] }}" end else plain "{{ data['#{attr_key}']['name'] }}" end end span class: "form-file-text", attributes: { "v-if": "!data['#{attr_key}']" } do plain placeholder || "Choose file" end span class: "form-file-button", text: || "Browse" end render_errors end end |
#form_file_wrapper_class ⇒ Object
61 62 63 64 65 66 67 68 69 70 |
# File 'app/concepts/matestack/ui/bootstrap/form/input.rb', line 61 def form_file_wrapper_class case 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
102 103 104 |
# File 'app/concepts/matestack/ui/bootstrap/form/input.rb', line 102 def input_error_class 'is-invalid' end |
#render_errors ⇒ Object
94 95 96 97 98 99 100 |
# File 'app/concepts/matestack/ui/bootstrap/form/input.rb', line 94 def render_errors unless @included_config[:errors] == false && (errors == false || errors.nil?) || errors == false div class: 'invalid-feedback', attributes: { 'v-for': "error in #{error_key}" } do plain '{{ error }}' end end end |
#render_form_text ⇒ Object
106 107 108 109 110 |
# File 'app/concepts/matestack/ui/bootstrap/form/input.rb', line 106 def render_form_text div id: "form_text_for_#{attr_key}", class: "form-text" do plain 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 'app/concepts/matestack/ui/bootstrap/form/input.rb', line 15 def response div class: "matestack-ui-bootstrap-input" do label for: attr_key, class: "form-label", text: input_label if input_label case type when :range input html_attributes.merge(attributes: vue_attributes).merge(bootstrap_range_attributes) if show_value div id: attr_key, class: "form-text" do plain "{{ data['#{attr_key}'] }}" end end when :file file_input else input html_attributes.merge(attributes: vue_attributes).merge(bootstrap_input_attributes) render_errors end render_form_text if form_text end end |