headmin 0.2.6 → 0.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +29 -3
- data/Gemfile.lock +14 -3
- data/README.md +64 -57
- data/app/assets/config/headmin_manifest.js +2 -0
- data/app/assets/javascripts/headmin/config/i18n.js +11 -0
- data/{src/js → app/assets/javascripts}/headmin/controllers/blocks_controller.js +0 -1
- data/app/assets/javascripts/headmin/controllers/date_range_controller.js +32 -0
- data/app/assets/javascripts/headmin/controllers/dropzone_controller.js +33 -0
- data/app/assets/javascripts/headmin/controllers/file_preview_controller.js +244 -0
- data/{src/js → app/assets/javascripts}/headmin/controllers/filter_controller.js +12 -6
- data/{src/js → app/assets/javascripts}/headmin/controllers/filters_controller.js +0 -0
- data/app/assets/javascripts/headmin/controllers/flatpickr_controller.js +39 -0
- data/app/assets/javascripts/headmin/controllers/hello_controller.js +7 -0
- data/app/assets/javascripts/headmin/controllers/notification_controller.js +8 -0
- data/{src/js → app/assets/javascripts}/headmin/controllers/popup_controller.js +0 -1
- data/app/assets/javascripts/headmin/controllers/redactorx_controller.js +13 -0
- data/{src/js → app/assets/javascripts}/headmin/controllers/repeater_controller.js +0 -1
- data/app/assets/javascripts/headmin/controllers/select_controller.js +48 -0
- data/{src/js → app/assets/javascripts}/headmin/controllers/table_actions_controller.js +7 -37
- data/{src/js → app/assets/javascripts}/headmin/controllers/table_controller.js +23 -3
- data/app/assets/javascripts/headmin/index.js +41 -0
- data/app/assets/javascripts/headmin.js +15934 -0
- data/{src/scss → app/assets/stylesheets}/headmin/filter.scss +0 -0
- data/{src/scss → app/assets/stylesheets}/headmin/filters.scss +0 -0
- data/{src/scss → app/assets/stylesheets}/headmin/form.scss +55 -2
- data/{src/scss → app/assets/stylesheets}/headmin/general.scss +0 -0
- data/{src/scss → app/assets/stylesheets}/headmin/layout/body.scss +0 -0
- data/{src/scss → app/assets/stylesheets}/headmin/layout/sidebar.scss +0 -0
- data/{src/scss → app/assets/stylesheets}/headmin/layout.scss +0 -0
- data/{src/scss → app/assets/stylesheets}/headmin/login.scss +0 -0
- data/{src/scss/vendor/bootstrap/variables.scss → app/assets/stylesheets/headmin/overrides/bootstrap.scss} +0 -0
- data/{src/scss/vendor/redactorx/override.css → app/assets/stylesheets/headmin/overrides/redactorx.css} +0 -0
- data/{src/scss → app/assets/stylesheets}/headmin/popup.scss +0 -0
- data/app/assets/stylesheets/headmin/syntax.scss +349 -0
- data/{src/scss → app/assets/stylesheets}/headmin/table.scss +0 -0
- data/app/assets/stylesheets/headmin/thumbnail.scss +20 -0
- data/app/assets/stylesheets/headmin/utilities.scss +68 -0
- data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/_accordion.scss +118 -0
- data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/_alert.scss +57 -0
- data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/_badge.scss +29 -0
- data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/_breadcrumb.scss +28 -0
- data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/_button-group.scss +139 -0
- data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/_buttons.scss +111 -0
- data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/_card.scss +216 -0
- data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/_carousel.scss +229 -0
- data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/_close.scss +40 -0
- data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/_containers.scss +41 -0
- data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/_dropdown.scss +240 -0
- data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/_forms.scss +9 -0
- data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/_functions.scss +302 -0
- data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/_grid.scss +33 -0
- data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/_helpers.scss +9 -0
- data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/_images.scss +42 -0
- data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/_list-group.scss +174 -0
- data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/_mixins.scss +43 -0
- data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/_modal.scss +209 -0
- data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/_nav.scss +139 -0
- data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/_navbar.scss +335 -0
- data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/_offcanvas.scss +83 -0
- data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/_pagination.scss +64 -0
- data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/_placeholders.scss +51 -0
- data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/_popover.scss +158 -0
- data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/_progress.scss +48 -0
- data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/_reboot.scss +625 -0
- data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/_root.scss +54 -0
- data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/_spinners.scss +69 -0
- data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/_tables.scss +155 -0
- data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/_toasts.scss +51 -0
- data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/_tooltip.scss +115 -0
- data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/_transitions.scss +27 -0
- data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/_type.scss +104 -0
- data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/_utilities.scss +630 -0
- data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/_variables.scss +1641 -0
- data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/bootstrap-grid.scss +67 -0
- data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/bootstrap-reboot.scss +13 -0
- data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/bootstrap-utilities.scss +18 -0
- data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/bootstrap.scss +53 -0
- data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/forms/_floating-labels.scss +63 -0
- data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/forms/_form-check.scss +152 -0
- data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/forms/_form-control.scss +219 -0
- data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/forms/_form-range.scss +91 -0
- data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/forms/_form-select.scss +72 -0
- data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/forms/_form-text.scss +11 -0
- data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/forms/_input-group.scss +121 -0
- data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/forms/_labels.scss +36 -0
- data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/forms/_validation.scss +12 -0
- data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/helpers/_clearfix.scss +3 -0
- data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/helpers/_colored-links.scss +12 -0
- data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/helpers/_position.scss +30 -0
- data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/helpers/_ratio.scss +26 -0
- data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/helpers/_stacks.scss +15 -0
- data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/helpers/_stretched-link.scss +15 -0
- data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/helpers/_text-truncation.scss +7 -0
- data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/helpers/_visually-hidden.scss +8 -0
- data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/helpers/_vr.scss +8 -0
- data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/mixins/_alert.scss +11 -0
- data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/mixins/_backdrop.scss +14 -0
- data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/mixins/_border-radius.scss +78 -0
- data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/mixins/_box-shadow.scss +18 -0
- data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/mixins/_breakpoints.scss +127 -0
- data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/mixins/_buttons.scss +133 -0
- data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/mixins/_caret.scss +64 -0
- data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/mixins/_clearfix.scss +9 -0
- data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/mixins/_color-scheme.scss +7 -0
- data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/mixins/_container.scss +9 -0
- data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/mixins/_deprecate.scss +10 -0
- data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/mixins/_forms.scss +144 -0
- data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/mixins/_gradients.scss +47 -0
- data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/mixins/_grid.scss +151 -0
- data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/mixins/_image.scss +16 -0
- data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/mixins/_list-group.scss +24 -0
- data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/mixins/_lists.scss +7 -0
- data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/mixins/_pagination.scss +31 -0
- data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/mixins/_reset-text.scss +17 -0
- data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/mixins/_resize.scss +6 -0
- data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/mixins/_table-variants.scss +21 -0
- data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/mixins/_text-truncate.scss +8 -0
- data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/mixins/_transition.scss +26 -0
- data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/mixins/_utilities.scss +89 -0
- data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/mixins/_visually-hidden.scss +29 -0
- data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/utilities/_api.scss +47 -0
- data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/vendor/_rfs.scss +354 -0
- data/app/assets/stylesheets/headmin/vendor/flatpickr.css +903 -0
- data/{src/scss/vendor/redactorx → app/assets/stylesheets/headmin/vendor}/redactorx.css +0 -0
- data/app/assets/stylesheets/headmin/vendor/tom-select-bootstrap.css +537 -0
- data/app/assets/stylesheets/headmin.css +13454 -0
- data/app/assets/stylesheets/headmin.scss +65 -0
- data/app/helpers/headmin/admin_helper.rb +1 -0
- data/app/helpers/headmin/bootstrap_helper.rb +25 -3
- data/app/helpers/headmin/documentation_helper.rb +35 -0
- data/app/helpers/headmin/form_helper.rb +4 -0
- data/app/helpers/headmin/request_helper.rb +3 -8
- data/app/models/headmin/documentation_renderer.rb +32 -0
- data/app/models/headmin/form/base.rb +79 -0
- data/app/models/headmin/form/text.rb +53 -0
- data/app/services/block_service.rb +1 -1
- data/app/views/examples/admin.html.erb +1 -1
- data/app/views/headmin/_blocks.html.erb +2 -2
- data/app/views/headmin/_breadcrumbs.html.erb +1 -1
- data/app/views/headmin/_card.html.erb +10 -6
- data/app/views/headmin/_dropdown.html.erb +1 -1
- data/app/views/headmin/_filters.html.erb +22 -10
- data/app/views/headmin/_form.html.erb +14 -14
- data/app/views/headmin/_heading.html.erb +1 -1
- data/app/views/headmin/_notifications.html.erb +1 -1
- data/app/views/headmin/_pagination.html.erb +3 -5
- data/app/views/headmin/_popup.html.erb +10 -4
- data/app/views/headmin/_table.html.erb +10 -4
- data/app/views/headmin/_thumbnail.html.erb +45 -0
- data/app/views/headmin/dropdown/_devise.html.erb +2 -2
- data/app/views/headmin/dropdown/_list.html.erb +3 -6
- data/app/views/headmin/filters/_date.html.erb +9 -13
- data/app/views/headmin/filters/_flatpickr.html.erb +57 -0
- data/app/views/headmin/filters/_search.html.erb +5 -5
- data/app/views/headmin/filters/_select.html.erb +6 -6
- data/app/views/headmin/filters/filter/_button.html.erb +7 -7
- data/app/views/headmin/filters/filter/_template.html.erb +1 -1
- data/app/views/headmin/forms/_actions.html.erb +1 -1
- data/app/views/headmin/forms/_base.html.erb +100 -46
- data/app/views/headmin/forms/_blocks.html.erb +4 -4
- data/app/views/headmin/forms/_checkbox.html.erb +3 -3
- data/app/views/headmin/forms/_date.html.erb +30 -34
- data/app/views/headmin/forms/_date_range.html.erb +42 -0
- data/app/views/headmin/forms/_email.html.erb +35 -26
- data/app/views/headmin/forms/_file.html.erb +186 -34
- data/app/views/headmin/forms/_flatpickr.html.erb +34 -0
- data/app/views/headmin/forms/_flatpickr_range.html.erb +50 -0
- data/app/views/headmin/forms/_hidden.html.erb +24 -0
- data/app/views/headmin/forms/_image.html.erb +11 -45
- data/app/views/headmin/forms/_label.html.erb +18 -12
- data/app/views/headmin/forms/_number.html.erb +40 -37
- data/app/views/headmin/forms/_password.html.erb +37 -58
- data/app/views/headmin/forms/_redactorx.html.erb +8 -7
- data/app/views/headmin/forms/_repeater.html.erb +6 -6
- data/app/views/headmin/forms/_select.html.erb +43 -45
- data/app/views/headmin/forms/_text.html.erb +94 -59
- data/app/views/headmin/forms/_textarea.html.erb +37 -26
- data/app/views/headmin/forms/_url.html.erb +35 -26
- data/app/views/headmin/forms/_validation.html.erb +3 -3
- data/app/views/headmin/forms/_video.html.erb +21 -0
- data/app/views/headmin/forms/fields/_base.html.erb +3 -3
- data/app/views/headmin/forms/fields/_file.html.erb +2 -2
- data/app/views/headmin/forms/fields/_group.html.erb +3 -3
- data/app/views/headmin/forms/fields/_image.html.erb +2 -2
- data/app/views/headmin/forms/fields/_list.html.erb +3 -3
- data/app/views/headmin/forms/fields/_text.html.erb +2 -2
- data/app/views/headmin/forms/repeater/_row.html.erb +1 -1
- data/app/views/headmin/heading/_title.html.erb +1 -1
- data/app/views/headmin/layout/_body.html.erb +1 -1
- data/app/views/headmin/layout/_content.html.erb +1 -1
- data/app/views/headmin/layout/_footer.html.erb +1 -1
- data/app/views/headmin/layout/_header.html.erb +1 -1
- data/app/views/headmin/layout/_main.html.erb +12 -6
- data/app/views/headmin/layout/_sidebar.html.erb +3 -3
- data/app/views/headmin/layout/sidebar/_bottom.html.erb +1 -1
- data/app/views/headmin/layout/sidebar/_nav.html.erb +1 -1
- data/app/views/headmin/nav/_dropdown.html.erb +34 -0
- data/app/views/headmin/nav/_item.html.erb +22 -13
- data/app/views/headmin/table/_actions.html.erb +3 -5
- data/app/views/headmin/table/_body.html.erb +1 -1
- data/app/views/headmin/table/_foot.html.erb +1 -1
- data/app/views/headmin/table/_footer.html.erb +1 -1
- data/app/views/headmin/table/_head.html.erb +1 -1
- data/app/views/headmin/table/_header.html.erb +1 -1
- data/app/views/headmin/table/actions/_action.html.erb +4 -4
- data/app/views/headmin/table/actions/_delete.html.erb +1 -1
- data/app/views/headmin/table/actions/_export.html.erb +1 -1
- data/app/views/headmin/table/body/_row.html.erb +15 -7
- data/config/importmap.rb +2 -0
- data/config/locales/en.yml +0 -3
- data/config/locales/headmin/forms/en.yml +5 -0
- data/config/locales/headmin/forms/nl.yml +5 -0
- data/config/locales/headmin/popup/en.yml +4 -0
- data/config/locales/headmin/popup/nl.yml +4 -0
- data/config/locales/headmin/thumbnail/en.yml +4 -0
- data/config/locales/headmin/thumbnail/nl.yml +4 -0
- data/config/locales/nl.yml +0 -3
- data/esbuild-css.js +25 -0
- data/esbuild-js.js +11 -0
- data/headmin.gemspec +4 -1
- data/lib/headmin/engine.rb +15 -0
- data/lib/headmin/version.rb +1 -1
- data/lib/headmin.rb +1 -1
- data/package.json +18 -34
- data/src/js/headmin.js +1 -1
- data/src/scss/headmin.scss +1 -61
- data/yarn.lock +393 -5177
- metadata +191 -34
- data/.nvmrc +0 -1
- data/app/controllers/concerns/headmin/ckeditor.rb +0 -27
- data/app/views/headmin/forms/_ckeditor.html.erb +0 -42
- data/dist/css/headmin.css +0 -12354
- data/dist/js/headmin.js +0 -1080
- data/src/js/headmin/headmin.js +0 -141
- data/src/scss/headmin/utilities.scss +0 -19
- data/webpack.config.js +0 -30
@@ -1,69 +1,48 @@
|
|
1
1
|
<%
|
2
2
|
# headmin/forms/password
|
3
3
|
#
|
4
|
-
# ====
|
5
|
-
# *
|
6
|
-
# *
|
7
|
-
#
|
8
|
-
#
|
9
|
-
# *
|
10
|
-
# *
|
4
|
+
# ==== Required parameters
|
5
|
+
# * +form+ - Form object
|
6
|
+
# * +attribute+ - Name of the attribute of the form model
|
7
|
+
#
|
8
|
+
# ==== Optional parameters
|
9
|
+
# * +aria+ - Provide a hash to define all aria attributes
|
10
|
+
# * +autocomplete+ - Value to be autofilled by the browser
|
11
|
+
# * +autofocus+ - Set to true to focus on this field when the page renders
|
12
|
+
# * +data+ - Provide a hash to define all data attributes
|
13
|
+
# * +disabled+ - Sets the placeholder of the field
|
14
|
+
# * +id+ - Input identifier
|
15
|
+
# * +list+ - Add array of options to show in a data list
|
16
|
+
# * +maxlength+ - The maximum number of characters that the browser will allow the user to enter.
|
17
|
+
# * +minlength+ - The minimum number of characters that the browser will allow the user to enter.
|
18
|
+
# * +placeholder+ - Sets the placeholder of the field
|
19
|
+
# * +readonly+ - Sets the placeholder of the field
|
20
|
+
# * +required+ - Set to true to mark as required
|
21
|
+
# * +size+ - The number of visible characters that will fit in the input
|
22
|
+
# * +value+ - Overrides the value of the form
|
23
|
+
#
|
24
|
+
# ==== Extra parameters
|
25
|
+
# Listed in 'headmin/forms/base'
|
26
|
+
#
|
27
|
+
# ==== References
|
28
|
+
# https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/password
|
29
|
+
# https://apidock.com/rails/ActionView/Helpers/FormHelper/password_field
|
11
30
|
#
|
12
31
|
# ==== Examples
|
13
32
|
# Basic version
|
14
33
|
# <%= render 'headmin/forms/password', form: form, attribute: :password %#>
|
15
34
|
|
16
|
-
|
17
|
-
class_names = local_assigns.has_key?(:class) ? local_assigns[:class] : false
|
18
|
-
data = local_assigns.has_key?(:data) ? data : nil
|
19
|
-
disabled = local_assigns.has_key?(:disabled) ? disabled : false
|
20
|
-
float = local_assigns.has_key?(:float) ? float : false
|
21
|
-
label = local_assigns.has_key?(:label) ? label : nil
|
22
|
-
prepend = local_assigns.has_key?(:prepend) ? prepend : nil
|
23
|
-
readonly = local_assigns.has_key?(:readonly) ? readonly : false
|
24
|
-
required = local_assigns.has_key?(:required) ? required : false
|
25
|
-
|
26
|
-
options = {
|
27
|
-
'aria-describedby': form_field_validation_id(form, attribute),
|
28
|
-
class: "form-control #{form_field_validation_class(form, attribute)} #{class_names}",
|
29
|
-
data: data,
|
30
|
-
disabled: disabled,
|
31
|
-
placeholder: attribute,
|
32
|
-
readonly: readonly,
|
33
|
-
required: required,
|
34
|
-
}
|
35
|
+
placeholder = local_assigns[:float] ? local_assigns[:placeholder] || attribute : local_assigns[:placeholder]
|
35
36
|
|
36
|
-
|
37
|
+
option_keys = %i(aria autocomplete autofocus data disabled id list maxlength minlength placeholder readonly required size value)
|
38
|
+
options = local_assigns.slice(*option_keys).merge(
|
39
|
+
autocomplete: true,
|
40
|
+
aria: { describedby: form_field_validation_id(form, attribute) },
|
41
|
+
class: ['form-control', form_field_validation_class(form, attribute)].join(' '),
|
42
|
+
placeholder: placeholder
|
43
|
+
)
|
37
44
|
%>
|
38
45
|
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
<% end %>
|
43
|
-
|
44
|
-
<% if float %>
|
45
|
-
<%= form.password_field(attribute, options) %>
|
46
|
-
<%= render 'headmin/forms/validation', form: form, attribute: attribute %>
|
47
|
-
<% else %>
|
48
|
-
<div class="input-group">
|
49
|
-
<% if prepend %>
|
50
|
-
<span class="input-group-text">
|
51
|
-
<%= prepend %>
|
52
|
-
</span>
|
53
|
-
<% end %>
|
54
|
-
|
55
|
-
<%= form.password_field(attribute, options) %>
|
56
|
-
<%= render 'headmin/forms/validation', form: form, attribute: attribute %>
|
57
|
-
|
58
|
-
<% if append %>
|
59
|
-
<span class="input-group-text">
|
60
|
-
<%= append %>
|
61
|
-
</span>
|
62
|
-
<% end %>
|
63
|
-
</div>
|
64
|
-
<% end %>
|
65
|
-
|
66
|
-
<% if show_label && float %>
|
67
|
-
<%= render 'headmin/forms/label', form: form, attribute: attribute, name: label, required: required %>
|
68
|
-
<% end %>
|
69
|
-
</div>
|
46
|
+
<%= render 'headmin/forms/base', local_assigns do |form| %>
|
47
|
+
<%= form.password_field(attribute, options) %>
|
48
|
+
<% end %>
|
@@ -2,16 +2,16 @@
|
|
2
2
|
# headmin/forms/redactorx
|
3
3
|
#
|
4
4
|
# ==== Options
|
5
|
-
# *
|
6
|
-
# *
|
7
|
-
# *
|
8
|
-
# *
|
9
|
-
# *
|
10
|
-
# *
|
5
|
+
# * +form+ - Form object
|
6
|
+
# * +attribute+ - Name of the attribute of the form model
|
7
|
+
# * +label+ - Text to show as label. Label will be hidden if value is false
|
8
|
+
# * +addbar+ - Items to show in the addbar
|
9
|
+
# * +topbar+ - Items to show in the topbar
|
10
|
+
# * +plugins+ - Plugin items to work with
|
11
11
|
#
|
12
12
|
# ==== Examples
|
13
13
|
# Basic version
|
14
|
-
# <%= render 'headmin/forms/
|
14
|
+
# <%= render 'headmin/forms/redactorx', form: form, attribute: :title %#>
|
15
15
|
|
16
16
|
class_names = local_assigns.has_key?(:class) ? local_assigns[:class] : false
|
17
17
|
data = local_assigns.has_key?(:data) ? data : {}
|
@@ -24,6 +24,7 @@
|
|
24
24
|
topbar = local_assigns.has_key?(:topbar) ? topbar : []
|
25
25
|
|
26
26
|
data = data.merge(
|
27
|
+
controller: 'redactorx',
|
27
28
|
'redactor-options': {
|
28
29
|
buttons: {
|
29
30
|
addbar: addbar,
|
@@ -2,12 +2,12 @@
|
|
2
2
|
# headmin/forms/repeater
|
3
3
|
#
|
4
4
|
# ==== Options
|
5
|
-
# *
|
6
|
-
# *
|
7
|
-
# *
|
8
|
-
# *
|
9
|
-
# *
|
10
|
-
# *
|
5
|
+
# * +form</tt> - Form object
|
6
|
+
# * +attribute</tt> - Name of the attribute of the form model
|
7
|
+
# * +header</tt> - Name of the template to use as header
|
8
|
+
# * +label+ - Text to show as label. Label will be hidden if value is false
|
9
|
+
# * +templates</tt> - List of all views that can be used as a template for a new block
|
10
|
+
# * +flush</tt> - Set to true if you want the list items to sit flush with its parent.
|
11
11
|
#
|
12
12
|
# ==== Examples
|
13
13
|
# # Basic version
|
@@ -1,31 +1,45 @@
|
|
1
1
|
<%
|
2
2
|
# headmin/forms/select
|
3
3
|
#
|
4
|
-
# ====
|
5
|
-
# *
|
6
|
-
# *
|
7
|
-
# *
|
8
|
-
#
|
9
|
-
#
|
10
|
-
# *
|
11
|
-
# *
|
12
|
-
# *
|
13
|
-
# *
|
14
|
-
# *
|
15
|
-
# *
|
16
|
-
# *
|
4
|
+
# ==== Required parameters
|
5
|
+
# * +form+ - Form object
|
6
|
+
# * +attribute+ - Name of the attribute of the form model
|
7
|
+
# * +collection+ - Values to create option tags for
|
8
|
+
#
|
9
|
+
# ==== Optional parameters
|
10
|
+
# * +aria+ - Provide a hash to define all aria attributes
|
11
|
+
# * +autocomplete+ - Value to be autofilled by the browser
|
12
|
+
# * +autofocus+ - Set to true to focus on this field when the page renders
|
13
|
+
# * +data+ - Optional HTML data attributes
|
14
|
+
# * +disabled+ - One or more values to be disabled in the option tags
|
15
|
+
# * +include_blank+ - Set to true or prompt string if the first option tag is a blank
|
16
|
+
# * +multiple+ - Set to true if multiple selections are allowed
|
17
|
+
# * +required+ - Set to true to mark as required
|
18
|
+
# * +selected+ - Value to be marked as "selected"
|
19
|
+
# * +size+ - The number of visible rows in a multiple select field
|
20
|
+
# * +tags+ - Set to true if new options are allowed to be created
|
21
|
+
#
|
22
|
+
# ==== Extra parameters
|
23
|
+
# Listed in 'headmin/forms/base'
|
24
|
+
#
|
25
|
+
# ==== References
|
26
|
+
# https://developer.mozilla.org/en-US/docs/Web/HTML/Element/select
|
27
|
+
# https://apidock.com/rails/ActionView/Helpers/FormOptionsHelper/select
|
17
28
|
#
|
18
29
|
# ==== Examples
|
19
30
|
# Basic version
|
20
31
|
# <%= render 'headmin/forms/select', form: form, attribute: :color, collection: ['red', 'green', 'blue'] %#>
|
21
32
|
#
|
22
|
-
#
|
33
|
+
# Disabled
|
34
|
+
# <%= render 'headmin/forms/select', form: form, attribute: :color, collection: ['red', 'green', 'blue'], disabled: true %#>
|
35
|
+
#
|
36
|
+
# Disable specific options
|
23
37
|
# <%= render 'headmin/forms/select', form: form, attribute: :color, collection: ['red', 'green', 'blue'], disabled: ['red'] %#>
|
24
38
|
#
|
25
39
|
# Show blank option
|
26
40
|
# <%= render 'headmin/forms/select', form: form, attribute: :color, collection: ['red', 'green', 'blue'], include_blank: 'Pick a color' %#>
|
27
41
|
#
|
28
|
-
# Select a
|
42
|
+
# Select a default option
|
29
43
|
# <%= render 'headmin/forms/select', form: form, attribute: :color, collection: ['red', 'green', 'blue'], selected: 'green' %#>
|
30
44
|
#
|
31
45
|
# Allow multiple options to be selected
|
@@ -34,37 +48,21 @@
|
|
34
48
|
# Allow multiple options to be selected and new options to be created
|
35
49
|
# <%= render 'headmin/forms/select', form: form, attribute: :color, collection: ['red', 'green', 'blue'], tags: true %#>
|
36
50
|
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
float = local_assigns.has_key?(:float) ? float : false
|
42
|
-
include_blank = local_assigns.has_key?(:include_blank) ? include_blank : nil
|
43
|
-
label = local_assigns.has_key?(:label) ? label : nil
|
44
|
-
prepend = local_assigns.has_key?(:prepend) ? prepend : nil
|
45
|
-
multiple = local_assigns.has_key?(:multiple) ? multiple : false
|
46
|
-
required = local_assigns.has_key?(:required) ? required : false
|
47
|
-
selected = local_assigns.has_key?(:selected) ? selected : nil
|
48
|
-
tags = local_assigns.has_key?(:tags) ? tags : false
|
49
|
-
|
50
|
-
data = data.merge({ tags: true }) if tags
|
51
|
-
|
52
|
-
choices = options_for_select(collection, form.object.send(attribute))
|
53
|
-
options = {
|
54
|
-
include_blank: include_blank,
|
55
|
-
disabled: disabled,
|
56
|
-
selected: selected
|
57
|
-
}
|
58
|
-
html_options = {
|
59
|
-
'aria-describedby': form_field_validation_id(form, attribute),
|
60
|
-
class: "form-select #{form_field_validation_class(form, attribute)} #{class_names}",
|
61
|
-
data: data,
|
62
|
-
multiple: tags ? true : multiple,
|
63
|
-
required: required,
|
64
|
-
}
|
51
|
+
options_keys = %i(include_blank selected disabled)
|
52
|
+
options = local_assigns.slice(*options_keys).merge(
|
53
|
+
selected: form.object&.send(attribute),
|
54
|
+
)
|
65
55
|
|
56
|
+
html_option_keys = %i(aria autocomplete autofocus data disabled id multiple required size)
|
57
|
+
html_options = local_assigns.slice(*html_option_keys).merge(
|
58
|
+
aria: { describedby: form_field_validation_id(form, attribute) },
|
59
|
+
class: ['form-select', form_field_validation_class(form, attribute)].join(' '),
|
60
|
+
data: { tags: local_assigns[:tags], controller: 'select'},
|
61
|
+
disabled: local_assigns[:disabled] == true,
|
62
|
+
multiple: local_assigns[:multiple] || local_assigns[:tags],
|
63
|
+
)
|
66
64
|
%>
|
67
65
|
|
68
|
-
<%= render 'headmin/forms/base',
|
69
|
-
<%= form.select(attribute,
|
66
|
+
<%= render 'headmin/forms/base', local_assigns do |form| %>
|
67
|
+
<%= form.select(attribute, collection, options, html_options) %>
|
70
68
|
<% end %>
|
@@ -1,62 +1,97 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
#
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
%>
|
51
|
-
|
52
|
-
|
53
|
-
|
1
|
+
<!--
|
2
|
+
<% documentation do %>
|
3
|
+
# Text
|
4
|
+
This is a wrapper around the form helper `text_field()`.
|
5
|
+
You can pass all valid input attributes as parameters to this template and
|
6
|
+
they will be added directly to the input field.
|
7
|
+
|
8
|
+
```erbx
|
9
|
+
<%= form_with do |form| %>
|
10
|
+
<%= render "headmin/forms/text", form: form, attribute: "basic_example" %>
|
11
|
+
<% end %>
|
12
|
+
```
|
13
|
+
|
14
|
+
## Parameters
|
15
|
+
| Name | Required | Type | Description |
|
16
|
+
| ------------ | -------- | ---------------- | ----------- |
|
17
|
+
| form | yes | Object | Form object |
|
18
|
+
| attribute | yes | String, Symbol | Name of the attribute of the form model |
|
19
|
+
| aria | no | Hash | Provide a hash to define all aria attributes |
|
20
|
+
| autocomplete | no | String | Hint for form autofill feature |
|
21
|
+
| autofocus | no | Boolean | Automatically focus the form control when the page is loaded |
|
22
|
+
| data | no | Hash | Provide a hash to define all data attributes |
|
23
|
+
| disabled | no | Boolean | Whether the form control is disabled |
|
24
|
+
| dirname | no | String | Name of form field to use for sending the element"s directionality in form submission |
|
25
|
+
| id | no | String | Input identifier |
|
26
|
+
| list | no | Array | Add array of options to show in a data list |
|
27
|
+
| maxlength | no | Integer | Maximum length (number of characters) of value |
|
28
|
+
| minlength | no | Integer | Minimum length (number of characters) of value |
|
29
|
+
| pattern | no | String | Pattern the value must match to be valid |
|
30
|
+
| placeholder | no | String | Text that appears in the form control when it has no value set |
|
31
|
+
| readonly | no | Boolean | The value is not editable |
|
32
|
+
| required | no | Boolean | A value is required or must be check for the form to be submittable |
|
33
|
+
| size | no | Integer | Size of the control |
|
34
|
+
| spellcheck | no | Boolean | Indicate whether or not to enable spell checking by the browser |
|
35
|
+
| value | no | String | The initial value of the control |
|
36
|
+
|
37
|
+
**Additional parameters**
|
38
|
+
|
39
|
+
This view makes use of [headmin/forms/base](https://headmin.test/forms/base) for labels and appendages.
|
40
|
+
Take a look at its documentation to get a complete overview of all additional parameters.
|
41
|
+
|
42
|
+
## Examples
|
43
|
+
|
44
|
+
### Sizing
|
45
|
+
```erbx
|
46
|
+
<%= form_with do |form| %>
|
47
|
+
<%= render "headmin/forms/text", form: form, attribute: "Small", class: "input-group-sm", placeholder: ".input-group-sm" %>
|
48
|
+
<%= render "headmin/forms/text", form: form, attribute: "Medium", class: "input-group-md", placeholder: 'default size' %>
|
49
|
+
<%= render "headmin/forms/text", form: form, attribute: "Large", class: "input-group-lg", placeholder: ".input-group-lg" %>
|
50
|
+
<% end %>
|
51
|
+
```
|
52
|
+
|
53
|
+
### Labels
|
54
|
+
```erbx
|
55
|
+
<%= form_with do |form| %>
|
56
|
+
<%= render "headmin/forms/text", form: form, attribute: "no_label", label: false, placeholder: "Without label" %>
|
57
|
+
<%= render "headmin/forms/text", form: form, attribute: "floating_label", float: true %>
|
58
|
+
<%= render "headmin/forms/text", form: form, attribute: "custom_label", label: "Custom label" %>
|
59
|
+
<% end %>
|
60
|
+
```
|
61
|
+
|
62
|
+
### Appendages
|
63
|
+
```erbx
|
64
|
+
<%= form_with do |form| %>
|
65
|
+
<%= render "headmin/forms/text", form: form, attribute: "prepend", prepend: "€" %>
|
66
|
+
<%= render "headmin/forms/text", form: form, attribute: "append", append: "m²" %>
|
67
|
+
<%= render "headmin/forms/text", form: form, attribute: "prepend_and_append", prepend: "€", append: "m²" %>
|
68
|
+
<% end %>
|
69
|
+
```
|
70
|
+
|
71
|
+
### List
|
72
|
+
```erbx
|
73
|
+
<%= form_with do |form| %>
|
74
|
+
<%= render "headmin/forms/text", form: form, attribute: "list", list: %w[red green blue], placeholder: "With data list" %>
|
75
|
+
<% end %>
|
76
|
+
```
|
77
|
+
|
78
|
+
### States
|
79
|
+
```erbx
|
80
|
+
<%= form_with do |form| %>
|
81
|
+
<%= render "headmin/forms/text", form: form, attribute: "disabled", disabled: true, placeholder: "Disabled" %>
|
82
|
+
<%= render "headmin/forms/text", form: form, attribute: "readonly", readonly: true, placeholder: "Readonly" %>
|
83
|
+
<%= render "headmin/forms/text", form: form, attribute: "disabled_and_readonly", disabled: true, readonly: true, placeholder: "Disabled and readonly" %>
|
84
|
+
<% end %>
|
85
|
+
```
|
86
|
+
|
87
|
+
## References
|
88
|
+
- [MDN Web Docs](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/text)
|
89
|
+
- [APIdock](https://apidock.com/rails/ActionView/Helpers/FormHelper/text_field)
|
54
90
|
<% end %>
|
91
|
+
-->
|
92
|
+
|
93
|
+
<% text = Headmin::Form::Text.new(local_assigns, request) %>
|
55
94
|
|
56
|
-
|
57
|
-
|
58
|
-
<% collection.each do |key, value| %>
|
59
|
-
<option value="<%= value %>"><%= key %></option>
|
60
|
-
<% end %>
|
61
|
-
</datalist>
|
95
|
+
<%= render "headmin/forms/base", text.local_assigns do |form| %>
|
96
|
+
<%= form.text_field(text.attribute, text.options) %>
|
62
97
|
<% end %>
|
@@ -1,39 +1,50 @@
|
|
1
1
|
<%
|
2
2
|
# headmin/forms/textarea
|
3
3
|
#
|
4
|
-
# ====
|
5
|
-
# *
|
6
|
-
# *
|
7
|
-
#
|
8
|
-
#
|
9
|
-
# *
|
10
|
-
# *
|
4
|
+
# ==== Required parameters
|
5
|
+
# * +form+ - Form object
|
6
|
+
# * +attribute+ - Name of the attribute of the form model
|
7
|
+
#
|
8
|
+
# ==== Optional parameters
|
9
|
+
# * +aria+ - Provide a hash to define all aria attributes
|
10
|
+
# * +autocomplete+ - Value to be autofilled by the browser
|
11
|
+
# * +autofocus+ - Value to be autofilled by the browser
|
12
|
+
# * +cols+ - Visible width in average charachter width (default = 20)
|
13
|
+
# * +data+ - Provide a hash to define all data attributes
|
14
|
+
# * +disabled+ - Sets the placeholder of the field
|
15
|
+
# * +id+ - Input identifier
|
16
|
+
# * +maxlength+ - Maximum amount of characters to be used
|
17
|
+
# * +minlength+ - Minimum amount of characters to be used
|
18
|
+
# * +placeholder+ - Sets the placeholder of the field
|
19
|
+
# * +readonly+ - Sets the placeholder of the field
|
20
|
+
# * +required+ - Set to true to mark as required
|
21
|
+
# * +rows+ - Visible text lines
|
22
|
+
# * +spellcheck+ - Indicate whether or not to enable spell checking by the browser
|
23
|
+
# * +value+ - Overrides the value of the form
|
24
|
+
# * +wrap+ - How to wrap text. Soft (default), hard, or off
|
25
|
+
#
|
26
|
+
# ==== Extra parameters
|
27
|
+
# Listed in 'headmin/forms/base'
|
28
|
+
#
|
29
|
+
# ==== References
|
30
|
+
# https://developer.mozilla.org/en-US/docs/Web/HTML/Element/textarea
|
31
|
+
# https://apidock.com/rails/ActionView/Helpers/FormHelper/text_area
|
11
32
|
#
|
12
33
|
# ==== Examples
|
13
34
|
# Basic version
|
14
35
|
# <%= render 'headmin/forms/textarea', form: form, attribute: :title %#>
|
15
36
|
|
16
|
-
|
17
|
-
class_names = local_assigns.has_key?(:class) ? local_assigns[:class] : false
|
18
|
-
data = local_assigns.has_key?(:data) ? data : nil
|
19
|
-
disabled = local_assigns.has_key?(:disabled) ? disabled : false
|
20
|
-
float = local_assigns.has_key?(:float) ? float : false
|
21
|
-
label = local_assigns.has_key?(:label) ? label : nil
|
22
|
-
readonly = local_assigns.has_key?(:readonly) ? readonly : false
|
23
|
-
required = local_assigns.has_key?(:required) ? required : false
|
24
|
-
prepend = local_assigns.has_key?(:prepend) ? prepend : nil
|
37
|
+
placeholder = local_assigns[:float] ? local_assigns[:placeholder] || attribute : local_assigns[:placeholder]
|
25
38
|
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
placeholder:
|
32
|
-
|
33
|
-
required: required,
|
34
|
-
}
|
39
|
+
option_keys = %i(aria autocomplete autofocus cols data disabled id maxlength minlength placeholder readonly required rows spellcheck value wrap)
|
40
|
+
options = local_assigns.slice(*option_keys).merge(
|
41
|
+
aria: { describedby: form_field_validation_id(form, attribute) },
|
42
|
+
class: ['form-control', form_field_validation_class(form, attribute)].join(' '),
|
43
|
+
list: local_assigns[:list] ? "#{attribute}_list" : nil,
|
44
|
+
placeholder: placeholder
|
45
|
+
)
|
35
46
|
%>
|
36
47
|
|
37
|
-
<%= render 'headmin/forms/base',
|
48
|
+
<%= render 'headmin/forms/base', local_assigns do |form| %>
|
38
49
|
<%= form.text_area(attribute, options) %>
|
39
50
|
<% end %>
|
@@ -1,39 +1,48 @@
|
|
1
1
|
<%
|
2
2
|
# headmin/forms/url
|
3
3
|
#
|
4
|
-
# ====
|
5
|
-
# *
|
6
|
-
# *
|
7
|
-
#
|
8
|
-
#
|
9
|
-
# *
|
10
|
-
# *
|
4
|
+
# ==== Required parameters
|
5
|
+
# * +form+ - Form object
|
6
|
+
# * +attribute+ - Name of the attribute of the form model
|
7
|
+
#
|
8
|
+
# ==== Optional parameters
|
9
|
+
# * +aria+ - Provide a hash to define all aria attributes
|
10
|
+
# * +autocomplete+ - Value to be autofilled by the browser
|
11
|
+
# * +autofocus+ - Set to true to focus on this field when the page renders
|
12
|
+
# * +data+ - Provide a hash to define all data attributes
|
13
|
+
# * +disabled+ - Sets the placeholder of the field
|
14
|
+
# * +id+ - Input identifier
|
15
|
+
# * +maxlength+ - Maximum amount of characters to be used
|
16
|
+
# * +minlength+ - Minimum amount of characters to be used
|
17
|
+
# * +list+ - Add array of options to show in a data list
|
18
|
+
# * +pattern+ -a A regular expression that the input's value must match
|
19
|
+
# * +placeholder+ - Sets the placeholder of the field
|
20
|
+
# * +readonly+ - Sets the placeholder of the field
|
21
|
+
# * +required+ - Set to true to mark as required
|
22
|
+
# * +size+ - How much of the input should be shown
|
23
|
+
# * +value+ - Overrides the value of the form
|
24
|
+
#
|
25
|
+
# ==== Extra parameters
|
26
|
+
# Listed in 'headmin/forms/base'
|
27
|
+
#
|
28
|
+
# ==== References
|
29
|
+
# https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/text
|
30
|
+
# https://apidock.com/rails/ActionView/Helpers/FormHelper/url_field
|
11
31
|
#
|
12
32
|
# ==== Examples
|
13
33
|
# Basic version
|
14
34
|
# <%= render 'headmin/forms/url', form: form, attribute: :website_url %#>
|
15
35
|
|
16
|
-
|
17
|
-
class_names = local_assigns.has_key?(:class) ? local_assigns[:class] : false
|
18
|
-
data = local_assigns.has_key?(:data) ? data : nil
|
19
|
-
disabled = local_assigns.has_key?(:disabled) ? disabled : false
|
20
|
-
float = local_assigns.has_key?(:float) ? float : false
|
21
|
-
label = local_assigns.has_key?(:label) ? label : nil
|
22
|
-
prepend = local_assigns.has_key?(:prepend) ? prepend : nil
|
23
|
-
readonly = local_assigns.has_key?(:readonly) ? readonly : false
|
24
|
-
required = local_assigns.has_key?(:required) ? required : false
|
36
|
+
placeholder = local_assigns[:float] ? local_assigns[:placeholder] || attribute : local_assigns[:placeholder]
|
25
37
|
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
readonly: readonly,
|
33
|
-
required: required,
|
34
|
-
}
|
38
|
+
option_keys = %i(aria autocomplete autofocus data disabled id list placeholder maxlength minlength pattern readonly required size value)
|
39
|
+
options = local_assigns.slice(*option_keys).merge(
|
40
|
+
aria: { describedby: form_field_validation_id(form, attribute) },
|
41
|
+
class: ['form-control', form_field_validation_class(form, attribute)].join(' '),
|
42
|
+
placeholder: placeholder
|
43
|
+
)
|
35
44
|
%>
|
36
45
|
|
37
|
-
<%= render 'headmin/forms/base',
|
46
|
+
<%= render 'headmin/forms/base', local_assigns do |form| %>
|
38
47
|
<%= form.url_field(attribute, options) %>
|
39
48
|
<% end %>
|
@@ -2,8 +2,8 @@
|
|
2
2
|
# headmin/forms/validation
|
3
3
|
#
|
4
4
|
# ==== Options
|
5
|
-
# *
|
6
|
-
# *
|
5
|
+
# * +form+ - Form object
|
6
|
+
# * +attribute+ - Name of the attribute of the form model
|
7
7
|
#
|
8
8
|
# ==== Examples
|
9
9
|
# Basic version
|
@@ -11,7 +11,7 @@
|
|
11
11
|
|
12
12
|
show_feedback = form.object && !form_field_valid?(form, attribute)
|
13
13
|
id = form_field_validation_id(form, attribute)
|
14
|
-
message = form.object
|
14
|
+
message = form.object&.errors[attribute]&.join(', ')
|
15
15
|
%>
|
16
16
|
|
17
17
|
<% if show_feedback %>
|
@@ -0,0 +1,21 @@
|
|
1
|
+
<%
|
2
|
+
# name: headmin/forms/video
|
3
|
+
#
|
4
|
+
# ==== Required parameters
|
5
|
+
# * +form+ - Form object
|
6
|
+
# * +attribute+ - Name of the attribute of the form model
|
7
|
+
#
|
8
|
+
# ==== Extra parameters
|
9
|
+
# Listed in 'headmin/forms/file'
|
10
|
+
# Listed in 'headmin/forms/base'
|
11
|
+
#
|
12
|
+
# ==== Examples
|
13
|
+
# Basic version
|
14
|
+
# <%= render 'headmin/forms/video', form: form, attribute: :video %#>
|
15
|
+
|
16
|
+
options = local_assigns.merge(
|
17
|
+
accept: 'video/*'
|
18
|
+
)
|
19
|
+
%>
|
20
|
+
|
21
|
+
<%= render 'headmin/forms/file', options %>
|