decidim-admin 0.27.4 → 0.28.0.rc5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (510) 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 +1 -1
  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/needs_admin_tos_accepted.rb +36 -0
  66. data/app/controllers/concerns/decidim/admin/participatory_space_admin_breadcrumb.rb +38 -0
  67. data/app/controllers/concerns/decidim/admin/participatory_space_admin_context.rb +3 -2
  68. data/app/controllers/concerns/decidim/moderations/admin/filterable.rb +4 -0
  69. data/app/controllers/decidim/admin/admin_terms_controller.rb +3 -3
  70. data/app/controllers/decidim/admin/application_controller.rb +6 -1
  71. data/app/controllers/decidim/admin/area_types_controller.rb +10 -3
  72. data/app/controllers/decidim/admin/areas_controller.rb +10 -3
  73. data/app/controllers/decidim/admin/block_user_controller.rb +4 -3
  74. data/app/controllers/decidim/admin/categories_controller.rb +20 -12
  75. data/app/controllers/decidim/admin/component_permissions_controller.rb +2 -2
  76. data/app/controllers/decidim/admin/components/base_controller.rb +16 -1
  77. data/app/controllers/decidim/admin/components_controller.rb +13 -1
  78. data/app/controllers/decidim/admin/concerns/has_attachment_collections.rb +4 -10
  79. data/app/controllers/decidim/admin/concerns/has_attachments.rb +10 -16
  80. data/app/controllers/decidim/admin/concerns/has_breadcrumb_items.rb +27 -0
  81. data/app/controllers/decidim/admin/concerns/has_content_blocks.rb +23 -0
  82. data/app/controllers/decidim/admin/concerns/has_private_users.rb +4 -4
  83. data/app/controllers/decidim/admin/concerns/has_private_users_csv_import.rb +2 -2
  84. data/app/controllers/decidim/admin/concerns/has_tabbed_menu.rb +21 -0
  85. data/app/controllers/decidim/admin/conflicts_controller.rb +3 -3
  86. data/app/controllers/decidim/admin/dashboard_controller.rb +8 -3
  87. data/app/controllers/decidim/admin/exports_controller.rb +21 -4
  88. data/app/controllers/decidim/admin/help_sections_controller.rb +3 -1
  89. data/app/controllers/decidim/admin/impersonatable_users_controller.rb +3 -1
  90. data/app/controllers/decidim/admin/impersonations_controller.rb +8 -8
  91. data/app/controllers/decidim/admin/imports_controller.rb +24 -6
  92. data/app/controllers/decidim/admin/logs_controller.rb +20 -8
  93. data/app/controllers/decidim/admin/managed_users/impersonation_logs_controller.rb +1 -1
  94. data/app/controllers/decidim/admin/managed_users/promotions_controller.rb +2 -2
  95. data/app/controllers/decidim/admin/metrics_controller.rb +1 -1
  96. data/app/controllers/decidim/admin/moderated_users_controller.rb +7 -4
  97. data/app/controllers/decidim/admin/newsletters_controller.rb +16 -7
  98. data/app/controllers/decidim/admin/officializations_controller.rb +3 -3
  99. data/app/controllers/decidim/admin/organization_appearance_controller.rb +3 -0
  100. data/app/controllers/decidim/admin/organization_controller.rb +2 -0
  101. data/app/controllers/decidim/admin/organization_external_domain_whitelist_controller.rb +2 -0
  102. data/app/controllers/decidim/admin/organization_homepage_content_blocks_controller.rb +12 -41
  103. data/app/controllers/decidim/admin/organization_homepage_controller.rb +15 -33
  104. data/app/controllers/decidim/admin/participatory_space/user_role_controller.rb +119 -0
  105. data/app/controllers/decidim/admin/reminders_controller.rb +1 -1
  106. data/app/controllers/decidim/admin/resource_permissions_controller.rb +1 -1
  107. data/app/controllers/decidim/admin/scope_types_controller.rb +10 -3
  108. data/app/controllers/decidim/admin/scopes_controller.rb +10 -3
  109. data/app/controllers/decidim/admin/share_tokens_controller.rb +1 -1
  110. data/app/controllers/decidim/admin/space_publications_controller.rb +11 -21
  111. data/app/controllers/decidim/admin/static_page_content_blocks_controller.rb +40 -0
  112. data/app/controllers/decidim/admin/static_page_topics_controller.rb +18 -7
  113. data/app/controllers/decidim/admin/static_pages_controller.rb +33 -6
  114. data/app/controllers/decidim/admin/users_controller.rb +2 -2
  115. data/app/events/decidim/attachment_created_event.rb +1 -1
  116. data/app/events/decidim/component_published_event.rb +1 -1
  117. data/app/events/decidim/resource_hidden_event.rb +1 -1
  118. data/app/forms/decidim/admin/area_form.rb +1 -1
  119. data/app/forms/decidim/admin/block_user_form.rb +1 -0
  120. data/app/forms/decidim/admin/category_form.rb +1 -1
  121. data/app/forms/decidim/admin/managed_user_promotion_form.rb +1 -1
  122. data/app/forms/decidim/admin/organization_appearance_form.rb +7 -12
  123. data/app/forms/decidim/admin/organization_form.rb +4 -4
  124. data/app/forms/decidim/admin/participatory_space_admin_user_form.rb +16 -0
  125. data/app/forms/decidim/admin/participatory_space_private_user_csv_import_form.rb +3 -5
  126. data/app/forms/decidim/admin/scope_form.rb +1 -1
  127. data/app/forms/decidim/admin/selective_newsletter_form.rb +1 -1
  128. data/app/forms/decidim/admin/static_page_form.rb +3 -3
  129. data/app/helpers/decidim/admin/admin_terms_helper.rb +10 -10
  130. data/app/helpers/decidim/admin/application_helper.rb +1 -14
  131. data/app/helpers/decidim/admin/attributes_display_helper.rb +1 -1
  132. data/app/helpers/decidim/admin/bulk_actions_helper.rb +2 -2
  133. data/app/helpers/decidim/admin/dashboard_helper.rb +3 -3
  134. data/app/helpers/decidim/admin/exports_helper.rb +26 -2
  135. data/app/helpers/decidim/admin/filterable_helper.rb +2 -2
  136. data/app/helpers/decidim/admin/icon_link_helper.rb +12 -11
  137. data/app/helpers/decidim/admin/icon_with_tooltip_helper.rb +22 -0
  138. data/app/helpers/decidim/admin/imports_helper.rb +1 -1
  139. data/app/helpers/decidim/admin/logs_helper.rb +18 -0
  140. data/app/helpers/decidim/admin/menu_helper.rb +61 -1
  141. data/app/helpers/decidim/admin/moderations/reports_helper.rb +3 -2
  142. data/app/helpers/decidim/admin/newsletters_helper.rb +4 -4
  143. data/app/helpers/decidim/admin/paginable/per_page_helper.rb +1 -1
  144. data/app/helpers/decidim/admin/resource_permissions_helper.rb +2 -2
  145. data/app/helpers/decidim/admin/search_form_helper.rb +19 -0
  146. data/app/helpers/decidim/admin/settings_helper.rb +9 -8
  147. data/app/jobs/decidim/admin/application_job.rb +1 -1
  148. data/app/jobs/decidim/admin/expire_impersonation_job.rb +1 -1
  149. data/app/jobs/decidim/admin/import_participatory_space_private_user_csv_job.rb +2 -2
  150. data/app/jobs/decidim/admin/newsletter_job.rb +1 -1
  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 +167 -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 -49
  215. data/app/views/decidim/admin/categories/new.html.erb +16 -5
  216. data/app/views/decidim/admin/components/_actions.html.erb +44 -0
  217. data/app/views/decidim/admin/components/_component.html.erb +6 -42
  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 -3
  315. data/app/views/layouts/decidim/admin/_js_configuration.html.erb +3 -5
  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/environment.rb +2 -0
  324. data/config/locales/ar-SA.yml +0 -3
  325. data/config/locales/ar.yml +7 -92
  326. data/config/locales/bg.yml +0 -5
  327. data/config/locales/ca.yml +121 -89
  328. data/config/locales/cs-CZ.yml +0 -3
  329. data/config/locales/cs.yml +120 -86
  330. data/config/locales/de.yml +131 -99
  331. data/config/locales/el.yml +82 -89
  332. data/config/locales/en.yml +125 -93
  333. data/config/locales/eo.yml +0 -2
  334. data/config/locales/es-MX.yml +122 -90
  335. data/config/locales/es-PY.yml +122 -90
  336. data/config/locales/es.yml +122 -90
  337. data/config/locales/eu.yml +399 -340
  338. data/config/locales/fi-pl.yml +0 -3
  339. data/config/locales/fi-plain.yml +114 -82
  340. data/config/locales/fi.yml +115 -83
  341. data/config/locales/fr-CA.yml +120 -88
  342. data/config/locales/fr-LU.yml +0 -3
  343. data/config/locales/fr.yml +123 -91
  344. data/config/locales/ga-IE.yml +0 -13
  345. data/config/locales/gl.yml +0 -109
  346. data/config/locales/hu.yml +89 -92
  347. data/config/locales/id-ID.yml +0 -66
  348. data/config/locales/is-IS.yml +0 -52
  349. data/config/locales/it.yml +1 -114
  350. data/config/locales/ja.yml +120 -91
  351. data/config/locales/kaa.yml +17 -10
  352. data/config/locales/lb-LU.yml +0 -3
  353. data/config/locales/lb.yml +0 -114
  354. data/config/locales/lt.yml +111 -83
  355. data/config/locales/lv.yml +0 -83
  356. data/config/locales/nl.yml +6 -120
  357. data/config/locales/no.yml +0 -122
  358. data/config/locales/pl.yml +4 -121
  359. data/config/locales/pt-BR.yml +82 -84
  360. data/config/locales/pt.yml +0 -114
  361. data/config/locales/ro-RO.yml +78 -93
  362. data/config/locales/ru.yml +0 -58
  363. data/config/locales/sk-SK.yml +3 -6
  364. data/config/locales/sk.yml +0 -84
  365. data/config/locales/sl.yml +0 -6
  366. data/config/locales/sq-AL.yml +63 -0
  367. data/config/locales/sr-CS.yml +0 -53
  368. data/config/locales/sv.yml +23 -119
  369. data/config/locales/th-TH.yml +1 -0
  370. data/config/locales/tr-TR.yml +3 -97
  371. data/config/locales/uk.yml +0 -53
  372. data/config/locales/zh-CN.yml +0 -87
  373. data/config/locales/zh-TW.yml +66 -83
  374. data/config/routes.rb +14 -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 +50 -0
  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 -4
  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 +9 -9
  400. data/lib/decidim/admin/test/manage_attachments_examples.rb +9 -9
  401. data/lib/decidim/admin/test/manage_categories_examples.rb +7 -7
  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 +31 -22
  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 +99 -113
  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/stylesheets/decidim/admin/_decidim.scss +0 -23
  418. data/app/packs/stylesheets/decidim/admin/_variables.scss +0 -18
  419. data/app/packs/stylesheets/decidim/admin/bundle.scss +0 -2
  420. data/app/packs/stylesheets/decidim/admin/components/_accordion.scss +0 -41
  421. data/app/packs/stylesheets/decidim/admin/components/_dropdown-menu.scss +0 -3
  422. data/app/packs/stylesheets/decidim/admin/components/_sortable.scss +0 -5
  423. data/app/packs/stylesheets/decidim/admin/extra/_action-icon.scss +0 -32
  424. data/app/packs/stylesheets/decidim/admin/extra/_block_user.scss +0 -5
  425. data/app/packs/stylesheets/decidim/admin/extra/_cards.scss +0 -24
  426. data/app/packs/stylesheets/decidim/admin/extra/_categories.scss +0 -5
  427. data/app/packs/stylesheets/decidim/admin/extra/_dropdown_inverted.scss +0 -47
  428. data/app/packs/stylesheets/decidim/admin/extra/_editor.scss +0 -1
  429. data/app/packs/stylesheets/decidim/admin/extra/_email_preview.scss +0 -5
  430. data/app/packs/stylesheets/decidim/admin/extra/_label-required.scss +0 -3
  431. data/app/packs/stylesheets/decidim/admin/extra/_login.scss +0 -37
  432. data/app/packs/stylesheets/decidim/admin/extra/_logs.scss +0 -122
  433. data/app/packs/stylesheets/decidim/admin/extra/_newsletter-templates-gallery.scss +0 -3
  434. data/app/packs/stylesheets/decidim/admin/extra/_organization-appearance.scss +0 -141
  435. data/app/packs/stylesheets/decidim/admin/extra/_quill.scss +0 -12
  436. data/app/packs/stylesheets/decidim/admin/extra/_select_multiple.scss +0 -3
  437. data/app/packs/stylesheets/decidim/admin/extra/_show_email.scss +0 -31
  438. data/app/packs/stylesheets/decidim/admin/extra/_sort.scss +0 -13
  439. data/app/packs/stylesheets/decidim/admin/extra/_title_bar.scss +0 -80
  440. data/app/packs/stylesheets/decidim/admin/modules/_action-icon.scss +0 -30
  441. data/app/packs/stylesheets/decidim/admin/modules/_agenda.scss +0 -34
  442. data/app/packs/stylesheets/decidim/admin/modules/_autocomplete.scss +0 -5
  443. data/app/packs/stylesheets/decidim/admin/modules/_buttons.scss +0 -86
  444. data/app/packs/stylesheets/decidim/admin/modules/_callouts.scss +0 -45
  445. data/app/packs/stylesheets/decidim/admin/modules/_card-grid.scss +0 -25
  446. data/app/packs/stylesheets/decidim/admin/modules/_cards.scss +0 -126
  447. data/app/packs/stylesheets/decidim/admin/modules/_char-counter.scss +0 -22
  448. data/app/packs/stylesheets/decidim/admin/modules/_component-counter.scss +0 -26
  449. data/app/packs/stylesheets/decidim/admin/modules/_draggable-list.scss +0 -27
  450. data/app/packs/stylesheets/decidim/admin/modules/_dropdown.scss +0 -20
  451. data/app/packs/stylesheets/decidim/admin/modules/_filters.scss +0 -83
  452. data/app/packs/stylesheets/decidim/admin/modules/_forms.scss +0 -164
  453. data/app/packs/stylesheets/decidim/admin/modules/_icons.scss +0 -68
  454. data/app/packs/stylesheets/decidim/admin/modules/_layout.scss +0 -75
  455. data/app/packs/stylesheets/decidim/admin/modules/_loading-spinner.scss +0 -19
  456. data/app/packs/stylesheets/decidim/admin/modules/_main-nav.scss +0 -45
  457. data/app/packs/stylesheets/decidim/admin/modules/_moderations.scss +0 -39
  458. data/app/packs/stylesheets/decidim/admin/modules/_modules.scss +0 -44
  459. data/app/packs/stylesheets/decidim/admin/modules/_pics.scss +0 -5
  460. data/app/packs/stylesheets/decidim/admin/modules/_process-header.scss +0 -13
  461. data/app/packs/stylesheets/decidim/admin/modules/_reveal.scss +0 -5
  462. data/app/packs/stylesheets/decidim/admin/modules/_secondary-nav.scss +0 -114
  463. data/app/packs/stylesheets/decidim/admin/modules/_table-list.scss +0 -146
  464. data/app/packs/stylesheets/decidim/admin/modules/_tabs.scss +0 -63
  465. data/app/packs/stylesheets/decidim/admin/modules/_title-bar.scss +0 -35
  466. data/app/packs/stylesheets/decidim/admin/modules/_typography.scss +0 -27
  467. data/app/packs/stylesheets/decidim/admin/modules/_upload_modal.scss +0 -42
  468. data/app/packs/stylesheets/decidim/admin/modules/_user-login.scss +0 -25
  469. data/app/packs/stylesheets/decidim/admin/modules/_users_statistics.scss +0 -18
  470. data/app/packs/stylesheets/decidim/admin/plugins/_foundation-datepicker.scss +0 -224
  471. data/app/packs/stylesheets/decidim/admin/plugins/jquery.auto-complete.css +0 -9
  472. data/app/packs/stylesheets/decidim/admin/user_moderations.scss +0 -3
  473. data/app/packs/stylesheets/decidim/admin/utils/_flex.scss +0 -60
  474. data/app/packs/stylesheets/decidim/admin/utils/_helpers.scss +0 -53
  475. data/app/packs/stylesheets/decidim/admin/utils/_keyframes.scss +0 -21
  476. data/app/packs/stylesheets/decidim/admin/utils/_mixins.scss +0 -151
  477. data/app/packs/stylesheets/decidim/admin/utils/_settings.scss +0 -882
  478. data/app/packs/stylesheets/decidim/admin/utils/_toggle-expand.scss +0 -9
  479. data/app/packs/stylesheets/decidim/admin/vendor/mathsass/_constants.scss +0 -5
  480. data/app/packs/stylesheets/decidim/admin/vendor/mathsass/_math.scss +0 -45
  481. data/app/packs/stylesheets/decidim/admin/vendor/mathsass/functions/_acos.scss +0 -14
  482. data/app/packs/stylesheets/decidim/admin/vendor/mathsass/functions/_asin.scss +0 -16
  483. data/app/packs/stylesheets/decidim/admin/vendor/mathsass/functions/_atan.scss +0 -36
  484. data/app/packs/stylesheets/decidim/admin/vendor/mathsass/functions/_atan2.scss +0 -46
  485. data/app/packs/stylesheets/decidim/admin/vendor/mathsass/functions/_cos.scss +0 -17
  486. data/app/packs/stylesheets/decidim/admin/vendor/mathsass/functions/_cot.scss +0 -12
  487. data/app/packs/stylesheets/decidim/admin/vendor/mathsass/functions/_csc.scss +0 -12
  488. data/app/packs/stylesheets/decidim/admin/vendor/mathsass/functions/_exp.scss +0 -16
  489. data/app/packs/stylesheets/decidim/admin/vendor/mathsass/functions/_fact.scss +0 -21
  490. data/app/packs/stylesheets/decidim/admin/vendor/mathsass/functions/_frexp.scss +0 -25
  491. data/app/packs/stylesheets/decidim/admin/vendor/mathsass/functions/_ldexp.scss +0 -20
  492. data/app/packs/stylesheets/decidim/admin/vendor/mathsass/functions/_log.scss +0 -39
  493. data/app/packs/stylesheets/decidim/admin/vendor/mathsass/functions/_pow.scss +0 -34
  494. data/app/packs/stylesheets/decidim/admin/vendor/mathsass/functions/_sec.scss +0 -12
  495. data/app/packs/stylesheets/decidim/admin/vendor/mathsass/functions/_sin.scss +0 -10
  496. data/app/packs/stylesheets/decidim/admin/vendor/mathsass/functions/_sqrt.scss +0 -21
  497. data/app/packs/stylesheets/decidim/admin/vendor/mathsass/functions/_tan.scss +0 -12
  498. data/app/packs/stylesheets/decidim/admin/vendor/mathsass/helpers/_deg-to-rad.scss +0 -6
  499. data/app/packs/stylesheets/decidim/admin/vendor/mathsass/helpers/_rad-to-deg.scss +0 -6
  500. data/app/packs/stylesheets/decidim/admin/vendor/mathsass/helpers/_strip-unit.scss +0 -11
  501. data/app/packs/stylesheets/decidim/admin/vendor/mathsass/helpers/_unitless-rad.scss +0 -19
  502. data/app/views/decidim/admin/attachment_collections/show.html.erb +0 -13
  503. data/app/views/decidim/admin/attachments/show.html.erb +0 -24
  504. data/app/views/decidim/admin/categories/show.html.erb +0 -12
  505. data/app/views/decidim/admin/organization_homepage/edit.html.erb +0 -43
  506. data/app/views/decidim/admin/organization_homepage_content_blocks/edit.html.erb +0 -13
  507. data/app/views/decidim/admin/static_pages/show.html.erb +0 -21
  508. data/app/views/layouts/decidim/admin/_template_bottom.html.erb +0 -2
  509. data/app/views/layouts/decidim/admin/_template_top.html.erb +0 -4
  510. data/app/views/layouts/decidim/admin/pages.html.erb +0 -15
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2b6d361bf34645d19fff1ed2b9d2dfc9bd21d9d5f59205009c6a98aa768aa104
4
- data.tar.gz: d6afb23b3c6d259f9c1ec1380746a90ab72c16451598e3bdba0d6e4f014d5c05
3
+ metadata.gz: 7d8d8dc7228cb00a088ca0e0cf80d794bb860bf58c6d825c7b2151e556a00125
4
+ data.tar.gz: a4cbd400dbc7681f53265e6a7c066313c2682c65bd1f6bfcb890f5a9f8315254
5
5
  SHA512:
6
- metadata.gz: 13c4b9f5db82ec0b5575c185f2b18b1b3bf9b11066612167c03d5f91edf47a9c824e99b60bbe3fd19289401d668526befcd6b394893a8b8932c1d1cf012dbf61
7
- data.tar.gz: 1a12690709937d82651c02a0cab87db70a8b8c62fa8b4cd8779261ff9729961517131007ff8300d131d375ff755195fa207b4a999d621c87722b4ef322c4beb5
6
+ metadata.gz: 93206f1278adaaf15137cbfdcbbd0696ecee302b5e7f6b72c2571b2be34dcc349e59fb802c96b42b89fdf787da65f59f5c54370770d853cbd76333b14ef114f3
7
+ data.tar.gz: 2629e15e535318e995cccccd21d9faa73b983b2a95d9ae51bc1111c70cc7b963a80fdfa3a34565c2a36a115872f99ca7c533217aa619a74114650534e99f3e81
data/README.md CHANGED
@@ -6,7 +6,7 @@ organization, participatory processes and all other entities.
6
6
  ## Usage
7
7
 
8
8
  This will add an admin dashboard to manage an organization an all its entities.
9
- It's included by default with Decidim.
9
+ It is included by default with Decidim.
10
10
 
11
11
  ## Installation
12
12
 
@@ -29,14 +29,14 @@ bundle
29
29
  This component allows an admin to create pages to serve static content. Some
30
30
  example of this kind of pages could be:
31
31
 
32
- * Terms and Conditions
32
+ * Terms of service
33
33
  * FAQ
34
34
  * Accessibility guidelines
35
35
  * About the project
36
36
 
37
37
  All the pages can be created with I18n support and will be accessible as
38
38
  `/pages/:page-slug`. You can link them at your website the same way you link
39
- other Rails models: `pages_path("terms-and-conditions")`.
39
+ other Rails models: `pages_path("terms-of-service")`.
40
40
 
41
41
  There are some pages that exist by default and cannot be deleted since there
42
42
  are links to them inside the Decidim framework, see `Decidim::StaticPage` for
@@ -1,3 +1,3 @@
1
1
  <% if private_space? && !(transparent_space?) %>
2
- <div class="callout warning"><%= t("decidim.admin.attachments_privacy_warning.message") %></div>
2
+ <%= cell("decidim/announcement", t("decidim.admin.attachments_privacy_warning.message"), callout_class: "warning") %>
3
3
  <% end %>
@@ -1,13 +1,18 @@
1
- <li draggable="true" data-content-block-manifest-name="<%= manifest_name %>">
1
+ <li draggable="true" data-content-block-id="<%= model.id %>">
2
2
  <div class="draggable-content">
3
- <%= t(public_name_key) %>
3
+ <%= name %>
4
4
  <div>
5
- <% if has_settings? %>
6
- <%= link_to edit_content_block_path, class: "mr-s text-muted" do %>
7
- <%= icon "pencil", role: "img", "aria-hidden": true %>
5
+ <% if model.persisted? %>
6
+ <% if has_settings? %>
7
+ <%= link_to edit_content_block_path, class: "mr-s text-muted" do %>
8
+ <%= icon "pencil-line", role: "img", "aria-hidden": true %>
9
+ <% end %>
10
+ <% end %>
11
+ <%= link_to content_block_path, method: :delete, data: { confirm: content_block_destroy_confirmation_text }, class: "mr-s text-muted" do %>
12
+ <%= icon "delete-bin-line", role: "img", "aria-hidden": true %>
8
13
  <% end %>
9
14
  <% end %>
10
- <%= icon "menu", role: "img", "aria-hidden": true %>
15
+ <%= icon "menu-line", role: "img", "aria-hidden": true %>
11
16
  </div>
12
17
  </div>
13
18
  </li>
@@ -4,19 +4,33 @@ module Decidim
4
4
  module Admin
5
5
  class ContentBlockCell < Decidim::ViewModel
6
6
  include Decidim::IconHelper
7
+ include Decidim::ContentBlocks::HasRelatedComponents
7
8
 
8
- delegate :public_name_key, :has_settings?, to: :model
9
+ delegate :public_name_key, :has_settings?, :component_manifest_name, to: :model
10
+ delegate :content_block_destroy_confirmation_text, to: :controller
9
11
 
10
- def manifest_name
11
- model.try(:manifest_name) || model.name
12
+ def edit_content_block_path
13
+ raise "#{self.class.name} is expected to implement #edit_content_block_path"
12
14
  end
13
15
 
14
- def edit_content_block_path
15
- decidim_admin.edit_organization_homepage_content_block_path(manifest_name)
16
+ def content_block_path
17
+ raise "#{self.class.name} is expected to implement #content_block_path"
18
+ end
19
+
20
+ def component
21
+ @component ||= if component_manifest_name.present?
22
+ components = components_for(model)
23
+ component_id = model.settings.try(:component_id)
24
+ components = components.where(id: component_id) if component_id.present?
25
+
26
+ components.first if components.one?
27
+ end
16
28
  end
17
29
 
18
- def decidim_admin
19
- Decidim::Admin::Engine.routes.url_helpers
30
+ def name
31
+ return I18n.t(public_name_key) if component.blank?
32
+
33
+ "#{I18n.t(public_name_key)} (#{translated_attribute(component&.name)})"
20
34
  end
21
35
  end
22
36
  end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Decidim
4
+ module Admin
5
+ class HomepageContentBlockCell < ContentBlockCell
6
+ def edit_content_block_path
7
+ decidim_admin.edit_organization_homepage_content_block_path(model)
8
+ end
9
+
10
+ def content_block_path
11
+ decidim_admin.organization_homepage_content_block_path(model)
12
+ end
13
+
14
+ def decidim_admin
15
+ Decidim::Admin::Engine.routes.url_helpers
16
+ end
17
+ end
18
+ end
19
+ end
@@ -1,7 +1,7 @@
1
1
  <span class="dropdown-menu-inverted_label"><%= t("decidim.admin.actions.per_page") %> :</span>
2
2
  <ul class="results-per-page__dropdown dropdown menu dropdown-inverted" data-dropdown-menu data-close-on-click-inside="false">
3
3
  <li class="is-dropdown-submenu-parent">
4
- <a title="<%= %{#{per_page} #{t("decidim.admin.actions.per_page")}} %>">
4
+ <a title="<%= %(#{per_page} #{t("decidim.admin.actions.per_page")}) %>">
5
5
  <%= per_page %>
6
6
  </a>
7
7
 
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Decidim
4
+ module Admin
5
+ class StaticPageContentBlockCell < ContentBlockCell
6
+ delegate :scoped_resource, to: :controller
7
+
8
+ def edit_content_block_path
9
+ decidim_admin.edit_static_page_content_block_path(scoped_resource, model)
10
+ end
11
+
12
+ def content_block_path
13
+ decidim_admin.static_page_content_block_path(scoped_resource, model)
14
+ end
15
+
16
+ def decidim_admin
17
+ Decidim::Admin::Engine.routes.url_helpers
18
+ end
19
+ end
20
+ end
21
+ end
@@ -19,11 +19,10 @@ module Decidim
19
19
  def call
20
20
  return broadcast(:invalid) unless form.valid?
21
21
 
22
- transaction do
22
+ with_events(with_transaction: true) do
23
23
  find_or_create_moderation!
24
24
  register_justification!
25
25
  block!
26
- notify_user!
27
26
  end
28
27
 
29
28
  broadcast(:ok, form.user)
@@ -31,10 +30,22 @@ module Decidim
31
30
 
32
31
  private
33
32
 
34
- attr_reader :form
33
+ attr_reader :form, :current_blocking
34
+
35
+ def event_arguments
36
+ {
37
+ resource: form.user,
38
+ extra: {
39
+ event_author: form.current_user,
40
+ locale:,
41
+ justification: form.justification,
42
+ hide: form.hide?
43
+ }
44
+ }
45
+ end
35
46
 
36
47
  def find_or_create_moderation!
37
- Decidim::UserModeration.create_or_find_by!(user: form.user)
48
+ Decidim::UserModeration.find_or_create_by!(user: form.user)
38
49
  end
39
50
 
40
51
  def register_justification!
@@ -45,13 +56,6 @@ module Decidim
45
56
  )
46
57
  end
47
58
 
48
- def notify_user!
49
- Decidim::BlockUserJob.perform_later(
50
- @current_blocking.user,
51
- @current_blocking.justification
52
- )
53
- end
54
-
55
59
  def block!
56
60
  Decidim.traceability.perform_action!(
57
61
  "block",
@@ -32,7 +32,7 @@ module Decidim
32
32
  private
33
33
 
34
34
  def impersonation_log
35
- @impersonation_log ||= Decidim::ImpersonationLog.where(admin: current_user, user: user).active.first
35
+ @impersonation_log ||= Decidim::ImpersonationLog.where(admin: current_user, user:).active.first
36
36
  end
37
37
 
38
38
  def close_session
@@ -0,0 +1,50 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Decidim
4
+ module Admin
5
+ module ContentBlocks
6
+ # A command that reorders a collection of content blocks. It also creates
7
+ # the ones that might be missing.
8
+ class CreateContentBlock < Decidim::Command
9
+ # Public: Initializes the command.
10
+ #
11
+ # organization - the Organization where the content blocks reside
12
+ # scope - the scope applied to the content blocks
13
+ # manifest_name - the manifest name for the content block created
14
+ # scoped_resource_id - (optional) The id of the resource the content blocks belongs to
15
+ def initialize(organization, scope, manifest_name, scoped_resource_id = nil)
16
+ @organization = organization
17
+ @scope = scope
18
+ @manifest_name = manifest_name
19
+ @scoped_resource_id = scoped_resource_id
20
+ end
21
+
22
+ # Executes the command. Broadcasts these events:
23
+ #
24
+ # - :ok when everything is valid.
25
+ # - :invalid if the data was not valid and we could not proceed.
26
+ #
27
+ # Returns nothing.
28
+ def call
29
+ create_content_block
30
+ broadcast(:ok)
31
+ rescue StandardError
32
+ broadcast(:invalid)
33
+ end
34
+
35
+ private
36
+
37
+ attr_reader :organization, :scope, :scoped_resource_id, :manifest_name
38
+
39
+ def create_content_block
40
+ Decidim::ContentBlock.create!(
41
+ organization:,
42
+ scope_name: scope,
43
+ scoped_resource_id:,
44
+ manifest_name:
45
+ )
46
+ end
47
+ end
48
+ end
49
+ end
50
+ end
@@ -0,0 +1,36 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Decidim
4
+ module Admin
5
+ module ContentBlocks
6
+ # A command with all the business logic to destroy a content block
7
+ class DestroyContentBlock < Decidim::Command
8
+ # Public: Initializes the command.
9
+ #
10
+ # content_block - The content_block to destroy
11
+ def initialize(content_block)
12
+ @content_block = content_block
13
+ end
14
+
15
+ # Executes the command. Broadcasts these events:
16
+ #
17
+ # - :ok when everything is valid.
18
+ # - :invalid if the form was not valid and we could not proceed.
19
+ #
20
+ # Returns nothing.
21
+ def call
22
+ destroy_content_block
23
+ broadcast(:ok)
24
+ rescue StandardError
25
+ broadcast(:invalid)
26
+ end
27
+
28
+ private
29
+
30
+ def destroy_content_block
31
+ @content_block.destroy!
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,88 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Decidim
4
+ module Admin
5
+ module ContentBlocks
6
+ # A command that reorders a collection of content blocks
7
+ # the ones that might be missing.
8
+ class ReorderContentBlocks < Decidim::Command
9
+ # Public: Initializes the command.
10
+ #
11
+ # organization - the Organization where the content blocks reside
12
+ # scope - the scope applied to the content blocks
13
+ # order - an Array holding the order of IDs of published content blocks.
14
+ # scoped_resource_id - (optional) The id of the resource the content blocks belongs to.
15
+ def initialize(organization, scope, order, scoped_resource_id = nil)
16
+ @organization = organization
17
+ @scope = scope
18
+ @order = order
19
+ @scoped_resource_id = scoped_resource_id
20
+ end
21
+
22
+ # Executes the command. Broadcasts these events:
23
+ #
24
+ # - :ok when everything is valid.
25
+ # - :invalid if the data was not valid and we could not proceed.
26
+ #
27
+ # Returns nothing.
28
+ def call
29
+ return broadcast(:invalid) if order.blank?
30
+
31
+ reorder_steps
32
+ broadcast(:ok)
33
+ end
34
+
35
+ private
36
+
37
+ attr_reader :organization, :scope, :scoped_resource_id
38
+
39
+ def reorder_steps
40
+ transaction do
41
+ reset_weights
42
+ collection.reload
43
+ set_new_weights
44
+ unpublish_removed_content_blocks
45
+ publish_appearing_content_blocks
46
+ end
47
+ end
48
+
49
+ def reset_weights
50
+ # rubocop:disable Rails/SkipsModelValidations
51
+ collection.where.not(weight: nil).update_all(weight: nil)
52
+ # rubocop:enable Rails/SkipsModelValidations
53
+ end
54
+
55
+ def set_new_weights
56
+ data = order.each_with_index.inject({}) do |hash, (id, index)|
57
+ hash.update(id => index + 1)
58
+ end
59
+
60
+ data.each do |id, weight|
61
+ content_block = collection.find_by(id:)
62
+ content_block.update!(weight:) if content_block.present?
63
+ end
64
+ end
65
+
66
+ # rubocop:disable Rails/SkipsModelValidations
67
+ def unpublish_removed_content_blocks
68
+ collection.where(weight: nil).update_all(published_at: nil)
69
+ end
70
+
71
+ def publish_appearing_content_blocks
72
+ collection.where(published_at: nil).where.not(weight: nil).update_all(published_at: Time.current)
73
+ end
74
+ # rubocop:enable Rails/SkipsModelValidations
75
+
76
+ def order
77
+ return nil unless @order.is_a?(Array) && @order.present?
78
+
79
+ @order
80
+ end
81
+
82
+ def collection
83
+ @collection ||= Decidim::ContentBlock.for_scope(scope, organization:).where(scoped_resource_id:)
84
+ end
85
+ end
86
+ end
87
+ end
88
+ end
@@ -0,0 +1,81 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Decidim
4
+ module Admin
5
+ module ContentBlocks
6
+ # This command gets called when a content block is updated from the admin
7
+ # panel.
8
+ class UpdateContentBlock < Decidim::Command
9
+ attr_reader :form, :content_block, :scope
10
+
11
+ # Public: Initializes the command.
12
+ #
13
+ # form - The form from which the data in this component comes from.
14
+ # component - The component to update.
15
+ # scope - the scope where the content block belongs to.
16
+ def initialize(form, content_block, scope)
17
+ @form = form
18
+ @content_block = content_block
19
+ @scope = scope
20
+ end
21
+
22
+ # Public: Updates the content block settings and its attachments.
23
+ #
24
+ # Broadcasts :ok if created, :invalid otherwise.
25
+ def call
26
+ return broadcast(:invalid) if form.invalid?
27
+
28
+ images_valid = true
29
+
30
+ transaction do
31
+ update_content_block_settings
32
+ content_block.save!
33
+
34
+ # Saving the images will cause the image file validations to run
35
+ # according to their uploader settings and the organization settings.
36
+ # The content block validation will fail in case there are processing
37
+ # errors on the image files.
38
+ #
39
+ # NOTE:
40
+ # The images can be only stored correctly if the content block is
41
+ # already persisted. This is not the case e.g. when creating a new
42
+ # newsletter which uses the content blocks through newsletter
43
+ # templates. This is why this needs to happen after the initial
44
+ # `content_block.save!` call.
45
+ update_content_block_images
46
+ unless content_block.valid?
47
+ images_valid = false
48
+ raise ActiveRecord::Rollback
49
+ end
50
+
51
+ # The save method needs to be called another time in order to store
52
+ # the image information.
53
+ content_block.save!
54
+ end
55
+
56
+ return broadcast(:invalid) unless images_valid
57
+
58
+ broadcast(:ok, content_block)
59
+ end
60
+
61
+ private
62
+
63
+ def update_content_block_settings
64
+ content_block.settings = form.settings
65
+ end
66
+
67
+ def update_content_block_images
68
+ content_block.manifest.images.each do |image_config|
69
+ image_name = image_config[:name]
70
+
71
+ if form.images[image_name]
72
+ content_block.images_container.send("#{image_name}=", form.images[image_name])
73
+ elsif form.images["remove_#{image_name}".to_sym] == "1"
74
+ content_block.images_container.send("#{image_name}=", nil)
75
+ end
76
+ end
77
+ end
78
+ end
79
+ end
80
+ end
81
+ end
@@ -14,7 +14,7 @@ module Decidim
14
14
  # Executes the command. Broadcasts these events:
15
15
  #
16
16
  # - :ok when everything is valid.
17
- # - :invalid if the form wasn't valid and we couldn't proceed.
17
+ # - :invalid if the form was not valid and we could not proceed.
18
18
  #
19
19
  # Returns nothing.
20
20
  def call
@@ -15,7 +15,7 @@ module Decidim
15
15
  # Executes the command. Broadcasts these events:
16
16
  #
17
17
  # - :ok when everything is valid.
18
- # - :invalid if the form wasn't valid and we couldn't proceed.
18
+ # - :invalid if the form was not valid and we could not proceed.
19
19
  #
20
20
  # Returns nothing.
21
21
  def call
@@ -18,7 +18,7 @@ module Decidim
18
18
  # Executes the command. Broadcasts these events:
19
19
  #
20
20
  # - :ok when everything is valid.
21
- # - :invalid if the form wasn't valid and we couldn't proceed.
21
+ # - :invalid if the form was not valid and we could not proceed.
22
22
  #
23
23
  # Returns nothing.
24
24
  def call
@@ -18,7 +18,7 @@ module Decidim
18
18
  # Executes the command. Broadcasts these events:
19
19
  #
20
20
  # - :ok when everything is valid.
21
- # - :invalid if the form wasn't valid and we couldn't proceed.
21
+ # - :invalid if the form was not valid and we could not proceed.
22
22
  #
23
23
  # Returns nothing.
24
24
  def call
@@ -19,7 +19,7 @@ module Decidim
19
19
  # Executes the command. Broadcasts these events:
20
20
  #
21
21
  # - :ok when everything is valid.
22
- # - :invalid if the form wasn't valid and we couldn't proceed.
22
+ # - :invalid if the form was not valid and we could not proceed.
23
23
  #
24
24
  # Returns nothing.
25
25
  def call
@@ -43,7 +43,7 @@ module Decidim
43
43
  end
44
44
 
45
45
  def create_content_block
46
- UpdateContentBlock.call(form, content_block, user) do
46
+ ContentBlocks::UpdateContentBlock.call(form, content_block, user) do
47
47
  on(:ok) do |content_block|
48
48
  content_block.update(scoped_resource_id: newsletter.id)
49
49
  @content_block = content_block
@@ -20,7 +20,7 @@ module Decidim
20
20
  # Executes the command. Broadcasts these events:
21
21
  #
22
22
  # - :ok when everything is valid.
23
- # - :invalid if the form wasn't valid and we couldn't proceed.
23
+ # - :invalid if the form was not valid and we could not proceed.
24
24
  #
25
25
  # Returns nothing.
26
26
  def call
@@ -52,7 +52,7 @@ module Decidim
52
52
  }
53
53
  ) do
54
54
  Decidim::ParticipatorySpacePrivateUser.find_or_create_by!(
55
- user: user,
55
+ user:,
56
56
  privatable_to: @private_user_to
57
57
  )
58
58
  end
@@ -85,7 +85,7 @@ module Decidim
85
85
  organization: private_user_to.organization,
86
86
  admin: false,
87
87
  invited_by: current_user,
88
- invitation_instructions: invitation_instructions)
88
+ invitation_instructions:)
89
89
  end
90
90
 
91
91
  def invitation_instructions
@@ -16,7 +16,7 @@ module Decidim
16
16
  # Executes the command. Broadcasts these events:
17
17
  #
18
18
  # - :ok when everything is valid.
19
- # - :invalid if the form wasn't valid and we couldn't proceed.
19
+ # - :invalid if the form was not valid and we could not proceed.
20
20
  #
21
21
  # Returns nothing.
22
22
  def call
@@ -15,7 +15,7 @@ module Decidim
15
15
  # Executes the command. Broadcasts these events:
16
16
  #
17
17
  # - :ok when everything is valid.
18
- # - :invalid if the form wasn't valid and we couldn't proceed.
18
+ # - :invalid if the form was not valid and we could not proceed.
19
19
  #
20
20
  # Returns nothing.
21
21
  def call
@@ -15,7 +15,7 @@ module Decidim
15
15
  # Executes the command. Broadcasts these events:
16
16
  #
17
17
  # - :ok when everything is valid.
18
- # - :invalid if the form wasn't valid and we couldn't proceed.
18
+ # - :invalid if the form was not valid and we could not proceed.
19
19
  #
20
20
  # Returns nothing.
21
21
  def call
@@ -14,7 +14,7 @@ module Decidim
14
14
  # Executes the command. Broadcasts these events:
15
15
  #
16
16
  # - :ok when everything is valid.
17
- # - :invalid if the form wasn't valid and we couldn't proceed.
17
+ # - :invalid if the form was not valid and we could not proceed.
18
18
  #
19
19
  # Returns nothing.
20
20
  def call
@@ -16,7 +16,7 @@ module Decidim
16
16
  # Executes the command. Broadcasts these events:
17
17
  #
18
18
  # - :ok when everything is valid.
19
- # - :invalid if the form wasn't valid and we couldn't proceed.
19
+ # - :invalid if the form was not valid and we could not proceed.
20
20
  #
21
21
  # Returns nothing.
22
22
  def call
@@ -16,7 +16,7 @@ module Decidim
16
16
  # Executes the command. Broadcasts these events:
17
17
  #
18
18
  # - :ok when everything is valid.
19
- # - :invalid if the data wasn't valid and we couldn't proceed.
19
+ # - :invalid if the data was not valid and we could not proceed.
20
20
  #
21
21
  # Returns nothing.
22
22
  def call
@@ -16,7 +16,7 @@ module Decidim
16
16
  # Executes the command. Broadcasts these events:
17
17
  #
18
18
  # - :ok when everything is valid.
19
- # - :invalid if the form wasn't valid and we couldn't proceed.
19
+ # - :invalid if the form was not valid and we could not proceed.
20
20
  #
21
21
  # Returns nothing.
22
22
  def call
@@ -16,7 +16,7 @@ module Decidim
16
16
  # Executes the command. Broadcasts these events:
17
17
  #
18
18
  # - :ok when everything is valid.
19
- # - :invalid if the form wasn't valid and we couldn't proceed.
19
+ # - :invalid if the form was not valid and we could not proceed.
20
20
  #
21
21
  # Returns nothing.
22
22
  def call
@@ -16,7 +16,7 @@ module Decidim
16
16
  # Executes the command. Broadcasts these events:
17
17
  #
18
18
  # - :ok when everything is valid.
19
- # - :invalid if the form wasn't valid and we couldn't proceed.
19
+ # - :invalid if the form was not valid and we could not proceed.
20
20
  #
21
21
  # Returns nothing.
22
22
  def call