headmin 0.4.2 → 0.5.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.
Files changed (188) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +10 -3
  3. data/Gemfile +14 -0
  4. data/Gemfile.lock +78 -1
  5. data/app/assets/javascripts/headmin/controllers/date_range_controller.js +12 -6
  6. data/app/assets/javascripts/headmin/controllers/filter_controller.js +61 -11
  7. data/app/assets/javascripts/headmin/controllers/filter_row_controller.js +50 -0
  8. data/app/assets/javascripts/headmin/controllers/flatpickr_controller.js +2 -6
  9. data/app/assets/javascripts/headmin/controllers/media_controller.js +237 -0
  10. data/app/assets/javascripts/headmin/controllers/media_modal_controller.js +110 -0
  11. data/app/assets/javascripts/headmin/controllers/popup_controller.js +3 -1
  12. data/app/assets/javascripts/headmin/controllers/remote_modal_controller.js +10 -0
  13. data/app/assets/javascripts/headmin/controllers/table_actions_controller.js +16 -21
  14. data/app/assets/javascripts/headmin/controllers/textarea_controller.js +34 -0
  15. data/app/assets/javascripts/headmin/index.js +10 -0
  16. data/app/assets/javascripts/headmin.js +413 -38
  17. data/app/assets/stylesheets/headmin/filter.scss +74 -0
  18. data/app/assets/stylesheets/headmin/forms/file.scss +40 -5
  19. data/app/assets/stylesheets/headmin/forms/media.scss +10 -0
  20. data/app/assets/stylesheets/headmin/forms/repeater.scss +4 -0
  21. data/app/assets/stylesheets/headmin/forms.scss +7 -0
  22. data/app/assets/stylesheets/headmin/general.scss +0 -1
  23. data/app/assets/stylesheets/headmin/layout/body.scss +5 -0
  24. data/app/assets/stylesheets/headmin/layout/sidebar.scss +0 -1
  25. data/app/assets/stylesheets/headmin/media/index.scss +9 -0
  26. data/app/assets/stylesheets/headmin/media.scss +1 -0
  27. data/app/assets/stylesheets/headmin/popup.scss +0 -1
  28. data/app/assets/stylesheets/headmin/table.scss +15 -0
  29. data/app/assets/stylesheets/headmin.css +137 -9
  30. data/app/assets/stylesheets/headmin.scss +1 -0
  31. data/app/controllers/concerns/headmin/filterable.rb +27 -0
  32. data/app/controllers/headmin/media_controller.rb +52 -0
  33. data/app/controllers/headmin_controller.rb +2 -0
  34. data/app/models/concerns/headmin/field.rb +0 -1
  35. data/app/models/concerns/headmin/fieldable.rb +10 -1
  36. data/app/models/concerns/headmin/form/hintable.rb +6 -1
  37. data/app/models/headmin/blocks_view.rb +1 -1
  38. data/app/models/headmin/filter/base.rb +238 -0
  39. data/app/models/headmin/filter/base_view.rb +64 -0
  40. data/app/models/headmin/filter/boolean.rb +15 -0
  41. data/app/models/headmin/filter/boolean_view.rb +61 -0
  42. data/app/models/headmin/filter/button_view.rb +25 -0
  43. data/app/models/headmin/filter/conditional_view.rb +16 -0
  44. data/app/models/headmin/filter/date.rb +67 -0
  45. data/app/models/headmin/filter/date_view.rb +52 -0
  46. data/app/models/headmin/filter/flatpickr_view.rb +54 -0
  47. data/app/models/headmin/filter/menu_item_view.rb +6 -0
  48. data/app/models/headmin/filter/money.rb +13 -0
  49. data/app/models/headmin/filter/number.rb +27 -0
  50. data/app/models/headmin/filter/number_view.rb +54 -0
  51. data/app/models/headmin/filter/operator_view.rb +30 -0
  52. data/app/models/headmin/filter/options_view.rb +61 -0
  53. data/app/models/headmin/filter/row_view.rb +13 -0
  54. data/app/models/headmin/filter/search.rb +18 -0
  55. data/app/models/headmin/filter/search_view.rb +31 -0
  56. data/app/models/headmin/filter/text.rb +25 -0
  57. data/app/models/headmin/filter/text_view.rb +53 -0
  58. data/app/models/headmin/filters.rb +29 -0
  59. data/app/models/headmin/form/color_view.rb +48 -0
  60. data/app/models/headmin/form/datetime_range_view.rb +25 -0
  61. data/app/models/headmin/form/datetime_view.rb +45 -0
  62. data/app/models/headmin/form/flatpickr_range_view.rb +4 -15
  63. data/app/models/headmin/form/flatpickr_view.rb +3 -12
  64. data/app/models/headmin/form/media_view.rb +113 -0
  65. data/app/models/headmin/form/textarea_view.rb +6 -1
  66. data/app/models/view_model.rb +1 -1
  67. data/app/views/headmin/_blocks.html.erb +3 -3
  68. data/app/views/headmin/_breadcrumbs.html.erb +1 -1
  69. data/app/views/headmin/_dropdown.html.erb +1 -1
  70. data/app/views/headmin/_filters.html.erb +9 -9
  71. data/app/views/headmin/_heading.html.erb +1 -1
  72. data/app/views/headmin/_notifications.html.erb +1 -1
  73. data/app/views/headmin/_pagination.html.erb +2 -2
  74. data/app/views/headmin/dropdown/_devise.html.erb +7 -7
  75. data/app/views/headmin/dropdown/_list.html.erb +1 -1
  76. data/app/views/headmin/filters/_base.html.erb +95 -0
  77. data/app/views/headmin/filters/_boolean.html.erb +23 -0
  78. data/app/views/headmin/filters/_date.html.erb +14 -38
  79. data/app/views/headmin/filters/_flatpickr.html.erb +15 -48
  80. data/app/views/headmin/filters/_number.html.erb +23 -0
  81. data/app/views/headmin/filters/_options.html.erb +24 -0
  82. data/app/views/headmin/filters/_search.html.erb +14 -12
  83. data/app/views/headmin/filters/_text.html.erb +23 -0
  84. data/app/views/headmin/filters/filter/_button.html.erb +9 -10
  85. data/app/views/headmin/filters/filter/_conditional.html.erb +18 -0
  86. data/app/views/headmin/filters/filter/_menu_item.html.erb +5 -2
  87. data/app/views/headmin/filters/filter/_null_select.html.erb +8 -0
  88. data/app/views/headmin/filters/filter/_operator.html.erb +16 -0
  89. data/app/views/headmin/filters/filter/_row.html.erb +11 -0
  90. data/app/views/headmin/forms/_autocomplete.html.erb +2 -2
  91. data/app/views/headmin/forms/_blocks.html.erb +3 -3
  92. data/app/views/headmin/forms/_checkbox.html.erb +5 -5
  93. data/app/views/headmin/forms/_color.html.erb +32 -0
  94. data/app/views/headmin/forms/_date.html.erb +8 -8
  95. data/app/views/headmin/forms/_datetime.html.erb +41 -0
  96. data/app/views/headmin/forms/_datetime_range.html.erb +40 -0
  97. data/app/views/headmin/forms/_email.html.erb +9 -9
  98. data/app/views/headmin/forms/_file.html.erb +9 -9
  99. data/app/views/headmin/forms/_flatpickr.html.erb +1 -1
  100. data/app/views/headmin/forms/_flatpickr_range.html.erb +9 -10
  101. data/app/views/headmin/forms/_hidden.html.erb +1 -1
  102. data/app/views/headmin/forms/_hint.html.erb +7 -2
  103. data/app/views/headmin/forms/_media.html.erb +58 -0
  104. data/app/views/headmin/forms/_number.html.erb +8 -8
  105. data/app/views/headmin/forms/_password.html.erb +7 -7
  106. data/app/views/headmin/forms/_redactorx.html.erb +2 -2
  107. data/app/views/headmin/forms/_search.html.erb +9 -9
  108. data/app/views/headmin/forms/_select.html.erb +8 -8
  109. data/app/views/headmin/forms/_switch.html.erb +2 -2
  110. data/app/views/headmin/forms/_text.html.erb +9 -9
  111. data/app/views/headmin/forms/_textarea.html.erb +7 -7
  112. data/app/views/headmin/forms/_url.html.erb +9 -9
  113. data/app/views/headmin/forms/_validation.html.erb +1 -1
  114. data/app/views/headmin/forms/_wysiwyg.html.erb +2 -2
  115. data/app/views/headmin/forms/fields/_base.html.erb +1 -1
  116. data/app/views/headmin/forms/fields/_file.html.erb +1 -1
  117. data/app/views/headmin/forms/fields/_files.html.erb +1 -1
  118. data/app/views/headmin/forms/fields/_group.html.erb +2 -2
  119. data/app/views/headmin/forms/fields/_list.html.erb +1 -1
  120. data/app/views/headmin/forms/fields/_text.html.erb +1 -1
  121. data/app/views/headmin/forms/media/_item.html.erb +32 -0
  122. data/app/views/headmin/forms/media/_validation.html.erb +10 -0
  123. data/app/views/headmin/forms/repeater/_row.html.erb +12 -11
  124. data/app/views/headmin/layout/_footer.html.erb +1 -1
  125. data/app/views/headmin/layout/_main.html.erb +2 -0
  126. data/app/views/headmin/layout/_remote_modal.html.erb +1 -0
  127. data/app/views/headmin/layout/_sidebar.html.erb +1 -1
  128. data/app/views/headmin/media/_item.html.erb +17 -0
  129. data/app/views/headmin/media/_media_item_modal.html.erb +51 -0
  130. data/app/views/headmin/media/_modal.html.erb +35 -0
  131. data/app/views/headmin/media/create.turbo_stream.erb +5 -0
  132. data/app/views/headmin/media/index.html.erb +3 -0
  133. data/app/views/headmin/media/show.html.erb +9 -0
  134. data/app/views/headmin/media/update.turbo_stream.erb +3 -0
  135. data/app/views/headmin/nav/item/_devise.html.erb +7 -7
  136. data/app/views/headmin/table/_actions.html.erb +1 -4
  137. data/app/views/headmin/table/actions/_action.html.erb +3 -3
  138. data/app/views/headmin/table/actions/_delete.html.erb +2 -2
  139. data/app/views/headmin/table/actions/_export.html.erb +1 -1
  140. data/app/views/headmin/table/body/_color.html.erb +10 -0
  141. data/app/views/headmin/table/body/_image.html.erb +18 -0
  142. data/app/views/headmin/table/foot/_cell.html.erb +1 -1
  143. data/app/views/headmin/table/foot/_id.html.erb +1 -1
  144. data/app/views/headmin/views/devise/confirmations/_new.html.erb +2 -2
  145. data/app/views/headmin/views/devise/passwords/_edit.html.erb +2 -2
  146. data/app/views/headmin/views/devise/passwords/_new.html.erb +2 -2
  147. data/app/views/headmin/views/devise/registrations/_edit.html.erb +1 -1
  148. data/app/views/headmin/views/devise/registrations/_new.html.erb +2 -2
  149. data/app/views/headmin/views/devise/sessions/_new.html.erb +1 -1
  150. data/app/views/headmin/views/devise/unlocks/_new.html.erb +2 -2
  151. data/config/locales/devise/nl.yml +1 -1
  152. data/config/locales/en.yml +4 -0
  153. data/config/locales/headmin/dropdown/en.yml +6 -0
  154. data/config/locales/headmin/dropdown/nl.yml +6 -0
  155. data/config/locales/headmin/filters/en.yml +26 -1
  156. data/config/locales/headmin/filters/nl.yml +26 -1
  157. data/config/locales/headmin/forms/en.yml +8 -0
  158. data/config/locales/headmin/forms/nl.yml +8 -0
  159. data/config/locales/headmin/layout/en.yml +0 -9
  160. data/config/locales/headmin/layout/nl.yml +0 -9
  161. data/config/locales/headmin/media/en.yml +23 -0
  162. data/config/locales/headmin/media/nl.yml +22 -0
  163. data/config/locales/headmin/nav/en.yml +7 -0
  164. data/config/locales/headmin/nav/nl.yml +7 -0
  165. data/config/locales/headmin/table/en.yml +2 -0
  166. data/config/locales/headmin/table/nl.yml +2 -0
  167. data/config/locales/nl.yml +4 -0
  168. data/config/routes.rb +10 -0
  169. data/lib/generators/templates/views/auth/confirmations/new.html.erb +1 -1
  170. data/lib/generators/templates/views/auth/mailer/confirmation_instructions.html.erb +1 -1
  171. data/lib/generators/templates/views/auth/mailer/email_changed.html.erb +1 -1
  172. data/lib/generators/templates/views/auth/mailer/password_change.html.erb +1 -1
  173. data/lib/generators/templates/views/auth/mailer/reset_password_instructions.html.erb +1 -1
  174. data/lib/generators/templates/views/auth/mailer/unlock_instructions.html.erb +1 -1
  175. data/lib/generators/templates/views/auth/passwords/edit.html.erb +1 -1
  176. data/lib/generators/templates/views/auth/passwords/new.html.erb +1 -1
  177. data/lib/generators/templates/views/auth/registrations/edit.html.erb +1 -1
  178. data/lib/generators/templates/views/auth/registrations/new.html.erb +1 -1
  179. data/lib/generators/templates/views/auth/sessions/new.html.erb +1 -1
  180. data/lib/generators/templates/views/auth/unlocks/new.html.erb +1 -1
  181. data/lib/headmin/version.rb +1 -1
  182. data/package.json +1 -1
  183. metadata +70 -7
  184. data/.lock-487e157d270f3062a98b7b2a012753708-1272821827 +0 -0
  185. data/app/controllers/concerns/headmin/filter.rb +0 -5
  186. data/app/controllers/concerns/headmin/searchable.rb +0 -15
  187. data/app/views/headmin/filters/_select.html.erb +0 -45
  188. data/app/views/headmin/filters/filter/_template.html.erb +0 -13
@@ -1,13 +1,38 @@
1
1
  en:
2
2
  headmin:
3
3
  filters:
4
+ apply: Apply
4
5
  button: Filters
5
6
  remove_all: Clear all
6
7
  filter:
7
8
  button:
8
9
  all: All
10
+ conditional:
11
+ and: And
12
+ or: Or
9
13
  select:
10
14
  blank: Make a choice
11
15
  search:
12
16
  button: Search
13
- placeholder: 'Search in %{resource}'
17
+ placeholder: 'Search in %{resource}'
18
+ conditionals:
19
+ and: and
20
+ or: or
21
+ operators:
22
+ eq: is equal to
23
+ not_eq: is not equal to
24
+ gt: is greater than
25
+ gteq: is greater than or equal to
26
+ lt: is lower than
27
+ lteq: is lower than or equal to
28
+ starts_with: starts with
29
+ ends_with: ends with
30
+ matches: matches with
31
+ does_not_match: does not matches with
32
+ is_not_null: is not null
33
+ is_null: is null
34
+ values:
35
+ "false": "False"
36
+ "no": "No"
37
+ "true": "Hello"
38
+ "yes": "Yes"
@@ -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
@@ -18,6 +18,14 @@ en:
18
18
  remove:
19
19
  title: Delete
20
20
  confirm: Are you sure you want to delete this?
21
+ media:
22
+ validation:
23
+ min:
24
+ one: "Please select at least 1 item"
25
+ other: "Please select at least %{count} items"
26
+ max:
27
+ one: "Please limit your selection to maximum 1 item"
28
+ other: "Please limit your selection to maximum %{count} items"
21
29
  select:
22
30
  blank: Make a choice
23
31
  repeater:
@@ -17,6 +17,14 @@ nl:
17
17
  remove:
18
18
  title: Verwijderen
19
19
  confirm: Ben je zeker dat je dit wil verwijderen?
20
+ media:
21
+ validation:
22
+ min:
23
+ one: "Gelieve minstens 1 item te selecteren"
24
+ other: "Gelieve minstens %{count} items te selecteren"
25
+ max:
26
+ one: "Gelieve maximum 1 item te selecteren"
27
+ other: "Gelieve maximum %{count} items te selecteren"
20
28
  select:
21
29
  blank: Maak een keuze
22
30
  repeater:
@@ -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,23 @@
1
+ en:
2
+ headmin:
3
+ media:
4
+ modal:
5
+ close: Close
6
+ placeholder: Upload your first file to the media library
7
+ limits: "minimum: %{min} en maximum: %{max}"
8
+ select: Select
9
+ title:
10
+ one: Select at least 1 file
11
+ other: Select at least %{count} files
12
+ unlimited: unlimited
13
+ upload: Upload new files
14
+ maximum: " of %{count}"
15
+ media_item_modal:
16
+ close: Close
17
+ dimensions: Dimensions
18
+ edit: Edit Media item
19
+ not_analysed: Not yet analysed
20
+ size: Size
21
+ type: File type
22
+ update: Update
23
+ uploaded_at: Uploaded at
@@ -0,0 +1,22 @@
1
+ nl:
2
+ headmin:
3
+ media:
4
+ modal:
5
+ close: Sluiten
6
+ placeholder: Upload je eerste bestand naar de mediabibliotheek
7
+ limits: "minimum: %{min} and maximum: %{max}"
8
+ select: Selecteer
9
+ title:
10
+ one: Selecteer bestand
11
+ other: Selecteer bestanden
12
+ unlimited: onbeperkt
13
+ upload: Nieuwe bestanden uploaden
14
+ media_item_modal:
15
+ close: Sluiten
16
+ dimensions: Afmetingen
17
+ edit: Media item wijzigen
18
+ not_analysed: Nog niet geanalyseerd
19
+ size: Grootte
20
+ type: Bestandstype
21
+ update: Update
22
+ uploaded_at: Geüpload op
@@ -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
@@ -25,3 +25,5 @@ en:
25
25
  empty: N/A
26
26
  format: '%m-%d-%Y %H:%M'
27
27
  empty: No results found
28
+ image:
29
+ open: Open
@@ -25,3 +25,5 @@ nl:
25
25
  empty: Nvt.
26
26
  format: '%d-%m-%Y %H:%M'
27
27
  empty: Geen resultaten gevonden
28
+ image:
29
+ open: Openen
@@ -1,2 +1,6 @@
1
1
  nl:
2
2
  language_name: Nederlands
3
+
4
+ date:
5
+ formats:
6
+ default: "%d/%m/%Y"
data/config/routes.rb ADDED
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ Rails.application.routes.draw do
4
+ namespace(:headmin) do
5
+ get "media", to: "media#index", as: :media
6
+ post "media", to: "media#create"
7
+ get "media/:id", to: "media#show", as: :media_item
8
+ patch "media/:id", to: "media#update"
9
+ end
10
+ end
@@ -1 +1 @@
1
- <%= render "headmin/views/devise/confirmations/new" %>
1
+ <%= render 'headmin/views/devise/confirmations/new' %>
@@ -1 +1 @@
1
- <%= render "headmin/views/devise/mailer/confirmation_instructions" %>
1
+ <%= render 'headmin/views/devise/mailer/confirmation_instructions' %>
@@ -1 +1 @@
1
- <%= render "headmin/views/devise/mailer/email_changed" %>
1
+ <%= render 'headmin/views/devise/mailer/email_changed' %>
@@ -1 +1 @@
1
- <%= render "headmin/views/devise/mailer/password_change" %>
1
+ <%= render 'headmin/views/devise/mailer/password_change' %>
@@ -1 +1 @@
1
- <%= render "headmin/views/devise/mailer/reset_password_instructions" %>
1
+ <%= render 'headmin/views/devise/mailer/reset_password_instructions' %>
@@ -1 +1 @@
1
- <%= render "headmin/views/devise/mailer/unlock_instructions" %>
1
+ <%= render 'headmin/views/devise/mailer/unlock_instructions' %>
@@ -1 +1 @@
1
- <%= render "headmin/views/devise/passwords/edit" %>
1
+ <%= render 'headmin/views/devise/passwords/edit' %>
@@ -1 +1 @@
1
- <%= render "headmin/views/devise/passwords/new" %>
1
+ <%= render 'headmin/views/devise/passwords/new' %>
@@ -1 +1 @@
1
- <%= render "headmin/views/devise/registrations/edit" %>
1
+ <%= render 'headmin/views/devise/registrations/edit' %>
@@ -1 +1 @@
1
- <%= render "headmin/views/devise/registrations/new" %>
1
+ <%= render 'headmin/views/devise/registrations/new' %>
@@ -1 +1 @@
1
- <%= render "headmin/views/devise/sessions/new" %>
1
+ <%= render 'headmin/views/devise/sessions/new' %>
@@ -1 +1 @@
1
- <%= render "headmin/views/devise/unlocks/new" %>
1
+ <%= render 'headmin/views/devise/unlocks/new' %>
@@ -1,3 +1,3 @@
1
1
  module Headmin
2
- VERSION = "0.4.2"
2
+ VERSION = "0.5.2"
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.5.1",
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.2
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-06-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: closure_tree
@@ -76,7 +76,6 @@ extra_rdoc_files: []
76
76
  files:
77
77
  - ".github/workflows/ci.yml"
78
78
  - ".gitignore"
79
- - ".lock-487e157d270f3062a98b7b2a012753708-1272821827"
80
79
  - ".nvmrc"
81
80
  - ".ruby-version"
82
81
  - CHANGELOG.md
@@ -101,16 +100,21 @@ files:
101
100
  - app/assets/javascripts/headmin/controllers/dropzone_controller.js
102
101
  - app/assets/javascripts/headmin/controllers/file_preview_controller.js
103
102
  - app/assets/javascripts/headmin/controllers/filter_controller.js
103
+ - app/assets/javascripts/headmin/controllers/filter_row_controller.js
104
104
  - app/assets/javascripts/headmin/controllers/filters_controller.js
105
105
  - app/assets/javascripts/headmin/controllers/flatpickr_controller.js
106
106
  - app/assets/javascripts/headmin/controllers/hello_controller.js
107
+ - app/assets/javascripts/headmin/controllers/media_controller.js
108
+ - app/assets/javascripts/headmin/controllers/media_modal_controller.js
107
109
  - app/assets/javascripts/headmin/controllers/notification_controller.js
108
110
  - app/assets/javascripts/headmin/controllers/popup_controller.js
109
111
  - app/assets/javascripts/headmin/controllers/redactorx_controller.js
112
+ - app/assets/javascripts/headmin/controllers/remote_modal_controller.js
110
113
  - app/assets/javascripts/headmin/controllers/repeater_controller.js
111
114
  - app/assets/javascripts/headmin/controllers/select_controller.js
112
115
  - app/assets/javascripts/headmin/controllers/table_actions_controller.js
113
116
  - app/assets/javascripts/headmin/controllers/table_controller.js
117
+ - app/assets/javascripts/headmin/controllers/textarea_controller.js
114
118
  - app/assets/javascripts/headmin/index.js
115
119
  - app/assets/stylesheets/headmin.css
116
120
  - app/assets/stylesheets/headmin.scss
@@ -119,6 +123,7 @@ files:
119
123
  - app/assets/stylesheets/headmin/forms.scss
120
124
  - app/assets/stylesheets/headmin/forms/autocomplete.scss
121
125
  - app/assets/stylesheets/headmin/forms/file.scss
126
+ - app/assets/stylesheets/headmin/forms/media.scss
122
127
  - app/assets/stylesheets/headmin/forms/repeater.scss
123
128
  - app/assets/stylesheets/headmin/forms/search.scss
124
129
  - app/assets/stylesheets/headmin/general.scss
@@ -126,6 +131,8 @@ files:
126
131
  - app/assets/stylesheets/headmin/layout/body.scss
127
132
  - app/assets/stylesheets/headmin/layout/sidebar.scss
128
133
  - app/assets/stylesheets/headmin/login.scss
134
+ - app/assets/stylesheets/headmin/media.scss
135
+ - app/assets/stylesheets/headmin/media/index.scss
129
136
  - app/assets/stylesheets/headmin/overrides/bootstrap.scss
130
137
  - app/assets/stylesheets/headmin/overrides/redactorx.scss
131
138
  - app/assets/stylesheets/headmin/popup.scss
@@ -225,10 +232,11 @@ files:
225
232
  - app/assets/stylesheets/headmin/vendor/tom-select-bootstrap.css
226
233
  - app/controllers/concerns/headmin/acts_as_list.rb
227
234
  - app/controllers/concerns/headmin/authentication.rb
228
- - app/controllers/concerns/headmin/filter.rb
235
+ - app/controllers/concerns/headmin/filterable.rb
229
236
  - app/controllers/concerns/headmin/pagination.rb
230
- - app/controllers/concerns/headmin/searchable.rb
231
237
  - app/controllers/concerns/headmin/sortable.rb
238
+ - app/controllers/headmin/media_controller.rb
239
+ - app/controllers/headmin_controller.rb
232
240
  - app/helpers/headmin/admin_helper.rb
233
241
  - app/helpers/headmin/bootstrap_helper.rb
234
242
  - app/helpers/headmin/filter_helper.rb
@@ -249,10 +257,34 @@ files:
249
257
  - app/models/concerns/headmin/form/wrappable.rb
250
258
  - app/models/headmin/.DS_Store
251
259
  - app/models/headmin/blocks_view.rb
260
+ - app/models/headmin/filter/base.rb
261
+ - app/models/headmin/filter/base_view.rb
262
+ - app/models/headmin/filter/boolean.rb
263
+ - app/models/headmin/filter/boolean_view.rb
264
+ - app/models/headmin/filter/button_view.rb
265
+ - app/models/headmin/filter/conditional_view.rb
266
+ - app/models/headmin/filter/date.rb
267
+ - app/models/headmin/filter/date_view.rb
268
+ - app/models/headmin/filter/flatpickr_view.rb
269
+ - app/models/headmin/filter/menu_item_view.rb
270
+ - app/models/headmin/filter/money.rb
271
+ - app/models/headmin/filter/number.rb
272
+ - app/models/headmin/filter/number_view.rb
273
+ - app/models/headmin/filter/operator_view.rb
274
+ - app/models/headmin/filter/options_view.rb
275
+ - app/models/headmin/filter/row_view.rb
276
+ - app/models/headmin/filter/search.rb
277
+ - app/models/headmin/filter/search_view.rb
278
+ - app/models/headmin/filter/text.rb
279
+ - app/models/headmin/filter/text_view.rb
280
+ - app/models/headmin/filters.rb
252
281
  - app/models/headmin/form/blocks_view.rb
253
282
  - app/models/headmin/form/checkbox_view.rb
283
+ - app/models/headmin/form/color_view.rb
254
284
  - app/models/headmin/form/date_range_view.rb
255
285
  - app/models/headmin/form/date_view.rb
286
+ - app/models/headmin/form/datetime_range_view.rb
287
+ - app/models/headmin/form/datetime_view.rb
256
288
  - app/models/headmin/form/email_view.rb
257
289
  - app/models/headmin/form/file_view.rb
258
290
  - app/models/headmin/form/flatpickr_range_view.rb
@@ -261,6 +293,7 @@ files:
261
293
  - app/models/headmin/form/hint_view.rb
262
294
  - app/models/headmin/form/input_group_view.rb
263
295
  - app/models/headmin/form/label_view.rb
296
+ - app/models/headmin/form/media_view.rb
264
297
  - app/models/headmin/form/number_view.rb
265
298
  - app/models/headmin/form/password_view.rb
266
299
  - app/models/headmin/form/redactorx_view.rb
@@ -294,19 +327,29 @@ files:
294
327
  - app/views/headmin/dropdown/_item.html.erb
295
328
  - app/views/headmin/dropdown/_list.html.erb
296
329
  - app/views/headmin/dropdown/_locale.html.erb
330
+ - app/views/headmin/filters/_base.html.erb
331
+ - app/views/headmin/filters/_boolean.html.erb
297
332
  - app/views/headmin/filters/_date.html.erb
298
333
  - app/views/headmin/filters/_flatpickr.html.erb
334
+ - app/views/headmin/filters/_number.html.erb
335
+ - app/views/headmin/filters/_options.html.erb
299
336
  - app/views/headmin/filters/_search.html.erb
300
- - app/views/headmin/filters/_select.html.erb
337
+ - app/views/headmin/filters/_text.html.erb
301
338
  - app/views/headmin/filters/filter/_button.html.erb
339
+ - app/views/headmin/filters/filter/_conditional.html.erb
302
340
  - app/views/headmin/filters/filter/_menu_item.html.erb
303
- - app/views/headmin/filters/filter/_template.html.erb
341
+ - app/views/headmin/filters/filter/_null_select.html.erb
342
+ - app/views/headmin/filters/filter/_operator.html.erb
343
+ - app/views/headmin/filters/filter/_row.html.erb
304
344
  - app/views/headmin/forms/_autocomplete.html.erb
305
345
  - app/views/headmin/forms/_blocks.html.erb
306
346
  - app/views/headmin/forms/_checkbox.html.erb
347
+ - app/views/headmin/forms/_color.html.erb
307
348
  - app/views/headmin/forms/_datalist.html.erb
308
349
  - app/views/headmin/forms/_date.html.erb
309
350
  - app/views/headmin/forms/_date_range.html.erb
351
+ - app/views/headmin/forms/_datetime.html.erb
352
+ - app/views/headmin/forms/_datetime_range.html.erb
310
353
  - app/views/headmin/forms/_email.html.erb
311
354
  - app/views/headmin/forms/_errors.html.erb
312
355
  - app/views/headmin/forms/_file.html.erb
@@ -316,6 +359,7 @@ files:
316
359
  - app/views/headmin/forms/_hint.html.erb
317
360
  - app/views/headmin/forms/_input_group.html.erb
318
361
  - app/views/headmin/forms/_label.html.erb
362
+ - app/views/headmin/forms/_media.html.erb
319
363
  - app/views/headmin/forms/_number.html.erb
320
364
  - app/views/headmin/forms/_password.html.erb
321
365
  - app/views/headmin/forms/_redactorx.html.erb
@@ -337,6 +381,8 @@ files:
337
381
  - app/views/headmin/forms/fields/_group.html.erb
338
382
  - app/views/headmin/forms/fields/_list.html.erb
339
383
  - app/views/headmin/forms/fields/_text.html.erb
384
+ - app/views/headmin/forms/media/_item.html.erb
385
+ - app/views/headmin/forms/media/_validation.html.erb
340
386
  - app/views/headmin/forms/repeater/_row.html.erb
341
387
  - app/views/headmin/heading/_title.html.erb
342
388
  - app/views/headmin/layout/_body.html.erb
@@ -344,9 +390,17 @@ files:
344
390
  - app/views/headmin/layout/_footer.html.erb
345
391
  - app/views/headmin/layout/_header.html.erb
346
392
  - app/views/headmin/layout/_main.html.erb
393
+ - app/views/headmin/layout/_remote_modal.html.erb
347
394
  - app/views/headmin/layout/_sidebar.html.erb
348
395
  - app/views/headmin/layout/sidebar/_bottom.html.erb
349
396
  - app/views/headmin/layout/sidebar/_nav.html.erb
397
+ - app/views/headmin/media/_item.html.erb
398
+ - app/views/headmin/media/_media_item_modal.html.erb
399
+ - app/views/headmin/media/_modal.html.erb
400
+ - app/views/headmin/media/create.turbo_stream.erb
401
+ - app/views/headmin/media/index.html.erb
402
+ - app/views/headmin/media/show.html.erb
403
+ - app/views/headmin/media/update.turbo_stream.erb
350
404
  - app/views/headmin/nav/_dropdown.html.erb
351
405
  - app/views/headmin/nav/_item.html.erb
352
406
  - app/views/headmin/nav/item/_devise.html.erb
@@ -370,9 +424,11 @@ files:
370
424
  - app/views/headmin/table/actions/_export.html.erb
371
425
  - app/views/headmin/table/body/_association.html.erb
372
426
  - app/views/headmin/table/body/_boolean.erb
427
+ - app/views/headmin/table/body/_color.html.erb
373
428
  - app/views/headmin/table/body/_currency.html.erb
374
429
  - app/views/headmin/table/body/_date.html.erb
375
430
  - app/views/headmin/table/body/_id.html.erb
431
+ - app/views/headmin/table/body/_image.html.erb
376
432
  - app/views/headmin/table/body/_row.html.erb
377
433
  - app/views/headmin/table/body/_sort.html.erb
378
434
  - app/views/headmin/table/body/_string.html.erb
@@ -406,6 +462,8 @@ files:
406
462
  - config/locales/devise/en.yml
407
463
  - config/locales/devise/nl.yml
408
464
  - config/locales/en.yml
465
+ - config/locales/headmin/dropdown/en.yml
466
+ - config/locales/headmin/dropdown/nl.yml
409
467
  - config/locales/headmin/filters/en.yml
410
468
  - config/locales/headmin/filters/nl.yml
411
469
  - config/locales/headmin/forms/en.yml
@@ -414,6 +472,10 @@ files:
414
472
  - config/locales/headmin/heading/nl.yml
415
473
  - config/locales/headmin/layout/en.yml
416
474
  - config/locales/headmin/layout/nl.yml
475
+ - config/locales/headmin/media/en.yml
476
+ - config/locales/headmin/media/nl.yml
477
+ - config/locales/headmin/nav/en.yml
478
+ - config/locales/headmin/nav/nl.yml
417
479
  - config/locales/headmin/pagination/en.yml
418
480
  - config/locales/headmin/pagination/nl.yml
419
481
  - config/locales/headmin/popup/en.yml
@@ -425,6 +487,7 @@ files:
425
487
  - config/locales/headmin/views/en.yml
426
488
  - config/locales/headmin/views/nl.yml
427
489
  - config/locales/nl.yml
490
+ - config/routes.rb
428
491
  - esbuild-css.js
429
492
  - esbuild-js.js
430
493
  - headmin.gemspec
File without changes
@@ -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>