decidim-admin 0.27.10 → 0.28.0.rc4

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.

Potentially problematic release.


This version of decidim-admin might be problematic. Click here for more details.

Files changed (513) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +3 -3
  3. data/app/cells/decidim/admin/attachments_privacy_warning/show.erb +1 -1
  4. data/app/cells/decidim/admin/content_block/show.erb +11 -6
  5. data/app/cells/decidim/admin/content_block_cell.rb +21 -7
  6. data/app/cells/decidim/admin/homepage_content_block_cell.rb +19 -0
  7. data/app/cells/decidim/admin/results_per_page/show.erb +1 -1
  8. data/app/cells/decidim/admin/static_page_content_block_cell.rb +21 -0
  9. data/app/commands/decidim/admin/block_user.rb +15 -11
  10. data/app/commands/decidim/admin/close_session_managed_user.rb +1 -1
  11. data/app/commands/decidim/admin/content_blocks/create_content_block.rb +50 -0
  12. data/app/commands/decidim/admin/content_blocks/destroy_content_block.rb +36 -0
  13. data/app/commands/decidim/admin/content_blocks/reorder_content_blocks.rb +88 -0
  14. data/app/commands/decidim/admin/content_blocks/update_content_block.rb +81 -0
  15. data/app/commands/decidim/admin/create_area.rb +1 -1
  16. data/app/commands/decidim/admin/create_area_type.rb +1 -1
  17. data/app/commands/decidim/admin/create_attachment.rb +1 -1
  18. data/app/commands/decidim/admin/create_attachment_collection.rb +1 -1
  19. data/app/commands/decidim/admin/create_category.rb +1 -1
  20. data/app/commands/decidim/admin/create_newsletter.rb +1 -1
  21. data/app/commands/decidim/admin/create_participatory_space_private_user.rb +3 -3
  22. data/app/commands/decidim/admin/create_scope.rb +1 -1
  23. data/app/commands/decidim/admin/create_scope_type.rb +1 -1
  24. data/app/commands/decidim/admin/create_static_page.rb +1 -1
  25. data/app/commands/decidim/admin/create_static_page_topic.rb +1 -1
  26. data/app/commands/decidim/admin/destroy_area.rb +1 -1
  27. data/app/commands/decidim/admin/destroy_category.rb +2 -2
  28. data/app/commands/decidim/admin/destroy_participatory_space_private_user.rb +1 -1
  29. data/app/commands/decidim/admin/destroy_scope.rb +1 -1
  30. data/app/commands/decidim/admin/destroy_share_token.rb +1 -1
  31. data/app/commands/decidim/admin/destroy_static_page_topic.rb +1 -1
  32. data/app/commands/decidim/admin/hide_resource.rb +9 -35
  33. data/app/commands/decidim/admin/impersonate_user.rb +1 -1
  34. data/app/commands/decidim/admin/invite_admin.rb +1 -1
  35. data/app/commands/decidim/admin/participatory_space/create_admin.rb +132 -0
  36. data/app/commands/decidim/admin/participatory_space/destroy_admin.rb +61 -0
  37. data/app/commands/decidim/admin/participatory_space/publish.rb +41 -0
  38. data/app/commands/decidim/admin/participatory_space/unpublish.rb +41 -0
  39. data/app/commands/decidim/admin/participatory_space/update_admin.rb +72 -0
  40. data/app/commands/decidim/admin/process_participatory_space_private_user_import_csv.rb +4 -6
  41. data/app/commands/decidim/admin/process_user_group_verification_csv.rb +4 -7
  42. data/app/commands/decidim/admin/promote_managed_user.rb +1 -1
  43. data/app/commands/decidim/admin/reject_user_group.rb +1 -1
  44. data/app/commands/decidim/admin/update_area.rb +1 -1
  45. data/app/commands/decidim/admin/update_area_type.rb +1 -1
  46. data/app/commands/decidim/admin/update_attachment.rb +1 -1
  47. data/app/commands/decidim/admin/update_attachment_collection.rb +1 -1
  48. data/app/commands/decidim/admin/update_category.rb +1 -1
  49. data/app/commands/decidim/admin/update_component_permissions.rb +2 -2
  50. data/app/commands/decidim/admin/update_newsletter.rb +1 -1
  51. data/app/commands/decidim/admin/update_organization.rb +2 -2
  52. data/app/commands/decidim/admin/update_organization_appearance.rb +5 -7
  53. data/app/commands/decidim/admin/update_organization_tos_version.rb +3 -3
  54. data/app/commands/decidim/admin/update_resource_permissions.rb +1 -1
  55. data/app/commands/decidim/admin/update_scope.rb +1 -1
  56. data/app/commands/decidim/admin/update_scope_type.rb +1 -1
  57. data/app/commands/decidim/admin/update_static_page.rb +1 -1
  58. data/app/commands/decidim/admin/update_static_page_topic.rb +1 -1
  59. data/app/commands/decidim/admin/update_user_groups.rb +1 -1
  60. data/app/controllers/concerns/decidim/admin/content_blocks/landing_page.rb +130 -0
  61. data/app/controllers/concerns/decidim/admin/content_blocks/landing_page_content_blocks.rb +158 -0
  62. data/app/controllers/concerns/decidim/admin/filterable.rb +3 -3
  63. data/app/controllers/concerns/decidim/admin/global_moderation_context.rb +1 -20
  64. data/app/controllers/concerns/decidim/admin/logs/filterable.rb +31 -0
  65. data/app/controllers/concerns/decidim/admin/participatory_space_admin_breadcrumb.rb +38 -0
  66. data/app/controllers/concerns/decidim/admin/participatory_space_admin_context.rb +3 -2
  67. data/app/controllers/decidim/admin/admin_terms_controller.rb +3 -3
  68. data/app/controllers/decidim/admin/application_controller.rb +6 -2
  69. data/app/controllers/decidim/admin/area_types_controller.rb +10 -3
  70. data/app/controllers/decidim/admin/areas_controller.rb +10 -3
  71. data/app/controllers/decidim/admin/authorization_workflows_controller.rb +1 -3
  72. data/app/controllers/decidim/admin/block_user_controller.rb +4 -3
  73. data/app/controllers/decidim/admin/categories_controller.rb +20 -12
  74. data/app/controllers/decidim/admin/component_permissions_controller.rb +2 -2
  75. data/app/controllers/decidim/admin/components/base_controller.rb +16 -1
  76. data/app/controllers/decidim/admin/components_controller.rb +13 -1
  77. data/app/controllers/decidim/admin/concerns/has_attachment_collections.rb +4 -10
  78. data/app/controllers/decidim/admin/concerns/has_attachments.rb +10 -16
  79. data/app/controllers/decidim/admin/concerns/has_breadcrumb_items.rb +27 -0
  80. data/app/controllers/decidim/admin/concerns/has_content_blocks.rb +23 -0
  81. data/app/controllers/decidim/admin/concerns/has_private_users.rb +4 -4
  82. data/app/controllers/decidim/admin/concerns/has_private_users_csv_import.rb +2 -2
  83. data/app/controllers/decidim/admin/concerns/has_tabbed_menu.rb +21 -0
  84. data/app/controllers/decidim/admin/conflicts_controller.rb +3 -9
  85. data/app/controllers/decidim/admin/dashboard_controller.rb +8 -3
  86. data/app/controllers/decidim/admin/exports_controller.rb +21 -4
  87. data/app/controllers/decidim/admin/help_sections_controller.rb +3 -1
  88. data/app/controllers/decidim/admin/impersonatable_users_controller.rb +3 -1
  89. data/app/controllers/decidim/admin/impersonations_controller.rb +8 -9
  90. data/app/controllers/decidim/admin/imports_controller.rb +24 -6
  91. data/app/controllers/decidim/admin/logs_controller.rb +20 -8
  92. data/app/controllers/decidim/admin/managed_users/impersonation_logs_controller.rb +1 -3
  93. data/app/controllers/decidim/admin/managed_users/promotions_controller.rb +2 -2
  94. data/app/controllers/decidim/admin/metrics_controller.rb +1 -1
  95. data/app/controllers/decidim/admin/moderated_users_controller.rb +7 -4
  96. data/app/controllers/decidim/admin/newsletters_controller.rb +16 -7
  97. data/app/controllers/decidim/admin/officializations_controller.rb +3 -3
  98. data/app/controllers/decidim/admin/organization_appearance_controller.rb +3 -0
  99. data/app/controllers/decidim/admin/organization_controller.rb +6 -7
  100. data/app/controllers/decidim/admin/organization_external_domain_whitelist_controller.rb +2 -0
  101. data/app/controllers/decidim/admin/organization_homepage_content_blocks_controller.rb +12 -41
  102. data/app/controllers/decidim/admin/organization_homepage_controller.rb +15 -33
  103. data/app/controllers/decidim/admin/participatory_space/user_role_controller.rb +119 -0
  104. data/app/controllers/decidim/admin/reminders_controller.rb +1 -1
  105. data/app/controllers/decidim/admin/resource_permissions_controller.rb +1 -1
  106. data/app/controllers/decidim/admin/scope_types_controller.rb +10 -3
  107. data/app/controllers/decidim/admin/scopes_controller.rb +10 -3
  108. data/app/controllers/decidim/admin/share_tokens_controller.rb +1 -1
  109. data/app/controllers/decidim/admin/space_publications_controller.rb +53 -0
  110. data/app/controllers/decidim/admin/static_page_content_blocks_controller.rb +40 -0
  111. data/app/controllers/decidim/admin/static_page_topics_controller.rb +18 -7
  112. data/app/controllers/decidim/admin/static_pages_controller.rb +33 -6
  113. data/app/controllers/decidim/admin/users_controller.rb +2 -2
  114. data/app/events/decidim/attachment_created_event.rb +1 -1
  115. data/app/events/decidim/component_published_event.rb +1 -12
  116. data/app/events/decidim/resource_hidden_event.rb +2 -6
  117. data/app/forms/decidim/admin/area_form.rb +1 -1
  118. data/app/forms/decidim/admin/block_user_form.rb +1 -0
  119. data/app/forms/decidim/admin/category_form.rb +1 -1
  120. data/app/forms/decidim/admin/managed_user_promotion_form.rb +1 -1
  121. data/app/forms/decidim/admin/organization_appearance_form.rb +7 -12
  122. data/app/forms/decidim/admin/organization_form.rb +2 -2
  123. data/app/forms/decidim/admin/participatory_space_admin_user_form.rb +16 -0
  124. data/app/forms/decidim/admin/participatory_space_private_user_csv_import_form.rb +3 -5
  125. data/app/forms/decidim/admin/scope_form.rb +1 -1
  126. data/app/forms/decidim/admin/selective_newsletter_form.rb +1 -1
  127. data/app/forms/decidim/admin/static_page_form.rb +3 -3
  128. data/app/helpers/decidim/admin/admin_terms_helper.rb +10 -10
  129. data/app/helpers/decidim/admin/application_helper.rb +1 -14
  130. data/app/helpers/decidim/admin/attributes_display_helper.rb +1 -1
  131. data/app/helpers/decidim/admin/bulk_actions_helper.rb +2 -2
  132. data/app/helpers/decidim/admin/dashboard_helper.rb +3 -3
  133. data/app/helpers/decidim/admin/exports_helper.rb +26 -2
  134. data/app/helpers/decidim/admin/filterable_helper.rb +2 -2
  135. data/app/helpers/decidim/admin/icon_link_helper.rb +12 -11
  136. data/app/helpers/decidim/admin/icon_with_tooltip_helper.rb +22 -0
  137. data/app/helpers/decidim/admin/imports_helper.rb +1 -1
  138. data/app/helpers/decidim/admin/logs_helper.rb +18 -0
  139. data/app/helpers/decidim/admin/menu_helper.rb +61 -1
  140. data/app/helpers/decidim/admin/moderations/reports_helper.rb +3 -2
  141. data/app/helpers/decidim/admin/newsletters_helper.rb +4 -4
  142. data/app/helpers/decidim/admin/paginable/per_page_helper.rb +1 -1
  143. data/app/helpers/decidim/admin/resource_permissions_helper.rb +2 -2
  144. data/app/helpers/decidim/admin/search_form_helper.rb +19 -0
  145. data/app/helpers/decidim/admin/settings_helper.rb +9 -8
  146. data/app/jobs/decidim/admin/application_job.rb +1 -1
  147. data/app/jobs/decidim/admin/expire_impersonation_job.rb +1 -1
  148. data/app/jobs/decidim/admin/import_participatory_space_private_user_csv_job.rb +2 -2
  149. data/app/jobs/decidim/admin/newsletter_job.rb +1 -1
  150. data/app/mailers/decidim/admin/application_mailer.rb +12 -0
  151. data/app/packs/entrypoints/decidim_admin.js +2 -23
  152. data/app/packs/entrypoints/decidim_admin.scss +1 -1
  153. data/app/packs/src/decidim/admin/application.js +0 -12
  154. data/app/packs/src/decidim/admin/officializations.js +21 -3
  155. data/app/packs/src/decidim/admin/participatory_space_search.js +268 -0
  156. data/app/packs/src/decidim/admin/scope_picker_enabler.component.js +2 -2
  157. data/app/packs/src/decidim/admin/sortable.js +0 -2
  158. data/app/packs/src/decidim/admin/tab_focus.js +3 -3
  159. data/app/packs/src/decidim/admin/toggle_nav.js +1 -1
  160. data/app/packs/src/decidim/admin/triadic_color_picker.js +128 -0
  161. data/app/packs/stylesheets/decidim/admin/_bulk_actions.scss +16 -0
  162. data/app/packs/stylesheets/decidim/admin/_cards.scss +171 -0
  163. data/app/packs/stylesheets/decidim/admin/_color_picker.scss +61 -0
  164. data/app/packs/stylesheets/decidim/admin/_component-show.scss +95 -0
  165. data/app/packs/stylesheets/decidim/admin/_data_picker.scss +55 -0
  166. data/app/packs/stylesheets/decidim/admin/_dropdown.scss +35 -0
  167. data/app/packs/stylesheets/decidim/admin/_filters.scss +94 -0
  168. data/app/packs/stylesheets/decidim/admin/_forms.scss +81 -0
  169. data/app/packs/stylesheets/decidim/admin/_item_edit.scss +122 -0
  170. data/app/packs/stylesheets/decidim/admin/_item_show.scss +69 -0
  171. data/app/packs/stylesheets/decidim/admin/_layout.scss +79 -0
  172. data/app/packs/stylesheets/decidim/admin/_legacy_foundation.scss +482 -0
  173. data/app/packs/stylesheets/decidim/admin/_logs.scss +80 -0
  174. data/app/packs/stylesheets/decidim/admin/_main-nav.scss +93 -0
  175. data/app/packs/stylesheets/decidim/admin/_minimap.scss +59 -0
  176. data/app/packs/stylesheets/decidim/admin/_moderations.scss +36 -0
  177. data/app/packs/stylesheets/decidim/admin/_secondary-nav.scss +111 -0
  178. data/app/packs/stylesheets/decidim/admin/_show_email.scss +19 -0
  179. data/app/packs/stylesheets/decidim/admin/_sidebar-menu.scss +66 -0
  180. data/app/packs/stylesheets/decidim/admin/_table-list.scss +155 -0
  181. data/app/packs/stylesheets/decidim/admin/_tabs.scss +74 -0
  182. data/app/packs/stylesheets/decidim/admin/_title-bar.scss +62 -0
  183. data/app/packs/stylesheets/decidim/admin/_user-login.scss +9 -0
  184. data/app/packs/stylesheets/decidim/admin/application.scss +37 -21
  185. data/app/permissions/decidim/admin/permissions.rb +2 -2
  186. data/app/presenters/decidim/admin/aside_menu_presenter.rb +25 -0
  187. data/app/presenters/decidim/admin/dashboard_metric_charts_presenter.rb +0 -26
  188. data/app/presenters/decidim/admin/secondary_menu_presenter.rb +5 -9
  189. data/app/presenters/decidim/admin/simple_menu_presenter.rb +2 -2
  190. data/app/queries/decidim/admin/active_users_counter.rb +1 -1
  191. data/app/queries/decidim/admin/invites.rb +58 -0
  192. data/app/queries/decidim/admin/moderation_stats.rb +53 -0
  193. data/app/views/decidim/admin/admin_terms/show.html.erb +15 -10
  194. data/app/views/decidim/admin/area_types/_form.html.erb +11 -6
  195. data/app/views/decidim/admin/area_types/edit.html.erb +14 -12
  196. data/app/views/decidim/admin/area_types/index.html.erb +35 -33
  197. data/app/views/decidim/admin/area_types/new.html.erb +14 -12
  198. data/app/views/decidim/admin/areas/_form.html.erb +12 -8
  199. data/app/views/decidim/admin/areas/edit.html.erb +14 -12
  200. data/app/views/decidim/admin/areas/index.html.erb +40 -38
  201. data/app/views/decidim/admin/areas/new.html.erb +14 -12
  202. data/app/views/decidim/admin/attachment_collections/_form.html.erb +12 -14
  203. data/app/views/decidim/admin/attachment_collections/edit.html.erb +17 -5
  204. data/app/views/decidim/admin/attachment_collections/index.html.erb +35 -40
  205. data/app/views/decidim/admin/attachment_collections/new.html.erb +16 -5
  206. data/app/views/decidim/admin/attachments/_form.html.erb +18 -22
  207. data/app/views/decidim/admin/attachments/edit.html.erb +17 -5
  208. data/app/views/decidim/admin/attachments/index.html.erb +45 -48
  209. data/app/views/decidim/admin/attachments/new.html.erb +16 -5
  210. data/app/views/decidim/admin/authorization_workflows/index.html.erb +7 -0
  211. data/app/views/decidim/admin/block_user/new.html.erb +39 -18
  212. data/app/views/decidim/admin/categories/_form.html.erb +13 -15
  213. data/app/views/decidim/admin/categories/edit.html.erb +16 -5
  214. data/app/views/decidim/admin/categories/index.html.erb +44 -55
  215. data/app/views/decidim/admin/categories/new.html.erb +16 -5
  216. data/app/views/decidim/admin/components/_actions.html.erb +17 -16
  217. data/app/views/decidim/admin/components/_component.html.erb +5 -3
  218. data/app/views/decidim/admin/components/_form.html.erb +87 -47
  219. data/app/views/decidim/admin/components/_resource_action.html.erb +9 -0
  220. data/app/views/decidim/admin/components/_settings_fields.html.erb +11 -8
  221. data/app/views/decidim/admin/components/edit.html.erb +16 -5
  222. data/app/views/decidim/admin/components/index.html.erb +23 -18
  223. data/app/views/decidim/admin/components/new.html.erb +16 -5
  224. data/app/views/decidim/admin/conflicts/edit.html.erb +24 -26
  225. data/app/views/decidim/admin/conflicts/index.html.erb +23 -26
  226. data/app/views/decidim/admin/dashboard/_pending_moderations.html.erb +12 -0
  227. data/app/views/decidim/admin/dashboard/show.html.erb +26 -20
  228. data/app/views/decidim/admin/devise/mailers/password_change.html.erb +1 -1
  229. data/app/views/decidim/admin/devise/mailers/reset_password_instructions.html.erb +2 -2
  230. data/app/views/decidim/admin/exports/_dropdown.html.erb +11 -4
  231. data/app/views/decidim/admin/help_sections/_form.html.erb +34 -18
  232. data/app/views/decidim/admin/impersonatable_users/index.html.erb +46 -53
  233. data/app/views/decidim/admin/impersonations/_form.html.erb +53 -35
  234. data/app/views/decidim/admin/impersonations/new.html.erb +21 -19
  235. data/app/views/decidim/admin/imports/_dropdown.html.erb +5 -2
  236. data/app/views/decidim/admin/imports/new.html.erb +54 -43
  237. data/app/views/decidim/admin/logs/_filters.html.erb +37 -0
  238. data/app/views/decidim/admin/logs/_logs_list.html.erb +4 -3
  239. data/app/views/decidim/admin/logs/index.html.erb +3 -6
  240. data/app/views/decidim/admin/managed_users/impersonation_logs/index.html.erb +27 -28
  241. data/app/views/decidim/admin/managed_users/promotions/_form.html.erb +8 -2
  242. data/app/views/decidim/admin/managed_users/promotions/new.html.erb +17 -15
  243. data/app/views/decidim/admin/metrics/_metrics.html.erb +1 -6
  244. data/app/views/decidim/admin/metrics/index.html.erb +1 -1
  245. data/app/views/decidim/admin/moderated_users/_report.html.erb +1 -5
  246. data/app/views/decidim/admin/moderated_users/index.html.erb +58 -75
  247. data/app/views/decidim/admin/moderations/index.html.erb +91 -101
  248. data/app/views/decidim/admin/moderations/reports/index.html.erb +91 -92
  249. data/app/views/decidim/admin/moderations/reports/show.html.erb +51 -49
  250. data/app/views/decidim/admin/newsletter_templates/index.html.erb +12 -11
  251. data/app/views/decidim/admin/newsletter_templates/show.html.erb +8 -6
  252. data/app/views/decidim/admin/newsletters/_form.html.erb +10 -4
  253. data/app/views/decidim/admin/newsletters/edit.html.erb +21 -12
  254. data/app/views/decidim/admin/newsletters/index.html.erb +57 -57
  255. data/app/views/decidim/admin/newsletters/new.html.erb +20 -12
  256. data/app/views/decidim/admin/newsletters/select_recipients_to_deliver.html.erb +53 -55
  257. data/app/views/decidim/admin/newsletters/show.html.erb +24 -17
  258. data/app/views/decidim/admin/officializations/_show_email_modal.html.erb +20 -21
  259. data/app/views/decidim/admin/officializations/index.html.erb +55 -62
  260. data/app/views/decidim/admin/officializations/new.html.erb +24 -16
  261. data/app/views/decidim/admin/officializations/show_email.html.erb +0 -1
  262. data/app/views/decidim/admin/organization/_form.html.erb +76 -90
  263. data/app/views/decidim/admin/organization/edit.html.erb +19 -11
  264. data/app/views/decidim/admin/organization_appearance/_form.html.erb +72 -57
  265. data/app/views/decidim/admin/organization_appearance/edit.html.erb +17 -6
  266. data/app/views/decidim/admin/organization_appearance/form/_colors.html.erb +63 -24
  267. data/app/views/decidim/admin/organization_appearance/form/_header_snippets.html.erb +17 -0
  268. data/app/views/decidim/admin/organization_appearance/form/_images.html.erb +39 -40
  269. data/app/views/decidim/admin/organization_appearance/form/_minimap.html.erb +5 -14
  270. data/app/views/decidim/admin/organization_external_domain_whitelist/_external_domain.html.erb +18 -13
  271. data/app/views/decidim/admin/organization_external_domain_whitelist/_form.html.erb +8 -10
  272. data/app/views/decidim/admin/organization_external_domain_whitelist/edit.html.erb +17 -6
  273. data/app/views/decidim/admin/participatory_space_private_users/_form.html.erb +10 -14
  274. data/app/views/decidim/admin/participatory_space_private_users/index.html.erb +59 -60
  275. data/app/views/decidim/admin/participatory_space_private_users/new.html.erb +17 -5
  276. data/app/views/decidim/admin/participatory_space_private_users_csv_imports/new.html.erb +28 -11
  277. data/app/views/decidim/admin/reminders/new.html.erb +18 -16
  278. data/app/views/decidim/admin/resource_permissions/edit.html.erb +46 -47
  279. data/app/views/decidim/admin/scope_types/_form.html.erb +9 -6
  280. data/app/views/decidim/admin/scope_types/edit.html.erb +17 -11
  281. data/app/views/decidim/admin/scope_types/index.html.erb +40 -34
  282. data/app/views/decidim/admin/scope_types/new.html.erb +17 -11
  283. data/app/views/decidim/admin/scopes/_form.html.erb +11 -9
  284. data/app/views/decidim/admin/scopes/edit.html.erb +17 -11
  285. data/app/views/decidim/admin/scopes/index.html.erb +39 -41
  286. data/app/views/decidim/admin/scopes/new.html.erb +17 -11
  287. data/app/views/decidim/admin/share_tokens/_share_tokens.html.erb +3 -15
  288. data/app/views/decidim/admin/shared/_admin_confirm_modal.html.erb +18 -0
  289. data/app/views/decidim/admin/shared/_filters.html.erb +6 -10
  290. data/app/views/decidim/admin/shared/_gallery.html.erb +8 -19
  291. data/app/views/decidim/admin/shared/_js-callout.html.erb +4 -2
  292. data/app/views/decidim/admin/shared/landing_page/_content_blocks.html.erb +68 -0
  293. data/app/views/decidim/admin/shared/landing_page/edit.html.erb +1 -47
  294. data/app/views/decidim/admin/shared/landing_page_content_blocks/edit.html.erb +24 -14
  295. data/app/views/decidim/admin/static_page_topics/_form.html.erb +2 -2
  296. data/app/views/decidim/admin/static_page_topics/edit.html.erb +21 -11
  297. data/app/views/decidim/admin/static_page_topics/index.html.erb +41 -0
  298. data/app/views/decidim/admin/static_page_topics/new.html.erb +21 -11
  299. data/app/views/decidim/admin/static_pages/_form.html.erb +41 -26
  300. data/app/views/decidim/admin/static_pages/_form_notable_changes.html.erb +2 -3
  301. data/app/views/decidim/admin/static_pages/_topic.html.erb +40 -44
  302. data/app/views/decidim/admin/static_pages/edit.html.erb +22 -12
  303. data/app/views/decidim/admin/static_pages/index.html.erb +14 -2
  304. data/app/views/decidim/admin/static_pages/new.html.erb +15 -11
  305. data/app/views/decidim/admin/user_groups/index.html.erb +58 -58
  306. data/app/views/decidim/admin/user_groups_csv_verifications/new.html.erb +28 -17
  307. data/app/views/decidim/admin/users/_form.html.erb +14 -8
  308. data/app/views/decidim/admin/users/index.html.erb +52 -54
  309. data/app/views/decidim/admin/users/new.html.erb +15 -12
  310. data/app/views/layouts/decidim/admin/_admin_timeout_modal.html.erb +24 -0
  311. data/app/views/layouts/decidim/admin/_application.html.erb +50 -12
  312. data/app/views/layouts/decidim/admin/_breadcrumb.html.erb +26 -0
  313. data/app/views/layouts/decidim/admin/_callouts_full.html.erb +2 -13
  314. data/app/views/layouts/decidim/admin/_header.html.erb +2 -6
  315. data/app/views/layouts/decidim/admin/_js_configuration.html.erb +3 -6
  316. data/app/views/layouts/decidim/admin/_sidebar_menu.html.erb +24 -0
  317. data/app/views/layouts/decidim/admin/_title_bar.html.erb +36 -37
  318. data/app/views/layouts/decidim/admin/_title_bar_responsive.html.erb +46 -0
  319. data/app/views/layouts/decidim/admin/global_moderations.html.erb +1 -3
  320. data/app/views/layouts/decidim/admin/newsletters.erb +0 -11
  321. data/app/views/layouts/decidim/admin/settings.html.erb +2 -3
  322. data/app/views/layouts/decidim/admin/users.html.erb +1 -3
  323. data/config/locales/ar-SA.yml +0 -3
  324. data/config/locales/ar.yml +9 -83
  325. data/config/locales/bg.yml +3 -990
  326. data/config/locales/ca.yml +121 -89
  327. data/config/locales/cs-CZ.yml +0 -3
  328. data/config/locales/cs.yml +120 -86
  329. data/config/locales/de.yml +123 -91
  330. data/config/locales/el.yml +90 -78
  331. data/config/locales/en.yml +123 -91
  332. data/config/locales/eo.yml +0 -2
  333. data/config/locales/es-MX.yml +121 -89
  334. data/config/locales/es-PY.yml +121 -89
  335. data/config/locales/es.yml +124 -92
  336. data/config/locales/eu.yml +126 -94
  337. data/config/locales/fi-pl.yml +0 -3
  338. data/config/locales/fi-plain.yml +112 -80
  339. data/config/locales/fi.yml +115 -83
  340. data/config/locales/fr-CA.yml +119 -87
  341. data/config/locales/fr-LU.yml +0 -3
  342. data/config/locales/fr.yml +119 -87
  343. data/config/locales/ga-IE.yml +4 -12
  344. data/config/locales/gl.yml +7 -99
  345. data/config/locales/hu.yml +93 -98
  346. data/config/locales/id-ID.yml +0 -64
  347. data/config/locales/is-IS.yml +0 -53
  348. data/config/locales/it.yml +9 -103
  349. data/config/locales/ja.yml +117 -88
  350. data/config/locales/kaa.yml +6 -13
  351. data/config/locales/ko.yml +0 -720
  352. data/config/locales/lb-LU.yml +0 -3
  353. data/config/locales/lb.yml +9 -104
  354. data/config/locales/lt.yml +90 -72
  355. data/config/locales/lv.yml +0 -79
  356. data/config/locales/nl.yml +14 -109
  357. data/config/locales/no.yml +8 -115
  358. data/config/locales/pl.yml +7 -158
  359. data/config/locales/pt-BR.yml +87 -106
  360. data/config/locales/pt.yml +9 -104
  361. data/config/locales/ro-RO.yml +86 -85
  362. data/config/locales/ru.yml +0 -55
  363. data/config/locales/sk-SK.yml +3 -6
  364. data/config/locales/sk.yml +0 -76
  365. data/config/locales/sl.yml +0 -8
  366. data/config/locales/sq-AL.yml +4 -486
  367. data/config/locales/sr-CS.yml +0 -60
  368. data/config/locales/sv.yml +99 -192
  369. data/config/locales/th-TH.yml +0 -100
  370. data/config/locales/tr-TR.yml +1 -89
  371. data/config/locales/uk.yml +0 -48
  372. data/config/locales/zh-CN.yml +0 -79
  373. data/config/locales/zh-TW.yml +74 -72
  374. data/config/routes.rb +12 -4
  375. data/lib/decidim/admin/components.rb +1 -1
  376. data/lib/decidim/admin/custom_import.rb +29 -0
  377. data/lib/decidim/admin/engine.rb +54 -216
  378. data/lib/decidim/admin/import/importer.rb +3 -3
  379. data/lib/decidim/admin/import/importer_factory.rb +1 -1
  380. data/lib/decidim/admin/import/readers/base.rb +1 -1
  381. data/lib/decidim/admin/import/readers/csv.rb +2 -2
  382. data/lib/decidim/admin/import/verifier.rb +4 -4
  383. data/lib/decidim/admin/menu.rb +281 -0
  384. data/lib/decidim/admin/search_form_builder.rb +39 -0
  385. data/lib/decidim/admin/test/admin_participatory_space_access_examples.rb +3 -2
  386. data/lib/decidim/admin/test/commands/create_attachment_collection_examples.rb +3 -3
  387. data/lib/decidim/admin/test/commands/create_category_examples.rb +2 -2
  388. data/lib/decidim/admin/test/commands/destroy_category_examples.rb +4 -13
  389. data/lib/decidim/admin/test/commands/publish_participatory_space_examples.rb +102 -0
  390. data/lib/decidim/admin/test/commands/update_attachment_collection_examples.rb +4 -4
  391. data/lib/decidim/admin/test/commands/update_category_examples.rb +3 -3
  392. data/lib/decidim/admin/test/destroy_admin_examples.rb +39 -0
  393. data/lib/decidim/admin/test/filterable_examples.rb +8 -8
  394. data/lib/decidim/admin/test/filters_participatory_space_user_roles_examples.rb +12 -43
  395. data/lib/decidim/admin/test/filters_participatory_space_users_examples.rb +34 -43
  396. data/lib/decidim/admin/test/forms/attachment_collection_form_examples.rb +1 -1
  397. data/lib/decidim/admin/test/forms/attachment_form_examples.rb +1 -1
  398. data/lib/decidim/admin/test/forms/category_form_examples.rb +1 -1
  399. data/lib/decidim/admin/test/manage_attachment_collections_examples.rb +21 -22
  400. data/lib/decidim/admin/test/manage_attachments_examples.rb +12 -12
  401. data/lib/decidim/admin/test/manage_categories_examples.rb +16 -19
  402. data/lib/decidim/admin/test/manage_component_permissions_examples.rb +24 -24
  403. data/lib/decidim/admin/test/manage_hide_content_examples.rb +59 -0
  404. data/lib/decidim/admin/test/manage_moderations_examples.rb +39 -21
  405. data/lib/decidim/admin/test/manage_paginated_collection_examples.rb +2 -2
  406. data/lib/decidim/admin/test/manage_participatory_space_publications_examples.rb +54 -0
  407. data/lib/decidim/admin/test/needs_admin_tos_accepted_examples.rb +1 -1
  408. data/lib/decidim/admin/test.rb +4 -0
  409. data/lib/decidim/admin/version.rb +1 -1
  410. data/lib/decidim/admin.rb +2 -0
  411. metadata +92 -117
  412. data/app/commands/decidim/admin/create_participatory_space_admin_user_actions.rb +0 -94
  413. data/app/commands/decidim/admin/reorder_content_blocks.rb +0 -100
  414. data/app/commands/decidim/admin/update_content_block.rb +0 -79
  415. data/app/controllers/concerns/decidim/admin/landing_page.rb +0 -105
  416. data/app/controllers/concerns/decidim/admin/landing_page_content_blocks.rb +0 -118
  417. data/app/packs/images/decidim/admin/.keep +0 -0
  418. data/app/packs/stylesheets/decidim/admin/_decidim.scss +0 -23
  419. data/app/packs/stylesheets/decidim/admin/_variables.scss +0 -18
  420. data/app/packs/stylesheets/decidim/admin/bundle.scss +0 -2
  421. data/app/packs/stylesheets/decidim/admin/components/_accordion.scss +0 -41
  422. data/app/packs/stylesheets/decidim/admin/components/_dropdown-menu.scss +0 -3
  423. data/app/packs/stylesheets/decidim/admin/components/_sortable.scss +0 -5
  424. data/app/packs/stylesheets/decidim/admin/extra/_action-icon.scss +0 -32
  425. data/app/packs/stylesheets/decidim/admin/extra/_block_user.scss +0 -5
  426. data/app/packs/stylesheets/decidim/admin/extra/_cards.scss +0 -24
  427. data/app/packs/stylesheets/decidim/admin/extra/_categories.scss +0 -5
  428. data/app/packs/stylesheets/decidim/admin/extra/_dropdown_inverted.scss +0 -47
  429. data/app/packs/stylesheets/decidim/admin/extra/_editor.scss +0 -1
  430. data/app/packs/stylesheets/decidim/admin/extra/_email_preview.scss +0 -5
  431. data/app/packs/stylesheets/decidim/admin/extra/_label-required.scss +0 -3
  432. data/app/packs/stylesheets/decidim/admin/extra/_login.scss +0 -37
  433. data/app/packs/stylesheets/decidim/admin/extra/_logs.scss +0 -122
  434. data/app/packs/stylesheets/decidim/admin/extra/_newsletter-templates-gallery.scss +0 -3
  435. data/app/packs/stylesheets/decidim/admin/extra/_organization-appearance.scss +0 -141
  436. data/app/packs/stylesheets/decidim/admin/extra/_quill.scss +0 -12
  437. data/app/packs/stylesheets/decidim/admin/extra/_select_multiple.scss +0 -3
  438. data/app/packs/stylesheets/decidim/admin/extra/_show_email.scss +0 -31
  439. data/app/packs/stylesheets/decidim/admin/extra/_sort.scss +0 -13
  440. data/app/packs/stylesheets/decidim/admin/extra/_title_bar.scss +0 -80
  441. data/app/packs/stylesheets/decidim/admin/modules/_action-icon.scss +0 -30
  442. data/app/packs/stylesheets/decidim/admin/modules/_agenda.scss +0 -34
  443. data/app/packs/stylesheets/decidim/admin/modules/_autocomplete.scss +0 -5
  444. data/app/packs/stylesheets/decidim/admin/modules/_buttons.scss +0 -86
  445. data/app/packs/stylesheets/decidim/admin/modules/_callouts.scss +0 -45
  446. data/app/packs/stylesheets/decidim/admin/modules/_card-grid.scss +0 -25
  447. data/app/packs/stylesheets/decidim/admin/modules/_cards.scss +0 -126
  448. data/app/packs/stylesheets/decidim/admin/modules/_char-counter.scss +0 -22
  449. data/app/packs/stylesheets/decidim/admin/modules/_component-counter.scss +0 -26
  450. data/app/packs/stylesheets/decidim/admin/modules/_draggable-list.scss +0 -27
  451. data/app/packs/stylesheets/decidim/admin/modules/_dropdown.scss +0 -20
  452. data/app/packs/stylesheets/decidim/admin/modules/_filters.scss +0 -83
  453. data/app/packs/stylesheets/decidim/admin/modules/_forms.scss +0 -164
  454. data/app/packs/stylesheets/decidim/admin/modules/_icons.scss +0 -68
  455. data/app/packs/stylesheets/decidim/admin/modules/_layout.scss +0 -75
  456. data/app/packs/stylesheets/decidim/admin/modules/_loading-spinner.scss +0 -19
  457. data/app/packs/stylesheets/decidim/admin/modules/_main-nav.scss +0 -45
  458. data/app/packs/stylesheets/decidim/admin/modules/_moderations.scss +0 -39
  459. data/app/packs/stylesheets/decidim/admin/modules/_modules.scss +0 -44
  460. data/app/packs/stylesheets/decidim/admin/modules/_pics.scss +0 -5
  461. data/app/packs/stylesheets/decidim/admin/modules/_process-header.scss +0 -13
  462. data/app/packs/stylesheets/decidim/admin/modules/_reveal.scss +0 -5
  463. data/app/packs/stylesheets/decidim/admin/modules/_secondary-nav.scss +0 -114
  464. data/app/packs/stylesheets/decidim/admin/modules/_table-list.scss +0 -146
  465. data/app/packs/stylesheets/decidim/admin/modules/_tabs.scss +0 -63
  466. data/app/packs/stylesheets/decidim/admin/modules/_title-bar.scss +0 -35
  467. data/app/packs/stylesheets/decidim/admin/modules/_typography.scss +0 -27
  468. data/app/packs/stylesheets/decidim/admin/modules/_upload_modal.scss +0 -42
  469. data/app/packs/stylesheets/decidim/admin/modules/_user-login.scss +0 -25
  470. data/app/packs/stylesheets/decidim/admin/modules/_users_statistics.scss +0 -18
  471. data/app/packs/stylesheets/decidim/admin/plugins/_foundation-datepicker.scss +0 -224
  472. data/app/packs/stylesheets/decidim/admin/plugins/jquery.auto-complete.css +0 -9
  473. data/app/packs/stylesheets/decidim/admin/user_moderations.scss +0 -3
  474. data/app/packs/stylesheets/decidim/admin/utils/_flex.scss +0 -60
  475. data/app/packs/stylesheets/decidim/admin/utils/_helpers.scss +0 -53
  476. data/app/packs/stylesheets/decidim/admin/utils/_keyframes.scss +0 -21
  477. data/app/packs/stylesheets/decidim/admin/utils/_mixins.scss +0 -151
  478. data/app/packs/stylesheets/decidim/admin/utils/_settings.scss +0 -882
  479. data/app/packs/stylesheets/decidim/admin/utils/_toggle-expand.scss +0 -9
  480. data/app/packs/stylesheets/decidim/admin/vendor/mathsass/_constants.scss +0 -5
  481. data/app/packs/stylesheets/decidim/admin/vendor/mathsass/_math.scss +0 -45
  482. data/app/packs/stylesheets/decidim/admin/vendor/mathsass/functions/_acos.scss +0 -14
  483. data/app/packs/stylesheets/decidim/admin/vendor/mathsass/functions/_asin.scss +0 -16
  484. data/app/packs/stylesheets/decidim/admin/vendor/mathsass/functions/_atan.scss +0 -36
  485. data/app/packs/stylesheets/decidim/admin/vendor/mathsass/functions/_atan2.scss +0 -46
  486. data/app/packs/stylesheets/decidim/admin/vendor/mathsass/functions/_cos.scss +0 -17
  487. data/app/packs/stylesheets/decidim/admin/vendor/mathsass/functions/_cot.scss +0 -12
  488. data/app/packs/stylesheets/decidim/admin/vendor/mathsass/functions/_csc.scss +0 -12
  489. data/app/packs/stylesheets/decidim/admin/vendor/mathsass/functions/_exp.scss +0 -16
  490. data/app/packs/stylesheets/decidim/admin/vendor/mathsass/functions/_fact.scss +0 -21
  491. data/app/packs/stylesheets/decidim/admin/vendor/mathsass/functions/_frexp.scss +0 -25
  492. data/app/packs/stylesheets/decidim/admin/vendor/mathsass/functions/_ldexp.scss +0 -20
  493. data/app/packs/stylesheets/decidim/admin/vendor/mathsass/functions/_log.scss +0 -39
  494. data/app/packs/stylesheets/decidim/admin/vendor/mathsass/functions/_pow.scss +0 -34
  495. data/app/packs/stylesheets/decidim/admin/vendor/mathsass/functions/_sec.scss +0 -12
  496. data/app/packs/stylesheets/decidim/admin/vendor/mathsass/functions/_sin.scss +0 -10
  497. data/app/packs/stylesheets/decidim/admin/vendor/mathsass/functions/_sqrt.scss +0 -21
  498. data/app/packs/stylesheets/decidim/admin/vendor/mathsass/functions/_tan.scss +0 -12
  499. data/app/packs/stylesheets/decidim/admin/vendor/mathsass/helpers/_deg-to-rad.scss +0 -6
  500. data/app/packs/stylesheets/decidim/admin/vendor/mathsass/helpers/_rad-to-deg.scss +0 -6
  501. data/app/packs/stylesheets/decidim/admin/vendor/mathsass/helpers/_strip-unit.scss +0 -11
  502. data/app/packs/stylesheets/decidim/admin/vendor/mathsass/helpers/_unitless-rad.scss +0 -19
  503. data/app/views/decidim/admin/attachment_collections/show.html.erb +0 -13
  504. data/app/views/decidim/admin/attachments/show.html.erb +0 -24
  505. data/app/views/decidim/admin/categories/show.html.erb +0 -12
  506. data/app/views/decidim/admin/organization_homepage/edit.html.erb +0 -43
  507. data/app/views/decidim/admin/organization_homepage_content_blocks/edit.html.erb +0 -13
  508. data/app/views/decidim/admin/static_pages/show.html.erb +0 -21
  509. data/app/views/layouts/decidim/admin/_template_bottom.html.erb +0 -2
  510. data/app/views/layouts/decidim/admin/_template_top.html.erb +0 -4
  511. data/app/views/layouts/decidim/admin/pages.html.erb +0 -15
  512. data/config/locales/he-IL.yml +0 -53
  513. data/decidim-admin.gemspec +0 -36
@@ -8,9 +8,7 @@ module Decidim
8
8
  def index
9
9
  enforce_permission_to :index, :authorization_workflow
10
10
 
11
- @workflows = Decidim::Verifications.admin_workflows.select do |manifest|
12
- current_organization.available_authorizations.include?(manifest.name.to_s)
13
- end
11
+ @workflows = Decidim::Verifications.admin_workflows
14
12
 
15
13
  # Decidim::Verifications::Authorizations Query
16
14
  @authorizations = Decidim::Verifications::Authorizations.new(
@@ -3,7 +3,7 @@
3
3
  module Decidim
4
4
  module Admin
5
5
  class BlockUserController < Decidim::Admin::ApplicationController
6
- layout "decidim/admin/users"
6
+ layout "decidim/admin/global_moderations"
7
7
 
8
8
  helper_method :user
9
9
 
@@ -11,6 +11,7 @@ module Decidim
11
11
  enforce_permission_to :block, :admin_user
12
12
 
13
13
  @form = form(BlockUserForm).from_model(user)
14
+ @form.hide = params[:hide] || false
14
15
  end
15
16
 
16
17
  def create
@@ -21,7 +22,7 @@ module Decidim
21
22
  BlockUser.call(@form) do
22
23
  on(:ok) do
23
24
  flash[:notice] = I18n.t("officializations.block.success", scope: "decidim.admin")
24
- redirect_to moderated_users_path(blocked: true)
25
+ redirect_to moderated_users_path(blocked: true), notice:
25
26
  end
26
27
 
27
28
  on(:invalid) do
@@ -44,7 +45,7 @@ module Decidim
44
45
  end
45
46
  end
46
47
 
47
- redirect_to moderated_users_path(blocked: false)
48
+ redirect_to moderated_users_path, notice:
48
49
  end
49
50
 
50
51
  private
@@ -8,18 +8,21 @@ module Decidim
8
8
  include ParticipatorySpaceAdminContext
9
9
  participatory_space_admin_layout
10
10
 
11
+ before_action :find_category, except: [:index, :new, :create]
12
+ before_action :set_categories_breadcrumb_items
13
+
11
14
  def index
12
15
  enforce_permission_to :read, :category
13
16
  end
14
17
 
15
18
  def new
16
19
  enforce_permission_to :create, :category
17
- @form = form(CategoryForm).from_params({}, current_participatory_space: current_participatory_space)
20
+ @form = form(CategoryForm).from_params({}, current_participatory_space:)
18
21
  end
19
22
 
20
23
  def create
21
24
  enforce_permission_to :create, :category
22
- @form = form(CategoryForm).from_params(params, current_participatory_space: current_participatory_space)
25
+ @form = form(CategoryForm).from_params(params, current_participatory_space:)
23
26
 
24
27
  CreateCategory.call(@form, current_participatory_space, current_user) do
25
28
  on(:ok) do
@@ -35,15 +38,13 @@ module Decidim
35
38
  end
36
39
 
37
40
  def edit
38
- @category = collection.find(params[:id])
39
41
  enforce_permission_to :update, :category, category: @category
40
- @form = form(CategoryForm).from_model(@category, current_participatory_space: current_participatory_space)
42
+ @form = form(CategoryForm).from_model(@category, current_participatory_space:)
41
43
  end
42
44
 
43
45
  def update
44
- @category = collection.find(params[:id])
45
46
  enforce_permission_to :update, :category, category: @category
46
- @form = form(CategoryForm).from_params(params, current_participatory_space: current_participatory_space)
47
+ @form = form(CategoryForm).from_params(params, current_participatory_space:)
47
48
 
48
49
  UpdateCategory.call(@category, @form, current_user) do
49
50
  on(:ok) do
@@ -58,13 +59,7 @@ module Decidim
58
59
  end
59
60
  end
60
61
 
61
- def show
62
- @category = collection.find(params[:id])
63
- enforce_permission_to :read, :category, category: @category
64
- end
65
-
66
62
  def destroy
67
- @category = collection.find(params[:id])
68
63
  enforce_permission_to :destroy, :category, category: @category
69
64
 
70
65
  DestroyCategory.call(@category, current_user) do
@@ -82,6 +77,19 @@ module Decidim
82
77
 
83
78
  private
84
79
 
80
+ def set_categories_breadcrumb_items
81
+ return if @category.blank?
82
+
83
+ controller_breadcrumb_items << {
84
+ label: translated_attribute(@category.name),
85
+ active: true
86
+ }
87
+ end
88
+
89
+ def find_category
90
+ @category ||= collection.find(params[:id])
91
+ end
92
+
85
93
  def collection
86
94
  @collection ||= current_participatory_space.categories.includes(:subcategories)
87
95
  end
@@ -8,7 +8,7 @@ module Decidim
8
8
  include Decidim::ComponentPathHelper
9
9
 
10
10
  def edit
11
- enforce_permission_to :update, :component, component: component
11
+ enforce_permission_to(:update, :component, component:)
12
12
  @permissions_form = PermissionsForm.new(
13
13
  permissions: permission_forms
14
14
  )
@@ -17,7 +17,7 @@ module Decidim
17
17
  end
18
18
 
19
19
  def update
20
- enforce_permission_to :update, :component, component: component
20
+ enforce_permission_to(:update, :component, component:)
21
21
  @permissions_form = PermissionsForm.from_params(params)
22
22
 
23
23
  UpdateComponentPermissions.call(@permissions_form, component, resource, current_user) do
@@ -31,9 +31,11 @@ module Decidim
31
31
  enforce_permission_to :read, :component, component: current_component
32
32
  end
33
33
 
34
+ before_action :set_component_breadcrumb_item
35
+
34
36
  def permissions_context
35
37
  super.merge(
36
- current_participatory_space: current_participatory_space,
38
+ current_participatory_space:,
37
39
  participatory_space: current_participatory_space
38
40
  )
39
41
  end
@@ -65,6 +67,19 @@ module Decidim
65
67
  def skip_manage_component_permission
66
68
  false
67
69
  end
70
+
71
+ def set_component_breadcrumb_item
72
+ context_breadcrumb_items << {
73
+ label: t("components", scope: "decidim.admin.menu"),
74
+ url: parent_path,
75
+ active: false
76
+ }
77
+ context_breadcrumb_items << {
78
+ label: translated_attribute(current_component.name),
79
+ url: ::Decidim::EngineRouter.admin_proxy(current_component).root_path,
80
+ active: true
81
+ }
82
+ end
68
83
  end
69
84
  end
70
85
  end
@@ -35,7 +35,12 @@ module Decidim
35
35
 
36
36
  CreateComponent.call(@form) do
37
37
  on(:ok) do
38
- flash[:notice] = I18n.t("components.create.success", scope: "decidim.admin")
38
+ if (landing_page_path = participatory_space_landing_page_path(@component)).present?
39
+ flash[:notice_html] = I18n.t("components.create.success_landing_page", landing_page_path:, scope: "decidim.admin").html_safe
40
+ else
41
+ flash[:notice] = I18n.t("components.create.success", scope: "decidim.admin")
42
+ end
43
+
39
44
  redirect_to action: :index
40
45
  end
41
46
 
@@ -168,6 +173,13 @@ module Decidim
168
173
  current_settings["default_step"] || {}
169
174
  )
170
175
  end
176
+
177
+ def participatory_space_landing_page_path(component)
178
+ participatory_space = component.participatory_space
179
+ return if participatory_space.manifest.content_blocks_scope_name.blank?
180
+
181
+ Decidim::EngineRouter.admin_proxy(participatory_space).send("edit_#{participatory_space.manifest.route_name}_landing_page_path")
182
+ end
171
183
  end
172
184
  end
173
185
  end
@@ -23,13 +23,13 @@ module Decidim
23
23
 
24
24
  def new
25
25
  enforce_permission_to :create, :attachment_collection
26
- @form = form(AttachmentCollectionForm).from_params({}, collection_for: collection_for)
26
+ @form = form(AttachmentCollectionForm).from_params({}, collection_for:)
27
27
  render template: "decidim/admin/attachment_collections/new"
28
28
  end
29
29
 
30
30
  def create
31
31
  enforce_permission_to :create, :attachment_collection
32
- @form = form(AttachmentCollectionForm).from_params(params, collection_for: collection_for)
32
+ @form = form(AttachmentCollectionForm).from_params(params, collection_for:)
33
33
 
34
34
  CreateAttachmentCollection.call(@form, collection_for, current_user) do
35
35
  on(:ok) do
@@ -47,14 +47,14 @@ module Decidim
47
47
  def edit
48
48
  @attachment_collection = collection.find(params[:id])
49
49
  enforce_permission_to :update, :attachment_collection, attachment_collection: @attachment_collection
50
- @form = form(AttachmentCollectionForm).from_model(@attachment_collection, collection_for: collection_for)
50
+ @form = form(AttachmentCollectionForm).from_model(@attachment_collection, collection_for:)
51
51
  render template: "decidim/admin/attachment_collections/edit"
52
52
  end
53
53
 
54
54
  def update
55
55
  @attachment_collection = collection.find(params[:id])
56
56
  enforce_permission_to :update, :attachment_collection, attachment_collection: @attachment_collection
57
- @form = form(AttachmentCollectionForm).from_params(params, collection_for: collection_for)
57
+ @form = form(AttachmentCollectionForm).from_params(params, collection_for:)
58
58
 
59
59
  UpdateAttachmentCollection.call(@attachment_collection, @form, current_user) do
60
60
  on(:ok) do
@@ -69,12 +69,6 @@ module Decidim
69
69
  end
70
70
  end
71
71
 
72
- def show
73
- @attachment_collection = collection.find(params[:id])
74
- enforce_permission_to :read, :attachment_collection, attachment_collection: @attachment_collection
75
- render template: "decidim/admin/attachment_collections/show"
76
- end
77
-
78
72
  def destroy
79
73
  @attachment_collection = collection.find(params[:id])
80
74
  enforce_permission_to :destroy, :attachment_collection, attachment_collection: @attachment_collection
@@ -16,20 +16,20 @@ module Decidim
16
16
  helper_method :attached_to, :attachment
17
17
 
18
18
  def index
19
- enforce_permission_to :read, :attachment, attached_to: attached_to
19
+ enforce_permission_to(:read, :attachment, attached_to:)
20
20
 
21
21
  render template: "decidim/admin/attachments/index"
22
22
  end
23
23
 
24
24
  def new
25
- enforce_permission_to :create, :attachment, attached_to: attached_to
26
- @form = form(::Decidim::Admin::AttachmentForm).from_params({}, attached_to: attached_to)
25
+ enforce_permission_to(:create, :attachment, attached_to:)
26
+ @form = form(::Decidim::Admin::AttachmentForm).from_params({}, attached_to:)
27
27
  render template: "decidim/admin/attachments/new"
28
28
  end
29
29
 
30
30
  def create
31
- enforce_permission_to :create, :attachment, attached_to: attached_to
32
- @form = form(::Decidim::Admin::AttachmentForm).from_params(params, attached_to: attached_to)
31
+ enforce_permission_to(:create, :attachment, attached_to:)
32
+ @form = form(::Decidim::Admin::AttachmentForm).from_params(params, attached_to:)
33
33
 
34
34
  CreateAttachment.call(@form, attached_to, current_user) do
35
35
  on(:ok) do
@@ -46,15 +46,15 @@ module Decidim
46
46
 
47
47
  def edit
48
48
  @attachment = collection.find(params[:id])
49
- enforce_permission_to :update, :attachment, attachment: attachment
50
- @form = form(::Decidim::Admin::AttachmentForm).from_model(@attachment, attached_to: attached_to)
49
+ enforce_permission_to(:update, :attachment, attachment:)
50
+ @form = form(::Decidim::Admin::AttachmentForm).from_model(@attachment, attached_to:)
51
51
  render template: "decidim/admin/attachments/edit"
52
52
  end
53
53
 
54
54
  def update
55
55
  @attachment = collection.find(params[:id])
56
- enforce_permission_to :update, :attachment, attachment: attachment
57
- @form = form(::Decidim::Admin::AttachmentForm).from_params(attachment_params, attached_to: attached_to)
56
+ enforce_permission_to(:update, :attachment, attachment:)
57
+ @form = form(::Decidim::Admin::AttachmentForm).from_params(attachment_params, attached_to:)
58
58
 
59
59
  UpdateAttachment.call(@attachment, @form, current_user) do
60
60
  on(:ok) do
@@ -69,15 +69,9 @@ module Decidim
69
69
  end
70
70
  end
71
71
 
72
- def show
73
- @attachment = collection.find(params[:id])
74
- enforce_permission_to :read, :attachment, attachment: attachment
75
- render template: "decidim/admin/attachments/show"
76
- end
77
-
78
72
  def destroy
79
73
  @attachment = collection.find(params[:id])
80
- enforce_permission_to :destroy, :attachment, attachment: attachment
74
+ enforce_permission_to(:destroy, :attachment, attachment:)
81
75
 
82
76
  Decidim.traceability.perform_action!("delete", @attachment, current_user) do
83
77
  @attachment.destroy!
@@ -0,0 +1,27 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Decidim
4
+ module Admin
5
+ module Concerns
6
+ module HasBreadcrumbItems
7
+ extend ActiveSupport::Concern
8
+
9
+ class_methods do
10
+ def add_breadcrumb_item_from_menu(target_menu, opts = {})
11
+ before_action -> { secondary_breadcrumb_menus << target_menu }, opts
12
+ end
13
+ end
14
+
15
+ included do
16
+ def secondary_breadcrumb_menus
17
+ @secondary_breadcrumb_menus ||= []
18
+ end
19
+
20
+ def controller_breadcrumb_items
21
+ @controller_breadcrumb_items ||= []
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Decidim
4
+ module Admin
5
+ module Concerns
6
+ module HasContentBlocks
7
+ extend ActiveSupport::Concern
8
+
9
+ included do
10
+ helper_method :content_blocks?
11
+
12
+ private
13
+
14
+ def content_blocks?
15
+ return unless Decidim.page_blocks.include?(scoped_resource.try(:slug))
16
+
17
+ @has_content_blocks ||= available_manifests.present?
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
@@ -25,13 +25,13 @@ module Decidim
25
25
 
26
26
  def new
27
27
  enforce_permission_to :create, :space_private_user
28
- @form = form(ParticipatorySpacePrivateUserForm).from_params({}, privatable_to: privatable_to)
28
+ @form = form(ParticipatorySpacePrivateUserForm).from_params({}, privatable_to:)
29
29
  render template: "decidim/admin/participatory_space_private_users/new"
30
30
  end
31
31
 
32
32
  def create
33
33
  enforce_permission_to :create, :space_private_user
34
- @form = form(ParticipatorySpacePrivateUserForm).from_params(params, privatable_to: privatable_to)
34
+ @form = form(ParticipatorySpacePrivateUserForm).from_params(params, privatable_to:)
35
35
 
36
36
  CreateParticipatorySpacePrivateUser.call(@form, current_user, current_participatory_space) do
37
37
  on(:ok) do
@@ -94,9 +94,9 @@ module Decidim
94
94
  end
95
95
 
96
96
  def collection
97
- # there's an unidentified corner case where Decidim::User
97
+ # there is an unidentified corner case where Decidim::User
98
98
  # may have been destroyed, but the related ParticipatorySpacePrivateUser
99
- # remains in the database. That's why filtering by not null users
99
+ # remains in the database. That is why filtering by not null users
100
100
  @collection ||= privatable_to
101
101
  .participatory_space_private_users
102
102
  .includes(:user).where.not("decidim_users.id" => nil)
@@ -17,14 +17,14 @@ module Decidim
17
17
 
18
18
  def new
19
19
  enforce_permission_to :csv_import, :space_private_user
20
- @form = form(ParticipatorySpacePrivateUserCsvImportForm).from_params({}, privatable_to: privatable_to)
20
+ @form = form(ParticipatorySpacePrivateUserCsvImportForm).from_params({}, privatable_to:)
21
21
  @count = Decidim::ParticipatorySpacePrivateUser.by_participatory_space(privatable_to).count
22
22
  render template: "decidim/admin/participatory_space_private_users_csv_imports/new"
23
23
  end
24
24
 
25
25
  def create
26
26
  enforce_permission_to :csv_import, :space_private_user
27
- @form = form(ParticipatorySpacePrivateUserCsvImportForm).from_params(params, privatable_to: privatable_to)
27
+ @form = form(ParticipatorySpacePrivateUserCsvImportForm).from_params(params, privatable_to:)
28
28
 
29
29
  ProcessParticipatorySpacePrivateUserImportCsv.call(@form, current_user, current_participatory_space) do
30
30
  on(:ok) do
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Decidim
4
+ module Admin
5
+ module Concerns
6
+ module HasTabbedMenu
7
+ extend ActiveSupport::Concern
8
+
9
+ included do
10
+ helper_method :tab_menu_name, :has_tab_menu?
11
+
12
+ private
13
+
14
+ def has_tab_menu? = true
15
+
16
+ def tab_menu_name = raise NotImplementedError, "Need to define a `tab_menu_name` with the name from the `Decidim.menu` definition"
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
@@ -6,33 +6,27 @@ module Decidim
6
6
  layout "decidim/admin/users"
7
7
 
8
8
  def index
9
- enforce_permission_to :index, :impersonatable_user
10
-
11
9
  @conflicts = Decidim::Verifications::Conflict.joins(:current_user).where(
12
10
  decidim_users: { decidim_organization_id: current_organization.id }
13
11
  )
14
12
  end
15
13
 
16
14
  def edit
17
- enforce_permission_to :index, :impersonatable_user
18
-
19
15
  conflict = Decidim::Verifications::Conflict.find(params[:id])
20
16
 
21
17
  @form = form(TransferUserForm).from_params(
22
18
  user: conflict.current_user,
23
19
  managed_user: conflict.managed_user,
24
- conflict: conflict
20
+ conflict:
25
21
  )
26
22
  end
27
23
 
28
24
  def update
29
- enforce_permission_to :index, :impersonatable_user
30
-
31
25
  conflict = Decidim::Verifications::Conflict.find(params[:id])
32
26
 
33
27
  @form = form(TransferUserForm).from_params(
34
- current_user: current_user,
35
- conflict: conflict,
28
+ current_user:,
29
+ conflict:,
36
30
  reason: params[:transfer_user][:reason],
37
31
  email: params[:transfer_user][:email]
38
32
  )
@@ -8,6 +8,7 @@ module Decidim
8
8
  helper_method :latest_action_logs
9
9
  helper_method :users_counter
10
10
  helper_method :metrics_presenter
11
+ helper_method :count_pending_moderations
11
12
 
12
13
  def show
13
14
  enforce_permission_to :read, :admin_dashboard
@@ -15,6 +16,10 @@ module Decidim
15
16
 
16
17
  private
17
18
 
19
+ def count_pending_moderations
20
+ @count_pending_moderations ||= Decidim::Admin::ModerationStats.new(current_user).count_pending_moderations
21
+ end
22
+
18
23
  def latest_action_logs
19
24
  @latest_action_logs ||= Decidim::ActionLog
20
25
  .where(organization: current_organization)
@@ -28,7 +33,7 @@ module Decidim
28
33
  @metrics_presenter ||= Decidim::Admin::DashboardMetricChartsPresenter.new(
29
34
  summary: true,
30
35
  organization: current_organization,
31
- view_context: view_context
36
+ view_context:
32
37
  )
33
38
  end
34
39
 
@@ -50,8 +55,8 @@ module Decidim
50
55
  def users_count(date, admin)
51
56
  @users_count = Decidim::Admin::ActiveUsersCounter.new(
52
57
  organization: current_organization,
53
- date: date,
54
- admin: admin
58
+ date:,
59
+ admin:
55
60
  ).query.count
56
61
  end
57
62
  end
@@ -7,11 +7,10 @@ module Decidim
7
7
  include Decidim::ComponentPathHelper
8
8
 
9
9
  def create
10
- enforce_permission_to :export, :component_data, component: component
10
+ enforce_permission_to(:export, :component_data, component:)
11
11
  name = params[:id]
12
-
13
- Decidim.traceability.perform_action!("export_component", component, current_user, { name: name, format: params[:format] || default_format }) do
14
- ExportJob.perform_later(current_user, component, name, params[:format] || default_format, params[:resource_id].presence)
12
+ Decidim.traceability.perform_action!("export_component", component, current_user, { name:, format: params[:format] || default_format }) do
13
+ ExportJob.perform_later(current_user, component, name, params[:format] || default_format, params[:resource_id].presence, export_filters)
15
14
  end
16
15
 
17
16
  flash[:notice] = t("decidim.admin.exports.notice")
@@ -25,9 +24,27 @@ module Decidim
25
24
  "json"
26
25
  end
27
26
 
27
+ def export_filters
28
+ @export_filters ||= begin
29
+ filters = params.fetch(:filters, nil)
30
+ if !filters.is_a?(ActionController::Parameters)
31
+ { id_in: [] }
32
+ elsif commentable_filter?
33
+ # in this case, we need to search through the decidim_commentable
34
+ { decidim_commentable_id_in: Array(filters.fetch(:id_in, [])).compact }
35
+ else
36
+ { id_in: Array(filters.fetch(:id_in, [])).compact }
37
+ end
38
+ end.compact
39
+ end
40
+
28
41
  def component
29
42
  @component ||= current_participatory_space.components.find(params[:component_id])
30
43
  end
44
+
45
+ def commentable_filter?
46
+ params[:id].match?("comments$")
47
+ end
31
48
  end
32
49
  end
33
50
  end
@@ -8,6 +8,8 @@ module Decidim
8
8
  layout "decidim/admin/settings"
9
9
  include TranslationsHelper
10
10
 
11
+ add_breadcrumb_item_from_menu :admin_settings_menu
12
+
11
13
  helper_method :sections
12
14
 
13
15
  before_action do
@@ -16,7 +18,7 @@ module Decidim
16
18
 
17
19
  def show
18
20
  @form = form(HelpSectionsForm).from_model(
19
- OpenStruct.new(sections: sections)
21
+ OpenStruct.new(sections:)
20
22
  )
21
23
  end
22
24
 
@@ -6,6 +6,8 @@ module Decidim
6
6
  # them
7
7
  #
8
8
  class ImpersonatableUsersController < Decidim::Admin::ApplicationController
9
+ include Decidim::Admin::Officializations::Filterable
10
+
9
11
  layout "decidim/admin/users"
10
12
 
11
13
  helper_method :new_managed_user
@@ -24,7 +26,7 @@ module Decidim
24
26
  private
25
27
 
26
28
  def collection
27
- @collection ||= current_organization.users.not_deleted.not_blocked.where(admin: false, roles: [])
29
+ @collection ||= current_organization.users.where(admin: false, roles: []).order(created_at: :desc)
28
30
  end
29
31
 
30
32
  def new_managed_user
@@ -12,28 +12,28 @@ module Decidim
12
12
  :creating_managed_user?
13
13
 
14
14
  def new
15
- enforce_permission_to :impersonate, :impersonatable_user, user: user
15
+ enforce_permission_to(:impersonate, :impersonatable_user, user:)
16
16
 
17
17
  @form = form(ImpersonateUserForm).from_params(
18
- user: user,
19
- handler_name: handler_name,
18
+ user:,
19
+ handler_name:,
20
20
  authorization: Decidim::AuthorizationHandler.handler_for(
21
21
  handler_name,
22
- user: user
22
+ user:
23
23
  )
24
24
  )
25
25
  end
26
26
 
27
27
  def create
28
- enforce_permission_to :impersonate, :impersonatable_user, user: user
28
+ enforce_permission_to(:impersonate, :impersonatable_user, user:)
29
29
 
30
30
  @form = form(ImpersonateUserForm).from_params(
31
- user: user,
32
- handler_name: handler_name,
31
+ user:,
32
+ handler_name:,
33
33
  reason: params[:impersonate_user][:reason],
34
34
  authorization: Decidim::AuthorizationHandler.handler_for(
35
35
  handler_name,
36
- params[:impersonate_user][:authorization].merge(user: user)
36
+ params[:impersonate_user][:authorization].merge(user:)
37
37
  )
38
38
  )
39
39
 
@@ -82,7 +82,6 @@ module Decidim
82
82
  return nil unless handler.unique_id
83
83
 
84
84
  existing_authorization = Authorization.find_by(
85
- user: User.where(organization: current_organization),
86
85
  name: handler_name,
87
86
  unique_id: handler.unique_id
88
87
  )