headmin 0.4.2 → 0.5.0

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.
Files changed (117) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +8 -1
  3. data/Gemfile.lock +1 -1
  4. data/app/assets/javascripts/headmin/controllers/date_range_controller.js +12 -6
  5. data/app/assets/javascripts/headmin/controllers/filter_controller.js +61 -11
  6. data/app/assets/javascripts/headmin/controllers/filter_row_controller.js +50 -0
  7. data/app/assets/javascripts/headmin/controllers/flatpickr_controller.js +2 -6
  8. data/app/assets/javascripts/headmin/controllers/popup_controller.js +3 -1
  9. data/app/assets/javascripts/headmin/controllers/table_actions_controller.js +16 -21
  10. data/app/assets/javascripts/headmin/index.js +2 -0
  11. data/app/assets/javascripts/headmin.js +119 -38
  12. data/app/assets/stylesheets/headmin/filter.scss +74 -0
  13. data/app/assets/stylesheets/headmin/general.scss +0 -1
  14. data/app/assets/stylesheets/headmin/layout/body.scss +5 -0
  15. data/app/assets/stylesheets/headmin/popup.scss +0 -1
  16. data/app/assets/stylesheets/headmin.css +67 -2
  17. data/app/controllers/concerns/headmin/filterable.rb +27 -0
  18. data/app/models/headmin/filter/base.rb +238 -0
  19. data/app/models/headmin/filter/base_view.rb +64 -0
  20. data/app/models/headmin/filter/boolean.rb +15 -0
  21. data/app/models/headmin/filter/boolean_view.rb +61 -0
  22. data/app/models/headmin/filter/button_view.rb +25 -0
  23. data/app/models/headmin/filter/conditional_view.rb +16 -0
  24. data/app/models/headmin/filter/date.rb +19 -0
  25. data/app/models/headmin/filter/date_view.rb +52 -0
  26. data/app/models/headmin/filter/flatpickr_view.rb +54 -0
  27. data/app/models/headmin/filter/menu_item_view.rb +6 -0
  28. data/app/models/headmin/filter/money.rb +13 -0
  29. data/app/models/headmin/filter/number.rb +27 -0
  30. data/app/models/headmin/filter/number_view.rb +54 -0
  31. data/app/models/headmin/filter/operator_view.rb +30 -0
  32. data/app/models/headmin/filter/options_view.rb +61 -0
  33. data/app/models/headmin/filter/row_view.rb +13 -0
  34. data/app/models/headmin/filter/search.rb +18 -0
  35. data/app/models/headmin/filter/search_view.rb +31 -0
  36. data/app/models/headmin/filter/text.rb +25 -0
  37. data/app/models/headmin/filter/text_view.rb +53 -0
  38. data/app/models/headmin/filters.rb +29 -0
  39. data/app/models/headmin/form/datetime_range_view.rb +25 -0
  40. data/app/models/headmin/form/datetime_view.rb +45 -0
  41. data/app/models/headmin/form/flatpickr_range_view.rb +4 -15
  42. data/app/models/headmin/form/flatpickr_view.rb +3 -12
  43. data/app/models/view_model.rb +1 -1
  44. data/app/views/examples/admin.html.erb +13 -13
  45. data/app/views/examples/auth.html.erb +1 -1
  46. data/app/views/headmin/_filters.html.erb +6 -6
  47. data/app/views/headmin/_form.html.erb +2 -2
  48. data/app/views/headmin/_index.html.erb +1 -1
  49. data/app/views/headmin/_pagination.html.erb +1 -1
  50. data/app/views/headmin/_popup.html.erb +2 -2
  51. data/app/views/headmin/_table.html.erb +1 -1
  52. data/app/views/headmin/dropdown/_devise.html.erb +8 -8
  53. data/app/views/headmin/dropdown/_locale.html.erb +4 -4
  54. data/app/views/headmin/filters/_base.html.erb +95 -0
  55. data/app/views/headmin/filters/_boolean.html.erb +23 -0
  56. data/app/views/headmin/filters/_date.html.erb +14 -38
  57. data/app/views/headmin/filters/_flatpickr.html.erb +15 -48
  58. data/app/views/headmin/filters/_number.html.erb +23 -0
  59. data/app/views/headmin/filters/_options.html.erb +24 -0
  60. data/app/views/headmin/filters/_search.html.erb +14 -12
  61. data/app/views/headmin/filters/_text.html.erb +23 -0
  62. data/app/views/headmin/filters/filter/_button.html.erb +9 -10
  63. data/app/views/headmin/filters/filter/_conditional.html.erb +18 -0
  64. data/app/views/headmin/filters/filter/_menu_item.html.erb +5 -2
  65. data/app/views/headmin/filters/filter/_null_select.html.erb +8 -0
  66. data/app/views/headmin/filters/filter/_operator.html.erb +16 -0
  67. data/app/views/headmin/filters/filter/_row.html.erb +11 -0
  68. data/app/views/headmin/forms/_blocks.html.erb +1 -1
  69. data/app/views/headmin/forms/_date_range.html.erb +3 -3
  70. data/app/views/headmin/forms/_datetime.html.erb +41 -0
  71. data/app/views/headmin/forms/_datetime_range.html.erb +40 -0
  72. data/app/views/headmin/forms/_file.html.erb +3 -3
  73. data/app/views/headmin/forms/_flatpickr.html.erb +1 -1
  74. data/app/views/headmin/forms/_flatpickr_range.html.erb +3 -4
  75. data/app/views/headmin/forms/_label.html.erb +1 -1
  76. data/app/views/headmin/forms/_repeater.html.erb +12 -12
  77. data/app/views/headmin/forms/fields/_base.html.erb +1 -1
  78. data/app/views/headmin/forms/fields/_file.html.erb +2 -2
  79. data/app/views/headmin/forms/fields/_files.html.erb +2 -2
  80. data/app/views/headmin/forms/fields/_group.html.erb +5 -5
  81. data/app/views/headmin/forms/fields/_list.html.erb +4 -4
  82. data/app/views/headmin/forms/fields/_text.html.erb +2 -2
  83. data/app/views/headmin/layout/_footer.html.erb +1 -1
  84. data/app/views/headmin/layout/_main.html.erb +1 -1
  85. data/app/views/headmin/nav/_dropdown.html.erb +3 -3
  86. data/app/views/headmin/nav/_item.html.erb +2 -2
  87. data/app/views/headmin/nav/item/_devise.html.erb +8 -8
  88. data/app/views/headmin/nav/item/_locale.html.erb +4 -4
  89. data/app/views/headmin/table/_actions.html.erb +3 -6
  90. data/app/views/headmin/table/actions/_export.html.erb +1 -1
  91. data/app/views/headmin/table/body/_row.html.erb +3 -3
  92. data/app/views/headmin/table/foot/_id.html.erb +1 -1
  93. data/app/views/headmin/views/devise/confirmations/_new.html.erb +1 -1
  94. data/app/views/headmin/views/devise/passwords/_edit.html.erb +2 -2
  95. data/app/views/headmin/views/devise/passwords/_new.html.erb +1 -1
  96. data/app/views/headmin/views/devise/registrations/_edit.html.erb +4 -4
  97. data/app/views/headmin/views/devise/registrations/_new.html.erb +3 -3
  98. data/app/views/headmin/views/devise/sessions/_new.html.erb +3 -3
  99. data/app/views/headmin/views/devise/unlocks/_new.html.erb +1 -1
  100. data/config/locales/en.yml +4 -0
  101. data/config/locales/headmin/dropdown/en.yml +6 -0
  102. data/config/locales/headmin/dropdown/nl.yml +6 -0
  103. data/config/locales/headmin/filters/en.yml +26 -1
  104. data/config/locales/headmin/filters/nl.yml +26 -1
  105. data/config/locales/headmin/layout/en.yml +0 -9
  106. data/config/locales/headmin/layout/nl.yml +0 -9
  107. data/config/locales/headmin/nav/en.yml +7 -0
  108. data/config/locales/headmin/nav/nl.yml +7 -0
  109. data/config/locales/nl.yml +4 -0
  110. data/lib/generators/templates/views/layouts/auth.html.erb +1 -1
  111. data/lib/headmin/version.rb +1 -1
  112. data/package.json +1 -1
  113. metadata +42 -6
  114. data/app/controllers/concerns/headmin/filter.rb +0 -5
  115. data/app/controllers/concerns/headmin/searchable.rb +0 -15
  116. data/app/views/headmin/filters/_select.html.erb +0 -45
  117. data/app/views/headmin/filters/filter/_template.html.erb +0 -13
@@ -1,13 +1,38 @@
1
1
  nl:
2
2
  headmin:
3
3
  filters:
4
+ apply: Toepassen
4
5
  button: Filters
5
6
  remove_all: Filters leegmaken
6
7
  filter:
7
8
  button:
8
9
  all: Alle
10
+ conditional:
11
+ and: En
12
+ or: Of
9
13
  select:
10
14
  blank: Maak een keuze
11
15
  search:
12
16
  button: Zoeken
13
- placeholder: 'In %{resource} zoeken'
17
+ placeholder: 'In %{resource} zoeken'
18
+ conditionals:
19
+ and: en
20
+ or: of
21
+ operators:
22
+ eq: is
23
+ not_eq: is niet
24
+ gt: is groter dan
25
+ gteq: is groter dan of gelijk aan
26
+ lt: is kleiner dan
27
+ lteq: is kleiner dan of gelijk aan
28
+ starts_with: begint met
29
+ ends_with: eindigt met
30
+ matches: lijkt op
31
+ does_not_match: lijkt niet op
32
+ is_not_null: is ingevuld
33
+ is_null: is niet ingevuld
34
+ values:
35
+ "false": Onwaar
36
+ "no": Nee
37
+ "true": Waar
38
+ "yes": Ja
@@ -1,14 +1,5 @@
1
1
  en:
2
2
  headmin:
3
3
  layout:
4
- sidebar:
5
- menu:
6
- account:
7
- edit_profile: Edit profile
8
- log_out: Log out
9
- header:
10
- account:
11
- edit_profile: Edit profile
12
- log_out: Log out
13
4
  footer:
14
5
  help: Support
@@ -1,14 +1,5 @@
1
1
  nl:
2
2
  headmin:
3
3
  layout:
4
- sidebar:
5
- menu:
6
- account:
7
- edit_profile: Profiel bewerken
8
- log_out: Afmelden
9
- header:
10
- account:
11
- edit_profile: Profiel bewerken
12
- log_out: Afmelden
13
4
  footer:
14
5
  help: Hulp nodig?
@@ -0,0 +1,7 @@
1
+ en:
2
+ headmin:
3
+ nav:
4
+ item:
5
+ devise:
6
+ edit_profile: Edit profile
7
+ log_out: Log out
@@ -0,0 +1,7 @@
1
+ nl:
2
+ headmin:
3
+ nav:
4
+ item:
5
+ devise:
6
+ edit_profile: Profiel bewerken
7
+ log_out: Afmelden
@@ -1,2 +1,6 @@
1
1
  nl:
2
2
  language_name: Nederlands
3
+
4
+ date:
5
+ formats:
6
+ default: "%d/%m/%Y"
@@ -10,7 +10,7 @@
10
10
  </head>
11
11
  <body class="bg-light w-100 vh-100">
12
12
 
13
- <%= render 'headmin/notifications' %>
13
+ <%= render "headmin/notifications" %>
14
14
 
15
15
  <main class="d-flex justify-content-center align-items-center w-100 vh-100 p-3">
16
16
  <%= yield %>
@@ -1,3 +1,3 @@
1
1
  module Headmin
2
- VERSION = "0.4.2"
2
+ VERSION = "0.5.0"
3
3
  end
data/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "headmin",
3
- "version": "0.4.1",
3
+ "version": "0.4.2",
4
4
  "description": "Admin component library",
5
5
  "module": "app/assets/javascripts/headmin.js",
6
6
  "main": "app/assets/javascripts/headmin.js",
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: headmin
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.2
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jef Vlamings
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-04-27 00:00:00.000000000 Z
11
+ date: 2022-05-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: closure_tree
@@ -101,6 +101,7 @@ files:
101
101
  - app/assets/javascripts/headmin/controllers/dropzone_controller.js
102
102
  - app/assets/javascripts/headmin/controllers/file_preview_controller.js
103
103
  - app/assets/javascripts/headmin/controllers/filter_controller.js
104
+ - app/assets/javascripts/headmin/controllers/filter_row_controller.js
104
105
  - app/assets/javascripts/headmin/controllers/filters_controller.js
105
106
  - app/assets/javascripts/headmin/controllers/flatpickr_controller.js
106
107
  - app/assets/javascripts/headmin/controllers/hello_controller.js
@@ -225,9 +226,8 @@ files:
225
226
  - app/assets/stylesheets/headmin/vendor/tom-select-bootstrap.css
226
227
  - app/controllers/concerns/headmin/acts_as_list.rb
227
228
  - app/controllers/concerns/headmin/authentication.rb
228
- - app/controllers/concerns/headmin/filter.rb
229
+ - app/controllers/concerns/headmin/filterable.rb
229
230
  - app/controllers/concerns/headmin/pagination.rb
230
- - app/controllers/concerns/headmin/searchable.rb
231
231
  - app/controllers/concerns/headmin/sortable.rb
232
232
  - app/helpers/headmin/admin_helper.rb
233
233
  - app/helpers/headmin/bootstrap_helper.rb
@@ -249,10 +249,33 @@ files:
249
249
  - app/models/concerns/headmin/form/wrappable.rb
250
250
  - app/models/headmin/.DS_Store
251
251
  - app/models/headmin/blocks_view.rb
252
+ - app/models/headmin/filter/base.rb
253
+ - app/models/headmin/filter/base_view.rb
254
+ - app/models/headmin/filter/boolean.rb
255
+ - app/models/headmin/filter/boolean_view.rb
256
+ - app/models/headmin/filter/button_view.rb
257
+ - app/models/headmin/filter/conditional_view.rb
258
+ - app/models/headmin/filter/date.rb
259
+ - app/models/headmin/filter/date_view.rb
260
+ - app/models/headmin/filter/flatpickr_view.rb
261
+ - app/models/headmin/filter/menu_item_view.rb
262
+ - app/models/headmin/filter/money.rb
263
+ - app/models/headmin/filter/number.rb
264
+ - app/models/headmin/filter/number_view.rb
265
+ - app/models/headmin/filter/operator_view.rb
266
+ - app/models/headmin/filter/options_view.rb
267
+ - app/models/headmin/filter/row_view.rb
268
+ - app/models/headmin/filter/search.rb
269
+ - app/models/headmin/filter/search_view.rb
270
+ - app/models/headmin/filter/text.rb
271
+ - app/models/headmin/filter/text_view.rb
272
+ - app/models/headmin/filters.rb
252
273
  - app/models/headmin/form/blocks_view.rb
253
274
  - app/models/headmin/form/checkbox_view.rb
254
275
  - app/models/headmin/form/date_range_view.rb
255
276
  - app/models/headmin/form/date_view.rb
277
+ - app/models/headmin/form/datetime_range_view.rb
278
+ - app/models/headmin/form/datetime_view.rb
256
279
  - app/models/headmin/form/email_view.rb
257
280
  - app/models/headmin/form/file_view.rb
258
281
  - app/models/headmin/form/flatpickr_range_view.rb
@@ -294,19 +317,28 @@ files:
294
317
  - app/views/headmin/dropdown/_item.html.erb
295
318
  - app/views/headmin/dropdown/_list.html.erb
296
319
  - app/views/headmin/dropdown/_locale.html.erb
320
+ - app/views/headmin/filters/_base.html.erb
321
+ - app/views/headmin/filters/_boolean.html.erb
297
322
  - app/views/headmin/filters/_date.html.erb
298
323
  - app/views/headmin/filters/_flatpickr.html.erb
324
+ - app/views/headmin/filters/_number.html.erb
325
+ - app/views/headmin/filters/_options.html.erb
299
326
  - app/views/headmin/filters/_search.html.erb
300
- - app/views/headmin/filters/_select.html.erb
327
+ - app/views/headmin/filters/_text.html.erb
301
328
  - app/views/headmin/filters/filter/_button.html.erb
329
+ - app/views/headmin/filters/filter/_conditional.html.erb
302
330
  - app/views/headmin/filters/filter/_menu_item.html.erb
303
- - app/views/headmin/filters/filter/_template.html.erb
331
+ - app/views/headmin/filters/filter/_null_select.html.erb
332
+ - app/views/headmin/filters/filter/_operator.html.erb
333
+ - app/views/headmin/filters/filter/_row.html.erb
304
334
  - app/views/headmin/forms/_autocomplete.html.erb
305
335
  - app/views/headmin/forms/_blocks.html.erb
306
336
  - app/views/headmin/forms/_checkbox.html.erb
307
337
  - app/views/headmin/forms/_datalist.html.erb
308
338
  - app/views/headmin/forms/_date.html.erb
309
339
  - app/views/headmin/forms/_date_range.html.erb
340
+ - app/views/headmin/forms/_datetime.html.erb
341
+ - app/views/headmin/forms/_datetime_range.html.erb
310
342
  - app/views/headmin/forms/_email.html.erb
311
343
  - app/views/headmin/forms/_errors.html.erb
312
344
  - app/views/headmin/forms/_file.html.erb
@@ -406,6 +438,8 @@ files:
406
438
  - config/locales/devise/en.yml
407
439
  - config/locales/devise/nl.yml
408
440
  - config/locales/en.yml
441
+ - config/locales/headmin/dropdown/en.yml
442
+ - config/locales/headmin/dropdown/nl.yml
409
443
  - config/locales/headmin/filters/en.yml
410
444
  - config/locales/headmin/filters/nl.yml
411
445
  - config/locales/headmin/forms/en.yml
@@ -414,6 +448,8 @@ files:
414
448
  - config/locales/headmin/heading/nl.yml
415
449
  - config/locales/headmin/layout/en.yml
416
450
  - config/locales/headmin/layout/nl.yml
451
+ - config/locales/headmin/nav/en.yml
452
+ - config/locales/headmin/nav/nl.yml
417
453
  - config/locales/headmin/pagination/en.yml
418
454
  - config/locales/headmin/pagination/nl.yml
419
455
  - config/locales/headmin/popup/en.yml
@@ -1,5 +0,0 @@
1
- module Headmin
2
- module Filter
3
- include Headmin::FilterHelper
4
- end
5
- end
@@ -1,15 +0,0 @@
1
- module Headmin
2
- module Searchable
3
- def search(collection)
4
- if search_params&.present?
5
- collection.search(search_params)
6
- else
7
- collection
8
- end
9
- end
10
-
11
- def search_params
12
- @search_params ||= params[:search]&.to_s
13
- end
14
- end
15
- end
@@ -1,45 +0,0 @@
1
- <%
2
- # headmin/filters/select
3
- #
4
- # ==== Options
5
- # * +name</tt> - Name of the filter parameter
6
- # * +label</tt> - Display name
7
- # * +options</tt> - List of options to select from
8
- #
9
- # ==== Examples
10
- # Basic version
11
- # <%= render "headmin/filters/select", name: :poll_type, label: 'Type', options: [["General", "general", "Fun", "fun"]] %#>
12
-
13
- name = local_assigns.has_key?(:name) ? name.to_sym : nil
14
- label = local_assigns.has_key?(:label) ? label : name.to_s.humanize
15
- options = local_assigns.has_key?(:options) ? options : []
16
-
17
- select_options = {
18
- class: "form-select",
19
- prompt: t('.blank'),
20
- include_blank: false,
21
- required: true,
22
- 'data-filters-target': 'input',
23
- 'data-action': "change->filters#update"
24
- }
25
- %>
26
-
27
- <%= content_for :filters_menu do %>
28
- <%= render 'headmin/filters/filter/menu_item', name: name, label: label %>
29
- <% end %>
30
-
31
- <%= content_for :filters_templates do %>
32
- <%= render 'headmin/filters/filter/template', name: name, label: label do %>
33
- <%= select_tag("#{name}[]", options_for_select(options), select_options) %>
34
- <% end %>
35
- <% end %>
36
-
37
- <%= content_for :filters_buttons do %>
38
- <% (params[name] || []).each_with_index do |param, index| %>
39
- <% selected_option = options.detect { |value, key, config| (key.present? ? key : value) == param } %>
40
- <% selected_value = selected_option.is_a?(Array) ? selected_option.first : selected_option %>
41
- <%= render 'headmin/filters/filter/button', name: name, label: label, value: selected_value, id: "#{name}_#{index}_#{SecureRandom.hex}" do %>
42
- <%= select_tag("#{name}[]", options_for_select(options, param), select_options) %>
43
- <% end %>
44
- <% end %>
45
- <% end %>
@@ -1,13 +0,0 @@
1
- <%#
2
- headmin/filters/filter/template
3
- accepts block: yes
4
- parameters:
5
- name: (string) Name of the parameter
6
- label: (string) Display name
7
- %>
8
-
9
- <template data-filter-name="<%= name %>" data-filters-target="template">
10
- <%= render 'headmin/filters/filter/button', name: name, label: label, value: nil, id: 'template_id' do %>
11
- <%= yield %>
12
- <% end %>
13
- </template>