headmin 0.4.1 → 0.5.1
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/.lock-487e157d270f3062a98b7b2a012753708-1272821827 +0 -0
- data/CHANGELOG.md +16 -2
- data/Gemfile.lock +77 -79
- data/app/assets/javascripts/headmin/controllers/date_range_controller.js +12 -6
- data/app/assets/javascripts/headmin/controllers/filter_controller.js +61 -11
- data/app/assets/javascripts/headmin/controllers/filter_row_controller.js +50 -0
- data/app/assets/javascripts/headmin/controllers/flatpickr_controller.js +2 -6
- data/app/assets/javascripts/headmin/controllers/popup_controller.js +3 -1
- data/app/assets/javascripts/headmin/controllers/table_actions_controller.js +16 -21
- data/app/assets/javascripts/headmin/index.js +2 -0
- data/app/assets/javascripts/headmin.js +119 -38
- data/app/assets/stylesheets/headmin/filter.scss +74 -0
- data/app/assets/stylesheets/headmin/general.scss +0 -1
- data/app/assets/stylesheets/headmin/layout/body.scss +5 -0
- data/app/assets/stylesheets/headmin/popup.scss +0 -1
- data/app/assets/stylesheets/headmin/table.scss +7 -0
- data/app/assets/stylesheets/headmin.css +73 -2
- data/app/controllers/concerns/headmin/filterable.rb +27 -0
- data/app/models/concerns/headmin/field.rb +4 -2
- data/app/models/concerns/headmin/fieldable.rb +138 -44
- data/app/models/headmin/blocks_view.rb +1 -1
- data/app/models/headmin/filter/base.rb +238 -0
- data/app/models/headmin/filter/base_view.rb +64 -0
- data/app/models/headmin/filter/boolean.rb +15 -0
- data/app/models/headmin/filter/boolean_view.rb +61 -0
- data/app/models/headmin/filter/button_view.rb +25 -0
- data/app/models/headmin/filter/conditional_view.rb +16 -0
- data/app/models/headmin/filter/date.rb +19 -0
- data/app/models/headmin/filter/date_view.rb +52 -0
- data/app/models/headmin/filter/flatpickr_view.rb +54 -0
- data/app/models/headmin/filter/menu_item_view.rb +6 -0
- data/app/models/headmin/filter/money.rb +13 -0
- data/app/models/headmin/filter/number.rb +27 -0
- data/app/models/headmin/filter/number_view.rb +54 -0
- data/app/models/headmin/filter/operator_view.rb +30 -0
- data/app/models/headmin/filter/options_view.rb +61 -0
- data/app/models/headmin/filter/row_view.rb +13 -0
- data/app/models/headmin/filter/search.rb +18 -0
- data/app/models/headmin/filter/search_view.rb +31 -0
- data/app/models/headmin/filter/text.rb +25 -0
- data/app/models/headmin/filter/text_view.rb +53 -0
- data/app/models/headmin/filters.rb +29 -0
- data/app/models/headmin/form/color_view.rb +48 -0
- data/app/models/headmin/form/datetime_range_view.rb +25 -0
- data/app/models/headmin/form/datetime_view.rb +45 -0
- data/app/models/headmin/form/flatpickr_range_view.rb +4 -15
- data/app/models/headmin/form/flatpickr_view.rb +3 -12
- data/app/models/view_model.rb +1 -1
- data/app/views/examples/admin.html.erb +13 -13
- data/app/views/examples/auth.html.erb +1 -1
- data/app/views/headmin/_blocks.html.erb +1 -1
- data/app/views/headmin/_filters.html.erb +6 -6
- data/app/views/headmin/_form.html.erb +2 -2
- data/app/views/headmin/_index.html.erb +1 -1
- data/app/views/headmin/_pagination.html.erb +1 -1
- data/app/views/headmin/_popup.html.erb +2 -2
- data/app/views/headmin/_table.html.erb +1 -1
- data/app/views/headmin/dropdown/_devise.html.erb +8 -8
- data/app/views/headmin/dropdown/_locale.html.erb +4 -4
- data/app/views/headmin/filters/_base.html.erb +95 -0
- data/app/views/headmin/filters/_boolean.html.erb +23 -0
- data/app/views/headmin/filters/_date.html.erb +14 -38
- data/app/views/headmin/filters/_flatpickr.html.erb +15 -48
- data/app/views/headmin/filters/_number.html.erb +23 -0
- data/app/views/headmin/filters/_options.html.erb +24 -0
- data/app/views/headmin/filters/_search.html.erb +14 -12
- data/app/views/headmin/filters/_text.html.erb +23 -0
- data/app/views/headmin/filters/filter/_button.html.erb +9 -10
- data/app/views/headmin/filters/filter/_conditional.html.erb +18 -0
- data/app/views/headmin/filters/filter/_menu_item.html.erb +5 -2
- data/app/views/headmin/filters/filter/_null_select.html.erb +8 -0
- data/app/views/headmin/filters/filter/_operator.html.erb +16 -0
- data/app/views/headmin/filters/filter/_row.html.erb +11 -0
- data/app/views/headmin/forms/_blocks.html.erb +1 -1
- data/app/views/headmin/forms/_color.html.erb +32 -0
- data/app/views/headmin/forms/_date_range.html.erb +3 -3
- data/app/views/headmin/forms/_datetime.html.erb +41 -0
- data/app/views/headmin/forms/_datetime_range.html.erb +40 -0
- data/app/views/headmin/forms/_file.html.erb +3 -3
- data/app/views/headmin/forms/_flatpickr.html.erb +1 -1
- data/app/views/headmin/forms/_flatpickr_range.html.erb +3 -4
- data/app/views/headmin/forms/_label.html.erb +1 -1
- data/app/views/headmin/forms/_repeater.html.erb +12 -12
- data/app/views/headmin/forms/fields/_base.html.erb +1 -1
- data/app/views/headmin/forms/fields/_file.html.erb +3 -3
- data/app/views/headmin/forms/fields/_files.html.erb +17 -0
- data/app/views/headmin/forms/fields/_group.html.erb +5 -5
- data/app/views/headmin/forms/fields/_list.html.erb +4 -4
- data/app/views/headmin/forms/fields/_text.html.erb +2 -2
- data/app/views/headmin/layout/_footer.html.erb +1 -1
- data/app/views/headmin/layout/_main.html.erb +1 -1
- data/app/views/headmin/nav/_dropdown.html.erb +3 -3
- data/app/views/headmin/nav/_item.html.erb +2 -2
- data/app/views/headmin/nav/item/_devise.html.erb +8 -8
- data/app/views/headmin/nav/item/_locale.html.erb +4 -4
- data/app/views/headmin/table/_actions.html.erb +3 -6
- data/app/views/headmin/table/actions/_export.html.erb +1 -1
- data/app/views/headmin/table/body/_color.html.erb +10 -0
- data/app/views/headmin/table/body/_row.html.erb +3 -3
- data/app/views/headmin/table/foot/_id.html.erb +1 -1
- data/app/views/headmin/views/devise/confirmations/_new.html.erb +1 -1
- data/app/views/headmin/views/devise/passwords/_edit.html.erb +2 -2
- data/app/views/headmin/views/devise/passwords/_new.html.erb +1 -1
- data/app/views/headmin/views/devise/registrations/_edit.html.erb +4 -4
- data/app/views/headmin/views/devise/registrations/_new.html.erb +3 -3
- data/app/views/headmin/views/devise/sessions/_new.html.erb +3 -3
- data/app/views/headmin/views/devise/unlocks/_new.html.erb +1 -1
- data/config/locales/en.yml +4 -0
- data/config/locales/headmin/dropdown/en.yml +6 -0
- data/config/locales/headmin/dropdown/nl.yml +6 -0
- data/config/locales/headmin/filters/en.yml +26 -1
- data/config/locales/headmin/filters/nl.yml +26 -1
- data/config/locales/headmin/layout/en.yml +0 -9
- data/config/locales/headmin/layout/nl.yml +0 -9
- data/config/locales/headmin/nav/en.yml +7 -0
- data/config/locales/headmin/nav/nl.yml +7 -0
- data/config/locales/nl.yml +4 -0
- data/lib/generators/templates/views/layouts/auth.html.erb +1 -1
- data/lib/headmin/version.rb +1 -1
- data/package.json +1 -1
- metadata +47 -7
- data/app/controllers/concerns/headmin/filter.rb +0 -5
- data/app/controllers/concerns/headmin/searchable.rb +0 -15
- data/app/views/headmin/filters/_select.html.erb +0 -45
- data/app/views/headmin/filters/filter/_template.html.erb +0 -13
- data/app/views/headmin/forms/fields/_image.html.erb +0 -17
@@ -5,8 +5,11 @@
|
|
5
5
|
name: (string) Name of the parameter
|
6
6
|
label: (string) Display name
|
7
7
|
%>
|
8
|
+
|
9
|
+
<% menu_item = Headmin::Filter::MenuItemView.new(local_assigns) %>
|
10
|
+
|
8
11
|
<li>
|
9
|
-
<a class="dropdown-item" href="#" data-filters-target="menuItem" data-action="click->filters#add" data-filter-name="<%= name %>">
|
10
|
-
<%= label %>
|
12
|
+
<a class="dropdown-item" href="#" data-filters-target="menuItem" data-action="click->filters#add" data-filter-name="<%= menu_item.name %>">
|
13
|
+
<%= menu_item.label %>
|
11
14
|
</a>
|
12
15
|
</li>
|
@@ -0,0 +1,8 @@
|
|
1
|
+
<select class="form-select" data-filter-row-target="null" data-action="change->filter#updateHiddenValue" data-filter-target="value">
|
2
|
+
<option value="1" <%= value == 1 ? "selected" : "" %>>
|
3
|
+
<%= t('headmin.filters.values.yes') %>
|
4
|
+
</option>
|
5
|
+
<option value="0" <%= value == 0 ? "selected" : "" %>>
|
6
|
+
<%= t('headmin.filters.values.no') %>
|
7
|
+
</option>
|
8
|
+
</select>
|
@@ -0,0 +1,16 @@
|
|
1
|
+
<%#
|
2
|
+
headmin/filters/filter/button
|
3
|
+
accepts block: no
|
4
|
+
parameters:
|
5
|
+
|
6
|
+
%>
|
7
|
+
|
8
|
+
<% operators = Headmin::Filter::OperatorView.new(local_assigns) %>
|
9
|
+
|
10
|
+
<select class="h-filter-operator form-select" data-action="change->filter#updateHiddenValue" data-filter-target="operator" data-filter-row-target="operator">
|
11
|
+
<% operators.allowed_operators.each do |operator| %>
|
12
|
+
<option value="<%= operator.to_s %>" <%= operators.selected == operator.to_s ? "selected" : "" %>>
|
13
|
+
<%= raw(operators.operator_symbol[operator.to_sym]) %>
|
14
|
+
</option>
|
15
|
+
<% end %>
|
16
|
+
</select>
|
@@ -0,0 +1,11 @@
|
|
1
|
+
<% row = Headmin::Filter::RowView.new(local_assigns) %>
|
2
|
+
|
3
|
+
<div class="h-filter-row" data-controller="filter-row" data-filter-target="row">
|
4
|
+
<%= yield(row.operator, row.value) %>
|
5
|
+
<button type="button" class="btn btn-sm btn-link h-filter-add-input" data-action="click->filter#add">
|
6
|
+
<i class="bi bi-plus-circle"></i>
|
7
|
+
</button>
|
8
|
+
<button type="button" class="btn btn-sm btn-link h-filter-remove-input" data-action="click->filter#remove">
|
9
|
+
<i class="bi bi-dash-circle"></i>
|
10
|
+
</button>
|
11
|
+
</div>
|
@@ -22,7 +22,7 @@
|
|
22
22
|
@lookup_context.prefixes = @lookup_context.prefixes + blocks.prefixes
|
23
23
|
%>
|
24
24
|
|
25
|
-
<%= render
|
25
|
+
<%= render "headmin/forms/repeater", blocks.repeater_options do |block_form, template| %>
|
26
26
|
<% name = template || block_form.object.name %>
|
27
27
|
|
28
28
|
<!-- Name input of the block -->
|
@@ -0,0 +1,32 @@
|
|
1
|
+
<%
|
2
|
+
# headmin/forms/color
|
3
|
+
#
|
4
|
+
# ==== Required parameters
|
5
|
+
# * +attribute+ - Name of the attribute of the form model
|
6
|
+
# * +form+ - Form object
|
7
|
+
#
|
8
|
+
# ==== Optional parameters
|
9
|
+
# * +hint+ - Informative text to assist with data input. HTML markup is allowed.
|
10
|
+
# * +label+ - Text to display inside label tag. Defaults to the attribute name. Set to false if you don"t want to show a label.
|
11
|
+
# * +wrapper+ - Hash with all options for the surrounding html tag
|
12
|
+
#
|
13
|
+
# ==== References
|
14
|
+
# https://headmin.dev/docs/forms/color
|
15
|
+
# https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/color
|
16
|
+
# https://apidock.com/rails/v5.2.3/ActionView/Helpers/FormHelper/color_field
|
17
|
+
#
|
18
|
+
# ==== Examples
|
19
|
+
# Basic version
|
20
|
+
# <%= form_with do |form| %#>
|
21
|
+
# <%= render "headmin/forms/color", form: form, attribute: :active %#>
|
22
|
+
# <% end %#>
|
23
|
+
|
24
|
+
color = Headmin::Form::ColorView.new(local_assigns)
|
25
|
+
%>
|
26
|
+
|
27
|
+
<%= render "headmin/forms/wrapper", color.wrapper_options do %>
|
28
|
+
<%= render "headmin/forms/label", color.label_options if color.label? %>
|
29
|
+
<%= form.color_field(color.attribute, color.input_options) %>
|
30
|
+
<%= render "headmin/forms/validation", color.validation_options if color.validate? %>
|
31
|
+
<%= render "headmin/forms/hint", color.hint_options if color.hint? %>
|
32
|
+
<% end %>
|
@@ -23,7 +23,7 @@
|
|
23
23
|
# ==== Examples
|
24
24
|
# Basic version
|
25
25
|
# <%= form_with do |form| %#>
|
26
|
-
# <%= render
|
26
|
+
# <%= render "headmin/forms/date_range", form: form, start: {attribute: :start_date}, end: {attribute: :end_date} %#>
|
27
27
|
# <% end %#>
|
28
28
|
|
29
29
|
date_range = Headmin::Form::DateRangeView.new(local_assigns)
|
@@ -31,10 +31,10 @@
|
|
31
31
|
|
32
32
|
<div class="row">
|
33
33
|
<div class="col">
|
34
|
-
<%= render
|
34
|
+
<%= render "headmin/forms/date", date_range.start_options %>
|
35
35
|
</div>
|
36
36
|
<div class="col">
|
37
|
-
<%= render
|
37
|
+
<%= render "headmin/forms/date", date_range.end_options %>
|
38
38
|
</div>
|
39
39
|
</div>
|
40
40
|
|
@@ -0,0 +1,41 @@
|
|
1
|
+
<%
|
2
|
+
# headmin/forms/datetime
|
3
|
+
#
|
4
|
+
# ==== Required parameters
|
5
|
+
# * +attribute+ - Name of the attribute of the form model
|
6
|
+
# * +form+ - Form object
|
7
|
+
#
|
8
|
+
# ==== Optional parameters
|
9
|
+
# * +append+ - Display as input group with text on the right-hand side
|
10
|
+
# * +float+ - Use floating labels. Defaults to false
|
11
|
+
# * +hint+ - Informative text to assist with data input. HTML markup is allowed.
|
12
|
+
# * +label+ - Text to display inside label tag. Defaults to the attribute name. Set to false if you don"t want to show a label.
|
13
|
+
# * +list+ - Options are passed through options_for_select
|
14
|
+
# * +plaintext+ - Render input as plain text.
|
15
|
+
# * +prepend+ - Display as input group with text on the left-hand side
|
16
|
+
# * +wrapper+ - Hash with all options for the surrounding html tag
|
17
|
+
#
|
18
|
+
# ==== References
|
19
|
+
# https://headmin.dev/docs/forms/datetime
|
20
|
+
# https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/datetime-local
|
21
|
+
# https://apidock.com/rails/ActionView/Helpers/FormHelper/datetime_field
|
22
|
+
#
|
23
|
+
# ==== Examples
|
24
|
+
# Basic version
|
25
|
+
# <%= form_with do |form| %#>
|
26
|
+
# <%= render "headmin/forms/datetime", form: form, attribute: :deadline %#>
|
27
|
+
# <% end %#>
|
28
|
+
|
29
|
+
datetime = Headmin::Form::DatetimeView.new(local_assigns)
|
30
|
+
%>
|
31
|
+
|
32
|
+
<%= render "headmin/forms/wrapper", datetime.wrapper_options do %>
|
33
|
+
<%= render "headmin/forms/label", datetime.label_options if datetime.prepend_label? %>
|
34
|
+
<%= render "headmin/forms/input_group", datetime.input_group_options do %>
|
35
|
+
<%= form.datetime_field(datetime.attribute, datetime.input_options) %>
|
36
|
+
<%= render "headmin/forms/datalist", datetime.datalist_options if datetime.datalist? %>
|
37
|
+
<% end %>
|
38
|
+
<%= render "headmin/forms/validation", datetime.validation_options if datetime.validate? %>
|
39
|
+
<%= render "headmin/forms/hint", datetime.hint_options if datetime.hint? %>
|
40
|
+
<%= render "headmin/forms/label", datetime.label_options if datetime.append_label? %>
|
41
|
+
<% end %>
|
@@ -0,0 +1,40 @@
|
|
1
|
+
<%
|
2
|
+
# headmin/forms/datetime_range
|
3
|
+
#
|
4
|
+
# ==== Required parameters
|
5
|
+
# * +form+ - Form object
|
6
|
+
# * +start+ - Hash with all options for the start date input (:attribute is required)
|
7
|
+
# * +end+ - Hash with all options for the end date input (:attribute is required)
|
8
|
+
#
|
9
|
+
# ==== Optional parameters
|
10
|
+
# * +append+ - Display as input group with text on the right-hand side
|
11
|
+
# * +float+ - Use floating labels. Defaults to false
|
12
|
+
# * +hint+ - Informative text to assist with data input. HTML markup is allowed.
|
13
|
+
# * +label+ - Text to display inside label tag. Defaults to the attribute name. Set to false if you don"t want to show a label.
|
14
|
+
# * +plaintext+ - Render input as plain text.
|
15
|
+
# * +prepend+ - Display as input group with text on the left-hand side
|
16
|
+
# * +wrapper+ - Hash with all options for the surrounding html tag
|
17
|
+
#
|
18
|
+
# ==== References
|
19
|
+
# https://headmin.dev/docs/forms/datetime_range
|
20
|
+
# https://developer.mozilla.org/en-US/docs/Web/HTML/Element/datetime-local
|
21
|
+
# https://apidock.com/rails/ActionView/Helpers/FormHelper/datetime_field
|
22
|
+
#
|
23
|
+
# ==== Examples
|
24
|
+
# Basic version
|
25
|
+
# <%= form_with do |form| %#>
|
26
|
+
# <%= render "headmin/forms/datetime_range", form: form, start: {attribute: :start_date}, end: {attribute: :end_date} %#>
|
27
|
+
# <% end %#>
|
28
|
+
|
29
|
+
datetime_range = Headmin::Form::DatetimeRangeView.new(local_assigns)
|
30
|
+
%>
|
31
|
+
|
32
|
+
<div class="row">
|
33
|
+
<div class="col">
|
34
|
+
<%= render "headmin/forms/datetime", datetime_range.start_options %>
|
35
|
+
</div>
|
36
|
+
<div class="col">
|
37
|
+
<%= render "headmin/forms/datetime", datetime_range.end_options %>
|
38
|
+
</div>
|
39
|
+
</div>
|
40
|
+
|
@@ -50,7 +50,7 @@
|
|
50
50
|
<div class="h-form-file-thumbnail" title="<%= "#{filename} (#{size})" %>" data-file-preview-target="thumbnail">
|
51
51
|
<%= ff.hidden_field(:id, disabled: file.destroy) %>
|
52
52
|
<%= ff.hidden_field(:_destroy, data: {'file-preview-target': 'thumbnailDestroy'}, disabled: file.destroy) %>
|
53
|
-
<%= render
|
53
|
+
<%= render "headmin/thumbnail", src: src, width: file.thumbnail_width, height: file.thumbnail_height %>
|
54
54
|
|
55
55
|
<% if file.destroy %>
|
56
56
|
<div class="h-form-file-thumbnail-remove" data-action="click->file-preview#remove" data-file-preview-name-param="<%= filename %>">
|
@@ -67,7 +67,7 @@
|
|
67
67
|
</div>
|
68
68
|
<% else %>
|
69
69
|
<div class="h-form-file-thumbnail <%= 'd-none' if file.attachments.any? %>" title="<%= t('headmin.forms.file.not_found') %>" data-file-preview-target="placeholder">
|
70
|
-
<%= render
|
70
|
+
<%= render "headmin/thumbnail", width: file.thumbnail_width, height: file.thumbnail_height, icon: "plus" %>
|
71
71
|
</div>
|
72
72
|
<% end %>
|
73
73
|
</div>
|
@@ -76,7 +76,7 @@
|
|
76
76
|
<!-- Template -->
|
77
77
|
<template data-file-preview-target="template">
|
78
78
|
<div class="h-form-file-thumbnail" title="" data-file-preview-target="thumbnail">
|
79
|
-
<%= render
|
79
|
+
<%= render "headmin/thumbnail", src: nil, width: file.thumbnail_width, height: file.thumbnail_height %>
|
80
80
|
|
81
81
|
<% if file.destroy %>
|
82
82
|
<div class="h-form-file-thumbnail-remove" data-action="click->file-preview#remove">
|
@@ -20,19 +20,18 @@
|
|
20
20
|
# ==== Examples
|
21
21
|
# Basic version
|
22
22
|
# <%= form_with do |form| %#>
|
23
|
-
# <%= render
|
23
|
+
# <%= render "headmin/forms/flatpickr_range", form: form, start: {attribute: :start_date}, end: {attribute: :end_date} %#>
|
24
24
|
# <% end %#>
|
25
25
|
|
26
26
|
flatpickr_range = Headmin::Form::FlatpickrRangeView.new(local_assigns)
|
27
27
|
%>
|
28
28
|
|
29
29
|
<%= render "headmin/forms/wrapper", flatpickr_range.wrapper_options do %>
|
30
|
-
<%= form.hidden_field(flatpickr_range.start[:attribute], flatpickr_range.start_options) %>
|
31
|
-
<%= form.hidden_field(flatpickr_range.end[:attribute], flatpickr_range.end_options) %>
|
32
|
-
|
33
30
|
<%= render "headmin/forms/label", flatpickr_range.label_options if flatpickr_range.prepend_label? %>
|
34
31
|
<%= render "headmin/forms/input_group", flatpickr_range.input_group_options do %>
|
35
32
|
<%= form.date_field(flatpickr_range.attribute, flatpickr_range.input_options) %>
|
33
|
+
<%= form.hidden_field(flatpickr_range.start[:attribute], flatpickr_range.start_options) %>
|
34
|
+
<%= form.hidden_field(flatpickr_range.end[:attribute], flatpickr_range.end_options) %>
|
36
35
|
<% end %>
|
37
36
|
<%= render "headmin/forms/validation", flatpickr_range.validation_options if flatpickr_range.validate? %>
|
38
37
|
<%= render "headmin/forms/hint", flatpickr_range.hint_options if flatpickr_range.hint? %>
|
@@ -11,24 +11,24 @@
|
|
11
11
|
#
|
12
12
|
# ==== Examples
|
13
13
|
# # Basic version
|
14
|
-
# <% render
|
15
|
-
# <% render
|
14
|
+
# <% render "headmin/forms/repeater", form: form, attribute: :questions do |question| %#>
|
15
|
+
# <% render "admin/questions/fields, form: :question" %#>
|
16
16
|
# <% end %#>
|
17
17
|
#
|
18
18
|
# # Let list group sit flush within its container
|
19
|
-
# <% render
|
20
|
-
# <% render
|
19
|
+
# <% render "headmin/forms/repeater", form: form, attribute: :questions, flush: true do |question| %#>
|
20
|
+
# <% render "admin/questions/fields, form: :question" %#>
|
21
21
|
# <% end %#>
|
22
22
|
#
|
23
23
|
# # With fixed header row. A header row can be used to show the labels, so you can omit them in the repeated fields
|
24
|
-
# <% render
|
25
|
-
# <% render
|
24
|
+
# <% render "headmin/forms/repeater", form: form, attribute: :questions, header: 'admin/questions/header' do |question| %#>
|
25
|
+
# <% render "admin/questions/fields, form: :question" %#>
|
26
26
|
# <% end %#>
|
27
27
|
#
|
28
28
|
# # Allow more than one type of fields to be inserted. You must specify the templates as an array of view paths
|
29
29
|
# <% templates = ['admin/questions/fields/type_1', 'admin/questions/fields/type_2'] %#>
|
30
|
-
# <% render
|
31
|
-
# <% render
|
30
|
+
# <% render "headmin/forms/repeater", form: form, attribute: :questions, templates: templates do |question| %#>
|
31
|
+
# <% render "admin/questions/fields, form: :question" %#>
|
32
32
|
# <% end %#>
|
33
33
|
|
34
34
|
label = local_assigns.has_key?(:label) ? label : nil
|
@@ -52,7 +52,7 @@
|
|
52
52
|
|
53
53
|
<!-- Label -->
|
54
54
|
<% if show_label %>
|
55
|
-
<%= render
|
55
|
+
<%= render "headmin/forms/label", form: form, attribute: attribute, text: label, required: required %>
|
56
56
|
<% end %>
|
57
57
|
|
58
58
|
<ul class="repeater list-group <%= 'list-group-flush' if flush %>" data-controller="repeater" data-repeater-target="list" data-repeater-id-value="<%= repeater_id %>">
|
@@ -66,7 +66,7 @@
|
|
66
66
|
|
67
67
|
<!-- Rows -->
|
68
68
|
<%= form.fields_for attribute, associations do |ff| %>
|
69
|
-
<%= render
|
69
|
+
<%= render "headmin/forms/repeater/row", pass_thru: pass_thru, form: ff, repeater_id: repeater_id do %>
|
70
70
|
<%= yield(ff) %>
|
71
71
|
<% end %>
|
72
72
|
<% end %>
|
@@ -93,7 +93,7 @@
|
|
93
93
|
</div>
|
94
94
|
|
95
95
|
<!-- Popup -->
|
96
|
-
<%= render
|
96
|
+
<%= render "headmin/popup", id: "repeater-buttons-#{repeater_id}" do %>
|
97
97
|
<div class="d-grid gap-2">
|
98
98
|
<% template_names.each do |name| %>
|
99
99
|
<div
|
@@ -114,7 +114,7 @@
|
|
114
114
|
<% template_names.each do |name| %>
|
115
115
|
<template data-repeater-target="template" data-template-name="<%= name %>" data-template-id-regex="<%= association_object.object_id %>">
|
116
116
|
<%= form.fields_for attribute, association_object, child_index: association_object.object_id do |ff| %>
|
117
|
-
<%= render
|
117
|
+
<%= render "headmin/forms/repeater/row", form: ff, pass_thru: pass_thru, repeater_id: repeater_id do %>
|
118
118
|
<% yield(ff, name) %>
|
119
119
|
<% end %>
|
120
120
|
<% end %>
|
@@ -8,7 +8,7 @@
|
|
8
8
|
#
|
9
9
|
# ==== Examples
|
10
10
|
# Basic version
|
11
|
-
# <%= render
|
11
|
+
# <%= render "headmin/forms/fields/base", form: form, field_type: :text, name: name do |field, label| %#>
|
12
12
|
# <%= render "headmin/forms/text", form: field, attribute: :value, label: label %#>
|
13
13
|
# <% end %#>
|
14
14
|
|
@@ -7,11 +7,11 @@
|
|
7
7
|
#
|
8
8
|
# ==== Examples
|
9
9
|
# Basic version
|
10
|
-
# <%= render
|
10
|
+
# <%= render "headmin/forms/fields/file", form: group, name: :file do |field, attribute, label| %#>
|
11
11
|
# <%= render "headmin/forms/file", form: field, attribute: attribute, label: label %#>
|
12
12
|
# <% end %#>
|
13
13
|
%>
|
14
14
|
|
15
|
-
<%= render
|
16
|
-
<% yield field, :
|
15
|
+
<%= render "headmin/forms/fields/base", form: form, field_type: :file, name: name do |field, label| %>
|
16
|
+
<% yield field, :files, label %>
|
17
17
|
<% end %>
|
@@ -0,0 +1,17 @@
|
|
1
|
+
<%
|
2
|
+
# name: headmin/forms/fields/file
|
3
|
+
#
|
4
|
+
# ==== Options
|
5
|
+
# * +form+ - Form object
|
6
|
+
# * +name+ - Name for the field
|
7
|
+
#
|
8
|
+
# ==== Examples
|
9
|
+
# Basic version
|
10
|
+
# <%= render "headmin/forms/fields/file", form: group, name: :file do |field, attribute, label| %#>
|
11
|
+
# <%= render "headmin/forms/file", form: field, attribute: attribute, label: label %#>
|
12
|
+
# <% end %#>
|
13
|
+
%>
|
14
|
+
|
15
|
+
<%= render "headmin/forms/fields/base", form: form, field_type: :files, name: name do |field, label| %>
|
16
|
+
<% yield field, :files, label %>
|
17
|
+
<% end %>
|
@@ -8,15 +8,15 @@
|
|
8
8
|
#
|
9
9
|
# ==== Examples
|
10
10
|
# Basic version
|
11
|
-
# <%= render
|
11
|
+
# <%= render "headmin/forms/fields/group", form: form, name: :button do |group| %#>
|
12
12
|
# <div class="row">
|
13
13
|
# <div class="col-md-6">
|
14
|
-
# <%= render
|
14
|
+
# <%= render "headmin/forms/fields/text", form: group, name: :name do |field, attribute, label| %#>
|
15
15
|
# <%= render "headmin/forms/text", form: field, attribute: attribute, label: label %#>
|
16
16
|
# <% end %#>
|
17
17
|
# </div>
|
18
18
|
# <div class="col-md-6">
|
19
|
-
# <%= render
|
19
|
+
# <%= render "headmin/forms/fields/text", form: group, name: :url do |field, attribute, label| %#>
|
20
20
|
# <%= render "headmin/forms/text", form: field, attribute: attribute, label: label %#>
|
21
21
|
# <% end %#>
|
22
22
|
# </div>
|
@@ -28,9 +28,9 @@
|
|
28
28
|
show_label = label != false
|
29
29
|
%>
|
30
30
|
|
31
|
-
<%= render
|
31
|
+
<%= render "headmin/forms/fields/base", form: form, name: name, field_type: :group do |group, field_label| %>
|
32
32
|
<% if show_label %>
|
33
|
-
<%= render
|
33
|
+
<%= render "headmin/forms/label", form: form, attribute: :value, text: label || field_label %>
|
34
34
|
<% end %>
|
35
35
|
|
36
36
|
<% if wrapper %>
|
@@ -8,8 +8,8 @@
|
|
8
8
|
#
|
9
9
|
# ==== Examples
|
10
10
|
# Basic version
|
11
|
-
# <%= render
|
12
|
-
# <%= render
|
11
|
+
# <%= render "headmin/forms/fields/list", form: form, name: :websites do |list| %#>
|
12
|
+
# <%= render "headmin/forms/fields/text", form: list, name: :url do |field, attribute, label| %#>
|
13
13
|
# <%= render "headmin/forms/text", form: field, attribute: attribute, label: label %#>
|
14
14
|
# <% end %#>
|
15
15
|
# <% end %#>
|
@@ -18,8 +18,8 @@
|
|
18
18
|
show_label = label != false
|
19
19
|
%>
|
20
20
|
|
21
|
-
<%= render
|
22
|
-
<%= render
|
21
|
+
<%= render "headmin/forms/fields/base", form: form, name: name, field_type: :list do |list, field_label| %>
|
22
|
+
<%= render "headmin/forms/repeater", form: list, attribute: :fields, label: show_label ? label || field_label : false, flush: false do |field| %>
|
23
23
|
<%= field.hidden_field :field_type, value: :group %>
|
24
24
|
<%= yield field %>
|
25
25
|
<% end %>
|
@@ -7,11 +7,11 @@
|
|
7
7
|
#
|
8
8
|
# ==== Examples
|
9
9
|
# Basic version
|
10
|
-
# <%= render
|
10
|
+
# <%= render "headmin/forms/fields/text", form: group, name: :name do |field, attribute, label| %#>
|
11
11
|
# <%= render "headmin/forms/text", form: field, attribute: attribute, label: label %#>
|
12
12
|
# <% end %#>
|
13
13
|
%>
|
14
14
|
|
15
|
-
<%= render
|
15
|
+
<%= render "headmin/forms/fields/base", form: form, field_type: :text, name: name do |field, label| %>
|
16
16
|
<% yield field, :value, label %>
|
17
17
|
<% end %>
|
@@ -9,9 +9,9 @@
|
|
9
9
|
#
|
10
10
|
# ==== Examples
|
11
11
|
# Basic version.
|
12
|
-
# <%= render
|
13
|
-
# <%= render
|
14
|
-
# <%= render
|
12
|
+
# <%= render "headmin/nav/dropdown", name: 'My Account', url: admin_user_path, icon: 'person-circle' do %#>
|
13
|
+
# <%= render "headmin/nav/item", name: 'Edit info', url: edit_admin_user_path(current_user) %#>
|
14
|
+
# <%= render "headmin/nav/item", name: 'Log out', url: destroy_user_session_path(current_user) %#>
|
15
15
|
# <% end %#>
|
16
16
|
|
17
17
|
name = local_assigns.has_key?(:name) ? name : ''
|
@@ -9,10 +9,10 @@
|
|
9
9
|
#
|
10
10
|
# ==== Examples
|
11
11
|
# Basic version.
|
12
|
-
# <%= render
|
12
|
+
# <%= render "headmin/nav/item", name: 'Dashboard', url: admin_root_path %#>
|
13
13
|
#
|
14
14
|
# With icon
|
15
|
-
# <%= render
|
15
|
+
# <%= render "headmin/nav/item", name: 'Dashboard', url: admin_root_path, icon: 'speedometer' %#>
|
16
16
|
|
17
17
|
name = local_assigns.has_key?(:name) ? name : ''
|
18
18
|
icon = local_assigns.has_key?(:icon) ? icon : nil
|
@@ -2,20 +2,20 @@
|
|
2
2
|
headmin/layout/sidebar/menu/account
|
3
3
|
accepts block: yes
|
4
4
|
parameters:
|
5
|
-
scope: (symbol) devise scope, i.e.
|
5
|
+
scope: (symbol) devise scope, i.e. ":users" => current_user
|
6
6
|
%>
|
7
7
|
|
8
|
-
<% scope = local_assigns.has_key?(:scope) ? scope :
|
8
|
+
<% scope = local_assigns.has_key?(:scope) ? scope : "users" %>
|
9
9
|
<% singular = scope.to_s.singularize.to_sym %>
|
10
10
|
<% user = send("current_#{singular}") %>
|
11
11
|
|
12
|
-
<%= render
|
13
|
-
<%= render
|
12
|
+
<%= render "headmin/dropdown", class: "nav-item" do %>
|
13
|
+
<%= render "headmin/dropdown/button", class: "nav-link", id: "nav-item-devise" do %>
|
14
14
|
<%= user.to_s %>
|
15
15
|
<% end %>
|
16
|
-
<%= render
|
17
|
-
<%= render
|
18
|
-
<%= render
|
19
|
-
<%= render
|
16
|
+
<%= render "headmin/dropdown/list", id: "nav-item-devise" do %>
|
17
|
+
<%= render "headmin/dropdown/item", name: t("headmin.nav.item.devise.edit_profile"), url: polymorphic_path([:edit, :admin, user]) %>
|
18
|
+
<%= render "headmin/dropdown/divider" %>
|
19
|
+
<%= render "headmin/dropdown/item", name: t("headmin.nav.item.devise.log_out"), url: polymorphic_path([:destroy, singular, :session]), data: { "turbo-method": "delete" } %>
|
20
20
|
<% end %>
|
21
21
|
<% end %>
|
@@ -4,14 +4,14 @@
|
|
4
4
|
parameters: none
|
5
5
|
%>
|
6
6
|
|
7
|
-
<%= render
|
8
|
-
<%= render
|
7
|
+
<%= render "headmin/dropdown", class: 'nav-item' do %>
|
8
|
+
<%= render "headmin/dropdown/button", class: 'nav-link', id: 'nav-item-locale' do %>
|
9
9
|
<%= bootstrap_icon('globe', class: 'me-2') %>
|
10
10
|
<%= t('language_name', locale: ::I18n.locale) %>
|
11
11
|
<% end %>
|
12
|
-
<%= render
|
12
|
+
<%= render "headmin/dropdown/list", id: 'nav-item-locale' do %>
|
13
13
|
<% I18n.available_locales.each do |locale| %>
|
14
|
-
<%= render
|
14
|
+
<%= render "headmin/dropdown/item", name: t('language_name', locale: locale), url: url_for({locale: locale.to_s}) %>
|
15
15
|
<% end %>
|
16
16
|
<% end %>
|
17
17
|
<% end %>
|
@@ -5,8 +5,8 @@
|
|
5
5
|
#
|
6
6
|
# ==== Examples
|
7
7
|
# Basic version
|
8
|
-
# <%= render
|
9
|
-
# <%= render
|
8
|
+
# <%= render "headmin/table/actions" do %#>
|
9
|
+
# <%= render "headmin/table/actions/delete", url: destroy_admin_pages_path %#>
|
10
10
|
# <% end %#>
|
11
11
|
|
12
12
|
%>
|
@@ -14,14 +14,11 @@
|
|
14
14
|
<% content_for :table_actions do %>
|
15
15
|
<th class="h-table-actions d-none" data-controller="table-actions" data-table-actions-target="wrapper" data-table-target="actions">
|
16
16
|
<%= form_with url: '', data: { "table-actions-target": 'form' } do |form| %>
|
17
|
+
<%= form.hidden_field :id, value: '', 'data-table-actions-target': 'idInput' %>
|
17
18
|
<%= form.hidden_field :authenticity_token, value: form_authenticity_token %>
|
18
19
|
<%= form.hidden_field :_method, value: 'POST', 'data-table-actions-target': 'method' %>
|
19
20
|
<%= query_parameter_fields(form) %>
|
20
21
|
|
21
|
-
<template data-table-actions-target="idInputTemplate">
|
22
|
-
<%= form.hidden_field :ids, value: 'ID', multiple: true, 'data-table-actions-target': 'id' %>
|
23
|
-
</template>
|
24
|
-
|
25
22
|
<div class="row g-1">
|
26
23
|
<div class="col-6 col-sm-auto">
|
27
24
|
<div class="d-flex align-items-center gap-3">
|
@@ -5,9 +5,9 @@
|
|
5
5
|
# * +class</tt> - Custom class names to add to the table row
|
6
6
|
#
|
7
7
|
# ==== Examples
|
8
|
-
# <%= render
|
9
|
-
# <%= render
|
10
|
-
# <%= render
|
8
|
+
# <%= render "headmin/table/body/row" do %#>
|
9
|
+
# <%= render "headmin/table/body/id", value: page.id %#>
|
10
|
+
# <%= render "headmin/table/body/string", value: page.title %#>
|
11
11
|
# <% end %#>
|
12
12
|
|
13
13
|
class_names = local_assigns.has_key?(:class) ? local_assigns[:class] : false
|