decidim-admin 0.30.2 → 0.31.0.rc1

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 (255) hide show
  1. checksums.yaml +4 -4
  2. data/app/commands/decidim/admin/update_organization.rb +18 -3
  3. data/app/controllers/concerns/decidim/admin/content_blocks/landing_page_content_blocks.rb +1 -1
  4. data/app/controllers/concerns/decidim/admin/filterable.rb +1 -1
  5. data/app/controllers/decidim/admin/area_types_controller.rb +2 -2
  6. data/app/controllers/decidim/admin/areas_controller.rb +2 -2
  7. data/app/controllers/decidim/admin/block_user_controller.rb +2 -2
  8. data/app/controllers/decidim/admin/component_permissions_controller.rb +1 -1
  9. data/app/controllers/decidim/admin/components_controller.rb +2 -2
  10. data/app/controllers/decidim/admin/concerns/has_attachment_collections.rb +2 -2
  11. data/app/controllers/decidim/admin/concerns/has_attachments.rb +2 -2
  12. data/app/controllers/decidim/admin/concerns/has_private_users.rb +3 -3
  13. data/app/controllers/decidim/admin/concerns/has_private_users_csv_import.rb +1 -1
  14. data/app/controllers/decidim/admin/conflicts_controller.rb +1 -1
  15. data/app/controllers/decidim/admin/dashboard_controller.rb +0 -9
  16. data/app/controllers/decidim/admin/impersonations_controller.rb +1 -1
  17. data/app/controllers/decidim/admin/imports_controller.rb +1 -1
  18. data/app/controllers/decidim/admin/managed_users/promotions_controller.rb +1 -1
  19. data/app/controllers/decidim/admin/newsletters_controller.rb +4 -4
  20. data/app/controllers/decidim/admin/organization_appearance_controller.rb +1 -3
  21. data/app/controllers/decidim/admin/organization_controller.rb +3 -5
  22. data/app/controllers/decidim/admin/organization_external_domain_allowlist_controller.rb +1 -1
  23. data/app/controllers/decidim/admin/organization_homepage_controller.rb +4 -0
  24. data/app/controllers/decidim/admin/participatory_space/user_role_controller.rb +2 -2
  25. data/app/controllers/decidim/admin/reminders_controller.rb +1 -1
  26. data/app/controllers/decidim/admin/resource_permissions_controller.rb +1 -1
  27. data/app/controllers/decidim/admin/scope_types_controller.rb +2 -2
  28. data/app/controllers/decidim/admin/scopes_controller.rb +2 -2
  29. data/app/controllers/decidim/admin/share_tokens_controller.rb +2 -2
  30. data/app/controllers/decidim/admin/static_page_topics_controller.rb +2 -2
  31. data/app/controllers/decidim/admin/static_pages_controller.rb +2 -2
  32. data/app/controllers/decidim/admin/statistics_controller.rb +34 -0
  33. data/app/controllers/decidim/admin/taxonomies_controller.rb +2 -2
  34. data/app/controllers/decidim/admin/taxonomy_filters_controller.rb +2 -2
  35. data/app/controllers/decidim/admin/taxonomy_items_controller.rb +2 -2
  36. data/app/controllers/decidim/admin/users_controller.rb +1 -1
  37. data/app/forms/decidim/admin/block_user_form.rb +1 -1
  38. data/app/forms/decidim/admin/block_users_form.rb +1 -1
  39. data/app/forms/decidim/admin/organization_form.rb +35 -6
  40. data/app/helpers/decidim/admin/filterable_helper.rb +27 -8
  41. data/app/helpers/decidim/admin/icon_link_helper.rb +2 -3
  42. data/app/helpers/decidim/admin/icon_with_tooltip_helper.rb +1 -2
  43. data/app/helpers/decidim/admin/imports_helper.rb +0 -5
  44. data/app/helpers/decidim/admin/menu_helper.rb +3 -2
  45. data/app/helpers/decidim/admin/moderations/reports_helper.rb +1 -1
  46. data/app/helpers/decidim/admin/resource_permissions_helper.rb +13 -13
  47. data/app/helpers/decidim/admin/settings_helper.rb +11 -3
  48. data/app/jobs/decidim/admin/newsletter_job.rb +1 -0
  49. data/app/packs/entrypoints/decidim_admin.js +2 -3
  50. data/app/packs/entrypoints/decidim_admin.scss +1 -1
  51. data/app/packs/entrypoints/decidim_admin_overrides.scss +1 -1
  52. data/app/packs/src/decidim/admin/admin_autocomplete.js +2 -2
  53. data/app/packs/src/decidim/admin/application.js +11 -10
  54. data/app/packs/src/decidim/admin/budget_rule_toggler.component.js +84 -34
  55. data/app/packs/src/decidim/admin/controllers/slug/controller.js +25 -0
  56. data/app/packs/src/decidim/admin/controllers/slug/slug.test.js +239 -0
  57. data/app/packs/src/decidim/admin/css_preview.js +1 -1
  58. data/app/packs/src/decidim/admin/draggable-list.js +1 -1
  59. data/app/packs/src/decidim/admin/draggable-table.js +1 -1
  60. data/app/packs/src/decidim/admin/dynamic_fields.component.js +13 -12
  61. data/app/packs/src/decidim/admin/external_domain_allowlist.js +1 -1
  62. data/app/packs/src/decidim/admin/form.js +21 -4
  63. data/app/packs/src/decidim/admin/global_moderations.js +2 -2
  64. data/app/packs/src/decidim/admin/managed_moderated_users.js +2 -2
  65. data/app/packs/src/decidim/admin/moderations.js +1 -1
  66. data/app/packs/src/decidim/admin/newsletters.js +1 -1
  67. data/app/packs/src/decidim/admin/officializations.js +1 -1
  68. data/app/packs/src/decidim/admin/participatory_space_search.js +2 -2
  69. data/app/packs/src/decidim/admin/proposal_infinite_edit.js +1 -1
  70. data/app/packs/src/decidim/admin/resources_permissions.js +1 -1
  71. data/app/packs/src/decidim/admin/sortable.js +1 -1
  72. data/app/packs/src/decidim/admin/sync_radio_buttons.js +1 -1
  73. data/app/packs/src/decidim/admin/tab_focus.js +1 -1
  74. data/app/packs/src/decidim/admin/text_copy.js +1 -1
  75. data/app/packs/src/decidim/admin/triadic_color_picker.js +1 -1
  76. data/app/packs/stylesheets/decidim/admin/_datepicker.scss +2 -2
  77. data/app/packs/stylesheets/decidim/admin/_dropdown.scss +12 -2
  78. data/app/packs/stylesheets/decidim/admin/_filters.scss +1 -57
  79. data/app/packs/stylesheets/decidim/admin/_forms.scss +1 -10
  80. data/app/packs/stylesheets/decidim/admin/_item_edit.scss +2 -10
  81. data/app/packs/stylesheets/decidim/admin/_item_show.scss +1 -5
  82. data/app/packs/stylesheets/decidim/admin/_legacy_foundation.scss +0 -412
  83. data/app/packs/stylesheets/decidim/admin/_main-nav.scss +75 -3
  84. data/app/packs/stylesheets/decidim/admin/_secondary-nav.scss +6 -10
  85. data/app/packs/stylesheets/decidim/admin/_select_picker.scss +1 -1
  86. data/app/packs/stylesheets/decidim/admin/_sidebar-menu.scss +2 -2
  87. data/app/packs/stylesheets/decidim/admin/_table-list.scss +25 -7
  88. data/app/packs/stylesheets/decidim/admin/_tabs.scss +4 -0
  89. data/app/packs/stylesheets/decidim/admin/_taxonomies.scss +6 -2
  90. data/app/packs/stylesheets/decidim/admin/application.scss +28 -29
  91. data/app/permissions/decidim/admin/permissions.rb +17 -5
  92. data/app/presenters/decidim/admin/dashboard_statistic_charts_presenter.rb +18 -0
  93. data/app/queries/decidim/admin/user_filter.rb +3 -3
  94. data/app/views/decidim/admin/area_types/index.html.erb +34 -11
  95. data/app/views/decidim/admin/areas/index.html.erb +32 -12
  96. data/app/views/decidim/admin/attachment_collections/index.html.erb +42 -14
  97. data/app/views/decidim/admin/attachments/index.html.erb +32 -13
  98. data/app/views/decidim/admin/block_user/bulk_new.html.erb +1 -1
  99. data/app/views/decidim/admin/block_user/new.html.erb +1 -1
  100. data/app/views/decidim/admin/components/_actions.html.erb +114 -54
  101. data/app/views/decidim/admin/components/_component_row.html.erb +5 -5
  102. data/app/views/decidim/admin/components/_components_table.html.erb +1 -1
  103. data/app/views/decidim/admin/components/_form.html.erb +4 -4
  104. data/app/views/decidim/admin/components/index.html.erb +12 -13
  105. data/app/views/decidim/admin/dashboard/show.html.erb +9 -21
  106. data/app/views/decidim/admin/exports/_dropdown.html.erb +16 -14
  107. data/app/views/decidim/admin/help_sections/_form.html.erb +1 -1
  108. data/app/views/decidim/admin/impersonatable_users/index.html.erb +68 -33
  109. data/app/views/decidim/admin/imports/_dropdown.html.erb +13 -11
  110. data/app/views/decidim/admin/imports/new.html.erb +13 -12
  111. data/app/views/decidim/admin/moderated_users/bulk_actions/_dropdown.html.erb +29 -32
  112. data/app/views/decidim/admin/moderated_users/index.html.erb +61 -21
  113. data/app/views/decidim/admin/moderations/_moderation-tr.html.erb +87 -32
  114. data/app/views/decidim/admin/moderations/_report.html.erb +2 -4
  115. data/app/views/decidim/admin/moderations/bulk_actions/_dropdown.html.erb +30 -34
  116. data/app/views/decidim/admin/moderations/index.html.erb +1 -1
  117. data/app/views/decidim/admin/moderations/reports/index.html.erb +1 -2
  118. data/app/views/decidim/admin/newsletters/index.html.erb +64 -21
  119. data/app/views/decidim/admin/officializations/index.html.erb +91 -32
  120. data/app/views/decidim/admin/organization/_form.html.erb +6 -92
  121. data/app/views/decidim/admin/organization/edit.html.erb +1 -5
  122. data/app/views/decidim/admin/organization/form/_admin_terms_of_service.html.erb +15 -0
  123. data/app/views/decidim/admin/organization/form/_basic_configuration.html.erb +31 -0
  124. data/app/views/decidim/admin/{organization_appearance → organization}/form/_colors.html.erb +9 -9
  125. data/app/views/decidim/admin/organization/form/_extra_features.html.erb +84 -0
  126. data/app/views/decidim/admin/{organization_appearance/form/_images.html.erb → organization/form/_logos.html.erb} +4 -4
  127. data/app/views/decidim/admin/organization/form/_welcome_notification.html.erb +25 -0
  128. data/app/views/decidim/admin/organization_external_domain_allowlist/_external_domain.html.erb +8 -6
  129. data/app/views/decidim/admin/participatory_space_private_users/index.html.erb +49 -22
  130. data/app/views/decidim/admin/resource_permissions/edit.html.erb +1 -1
  131. data/app/views/decidim/admin/scope_types/index.html.erb +31 -12
  132. data/app/views/decidim/admin/scopes/index.html.erb +40 -13
  133. data/app/views/decidim/admin/share_tokens/_form.html.erb +1 -1
  134. data/app/views/decidim/admin/share_tokens/edit.html.erb +1 -1
  135. data/app/views/decidim/admin/share_tokens/index.html.erb +69 -12
  136. data/app/views/decidim/admin/share_tokens/new.html.erb +1 -1
  137. data/app/views/decidim/admin/shared/_filters.html.erb +8 -10
  138. data/app/views/decidim/admin/shared/landing_page/_content_blocks.html.erb +14 -11
  139. data/app/views/decidim/admin/shared/landing_page_content_blocks/edit.html.erb +2 -4
  140. data/app/views/decidim/admin/static_page_topics/index.html.erb +31 -10
  141. data/app/views/decidim/admin/static_pages/_form.html.erb +1 -1
  142. data/app/views/decidim/admin/static_pages/_topic.html.erb +46 -16
  143. data/app/views/decidim/admin/statistics/_statistics.html.erb +13 -0
  144. data/app/views/decidim/admin/statistics/index.html.erb +6 -0
  145. data/app/views/decidim/admin/taxonomies/_form.html.erb +1 -1
  146. data/app/views/decidim/admin/taxonomies/_row.html.erb +24 -6
  147. data/app/views/decidim/admin/taxonomies/_table.html.erb +2 -2
  148. data/app/views/decidim/admin/taxonomies/_taxonomy_actions.html.erb +48 -15
  149. data/app/views/decidim/admin/taxonomies/edit.html.erb +10 -0
  150. data/app/views/decidim/admin/taxonomy_filters/_form.html.erb +1 -1
  151. data/app/views/decidim/admin/taxonomy_filters/_table.html.erb +52 -15
  152. data/app/views/decidim/admin/taxonomy_filters/new.html.erb +1 -1
  153. data/app/views/decidim/admin/taxonomy_filters_selector/_component_table.html.erb +38 -23
  154. data/app/views/decidim/admin/taxonomy_items/_form.html.erb +1 -1
  155. data/app/views/decidim/admin/users/index.html.erb +48 -24
  156. data/app/views/layouts/decidim/admin/_application.html.erb +3 -6
  157. data/app/views/layouts/decidim/admin/_header.html.erb +3 -1
  158. data/app/views/layouts/decidim/admin/_js_configuration.html.erb +11 -12
  159. data/app/views/layouts/decidim/admin/_sidebar_menu.html.erb +1 -1
  160. data/app/views/layouts/decidim/admin/_title_bar.html.erb +4 -4
  161. data/app/views/layouts/decidim/admin/_title_bar_responsive.html.erb +4 -4
  162. data/app/views/layouts/decidim/admin/insights.html.erb +6 -0
  163. data/config/assets.rb +2 -2
  164. data/config/locales/ar.yml +0 -90
  165. data/config/locales/bg.yml +1 -110
  166. data/config/locales/bs-BA.yml +0 -44
  167. data/config/locales/ca-IT.yml +59 -117
  168. data/config/locales/ca.yml +59 -117
  169. data/config/locales/cs.yml +51 -119
  170. data/config/locales/de.yml +60 -118
  171. data/config/locales/el.yml +2 -102
  172. data/config/locales/en.yml +61 -119
  173. data/config/locales/eo.yml +0 -4
  174. data/config/locales/es-MX.yml +61 -119
  175. data/config/locales/es-PY.yml +61 -119
  176. data/config/locales/es.yml +61 -119
  177. data/config/locales/eu.yml +61 -119
  178. data/config/locales/fi-plain.yml +60 -118
  179. data/config/locales/fi.yml +60 -118
  180. data/config/locales/fr-CA.yml +61 -119
  181. data/config/locales/fr.yml +61 -119
  182. data/config/locales/ga-IE.yml +1 -34
  183. data/config/locales/gl.yml +0 -95
  184. data/config/locales/he-IL.yml +0 -8
  185. data/config/locales/hu.yml +2 -105
  186. data/config/locales/id-ID.yml +0 -62
  187. data/config/locales/is-IS.yml +1 -36
  188. data/config/locales/it.yml +35 -116
  189. data/config/locales/ja.yml +60 -118
  190. data/config/locales/kaa.yml +0 -12
  191. data/config/locales/ko.yml +0 -75
  192. data/config/locales/lb.yml +2 -95
  193. data/config/locales/lt.yml +1 -103
  194. data/config/locales/lv.yml +2 -74
  195. data/config/locales/nl.yml +2 -96
  196. data/config/locales/no.yml +2 -96
  197. data/config/locales/pl.yml +2 -108
  198. data/config/locales/pt-BR.yml +6 -110
  199. data/config/locales/pt.yml +2 -96
  200. data/config/locales/ro-RO.yml +10 -102
  201. data/config/locales/ru.yml +2 -54
  202. data/config/locales/sk.yml +2 -72
  203. data/config/locales/sl.yml +1 -18
  204. data/config/locales/sq-AL.yml +0 -45
  205. data/config/locales/sr-CS.yml +1 -44
  206. data/config/locales/sv.yml +58 -119
  207. data/config/locales/th-TH.yml +0 -10
  208. data/config/locales/tr-TR.yml +5 -88
  209. data/config/locales/uk.yml +1 -45
  210. data/config/locales/val-ES.yml +0 -1
  211. data/config/locales/zh-CN.yml +0 -72
  212. data/config/locales/zh-TW.yml +1 -102
  213. data/config/routes.rb +1 -12
  214. data/lib/decidim/admin/engine.rb +5 -1
  215. data/lib/decidim/admin/form_builder.rb +1 -1
  216. data/lib/decidim/admin/menu.rb +32 -16
  217. data/lib/decidim/admin/test/filterable_examples.rb +8 -18
  218. data/lib/decidim/admin/test/invite_participatory_space_admins_shared_examples.rb +4 -4
  219. data/lib/decidim/admin/test/invite_participatory_space_collaborators_shared_examples.rb +2 -2
  220. data/lib/decidim/admin/test/invite_participatory_space_moderators_shared_examples.rb +9 -6
  221. data/lib/decidim/admin/test/invite_participatory_space_users_shared_context.rb +1 -0
  222. data/lib/decidim/admin/test/manage_attachment_collections_examples.rb +5 -1
  223. data/lib/decidim/admin/test/manage_attachments_examples.rb +5 -1
  224. data/lib/decidim/admin/test/manage_component_permissions_examples.rb +31 -4
  225. data/lib/decidim/admin/test/manage_moderations_examples.rb +12 -5
  226. data/lib/decidim/admin/test/manage_participatory_space_publications_examples.rb +12 -6
  227. data/lib/decidim/admin/test/manage_resource_soft_deletion_examples.rb +19 -4
  228. data/lib/decidim/admin/test/manage_taxonomy_filters_examples.rb +28 -8
  229. data/lib/decidim/admin/version.rb +1 -1
  230. metadata +22 -35
  231. data/app/commands/decidim/admin/process_user_group_verification_csv.rb +0 -44
  232. data/app/commands/decidim/admin/reject_user_group.rb +0 -42
  233. data/app/commands/decidim/admin/update_organization_appearance.rb +0 -39
  234. data/app/commands/decidim/admin/update_user_groups.rb +0 -44
  235. data/app/commands/decidim/admin/verify_user_group.rb +0 -43
  236. data/app/controllers/concerns/decidim/admin/user_groups/filterable.rb +0 -45
  237. data/app/controllers/concerns/decidim/admin/user_groups.rb +0 -24
  238. data/app/controllers/decidim/admin/metrics_controller.rb +0 -23
  239. data/app/controllers/decidim/admin/user_groups_controller.rb +0 -76
  240. data/app/controllers/decidim/admin/user_groups_csv_verifications_controller.rb +0 -36
  241. data/app/forms/decidim/admin/organization_appearance_form.rb +0 -88
  242. data/app/forms/decidim/admin/user_group_csv_verification_form.rb +0 -25
  243. data/app/jobs/decidim/admin/verify_user_group_from_csv_job.rb +0 -30
  244. data/app/packs/src/decidim/admin/welcome_notification.js +0 -32
  245. data/app/packs/stylesheets/decidim/admin/_bulk_actions.scss +0 -16
  246. data/app/presenters/decidim/admin/dashboard_metric_charts_presenter.rb +0 -33
  247. data/app/queries/decidim/admin/user_groups_evaluation.rb +0 -56
  248. data/app/views/decidim/admin/metrics/_metrics.html.erb +0 -16
  249. data/app/views/decidim/admin/metrics/index.html.erb +0 -7
  250. data/app/views/decidim/admin/organization_appearance/_form.html.erb +0 -100
  251. data/app/views/decidim/admin/organization_appearance/edit.html.erb +0 -18
  252. data/app/views/decidim/admin/organization_appearance/form/_header_snippets.html.erb +0 -17
  253. data/app/views/decidim/admin/user_groups/index.html.erb +0 -68
  254. data/app/views/decidim/admin/user_groups_csv_verifications/new.html.erb +0 -31
  255. /data/app/views/decidim/admin/{organization_appearance → organization}/form/_minimap.html.erb +0 -0
@@ -1,40 +1,37 @@
1
- <div id="js-bulk-actions-wrapper">
1
+ <div id="js-bulk-actions-wrapper" class="relative">
2
2
  <button
3
3
  id="js-bulk-actions-button"
4
- class="button button__sm button__secondary"
4
+ class="button button__sm button__transparent-secondary"
5
5
  type="button"
6
- data-toggle="js-bulk-actions-dropdown">
6
+ data-controller="dropdown"
7
+ data-target="js-bulk-actions-dropdown">
7
8
  <%= t("decidim.admin.moderated_users.index.actions.bulk_actions.actions_dropdown") %>
8
- <%= icon "arrow-down-s-line", class: "dropdown-filter-icon" %>
9
+ <%= icon "arrow-down-s-line" %>
10
+ <%= icon "arrow-down-s-line" %>
9
11
  </button>
10
12
 
11
- <div
13
+ <ul
12
14
  id="js-bulk-actions-dropdown"
13
- class="dropdown-pane"
14
- data-position="bottom"
15
- data-alignment="right"
16
- data-dropdown="dropdown"
17
- data-auto-focus="false"
18
- data-events="resize">
19
- <ul>
20
- <% if params[:blocked] %>
21
- <li>
22
- <button type="button" data-action="unblock-moderated_users">
23
- <%= t("decidim.admin.moderated_users.index.actions.bulk_actions.unblock.title") %>
24
- </button>
25
- </li>
26
- <% else %>
27
- <li>
28
- <button type="button" data-action="block-moderated_users">
29
- <%= t("decidim.admin.moderated_users.index.actions.bulk_actions.block.title") %>
30
- </button>
31
- </li>
32
- <li>
33
- <button type="button" data-action="unreport-moderated_users">
34
- <%= t("decidim.admin.moderated_users.index.actions.bulk_actions.unreport.title") %>
35
- </button>
36
- </li>
37
- <% end %>
38
- </ul>
39
- </div>
15
+ class="dropdown dropdown__bottom"
16
+ aria-hidden="true">
17
+
18
+ <% if params[:blocked] %>
19
+ <li class="dropdown__item">
20
+ <button type="button" class="dropdown__button" data-action="unblock-moderated_users">
21
+ <%= t("decidim.admin.moderated_users.index.actions.bulk_actions.unblock.title") %>
22
+ </button>
23
+ </li>
24
+ <% else %>
25
+ <li class="dropdown__item">
26
+ <button type="button" class="dropdown__button" data-action="block-moderated_users">
27
+ <%= t("decidim.admin.moderated_users.index.actions.bulk_actions.block.title") %>
28
+ </button>
29
+ </li>
30
+ <li class="dropdown__item">
31
+ <button type="button" class="dropdown__button" data-action="unreport-moderated_users">
32
+ <%= t("decidim.admin.moderated_users.index.actions.bulk_actions.unreport.title") %>
33
+ </button>
34
+ </li>
35
+ <% end %>
36
+ </ul>
40
37
  </div>
@@ -18,7 +18,7 @@
18
18
  </div>
19
19
 
20
20
  <%= admin_filter_selector(:moderated_users) %>
21
- <div class="table-scroll">
21
+ <div class="table-stacked">
22
22
  <table class="table-list">
23
23
  <thead>
24
24
  <tr>
@@ -34,36 +34,76 @@
34
34
  <tbody>
35
35
  <% @moderated_users.each do |moderation| %>
36
36
  <tr data-id="<%= moderation.id %>">
37
- <td><%= check_box_tag "user_ids_s[]", moderation.user.id, false, class: "js-check-all-moderated_users js-moderated_user-list-check js-moderated_user-id-#{moderation.user.id}" %><br></td>
37
+ <td data-label="">
38
+ <%= check_box_tag "user_ids_s[]", moderation.user.id, false, class: "js-check-all-moderated_users js-moderated_user-list-check js-moderated_user-id-#{moderation.user.id}" %>
39
+ </td>
40
+
38
41
  <% if moderation.user.nickname.present? %>
39
- <td><%= link_to moderation.user.name, decidim.profile_path(moderation.user.nickname) %></td>
40
- <td><%= link_to moderation.user.nickname, decidim.profile_path(moderation.user.nickname) %></td>
42
+ <td data-label="<%= t(".name") %>">
43
+ <%= link_to moderation.user.name, decidim.profile_path(moderation.user.nickname) %>
44
+ </td>
45
+ <td data-label="<%= t(".nickname") %>">
46
+ <%= link_to moderation.user.nickname, decidim.profile_path(moderation.user.nickname) %>
47
+ </td>
41
48
  <% else %>
42
- <td><%= moderation.user.name %></td>
43
- <td><%= moderation.user.nickname %></td>
49
+ <td data-label="<%= t(".name") %>">
50
+ <%= moderation.user.name %>
51
+ </td>
52
+ <td data-label="<%= t(".nickname") %>">
53
+ <%= moderation.user.nickname %>
54
+ </td>
44
55
  <% end %>
45
- <td>
56
+
57
+ <td data-label="<%= t(".reason") %>">
46
58
  <% reports = moderation.reports.map { |report| render "report", report: } %>
47
- <%= safe_join(reports, ",") %>
59
+ <%= safe_join(reports, ", ") %>
48
60
  </td>
49
- <td>
61
+
62
+ <td data-label="<%= t("models.moderation.fields.created_at", scope: "decidim.moderations") %>">
50
63
  <%= l moderation.created_at, format: :decidim_short %>
51
64
  </td>
52
- <td>
65
+
66
+ <td data-label="<%= t(".reports") %>">
53
67
  <%= moderation.report_count %>
54
68
  </td>
55
69
 
56
- <td>
57
- <% if !moderation.user.blocked? && allowed_to?(:unreport, :moderate_users) %>
58
- <%= icon_link_to "arrow-go-back-line", ignore_moderated_user_path(id: moderation), t(".actions.unreport"), class: "action-icon--unreport", method: :put %>
59
- <% end %>
60
- <% if allowed_to?(:block, :moderate_users) %>
61
- <% if moderation.user.blocked? %>
62
- <%= icon_link_to "refresh-line", user_block_path(user_id: moderation.user.id), t(".actions.unblock"), class: "action-icon action-icon--disabled", method: :delete %>
63
- <% else %>
64
- <%= icon_link_to "lock-2-line", new_user_block_path(user_id: moderation.user.id), t(".actions.block"), class: "action-icon action-icon" %>
65
- <% end %>
66
- <% end %>
70
+ <td class="table-list__actions" data-label="<%= t(".actions.title") %>">
71
+ <button type="button" data-controller="dropdown" data-target="actions-user-<%= moderation.user.id %>" aria-label="<%= t("decidim.admin.actions.actions_label", resource: moderation.user.nickname) %>">
72
+ <%= icon "more-fill", class: "text-secondary" %>
73
+ </button>
74
+
75
+ <div class="inline-block relative">
76
+ <ul id="actions-user-<%= moderation.user.id %>" class="dropdown dropdown__action" aria-hidden="true">
77
+ <% if !moderation.user.blocked? && allowed_to?(:unreport, :moderate_users, user: moderation.user) %>
78
+ <li class="dropdown__item">
79
+ <%= link_to ignore_moderated_user_path(id: moderation), method: :put, class: "dropdown__button" do %>
80
+ <%= icon "arrow-go-back-line" %>
81
+ <%= t(".actions.unreport") %>
82
+ <% end %>
83
+ </li>
84
+ <% end %>
85
+
86
+ <% if allowed_to?(:block, :moderate_users, user: moderation.user) %>
87
+ <hr>
88
+
89
+ <% if moderation.user.blocked? %>
90
+ <li class="dropdown__item">
91
+ <%= link_to user_block_path(user_id: moderation.user.id), method: :delete, class: "dropdown__button" do %>
92
+ <%= icon "refresh-line" %>
93
+ <%= t(".actions.unblock") %>
94
+ <% end %>
95
+ </li>
96
+ <% else %>
97
+ <li class="dropdown__item">
98
+ <%= link_to new_user_block_path(user_id: moderation.user.id), class: "dropdown__button" do %>
99
+ <%= icon "lock-2-line" %>
100
+ <%= t(".actions.block") %>
101
+ <% end %>
102
+ </li>
103
+ <% end %>
104
+ <% end %>
105
+ </ul>
106
+ </div>
67
107
  </td>
68
108
  </tr>
69
109
  <% end %>
@@ -1,54 +1,109 @@
1
1
  <tr data-id="<%= moderation.id %>">
2
- <td><%= check_box_tag "moderation_ids_s[]", moderation.id, false, class: "js-check-all-moderations js-moderation-list-check js-moderation-id-#{moderation.id}" %><br></td>
3
- <td><%= moderation.reportable.id %></td>
4
- <td>
2
+ <td data-label="">
3
+ <%= check_box_tag "moderation_ids_s[]", moderation.id, false, class: "js-check-all-moderations js-moderation-list-check js-moderation-id-#{moderation.id}" %>
4
+ </td>
5
+
6
+ <td data-label="<%= t("models.moderation.fields.reportable_id", scope: "decidim.moderations") %>">
7
+ <%= moderation.reportable.id %>
8
+ </td>
9
+
10
+ <td data-label="<%= t("models.moderation.fields.reportable_type", scope: "decidim.moderations") %>">
5
11
  <%= moderation.reportable.class.model_name.human %>
6
12
  </td>
7
- <% if !respond_to?(:current_participatory_space) %>
8
- <td>
13
+
14
+ <% unless respond_to?(:current_participatory_space) %>
15
+ <td data-label="<%= t("models.moderation.fields.participatory_space", scope: "decidim.moderations") %>">
9
16
  <%= participatory_space_title_for(moderation.reportable) %>
10
17
  </td>
11
18
  <% end %>
12
- <td>
19
+
20
+ <td data-label="<%= t("models.moderation.fields.reported_content_url", scope: "decidim.moderations") %>">
13
21
  <% if (reportable_url = moderation.reportable.reported_content_url) %>
14
- <%=
15
- with_tooltip strip_tags(reported_content_excerpt_for(moderation.reportable, limit: 250)), class: :top do
16
- link_to t("models.moderation.fields.visit_url", scope: "decidim.moderations"), reportable_url
17
- end
18
- %>
22
+ <%= with_tooltip strip_tags(reported_content_excerpt_for(moderation.reportable, limit: 250)), class: :top do %>
23
+ <%= link_to t("models.moderation.fields.visit_url", scope: "decidim.moderations"), reportable_url %>
24
+ <% end %>
19
25
  <% else %>
20
26
  <%= t("models.moderation.fields.deleted_resource", scope: "decidim.moderations") %>
21
27
  <% end %>
22
28
  </td>
23
- <td>
29
+
30
+ <td data-label="<%= t("models.moderation.fields.reports", scope: "decidim.moderations") %>">
24
31
  <% reports = moderation.reports.map { |report| render "report", report: } %>
25
- <%= safe_join(reports, ",") %>
32
+ <%= safe_join(reports, ", ") %>
26
33
  </td>
27
- <td>
28
- <%= l(moderation.created_at, format: :long) %>
34
+
35
+ <td data-label="<%= t("models.moderation.fields.created_at", scope: "decidim.moderations") %>">
36
+ <%= l moderation.created_at, format: :long %>
29
37
  </td>
30
- <td>
38
+
39
+ <td data-label="<%= t("models.moderation.fields.report_count", scope: "decidim.moderations") %>">
31
40
  <%= moderation.report_count %>
32
41
  </td>
42
+
33
43
  <% if params[:hidden] %>
34
- <td>
44
+ <td data-label="<%= t("models.moderation.fields.hidden_at", scope: "decidim.moderations") %>">
35
45
  <%= l(moderation.hidden_at, format: :long) if moderation.hidden_at.present? %>
36
46
  </td>
37
47
  <% end %>
38
- <td>
39
- <%= icon_link_to "fullscreen-line", moderation_reports_path(moderation_id: moderation), t("actions.expand", scope: "decidim.moderations"), class: "action-icon--expand" %>
40
- <% if !moderation.reportable.hidden? && allowed_to?(:unreport, authorization_scope) %>
41
- <%= icon_link_to "arrow-go-back-line", unreport_moderation_path(id: moderation), t("actions.unreport", scope: "decidim.moderations"), class: "action-icon--unreport", method: :put %>
42
- <% end %>
43
- <% if !moderation.reportable.hidden? && allowed_to?(:hide, authorization_scope) %>
44
- <%= icon_link_to "eye-line", hide_moderation_path(id: moderation), t("actions.hide", scope: "decidim.moderations"), class: "action-icon--hide", method: :put %>
45
- <% end %>
46
- <% if moderation.reportable.hidden? && allowed_to?(:unhide, authorization_scope) %>
47
- <% if moderation.reportable.respond_to?(:commentable) && moderation.reportable.commentable.try(:hidden?) %>
48
- <%= icon_with_tooltip "eye-line", t("actions.parent_hidden", scope: "decidim.moderations"), class: "action-icon action-icon--disabled", role: "img", aria_label: t("actions.parent_hidden", scope: "decidim.moderations") %>
49
- <% else %>
50
- <%= icon_link_to "eye-line", unhide_moderation_path(id: moderation), t("actions.unhide", scope: "decidim.moderations"), method: :put %>
51
- <% end %>
52
- <% end %>
48
+
49
+ <td data-label="<%= t("actions.title", scope: "decidim.moderations") %>" class="table-list__actions">
50
+
51
+ <button type="button" data-controller="dropdown" data-target="actions-moderation-<%= moderation.id %>" aria-label="<%= t("decidim.admin.actions.actions_label", resource: moderation.reportable.id) %>">
52
+ <%= icon "more-fill", class: "text-secondary" %>
53
+ </button>
54
+
55
+ <div class="inline-block relative">
56
+ <ul id="actions-moderation-<%= moderation.id %>" class="dropdown dropdown__action" aria-hidden="true">
57
+ <li class="dropdown__item">
58
+ <%= link_to moderation_reports_path(moderation_id: moderation), class: "dropdown__button" do %>
59
+ <%= icon "fullscreen-line" %>
60
+ <%= t("actions.expand", scope: "decidim.moderations") %>
61
+ <% end %>
62
+ </li>
63
+
64
+ <% if !moderation.reportable.hidden? && allowed_to?(:unreport, authorization_scope) %>
65
+ <hr>
66
+
67
+ <li class="dropdown__item">
68
+ <%= link_to unreport_moderation_path(id: moderation), method: :put, class: "dropdown__button" do %>
69
+ <%= icon "arrow-go-back-line" %>
70
+ <%= t("actions.unreport", scope: "decidim.moderations") %>
71
+ <% end %>
72
+ </li>
73
+ <% end %>
74
+
75
+ <% if !moderation.reportable.hidden? && allowed_to?(:hide, authorization_scope) %>
76
+ <hr>
77
+
78
+ <li class="dropdown__item">
79
+ <%= link_to hide_moderation_path(id: moderation), method: :put, class: "dropdown__button" do %>
80
+ <%= icon "eye-line" %>
81
+ <%= t("actions.hide", scope: "decidim.moderations") %>
82
+ <% end %>
83
+ </li>
84
+ <% end %>
85
+
86
+ <% if moderation.reportable.hidden? && allowed_to?(:unhide, authorization_scope) %>
87
+ <hr>
88
+
89
+ <li class="dropdown__item">
90
+ <% if moderation.reportable.respond_to?(:commentable) && moderation.reportable.commentable.try(:hidden?) %>
91
+ <div class="dropdown__button-disabled">
92
+ <%= with_tooltip(t("actions.parent_hidden", scope: "decidim.moderations"), title: t("actions.parent_hidden", scope: "decidim.moderations")) do %>
93
+ <%= icon "eye-line", class: "text-gray" %>
94
+ <span><%= t("actions.unhide", scope: "decidim.moderations") %></span>
95
+ <% end %>
96
+ </div>
97
+ <% else %>
98
+ <%= link_to unhide_moderation_path(id: moderation), method: :put, class: "dropdown__button" do %>
99
+ <%= icon "eye-line" %>
100
+ <%= t("actions.unhide", scope: "decidim.moderations") %>
101
+ <% end %>
102
+ <% end %>
103
+ </li>
104
+ <% end %>
105
+ </ul>
106
+ </div>
107
+
53
108
  </td>
54
109
  </tr>
@@ -1,9 +1,7 @@
1
1
  <% if report.details.blank? %>
2
2
  <%= t(".reasons.#{report.reason}") %>
3
3
  <% else %>
4
- <span
5
- data-tooltip
6
- title="<%= report.details&.truncate(250) %>">
7
- <%= t(".reasons.#{report.reason}") %>
4
+ <span title="<%= report.details&.truncate(250) %>">
5
+ <%= with_tooltip(t(".reasons.#{report.reason}")) { t(".reasons.#{report.reason}") } %>
8
6
  </span>
9
7
  <% end %>
@@ -1,43 +1,39 @@
1
- <div id="js-bulk-actions-wrapper">
1
+ <div id="js-bulk-actions-wrapper" class="relative">
2
2
  <button
3
3
  id="js-bulk-actions-button"
4
4
  class="button button__sm button__secondary"
5
5
  type="button"
6
- data-toggle="js-bulk-actions-dropdown">
6
+ data-controller="dropdown"
7
+ data-target="js-bulk-actions-dropdown">
7
8
  <%= t("decidim.admin.moderations.index.actions.actions_dropdown") %>
8
- <%= icon "arrow-down-s-line", class: "dropdown-filter-icon" %>
9
+ <%= icon "arrow-down-s-line", class: "!fill-white" %>
10
+ <%= icon "arrow-down-s-line", class: "!fill-white" %>
9
11
  </button>
10
12
 
11
- <div
13
+ <ul
12
14
  id="js-bulk-actions-dropdown"
13
- class="dropdown-pane"
14
- data-position="bottom"
15
- data-alignment="right"
16
- data-dropdown="dropdown"
17
- data-auto-focus="false"
18
- data-events="resize">
19
- <ul>
20
- <% if !params[:hidden] && allowed_to?(:hide, authorization_scope) %>
21
- <li>
22
- <button type="button" data-action="hide-global-moderations">
23
- <%= t("decidim.admin.moderations.index.actions.hide.title") %>
24
- </button>
25
- </li>
26
- <% end %>
27
- <% if !params[:hidden] && allowed_to?(:unreport, authorization_scope) %>
28
- <li>
29
- <button type="button" data-action="unreport-global-moderations">
30
- <%= t("decidim.admin.moderations.index.actions.unreport.title") %>
31
- </button>
32
- </li>
33
- <% end %>
34
- <% if params[:hidden] %>
35
- <li>
36
- <button type="button" data-action="unhide-global-moderations">
37
- <%= t("decidim.admin.moderations.index.actions.unhide.title") %>
38
- </button>
39
- </li>
40
- <% end %>
41
- </ul>
42
- </div>
15
+ class="dropdown dropdown__bottom"
16
+ aria-hidden="true">
17
+ <% if !params[:hidden] && allowed_to?(:hide, authorization_scope) %>
18
+ <li class="dropdown__item">
19
+ <button type="button" class="dropdown__button" data-action="hide-global-moderations">
20
+ <%= t("decidim.admin.moderations.index.actions.hide.title") %>
21
+ </button>
22
+ </li>
23
+ <% end %>
24
+ <% if !params[:hidden] && allowed_to?(:unreport, authorization_scope) %>
25
+ <li class="dropdown__item">
26
+ <button type="button" class="dropdown__button" data-action="unreport-global-moderations">
27
+ <%= t("decidim.admin.moderations.index.actions.unreport.title") %>
28
+ </button>
29
+ </li>
30
+ <% end %>
31
+ <% if params[:hidden] %>
32
+ <li class="dropdown__item">
33
+ <button type="button" class="dropdown__button" data-action="unhide-global-moderations">
34
+ <%= t("decidim.admin.moderations.index.actions.unhide.title") %>
35
+ </button>
36
+ </li>
37
+ <% end %>
38
+ </ul>
43
39
  </div>
@@ -17,7 +17,7 @@
17
17
  </h1>
18
18
  </div>
19
19
  <%= admin_filter_selector(:moderations) %>
20
- <div class="table-scroll">
20
+ <div class="table-stacked">
21
21
  <table class="table-list">
22
22
  <%= render partial: "moderations-thead" %>
23
23
  <tbody>
@@ -82,8 +82,7 @@
82
82
  <td>
83
83
  <%= icon_link_to "fullscreen-line",
84
84
  moderation_report_path(moderation_id: moderation, id: report.id),
85
- t("actions.expand", scope: "decidim.moderations"),
86
- class: "action-icon--expand" %>
85
+ t("actions.expand", scope: "decidim.moderations") %>
87
86
  </td>
88
87
  </tr>
89
88
  <% end %>
@@ -12,7 +12,7 @@
12
12
  </div>
13
13
  </h1>
14
14
  </div>
15
- <div class="table-scroll">
15
+ <div class="table-stacked">
16
16
  <table class="table-list">
17
17
  <thead>
18
18
  <tr>
@@ -21,43 +21,86 @@
21
21
  <th><%= t("models.newsletter.fields.sent_at", scope: "decidim.admin") %></th>
22
22
  <th><%= t("models.newsletter.fields.sent_to", scope: "decidim.admin") %></th>
23
23
  <th><%= t("models.newsletter.fields.progress", scope: "decidim.admin") %></th>
24
- <th></th>
24
+ <th><%= t("decidim.admin.actions.actions") %></th>
25
25
  </tr>
26
26
  </thead>
27
27
  <tbody>
28
28
  <% @newsletters.each do |newsletter| %>
29
29
  <tr data-newsletter-id="<%= newsletter.id %>">
30
- <td>
30
+ <td data-label="<%= t("models.newsletter.fields.subject", scope: "decidim.admin") %>">
31
31
  <% if allowed_to?(:read, :newsletter, newsletter: newsletter) %>
32
32
  <%= link_to translated_attribute(newsletter.subject), decidim_admin.newsletter_path(newsletter) %>
33
33
  <% else %>
34
- <%= translated_attribute newsletter.subject %>
34
+ <%= translated_attribute(newsletter.subject) %>
35
35
  <% end %>
36
36
  </td>
37
- <td><%= l newsletter.created_at, format: :long if newsletter.created_at %></td>
38
- <td><%= l newsletter.sent_at, format: :long if newsletter.sent_at %></td>
39
- <td><%= selective_newsletter_to newsletter %></td>
40
- <td>
37
+
38
+ <td data-label="<%= t("models.newsletter.fields.created_at", scope: "decidim.admin") %>">
39
+ <%= l(newsletter.created_at, format: :long) if newsletter.created_at %>
40
+ </td>
41
+
42
+ <td data-label="<%= t("models.newsletter.fields.sent_at", scope: "decidim.admin") %>">
43
+ <%= l(newsletter.sent_at, format: :long) if newsletter.sent_at %>
44
+ </td>
45
+
46
+ <td data-label="<%= t("models.newsletter.fields.sent_to", scope: "decidim.admin") %>">
47
+ <%= selective_newsletter_to(newsletter) %>
48
+ </td>
49
+
50
+ <td data-label="<%= t("models.newsletter.fields.progress", scope: "decidim.admin") %>">
41
51
  <% if newsletter.sent? %>
42
52
  <%= "#{newsletter.total_deliveries} / #{newsletter.total_recipients}" %>
43
53
  <% end %>
44
54
  </td>
45
- <td class="table-list__actions">
46
- <% if allowed_to?(:update, :newsletter, newsletter: newsletter) && !newsletter.sent? %>
47
- <%= icon_link_to "pencil-line", decidim_admin.edit_newsletter_path(newsletter), t("actions.edit", scope: "decidim.admin"), class: "edit" %>
48
- <% end %>
49
55
 
50
- <% if allowed_to?(:read, :newsletter, newsletter: newsletter) %>
51
- <%= icon_link_to "share-line", decidim_admin.send_to_user_newsletter_path(newsletter), t("actions.send_me_a_test_email", scope: "decidim.admin"), class: "preview", method: :post %>
52
- <% end %>
56
+ <td data-label="<%= t("decidim.admin.actions.actions") %>" class="table-list__actions">
57
+ <button type="button" data-controller="dropdown" data-target="actions-newsletter-<%= newsletter.id %>" aria-label="<%= t("decidim.admin.actions.actions_label", resource: t("models.newsletter.name", scope: "decidim.admin")) %>">
58
+ <%= icon "more-fill", class: "text-secondary" %>
59
+ </button>
53
60
 
54
- <% if allowed_to?(:read, :newsletter, newsletter: newsletter) %>
55
- <%= icon_link_to "eye-line", decidim_admin.newsletter_path(newsletter), t("actions.preview", scope: "decidim.admin"), class: "preview", target: "_blank", data: { "external-link": false } %>
56
- <% end %>
61
+ <div class="inline-block relative">
62
+ <ul id="actions-newsletter-<%= newsletter.id %>" class="dropdown dropdown__action" aria-hidden="true">
63
+ <% if allowed_to?(:update, :newsletter, newsletter: newsletter) && !newsletter.sent? %>
64
+ <li class="dropdown__item">
65
+ <%= link_to decidim_admin.edit_newsletter_path(newsletter), method: :get, class: "dropdown__button" do %>
66
+ <%= icon "pencil-line" %>
67
+ <%= t("actions.edit", scope: "decidim.admin") %>
68
+ <% end %>
69
+ </li>
57
70
 
58
- <% if allowed_to?(:destroy, :newsletter, newsletter: newsletter) && !newsletter.sent? %>
59
- <%= icon_link_to "delete-bin-line", decidim_admin.newsletter_path(newsletter), t("actions.destroy", scope: "decidim.admin"), method: :delete, data: { confirm: t(".confirm_delete") }, class: "action-icon--remove" %>
60
- <% end %>
71
+ <hr>
72
+ <% end %>
73
+
74
+ <% if allowed_to?(:read, :newsletter, newsletter: newsletter) %>
75
+ <li class="dropdown__item">
76
+ <%= link_to decidim_admin.send_to_user_newsletter_path(newsletter), method: :post, class: "dropdown__button" do %>
77
+ <%= icon "share-line" %>
78
+ <%= t("actions.send_me_a_test_email", scope: "decidim.admin") %>
79
+ <% end %>
80
+ </li>
81
+
82
+ <hr>
83
+
84
+ <li class="dropdown__item">
85
+ <%= link_to decidim_admin.newsletter_path(newsletter), class: "dropdown__button", target: "_blank", data: { "external-link": false } do %>
86
+ <%= icon "eye-line" %>
87
+ <%= t("actions.preview", scope: "decidim.admin") %>
88
+ <% end %>
89
+ </li>
90
+ <% end %>
91
+
92
+ <% if allowed_to?(:destroy, :newsletter, newsletter: newsletter) && !newsletter.sent? %>
93
+ <hr>
94
+
95
+ <li class="dropdown__item">
96
+ <%= link_to decidim_admin.newsletter_path(newsletter), method: :delete, data: { confirm: t(".confirm_delete") }, class: "dropdown__button dropdown__button--danger" do %>
97
+ <%= icon "delete-bin-line" %>
98
+ <%= t("actions.destroy", scope: "decidim.admin") %>
99
+ <% end %>
100
+ </li>
101
+ <% end %>
102
+ </ul>
103
+ </div>
61
104
  </td>
62
105
  </tr>
63
106
  <% end %>