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
@@ -5,7 +5,12 @@ module Decidim
5
5
  # Controller that allows managing all scopes at the admin panel.
6
6
  #
7
7
  class ScopesController < Decidim::Admin::ApplicationController
8
+ include Decidim::Admin::Concerns::HasTabbedMenu
9
+
8
10
  layout "decidim/admin/settings"
11
+
12
+ add_breadcrumb_item_from_menu :admin_settings_menu
13
+
9
14
  helper_method :scope, :parent_scope, :add_scope_path, :current_scopes_path
10
15
 
11
16
  def index
@@ -36,12 +41,12 @@ module Decidim
36
41
  end
37
42
 
38
43
  def edit
39
- enforce_permission_to :update, :scope, scope: scope
44
+ enforce_permission_to(:update, :scope, scope:)
40
45
  @form = form(ScopeForm).from_model(scope)
41
46
  end
42
47
 
43
48
  def update
44
- enforce_permission_to :update, :scope, scope: scope
49
+ enforce_permission_to(:update, :scope, scope:)
45
50
  @form = form(ScopeForm).from_params(params)
46
51
 
47
52
  UpdateScope.call(scope, @form) do
@@ -58,7 +63,7 @@ module Decidim
58
63
  end
59
64
 
60
65
  def destroy
61
- enforce_permission_to :destroy, :scope, scope: scope
66
+ enforce_permission_to(:destroy, :scope, scope:)
62
67
 
63
68
  DestroyScope.call(scope, current_user) do
64
69
  on(:ok) do
@@ -70,6 +75,8 @@ module Decidim
70
75
 
71
76
  private
72
77
 
78
+ def tab_menu_name = :admin_scopes_menu
79
+
73
80
  def organization_scopes
74
81
  current_organization.scopes
75
82
  end
@@ -4,7 +4,7 @@ module Decidim
4
4
  module Admin
5
5
  class ShareTokensController < Decidim::Admin::ApplicationController
6
6
  def destroy
7
- enforce_permission_to :destroy, :share_token, share_token: share_token
7
+ enforce_permission_to(:destroy, :share_token, share_token:)
8
8
 
9
9
  DestroyShareToken.call(share_token, current_user) do
10
10
  on(:ok) do
@@ -0,0 +1,53 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Decidim
4
+ module Admin
5
+ # Base controller that can be inherited by other spaces to publish and unpublish the Participatory Space
6
+ #
7
+ class SpacePublicationsController < Decidim::Admin::ApplicationController
8
+ def create
9
+ enforce_permission_to_publish
10
+
11
+ publish_command.call(current_participatory_space, current_user) do
12
+ on(:ok) do
13
+ flash[:notice] = I18n.t("create.success", scope: i18n_scope)
14
+ end
15
+
16
+ on(:invalid) do
17
+ flash.now[:alert] = I18n.t("create.error", scope: i18n_scope)
18
+ end
19
+
20
+ redirect_back(fallback_location:)
21
+ end
22
+ end
23
+
24
+ def destroy
25
+ enforce_permission_to_publish
26
+
27
+ unpublish_command.call(current_participatory_space, current_user) do
28
+ on(:ok) do
29
+ flash[:notice] = I18n.t("destroy.success", scope: i18n_scope)
30
+ end
31
+
32
+ on(:invalid) do
33
+ flash.now[:alert] = I18n.t("destroy.error", scope: i18n_scope)
34
+ end
35
+
36
+ redirect_back(fallback_location:)
37
+ end
38
+ end
39
+
40
+ private
41
+
42
+ def publish_command = Decidim::Admin::ParticipatorySpace::Publish
43
+
44
+ def unpublish_command = Decidim::Admin::ParticipatorySpace::Unpublish
45
+
46
+ def current_participatory_space = raise "Not implemented"
47
+
48
+ def enforce_permission_to_publish = raise "Not implemented"
49
+
50
+ def i18n_scope = raise "Not implemented"
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,40 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Decidim
4
+ module Admin
5
+ # Controller that allows managing the organization privacy policy content blocks
6
+ class StaticPageContentBlocksController < Decidim::Admin::ApplicationController
7
+ include Decidim::Admin::ContentBlocks::LandingPageContentBlocks
8
+
9
+ helper_method :page
10
+
11
+ private
12
+
13
+ def content_block_scope
14
+ :static_page
15
+ end
16
+
17
+ def scoped_resource
18
+ @scoped_resource ||= collection.find_by(slug: params[:static_page_id])
19
+ end
20
+
21
+ def enforce_permission_to_update_resource
22
+ enforce_permission_to :update, :static_page, static_page: scoped_resource
23
+ end
24
+
25
+ def edit_resource_landing_page_path
26
+ edit_static_page_path(scoped_resource.slug)
27
+ end
28
+
29
+ def resource_landing_page_content_block_path
30
+ static_page_content_block_path(scoped_resource, params[:id])
31
+ end
32
+
33
+ def collection
34
+ @collection ||= current_organization.static_pages
35
+ end
36
+
37
+ alias page scoped_resource
38
+ end
39
+ end
40
+ end
@@ -3,8 +3,13 @@
3
3
  module Decidim
4
4
  module Admin
5
5
  class StaticPageTopicsController < Decidim::Admin::ApplicationController
6
- layout "decidim/admin/pages"
7
- helper_method :topic
6
+ include Decidim::Admin::Concerns::HasTabbedMenu
7
+
8
+ helper_method :topic, :topics
9
+
10
+ def index
11
+ enforce_permission_to :read, :static_page_topic
12
+ end
8
13
 
9
14
  def new
10
15
  enforce_permission_to :create, :static_page_topic
@@ -18,7 +23,7 @@ module Decidim
18
23
  CreateStaticPageTopic.call(@form) do
19
24
  on(:ok) do
20
25
  flash[:notice] = I18n.t("static_page_topics.create.success", scope: "decidim.admin")
21
- redirect_to static_pages_path
26
+ redirect_to static_page_topics_path
22
27
  end
23
28
 
24
29
  on(:invalid) do
@@ -40,7 +45,7 @@ module Decidim
40
45
  UpdateStaticPageTopic.call(topic, @form) do
41
46
  on(:ok) do
42
47
  flash[:notice] = I18n.t("static_page_topics.update.success", scope: "decidim.admin")
43
- redirect_to static_pages_path
48
+ redirect_to static_page_topics_path
44
49
  end
45
50
 
46
51
  on(:invalid) do
@@ -53,18 +58,24 @@ module Decidim
53
58
  def destroy
54
59
  enforce_permission_to :destroy, :static_page_topic, static_page_topic: topic
55
60
 
56
- DestroyStaticPage.call(topic, current_user) do
61
+ DestroyStaticPageTopic.call(topic, current_user) do
57
62
  on(:ok) do
58
63
  flash[:notice] = I18n.t("static_page_topics.destroy.success", scope: "decidim.admin")
59
- redirect_to static_pages_path
64
+ redirect_to static_page_topics_path
60
65
  end
61
66
  end
62
67
  end
63
68
 
64
69
  private
65
70
 
71
+ def tab_menu_name = :admin_static_pages_menu
72
+
66
73
  def topic
67
- @topic ||= current_organization.static_page_topics.find(params[:id])
74
+ @topic ||= topics.find(params[:id])
75
+ end
76
+
77
+ def topics
78
+ @topics ||= current_organization.static_page_topics
68
79
  end
69
80
  end
70
81
  end
@@ -5,11 +5,40 @@ module Decidim
5
5
  # Controller that allows managing all pages at the admin panel.
6
6
  #
7
7
  class StaticPagesController < Decidim::Admin::ApplicationController
8
- layout "decidim/admin/pages"
8
+ include Decidim::Admin::Concerns::HasTabbedMenu
9
+ include Decidim::Admin::ContentBlocks::LandingPage
10
+ include Concerns::HasContentBlocks
11
+
9
12
  before_action :tos_version_formatted, only: [:index, :edit]
10
13
 
11
14
  helper_method :topics
12
15
 
16
+ alias update_content_blocks update
17
+
18
+ def content_block_scope
19
+ :static_page
20
+ end
21
+
22
+ def scoped_resource
23
+ @scoped_resource ||= collection.find_by(slug: params[:id])
24
+ end
25
+
26
+ def enforce_permission_to_update_resource
27
+ enforce_permission_to :update, :static_page, static_page: scoped_resource
28
+ end
29
+
30
+ def resource_sort_url
31
+ update_content_blocks_static_page_path(scoped_resource)
32
+ end
33
+
34
+ def resource_create_url(manifest_name)
35
+ static_page_content_blocks_path(scoped_resource, manifest_name:)
36
+ end
37
+
38
+ def resource_content_block_cell
39
+ "decidim/admin/static_page_content_block"
40
+ end
41
+
13
42
  def index
14
43
  enforce_permission_to :read, :static_page
15
44
  @topics = Decidim::StaticPageTopic.where(organization: current_organization)
@@ -61,10 +90,6 @@ module Decidim
61
90
  end
62
91
  end
63
92
 
64
- def show
65
- enforce_permission_to :read, :static_page
66
- end
67
-
68
93
  def destroy
69
94
  enforce_permission_to :destroy, :static_page, static_page: page
70
95
 
@@ -78,6 +103,8 @@ module Decidim
78
103
 
79
104
  private
80
105
 
106
+ def tab_menu_name = :admin_static_pages_menu
107
+
81
108
  def form_params
82
109
  form_params = params.to_unsafe_hash
83
110
  form_params["static_page"] ||= {}
@@ -91,7 +118,7 @@ module Decidim
91
118
  end
92
119
 
93
120
  def page
94
- @page ||= collection.find_by(slug: params[:id])
121
+ @page ||= scoped_resource
95
122
  end
96
123
 
97
124
  def collection
@@ -42,7 +42,7 @@ module Decidim
42
42
  end
43
43
 
44
44
  def resend_invitation
45
- enforce_permission_to :invite, :admin_user, user: user
45
+ enforce_permission_to(:invite, :admin_user, user:)
46
46
 
47
47
  InviteUserAgain.call(user, "invite_admin") do
48
48
  on(:ok) do
@@ -58,7 +58,7 @@ module Decidim
58
58
  end
59
59
 
60
60
  def destroy
61
- enforce_permission_to :destroy, :admin_user, user: user
61
+ enforce_permission_to(:destroy, :admin_user, user:)
62
62
 
63
63
  RemoveAdmin.call(user, current_user) do
64
64
  on(:ok) do
@@ -1,4 +1,4 @@
1
- # frozen-string_literal: true
1
+ # frozen_string_literal: true
2
2
 
3
3
  module Decidim
4
4
  class AttachmentCreatedEvent < Decidim::Events::SimpleEvent
@@ -1,17 +1,6 @@
1
- # frozen-string_literal: true
1
+ # frozen_string_literal: true
2
2
 
3
3
  module Decidim
4
4
  class ComponentPublishedEvent < Decidim::Events::SimpleEvent
5
- # Public: The Hash of options to pass to the I18.t method.
6
- def i18n_options
7
- default_i18n_options.merge(event_interpolations)
8
- end
9
-
10
- def resource_title
11
- return unless resource
12
-
13
- title = decidim_sanitize_translated(resource.name)
14
- Decidim::ContentProcessor.render_without_format(title, links: false).html_safe
15
- end
16
5
  end
17
6
  end
@@ -1,9 +1,7 @@
1
- # frozen-string_literal: true
1
+ # frozen_string_literal: true
2
2
 
3
3
  module Decidim
4
4
  class ResourceHiddenEvent < Decidim::Events::SimpleEvent
5
- include Decidim::ApplicationHelper
6
-
7
5
  i18n_attributes :resource_path, :report_reasons, :resource_type, :resource_content
8
6
 
9
7
  def resource_path
@@ -25,9 +23,7 @@ module Decidim
25
23
  end
26
24
 
27
25
  def resource_content
28
- text = translated_attribute(@resource[@resource.reported_attributes.first])
29
-
30
- decidim_sanitize(html_truncate(text, length: 100), strip_tags: true)
26
+ translated_attribute(@resource[@resource.reported_attributes.first]).truncate(100, separator: " ")
31
27
  end
32
28
 
33
29
  def resource_text
@@ -19,7 +19,7 @@ module Decidim
19
19
 
20
20
  def name_uniqueness
21
21
  return unless organization
22
- return unless organization.areas.where(name: name, area_type: area_type).where.not(id: id).any?
22
+ return unless organization.areas.where(name:, area_type:).where.not(id:).any?
23
23
 
24
24
  errors.add(:name, :taken)
25
25
  end
@@ -6,6 +6,7 @@ module Decidim
6
6
  class BlockUserForm < Form
7
7
  attribute :user_id, Integer
8
8
  attribute :justification, String
9
+ attribute :hide, Boolean, default: false
9
10
 
10
11
  validates :user, presence: true
11
12
  validates :justification, presence: true, length: { minimum: UserBlock::MINIMUM_JUSTIFICATION_LENGTH }
@@ -19,7 +19,7 @@ module Decidim
19
19
  delegate :current_participatory_space, to: :context, prefix: false
20
20
 
21
21
  def parent_categories
22
- @parent_categories ||= current_participatory_space.categories.first_class.where.not(id: id)
22
+ @parent_categories ||= current_participatory_space.categories.first_class.where.not(id:)
23
23
  end
24
24
 
25
25
  private
@@ -15,7 +15,7 @@ module Decidim
15
15
  def unique_email
16
16
  return true if Decidim::User.where(
17
17
  organization: context.current_organization,
18
- email: email
18
+ email:
19
19
  ).where.not(id: context.current_user.id).empty?
20
20
 
21
21
  errors.add :email, :taken
@@ -15,8 +15,6 @@ module Decidim
15
15
  attribute :remove_logo, Boolean, default: false
16
16
  attribute :favicon
17
17
  attribute :remove_favicon, Boolean, default: false
18
- attribute :official_img_header
19
- attribute :remove_official_img_header, Boolean, default: false
20
18
  attribute :official_img_footer
21
19
  attribute :remove_official_img_footer, Boolean, default: false
22
20
  attribute :official_url
@@ -29,14 +27,12 @@ module Decidim
29
27
  attribute :enable_omnipresent_banner, Boolean, default: false
30
28
  attribute :omnipresent_banner_url, String
31
29
 
32
- attribute :primary_color, String, default: "#ef604d"
33
- attribute :secondary_color, String, default: "#599aa6"
34
- attribute :success_color, String, default: "#57d685"
35
- attribute :warning_color, String, default: "#ffae00"
36
- attribute :alert_color, String, default: "#ec5840"
37
- attribute :highlight_color, String, default: "#be6400"
38
- attribute :highlight_alternative_color, String, default: "#ff5731"
39
- attribute :theme_color, String, default: "#ef604d"
30
+ attribute :primary_color, String
31
+ attribute :secondary_color, String
32
+ attribute :tertiary_color, String
33
+ attribute :success_color, String
34
+ attribute :warning_color, String
35
+ attribute :alert_color, String
40
36
 
41
37
  translatable_attribute :cta_button_text, String
42
38
  translatable_attribute :description, String
@@ -48,8 +44,7 @@ module Decidim
48
44
  translatable_attribute :omnipresent_banner_short_description, String
49
45
 
50
46
  validates :cta_button_path, format: { with: %r{\A[a-zA-Z]+[a-zA-Z0-9\-_/]+\z} }, allow_blank: true
51
- validates :official_img_header,
52
- :official_img_footer,
47
+ validates :official_img_footer,
53
48
  :logo,
54
49
  passthru: { to: Decidim::Organization }
55
50
 
@@ -33,7 +33,7 @@ module Decidim
33
33
  translatable_attribute :welcome_notification_subject, String
34
34
  translatable_attribute :welcome_notification_body, String
35
35
 
36
- translatable_attribute :admin_terms_of_use_body, String
36
+ translatable_attribute :admin_terms_of_service_body, String
37
37
 
38
38
  validates :welcome_notification_subject, :welcome_notification_body, translatable_presence: true, if: proc { |form| form.customize_welcome_notification }
39
39
 
@@ -42,7 +42,7 @@ module Decidim
42
42
  validates :time_zone, time_zone: true
43
43
  validates :default_locale, :reference_prefix, presence: true
44
44
  validates :default_locale, inclusion: { in: :available_locales }
45
- validates :admin_terms_of_use_body, translatable_presence: true
45
+ validates :admin_terms_of_service_body, translatable_presence: true
46
46
  validates :comments_max_length, presence: true, numericality: { greater_than_or_equal_to: 0 }
47
47
  validates :machine_translation_display_priority,
48
48
  inclusion: { in: Decidim::Organization::AVAILABLE_MACHINE_TRANSLATION_DISPLAY_PRIORITIES },
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Decidim
4
+ module Admin
5
+ class ParticipatorySpaceAdminUserForm < ParticipatorySpacePrivateUserForm
6
+ attribute :role, String
7
+
8
+ validates :role, presence: true
9
+ validates :role, inclusion: { in: ParticipatorySpaceUser::ROLES }
10
+
11
+ def roles
12
+ ParticipatorySpaceUser::ROLES.map { |role| [I18n.t(role, scope:), role] }
13
+ end
14
+ end
15
+ end
16
+ end
@@ -8,7 +8,7 @@ module Decidim
8
8
  #
9
9
  class ParticipatorySpacePrivateUserCsvImportForm < Form
10
10
  include Decidim::HasUploadValidations
11
- include Decidim::ProcessesFileLocally
11
+ include Decidim::Admin::CustomImport
12
12
 
13
13
  attribute :file, Decidim::Attributes::Blob
14
14
  attribute :user_name, String
@@ -20,10 +20,8 @@ module Decidim
20
20
  def validate_csv
21
21
  return if file.blank?
22
22
 
23
- process_file_locally(file) do |file_path|
24
- CSV.foreach(file_path, encoding: "BOM|UTF-8") do |_email, user_name|
25
- errors.add(:user_name, :invalid) unless user_name.match?(UserBaseEntity::REGEXP_NAME)
26
- end
23
+ process_import_file(file) do |(_email, user_name)|
24
+ errors.add(:user_name, :invalid) if user_name.blank? || !user_name.match?(UserBaseEntity::REGEXP_NAME)
27
25
  end
28
26
  rescue CSV::MalformedCSVError
29
27
  errors.add(:file, :malformed)
@@ -28,7 +28,7 @@ module Decidim
28
28
 
29
29
  def code_uniqueness
30
30
  return unless organization
31
- return unless organization.scopes.where(code: code).where.not(id: id).any?
31
+ return unless organization.scopes.where(code:).where.not(id:).any?
32
32
 
33
33
  errors.add(:code, :taken)
34
34
  end
@@ -20,7 +20,7 @@ module Decidim
20
20
 
21
21
  def map_model(_newsletter)
22
22
  self.participatory_space_types = Decidim.participatory_space_manifests.map do |manifest|
23
- SelectiveNewsletterParticipatorySpaceTypeForm.from_model(manifest: manifest)
23
+ SelectiveNewsletterParticipatorySpaceTypeForm.from_model(manifest:)
24
24
  end
25
25
  end
26
26
 
@@ -7,6 +7,7 @@ module Decidim
7
7
  include TranslatableAttributes
8
8
 
9
9
  attribute :slug, String
10
+ validates :title, translatable_presence: true
10
11
  translatable_attribute :title, String
11
12
  translatable_attribute :content, String
12
13
  attribute :changed_notably, Boolean
@@ -18,7 +19,6 @@ module Decidim
18
19
  mimic :static_page
19
20
 
20
21
  validates :slug, presence: true
21
- validates :title, :content, translatable_presence: true
22
22
  validates :slug, format: { with: %r{\A[a-zA-Z]+[a-zA-Z0-9\-_/]+\z} }, allow_blank: true
23
23
 
24
24
  validate :slug, :slug_uniqueness
@@ -31,7 +31,7 @@ module Decidim
31
31
 
32
32
  def topic
33
33
  @topic ||= StaticPageTopic.find_by(
34
- organization: organization,
34
+ organization:,
35
35
  id: topic_id
36
36
  )
37
37
  end
@@ -50,7 +50,7 @@ module Decidim
50
50
 
51
51
  def slug_uniqueness
52
52
  return unless organization
53
- return unless organization.static_pages.where(slug: slug).where.not(id: id).any?
53
+ return unless organization.static_pages.where(slug:).where.not(id:).any?
54
54
 
55
55
  errors.add(:slug, :taken)
56
56
  end
@@ -2,36 +2,36 @@
2
2
 
3
3
  module Decidim
4
4
  module Admin
5
- # This module includes helpers to show Admin Terms of Use
5
+ # This module includes helpers to show admin terms of service
6
6
  module AdminTermsHelper
7
- def admin_terms_of_use_body
8
- decidim_sanitize_admin(translated_attribute(current_organization.admin_terms_of_use_body)).html_safe
7
+ def admin_terms_of_service_body
8
+ current_organization.admin_terms_of_service_body.symbolize_keys[I18n.locale].html_safe
9
9
  end
10
10
 
11
11
  def announcement_body
12
12
  if current_user.admin_terms_accepted?
13
- t("accept.success", scope: "decidim.admin.admin_terms_of_use")
13
+ t("accept.success", scope: "decidim.admin.admin_terms_of_service")
14
14
  else
15
- t("required_review.callout", scope: "decidim.admin.admin_terms_of_use")
15
+ t("required_review.callout", scope: "decidim.admin.admin_terms_of_service")
16
16
  end
17
17
  end
18
18
 
19
19
  def button_to_accept_admin_terms
20
20
  button_to(
21
- t("decidim.admin.admin_terms_of_use.actions.accept"),
21
+ t("decidim.admin.admin_terms_of_service.actions.accept"),
22
22
  admin_terms_accept_path,
23
- class: "button success",
23
+ class: "button button__sm button__secondary success",
24
24
  method: :put
25
25
  )
26
26
  end
27
27
 
28
28
  def button_to_refuse_admin_terms
29
29
  link_to(
30
- t("decidim.admin.admin_terms_of_use.actions.refuse"),
30
+ t("decidim.admin.admin_terms_of_service.actions.refuse"),
31
31
  decidim.root_path,
32
- class: "button clear",
32
+ class: "button button__sm button__secondary clear",
33
33
  data: {
34
- confirm: t("actions.are_you_sure", scope: "decidim.admin.admin_terms_of_use")
34
+ confirm: t("actions.are_you_sure", scope: "decidim.admin.admin_terms_of_service")
35
35
  }
36
36
  )
37
37
  end
@@ -14,20 +14,7 @@ module Decidim
14
14
  include Decidim::Admin::LogRenderHelper
15
15
  include Decidim::Admin::UserRolesHelper
16
16
  include Decidim::Admin::ResourceScopeHelper
17
-
18
- # Adds a link to the secondary navigation so admins can easily access the public page of the
19
- # element their working on.
20
- #
21
- # url - The String with the URL to link to.
22
- #
23
- # Returns a String with a link wrapped in a <li> element.
24
- def public_page_link(url)
25
- content_tag(:li) do
26
- link_to url, class: "button", style: "color: #fff", target: "_blank", rel: "noopener" do
27
- I18n.t("decidim.admin.view_public_page")
28
- end
29
- end
30
- end
17
+ include Decidim::Admin::SearchFormHelper
31
18
 
32
19
  def participatory_space_active_link?(component)
33
20
  endpoints = component.manifest.admin_engine.try(:participatory_space_endpoints)
@@ -6,7 +6,7 @@ module Decidim
6
6
  #
7
7
  module AttributesDisplayHelper
8
8
  # Displays the given attributes list in a list. This is a simple
9
- # `show_for` alternative, so there's no way to modify how an attribute is
9
+ # `show_for` alternative, so there is no way to modify how an attribute is
10
10
  # shown and there is no intention on adding this. It is intended to be
11
11
  # used inside a `dl` HTML tag, so you can customize how a specific
12
12
  # attribute has to be shown directly:
@@ -11,7 +11,7 @@ module Decidim
11
11
  def bulk_categories_select(collection)
12
12
  categories = bulk_categories_for_select collection
13
13
  prompt = t("decidim.proposals.admin.proposals.index.change_category")
14
- select(:category, :id, options_for_select(categories, selected: []), prompt: prompt)
14
+ select(:category, :id, options_for_select(categories, selected: []), prompt:)
15
15
  end
16
16
 
17
17
  def bulk_categories_for_select(scope)
@@ -45,7 +45,7 @@ module Decidim
45
45
  end
46
46
 
47
47
  prompt = t("decidim.proposals.admin.proposals.index.select_component")
48
- select(:target_component_id, nil, options_for_select(components, selected: []), prompt: prompt)
48
+ select(:target_component_id, nil, options_for_select(components, selected: []), prompt:)
49
49
  end
50
50
  end
51
51
  end
@@ -2,7 +2,7 @@
2
2
 
3
3
  module Decidim
4
4
  module Admin
5
- # This module includes helpers to be used in the admin dashboard, including helper methods to show the Admin Terms of Use.
5
+ # This module includes helpers to be used in the admin dashboard, including helper methods to show the admin terms of service.
6
6
  module DashboardHelper
7
7
  def admin_terms_announcement_args
8
8
  {
@@ -12,10 +12,10 @@ module Decidim
12
12
  end
13
13
 
14
14
  def announcement_body
15
- body = t("required_review.callout", scope: "decidim.admin.admin_terms_of_use")
15
+ body = t("required_review.callout", scope: "decidim.admin.admin_terms_of_service")
16
16
  body += " "
17
17
  body += link_to(
18
- t("required_review.cta", scope: "decidim.admin.admin_terms_of_use"),
18
+ t("required_review.cta", scope: "decidim.admin.admin_terms_of_service"),
19
19
  admin_terms_show_path
20
20
  )
21
21
  body