decidim-admin 0.30.9 → 0.31.0.rc1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (269) hide show
  1. checksums.yaml +4 -4
  2. data/app/cells/decidim/admin/content_block/show.erb +1 -1
  3. data/app/commands/decidim/admin/content_blocks/update_content_block.rb +3 -12
  4. data/app/commands/decidim/admin/create_attachment.rb +0 -1
  5. data/app/commands/decidim/admin/destroy_participatory_space_private_user.rb +0 -10
  6. data/app/commands/decidim/admin/hide_menu_component.rb +1 -1
  7. data/app/commands/decidim/admin/publish_component.rb +0 -1
  8. data/app/commands/decidim/admin/unpublish_component.rb +0 -1
  9. data/app/commands/decidim/admin/unreport_user.rb +1 -1
  10. data/app/commands/decidim/admin/update_organization.rb +18 -3
  11. data/app/controllers/concerns/decidim/admin/content_blocks/landing_page_content_blocks.rb +1 -1
  12. data/app/controllers/concerns/decidim/admin/filterable.rb +1 -1
  13. data/app/controllers/decidim/admin/area_types_controller.rb +2 -2
  14. data/app/controllers/decidim/admin/areas_controller.rb +2 -2
  15. data/app/controllers/decidim/admin/block_user_controller.rb +2 -2
  16. data/app/controllers/decidim/admin/component_permissions_controller.rb +1 -1
  17. data/app/controllers/decidim/admin/components_controller.rb +2 -2
  18. data/app/controllers/decidim/admin/concerns/has_attachment_collections.rb +2 -2
  19. data/app/controllers/decidim/admin/concerns/has_attachments.rb +2 -2
  20. data/app/controllers/decidim/admin/concerns/has_private_users.rb +3 -3
  21. data/app/controllers/decidim/admin/concerns/has_private_users_csv_import.rb +1 -1
  22. data/app/controllers/decidim/admin/conflicts_controller.rb +1 -1
  23. data/app/controllers/decidim/admin/dashboard_controller.rb +0 -9
  24. data/app/controllers/decidim/admin/impersonations_controller.rb +1 -1
  25. data/app/controllers/decidim/admin/imports_controller.rb +1 -1
  26. data/app/controllers/decidim/admin/managed_users/promotions_controller.rb +1 -1
  27. data/app/controllers/decidim/admin/newsletters_controller.rb +4 -4
  28. data/app/controllers/decidim/admin/organization_appearance_controller.rb +1 -3
  29. data/app/controllers/decidim/admin/organization_controller.rb +32 -1
  30. data/app/controllers/decidim/admin/organization_external_domain_allowlist_controller.rb +1 -1
  31. data/app/controllers/decidim/admin/organization_homepage_controller.rb +4 -0
  32. data/app/controllers/decidim/admin/participatory_space/user_role_controller.rb +2 -2
  33. data/app/controllers/decidim/admin/reminders_controller.rb +1 -1
  34. data/app/controllers/decidim/admin/resource_permissions_controller.rb +1 -1
  35. data/app/controllers/decidim/admin/scope_types_controller.rb +2 -2
  36. data/app/controllers/decidim/admin/scopes_controller.rb +2 -2
  37. data/app/controllers/decidim/admin/share_tokens_controller.rb +2 -2
  38. data/app/controllers/decidim/admin/static_page_topics_controller.rb +2 -2
  39. data/app/controllers/decidim/admin/static_pages_controller.rb +2 -2
  40. data/app/controllers/decidim/admin/statistics_controller.rb +34 -0
  41. data/app/controllers/decidim/admin/taxonomies_controller.rb +2 -2
  42. data/app/controllers/decidim/admin/taxonomy_filters_controller.rb +2 -2
  43. data/app/controllers/decidim/admin/taxonomy_items_controller.rb +2 -2
  44. data/app/controllers/decidim/admin/users_controller.rb +1 -1
  45. data/app/forms/decidim/admin/block_user_form.rb +1 -1
  46. data/app/forms/decidim/admin/block_users_form.rb +1 -1
  47. data/app/forms/decidim/admin/organization_form.rb +35 -6
  48. data/app/helpers/decidim/admin/filterable_helper.rb +27 -8
  49. data/app/helpers/decidim/admin/icon_link_helper.rb +2 -3
  50. data/app/helpers/decidim/admin/icon_with_tooltip_helper.rb +1 -2
  51. data/app/helpers/decidim/admin/imports_helper.rb +0 -5
  52. data/app/helpers/decidim/admin/menu_helper.rb +3 -2
  53. data/app/helpers/decidim/admin/moderations/reports_helper.rb +2 -2
  54. data/app/helpers/decidim/admin/resource_permissions_helper.rb +13 -13
  55. data/app/helpers/decidim/admin/settings_helper.rb +12 -16
  56. data/app/jobs/decidim/admin/newsletter_job.rb +1 -0
  57. data/app/packs/entrypoints/decidim_admin.js +2 -3
  58. data/app/packs/entrypoints/decidim_admin.scss +1 -1
  59. data/app/packs/entrypoints/decidim_admin_overrides.scss +1 -1
  60. data/app/packs/src/decidim/admin/admin_autocomplete.js +12 -18
  61. data/app/packs/src/decidim/admin/application.js +11 -10
  62. data/app/packs/src/decidim/admin/budget_rule_toggler.component.js +84 -34
  63. data/app/packs/src/decidim/admin/controllers/slug/controller.js +25 -0
  64. data/app/packs/src/decidim/admin/controllers/slug/slug.test.js +239 -0
  65. data/app/packs/src/decidim/admin/css_preview.js +1 -1
  66. data/app/packs/src/decidim/admin/draggable-list.js +1 -1
  67. data/app/packs/src/decidim/admin/draggable-table.js +18 -36
  68. data/app/packs/src/decidim/admin/dynamic_fields.component.js +13 -12
  69. data/app/packs/src/decidim/admin/external_domain_allowlist.js +1 -1
  70. data/app/packs/src/decidim/admin/form.js +21 -4
  71. data/app/packs/src/decidim/admin/global_moderations.js +2 -2
  72. data/app/packs/src/decidim/admin/managed_moderated_users.js +2 -2
  73. data/app/packs/src/decidim/admin/moderations.js +1 -1
  74. data/app/packs/src/decidim/admin/newsletters.js +1 -1
  75. data/app/packs/src/decidim/admin/officializations.js +1 -1
  76. data/app/packs/src/decidim/admin/participatory_space_search.js +2 -2
  77. data/app/packs/src/decidim/admin/proposal_infinite_edit.js +1 -1
  78. data/app/packs/src/decidim/admin/resources_permissions.js +1 -1
  79. data/app/packs/src/decidim/admin/sort_list.component.js +2 -3
  80. data/app/packs/src/decidim/admin/sortable.js +1 -1
  81. data/app/packs/src/decidim/admin/sync_radio_buttons.js +1 -1
  82. data/app/packs/src/decidim/admin/tab_focus.js +1 -1
  83. data/app/packs/src/decidim/admin/text_copy.js +1 -1
  84. data/app/packs/src/decidim/admin/triadic_color_picker.js +1 -1
  85. data/app/packs/stylesheets/decidim/admin/_datepicker.scss +2 -2
  86. data/app/packs/stylesheets/decidim/admin/_dropdown.scss +12 -2
  87. data/app/packs/stylesheets/decidim/admin/_filters.scss +1 -57
  88. data/app/packs/stylesheets/decidim/admin/_forms.scss +14 -31
  89. data/app/packs/stylesheets/decidim/admin/_item_edit.scss +2 -10
  90. data/app/packs/stylesheets/decidim/admin/_item_show.scss +1 -5
  91. data/app/packs/stylesheets/decidim/admin/_legacy_foundation.scss +0 -412
  92. data/app/packs/stylesheets/decidim/admin/_main-nav.scss +75 -3
  93. data/app/packs/stylesheets/decidim/admin/_secondary-nav.scss +6 -10
  94. data/app/packs/stylesheets/decidim/admin/_select_picker.scss +1 -1
  95. data/app/packs/stylesheets/decidim/admin/_sidebar-menu.scss +4 -8
  96. data/app/packs/stylesheets/decidim/admin/_table-list.scss +26 -8
  97. data/app/packs/stylesheets/decidim/admin/_tabs.scss +4 -0
  98. data/app/packs/stylesheets/decidim/admin/_taxonomies.scss +7 -3
  99. data/app/packs/stylesheets/decidim/admin/application.scss +28 -29
  100. data/app/permissions/decidim/admin/permissions.rb +17 -5
  101. data/app/presenters/decidim/admin/dashboard_statistic_charts_presenter.rb +18 -0
  102. data/app/queries/decidim/admin/user_filter.rb +3 -3
  103. data/app/views/decidim/admin/area_types/index.html.erb +34 -11
  104. data/app/views/decidim/admin/areas/index.html.erb +32 -12
  105. data/app/views/decidim/admin/attachment_collections/index.html.erb +42 -14
  106. data/app/views/decidim/admin/attachments/index.html.erb +32 -13
  107. data/app/views/decidim/admin/block_user/bulk_new.html.erb +1 -1
  108. data/app/views/decidim/admin/block_user/new.html.erb +1 -1
  109. data/app/views/decidim/admin/components/_actions.html.erb +114 -54
  110. data/app/views/decidim/admin/components/_component_row.html.erb +5 -5
  111. data/app/views/decidim/admin/components/_components_table.html.erb +1 -1
  112. data/app/views/decidim/admin/components/_form.html.erb +4 -4
  113. data/app/views/decidim/admin/components/index.html.erb +12 -13
  114. data/app/views/decidim/admin/dashboard/show.html.erb +9 -21
  115. data/app/views/decidim/admin/exports/_dropdown.html.erb +16 -14
  116. data/app/views/decidim/admin/help_sections/_form.html.erb +1 -1
  117. data/app/views/decidim/admin/impersonatable_users/index.html.erb +68 -33
  118. data/app/views/decidim/admin/imports/_dropdown.html.erb +13 -11
  119. data/app/views/decidim/admin/imports/new.html.erb +13 -12
  120. data/app/views/decidim/admin/moderated_users/bulk_actions/_dropdown.html.erb +29 -32
  121. data/app/views/decidim/admin/moderated_users/index.html.erb +61 -21
  122. data/app/views/decidim/admin/moderations/_moderation-tr.html.erb +87 -32
  123. data/app/views/decidim/admin/moderations/_report.html.erb +2 -4
  124. data/app/views/decidim/admin/moderations/bulk_actions/_dropdown.html.erb +30 -34
  125. data/app/views/decidim/admin/moderations/index.html.erb +1 -1
  126. data/app/views/decidim/admin/moderations/reports/index.html.erb +1 -2
  127. data/app/views/decidim/admin/newsletters/index.html.erb +64 -21
  128. data/app/views/decidim/admin/officializations/index.html.erb +91 -37
  129. data/app/views/decidim/admin/organization/_form.html.erb +6 -92
  130. data/app/views/decidim/admin/organization/edit.html.erb +1 -5
  131. data/app/views/decidim/admin/organization/form/_admin_terms_of_service.html.erb +15 -0
  132. data/app/views/decidim/admin/organization/form/_basic_configuration.html.erb +31 -0
  133. data/app/views/decidim/admin/{organization_appearance → organization}/form/_colors.html.erb +9 -9
  134. data/app/views/decidim/admin/organization/form/_extra_features.html.erb +84 -0
  135. data/app/views/decidim/admin/{organization_appearance/form/_images.html.erb → organization/form/_logos.html.erb} +4 -4
  136. data/app/views/decidim/admin/organization/form/_welcome_notification.html.erb +25 -0
  137. data/app/views/decidim/admin/organization_external_domain_allowlist/_external_domain.html.erb +8 -6
  138. data/app/views/decidim/admin/participatory_space_private_users/index.html.erb +49 -22
  139. data/app/views/decidim/admin/resource_permissions/edit.html.erb +1 -1
  140. data/app/views/decidim/admin/scope_types/index.html.erb +31 -12
  141. data/app/views/decidim/admin/scopes/index.html.erb +40 -13
  142. data/app/views/decidim/admin/share_tokens/_form.html.erb +1 -1
  143. data/app/views/decidim/admin/share_tokens/edit.html.erb +1 -1
  144. data/app/views/decidim/admin/share_tokens/index.html.erb +69 -12
  145. data/app/views/decidim/admin/share_tokens/new.html.erb +1 -1
  146. data/app/views/decidim/admin/shared/_filters.html.erb +8 -10
  147. data/app/views/decidim/admin/shared/landing_page/_content_blocks.html.erb +14 -11
  148. data/app/views/decidim/admin/shared/landing_page_content_blocks/edit.html.erb +2 -4
  149. data/app/views/decidim/admin/static_page_topics/index.html.erb +31 -10
  150. data/app/views/decidim/admin/static_pages/_form.html.erb +1 -1
  151. data/app/views/decidim/admin/static_pages/_topic.html.erb +46 -16
  152. data/app/views/decidim/admin/statistics/_statistics.html.erb +13 -0
  153. data/app/views/decidim/admin/statistics/index.html.erb +6 -0
  154. data/app/views/decidim/admin/taxonomies/_form.html.erb +1 -1
  155. data/app/views/decidim/admin/taxonomies/_row.html.erb +24 -6
  156. data/app/views/decidim/admin/taxonomies/_table.html.erb +2 -2
  157. data/app/views/decidim/admin/taxonomies/_taxonomy_actions.html.erb +48 -15
  158. data/app/views/decidim/admin/taxonomies/edit.html.erb +10 -0
  159. data/app/views/decidim/admin/taxonomy_filters/_form.html.erb +1 -1
  160. data/app/views/decidim/admin/taxonomy_filters/_table.html.erb +52 -15
  161. data/app/views/decidim/admin/taxonomy_filters/new.html.erb +1 -1
  162. data/app/views/decidim/admin/taxonomy_filters_selector/_component_table.html.erb +38 -23
  163. data/app/views/decidim/admin/taxonomy_items/_form.html.erb +1 -1
  164. data/app/views/decidim/admin/users/index.html.erb +48 -24
  165. data/app/views/layouts/decidim/admin/_application.html.erb +3 -6
  166. data/app/views/layouts/decidim/admin/_header.html.erb +3 -1
  167. data/app/views/layouts/decidim/admin/_js_configuration.html.erb +11 -12
  168. data/app/views/layouts/decidim/admin/_sidebar_menu.html.erb +1 -1
  169. data/app/views/layouts/decidim/admin/_title_bar.html.erb +4 -4
  170. data/app/views/layouts/decidim/admin/_title_bar_responsive.html.erb +4 -4
  171. data/app/views/layouts/decidim/admin/insights.html.erb +6 -0
  172. data/config/assets.rb +2 -2
  173. data/config/locales/ar.yml +26 -96
  174. data/config/locales/bg.yml +37 -114
  175. data/config/locales/bs-BA.yml +7 -62
  176. data/config/locales/ca-IT.yml +79 -145
  177. data/config/locales/ca.yml +79 -145
  178. data/config/locales/cs.yml +61 -134
  179. data/config/locales/de.yml +82 -137
  180. data/config/locales/el.yml +28 -132
  181. data/config/locales/en.yml +66 -132
  182. data/config/locales/eo.yml +1 -8
  183. data/config/locales/es-MX.yml +78 -144
  184. data/config/locales/es-PY.yml +78 -144
  185. data/config/locales/es.yml +87 -153
  186. data/config/locales/eu.yml +98 -164
  187. data/config/locales/fi-plain.yml +71 -137
  188. data/config/locales/fi.yml +69 -135
  189. data/config/locales/fr-CA.yml +83 -185
  190. data/config/locales/fr.yml +83 -185
  191. data/config/locales/ga-IE.yml +14 -39
  192. data/config/locales/gl.yml +22 -103
  193. data/config/locales/he-IL.yml +1 -15
  194. data/config/locales/hu.yml +40 -108
  195. data/config/locales/id-ID.yml +10 -70
  196. data/config/locales/is-IS.yml +6 -43
  197. data/config/locales/it.yml +74 -122
  198. data/config/locales/ja.yml +80 -146
  199. data/config/locales/kaa.yml +3 -22
  200. data/config/locales/ko.yml +15 -77
  201. data/config/locales/lb.yml +25 -104
  202. data/config/locales/lt.yml +35 -108
  203. data/config/locales/lv.yml +13 -84
  204. data/config/locales/nl.yml +25 -104
  205. data/config/locales/no.yml +24 -103
  206. data/config/locales/pl.yml +38 -116
  207. data/config/locales/pt-BR.yml +26 -295
  208. data/config/locales/pt.yml +25 -104
  209. data/config/locales/ro-RO.yml +50 -112
  210. data/config/locales/ru.yml +11 -67
  211. data/config/locales/sk.yml +9 -842
  212. data/config/locales/sl.yml +1 -24
  213. data/config/locales/sq-AL.yml +14 -55
  214. data/config/locales/sr-CS.yml +14 -69
  215. data/config/locales/sv.yml +89 -144
  216. data/config/locales/th-TH.yml +1 -15
  217. data/config/locales/tr-TR.yml +37 -277
  218. data/config/locales/uk.yml +9 -52
  219. data/config/locales/val-ES.yml +0 -1
  220. data/config/locales/zh-CN.yml +11 -82
  221. data/config/locales/zh-TW.yml +33 -106
  222. data/config/routes.rb +5 -11
  223. data/lib/decidim/admin/engine.rb +5 -1
  224. data/lib/decidim/admin/form_builder.rb +4 -2
  225. data/lib/decidim/admin/menu.rb +32 -16
  226. data/lib/decidim/admin/test/admin_participatory_space_access_examples.rb +0 -20
  227. data/lib/decidim/admin/test/filterable_examples.rb +8 -18
  228. data/lib/decidim/admin/test/filters_participatory_space_users_examples.rb +1 -1
  229. data/lib/decidim/admin/test/invite_participatory_space_admins_shared_examples.rb +4 -4
  230. data/lib/decidim/admin/test/invite_participatory_space_collaborators_shared_examples.rb +2 -2
  231. data/lib/decidim/admin/test/invite_participatory_space_moderators_shared_examples.rb +9 -6
  232. data/lib/decidim/admin/test/invite_participatory_space_users_shared_context.rb +1 -0
  233. data/lib/decidim/admin/test/manage_attachment_collections_examples.rb +5 -1
  234. data/lib/decidim/admin/test/manage_attachments_examples.rb +4 -11
  235. data/lib/decidim/admin/test/manage_component_permissions_examples.rb +31 -4
  236. data/lib/decidim/admin/test/manage_hide_content_examples.rb +0 -1
  237. data/lib/decidim/admin/test/manage_moderations_examples.rb +12 -5
  238. data/lib/decidim/admin/test/manage_participatory_space_publications_examples.rb +12 -6
  239. data/lib/decidim/admin/test/manage_resource_soft_deletion_examples.rb +19 -4
  240. data/lib/decidim/admin/test/manage_taxonomy_filters_examples.rb +28 -8
  241. data/lib/decidim/admin/version.rb +1 -1
  242. metadata +22 -37
  243. data/app/commands/decidim/admin/process_user_group_verification_csv.rb +0 -44
  244. data/app/commands/decidim/admin/reject_user_group.rb +0 -42
  245. data/app/commands/decidim/admin/update_organization_appearance.rb +0 -39
  246. data/app/commands/decidim/admin/update_user_groups.rb +0 -44
  247. data/app/commands/decidim/admin/verify_user_group.rb +0 -43
  248. data/app/controllers/concerns/decidim/admin/user_groups/filterable.rb +0 -45
  249. data/app/controllers/concerns/decidim/admin/user_groups.rb +0 -24
  250. data/app/controllers/decidim/admin/metrics_controller.rb +0 -23
  251. data/app/controllers/decidim/admin/user_groups_controller.rb +0 -76
  252. data/app/controllers/decidim/admin/user_groups_csv_verifications_controller.rb +0 -36
  253. data/app/forms/decidim/admin/organization_appearance_form.rb +0 -88
  254. data/app/forms/decidim/admin/user_group_csv_verification_form.rb +0 -25
  255. data/app/jobs/decidim/admin/destroy_private_users_follows_job.rb +0 -37
  256. data/app/jobs/decidim/admin/verify_user_group_from_csv_job.rb +0 -30
  257. data/app/packs/src/decidim/admin/welcome_notification.js +0 -32
  258. data/app/packs/stylesheets/decidim/admin/_bulk_actions.scss +0 -16
  259. data/app/presenters/decidim/admin/dashboard_metric_charts_presenter.rb +0 -33
  260. data/app/queries/decidim/admin/user_groups_evaluation.rb +0 -56
  261. data/app/views/decidim/admin/metrics/_metrics.html.erb +0 -16
  262. data/app/views/decidim/admin/metrics/index.html.erb +0 -7
  263. data/app/views/decidim/admin/organization_appearance/_form.html.erb +0 -100
  264. data/app/views/decidim/admin/organization_appearance/edit.html.erb +0 -18
  265. data/app/views/decidim/admin/organization_appearance/form/_header_snippets.html.erb +0 -17
  266. data/app/views/decidim/admin/user_groups/index.html.erb +0 -68
  267. data/app/views/decidim/admin/user_groups_csv_verifications/new.html.erb +0 -31
  268. data/lib/decidim/admin/test/admin_participatory_space_component_access_examples.rb +0 -36
  269. /data/app/views/decidim/admin/{organization_appearance → organization}/form/_minimap.html.erb +0 -0
@@ -29,7 +29,7 @@ shared_examples "inviting participatory space collaborators" do
29
29
 
30
30
  click_on space_sidebar_label
31
31
 
32
- within "div.table-scroll" do
32
+ within ".table-list" do
33
33
  expect(page).to have_i18n_content(participatory_space.title)
34
34
  end
35
35
  end
@@ -53,7 +53,7 @@ shared_examples "inviting participatory space collaborators" do
53
53
 
54
54
  click_on space_sidebar_label
55
55
 
56
- within "div.table-scroll" do
56
+ within ".table-list" do
57
57
  expect(page).to have_i18n_content(participatory_space.title)
58
58
  end
59
59
  end
@@ -27,9 +27,11 @@ shared_examples "inviting participatory space moderators" do
27
27
 
28
28
  click_on space_sidebar_label
29
29
 
30
- within "div.table-scroll" do
31
- expect(page).to have_i18n_content(participatory_space.title)
32
- click_on "Moderate"
30
+ within ".table-list" do
31
+ within("tr", text: translated(participatory_space.title)) do
32
+ find("button[data-controller='dropdown']").click
33
+ click_on "Manage moderations"
34
+ end
33
35
  end
34
36
 
35
37
  within "div.process-title-content-breadcrumb-container-left" do
@@ -56,10 +58,11 @@ shared_examples "inviting participatory space moderators" do
56
58
 
57
59
  click_on space_sidebar_label
58
60
 
59
- within "div.table-scroll" do
61
+ within ".table-list" do
60
62
  expect(page).to have_i18n_content(participatory_space.title)
61
- within "tr", text: translated(participatory_space.title) do
62
- click_on "Moderate"
63
+ within("tr", text: translated(participatory_space.title)) do
64
+ find("button[data-controller='dropdown']").click
65
+ click_on "Manage moderations"
63
66
  end
64
67
  end
65
68
 
@@ -28,6 +28,7 @@ shared_context "when inviting participatory space users" do
28
28
  visit participatory_space_user_roles_path
29
29
 
30
30
  within "tr", text: username do
31
+ find("button[data-controller='dropdown']").click
31
32
  click_on "Edit"
32
33
  end
33
34
  end
@@ -16,6 +16,7 @@ shared_examples "manage attachment collections examples" do
16
16
 
17
17
  it "can view an attachment collection details" do
18
18
  within "#attachment_collections table" do
19
+ find("button[data-controller='dropdown']").click
19
20
  click_on "Edit"
20
21
  end
21
22
 
@@ -56,6 +57,7 @@ shared_examples "manage attachment collections examples" do
56
57
  it "can update an attachment collection" do
57
58
  within "#attachment_collections" do
58
59
  within "tr", text: translated(attachment_collection.name) do
60
+ find("button[data-controller='dropdown']").click
59
61
  click_on "Edit"
60
62
  end
61
63
  end
@@ -90,6 +92,7 @@ shared_examples "manage attachment collections examples" do
90
92
 
91
93
  it "can delete the attachment collection" do
92
94
  within "tr", text: translated(attachment_collection2.name) do
95
+ find("button[data-controller='dropdown']").click
93
96
  accept_confirm { click_on "Delete" }
94
97
  end
95
98
 
@@ -110,7 +113,8 @@ shared_examples "manage attachment collections examples" do
110
113
 
111
114
  it "cannot delete it" do
112
115
  within "tr", text: translated(attachment_collection.name) do
113
- expect(page).to have_no_css("a.action-icon--remove")
116
+ find("button[data-controller='dropdown']").click
117
+ expect(page).to have_no_css(".button", text: "Delete")
114
118
  end
115
119
  end
116
120
  end
@@ -3,7 +3,6 @@
3
3
  shared_examples "manage attachments examples" do
4
4
  context "when processing attachments" do
5
5
  let!(:attachment) { create(:attachment, attached_to:, attachment_collection:) }
6
- let!(:attachment_with_link) { create(:attachment, :with_link, attached_to:, attachment_collection:) }
7
6
 
8
7
  before do
9
8
  visit current_path
@@ -20,6 +19,7 @@ shared_examples "manage attachments examples" do
20
19
 
21
20
  it "can view an attachment details" do
22
21
  within "tr", text: translated(attachment.title) do
22
+ find("button[data-controller='dropdown']").click
23
23
  click_on "Edit"
24
24
  end
25
25
 
@@ -153,6 +153,7 @@ shared_examples "manage attachments examples" do
153
153
  within "#attachments" do
154
154
  within "tr", text: translated(attachment.title) do
155
155
  expect(page).to have_text(translated(attachment_collection.name, locale: :en))
156
+ find("button[data-controller='dropdown']").click
156
157
  click_on "Edit"
157
158
  end
158
159
  end
@@ -172,6 +173,7 @@ shared_examples "manage attachments examples" do
172
173
 
173
174
  it "can delete an attachment from a process" do
174
175
  within "tr", text: translated(attachment.title) do
176
+ find("button[data-controller='dropdown']").click
175
177
  accept_confirm { click_on "Delete" }
176
178
  end
177
179
 
@@ -180,19 +182,10 @@ shared_examples "manage attachments examples" do
180
182
  expect(page).to have_no_content(translated(attachment.title, locale: :en))
181
183
  end
182
184
 
183
- it "can delete an attachment with a link" do
184
- within "tr", text: translated(attachment_with_link.title) do
185
- accept_confirm { click_on "Delete" }
186
- end
187
-
188
- expect(page).to have_admin_callout("Attachment destroyed successfully")
189
-
190
- expect(page).to have_no_content(translated(attachment_with_link.title, locale: :en))
191
- end
192
-
193
185
  it "can update an attachment" do
194
186
  within "#attachments" do
195
187
  within "tr", text: translated(attachment.title) do
188
+ find("button[data-controller='dropdown']").click
196
189
  click_on "Edit"
197
190
  end
198
191
  end
@@ -2,6 +2,29 @@
2
2
 
3
3
  require "spec_helper"
4
4
 
5
+ shared_examples "access permissions form" do
6
+ it "can view the permissions" do
7
+ within "tr", text: row_text do
8
+ find("button[data-controller='dropdown']").click
9
+ click_on "Manage permissions"
10
+ end
11
+ expect(page).to have_content("Edit permissions")
12
+ end
13
+ end
14
+
15
+ shared_examples "access component permissions form" do
16
+ let(:participatory_space_engine) { Decidim::EngineRouter.admin_proxy(participatory_space) }
17
+ before do
18
+ switch_to_host(organization.host)
19
+ login_as user, scope: :user
20
+ visit participatory_space_engine.components_path(participatory_space)
21
+ end
22
+
23
+ include_examples "access permissions form" do
24
+ let!(:row_text) { translated(component.name) }
25
+ end
26
+ end
27
+
5
28
  shared_examples "Managing component permissions" do
6
29
  let(:organization) do
7
30
  create(
@@ -23,7 +46,8 @@ shared_examples "Managing component permissions" do
23
46
  context "when setting permissions" do
24
47
  before do
25
48
  within ".component-#{component.id}" do
26
- click_on "Permissions"
49
+ find("button[data-controller='dropdown']").click
50
+ click_on "Manage permissions"
27
51
  end
28
52
  end
29
53
 
@@ -54,7 +78,8 @@ shared_examples "Managing component permissions" do
54
78
  before do
55
79
  allow_any_instance_of(Decidim::Admin::PermissionsForm).to receive(:valid?).and_return(false)
56
80
  within ".component-#{component.id}" do
57
- click_on "Permissions"
81
+ find("button[data-controller='dropdown']").click
82
+ click_on "Manage permissions"
58
83
  end
59
84
  within "#components form" do
60
85
  within ".foo-permission" do
@@ -85,7 +110,8 @@ shared_examples "Managing component permissions" do
85
110
  )
86
111
 
87
112
  within ".component-#{component.id}" do
88
- click_on "Permissions"
113
+ find("button[data-controller='dropdown']").click
114
+ click_on "Manage permissions"
89
115
  end
90
116
  end
91
117
 
@@ -120,7 +146,8 @@ shared_examples "Managing component permissions" do
120
146
  )
121
147
 
122
148
  within ".component-#{component.id}" do
123
- click_on "Permissions"
149
+ find("button[data-controller='dropdown']").click
150
+ click_on "Manage permissions"
124
151
  end
125
152
  end
126
153
 
@@ -53,7 +53,6 @@ shared_examples "hideable resource during block" do
53
53
  fill_in :block_user_justification, with: "This user is a spammer" * 2 # to have at least 15 chars
54
54
 
55
55
  click_on I18n.t("decidim.admin.block_user.new.action")
56
- expect(page).to have_content(I18n.t("decidim.admin.officializations.block.success"))
57
56
 
58
57
  expect(content.reload).to be_hidden
59
58
 
@@ -82,7 +82,8 @@ shared_examples "manage moderations" do
82
82
 
83
83
  it "user can un-report a resource" do
84
84
  within "tr[data-id=\"#{moderation.id}\"]" do
85
- click_on "Unreport"
85
+ find("button[data-controller='dropdown']").click
86
+ click_on "Undo the report"
86
87
  end
87
88
 
88
89
  expect(page).to have_admin_callout("Resource successfully unreported")
@@ -90,6 +91,7 @@ shared_examples "manage moderations" do
90
91
 
91
92
  it "user can hide a resource" do
92
93
  within "tr[data-id=\"#{moderation.id}\"]" do
94
+ find("button[data-controller='dropdown']").click
93
95
  click_on "Hide"
94
96
  end
95
97
 
@@ -114,8 +116,8 @@ shared_examples "manage moderations" do
114
116
  it "user can filter by reportable type" do
115
117
  reportable_type = moderation.reportable.class.name.demodulize
116
118
  within ".filters__section" do
117
- find(:xpath, "//a[contains(text(), 'Filter')]").hover
118
- find(:xpath, "//a[contains(text(), 'Type')]").hover
119
+ click_on "Filter"
120
+ click_on "Type"
119
121
  click_on reportable_type
120
122
  end
121
123
  expect(page).to have_css("tbody tr", count: moderations.length)
@@ -124,7 +126,7 @@ shared_examples "manage moderations" do
124
126
  it "user can filter by reported content" do
125
127
  search = moderation.reportable.id
126
128
  within ".filters__section" do
127
- fill_in("Search Moderation by reportable id or content.", with: search)
129
+ fill_in("Search moderation by reportable id or content", with: search)
128
130
  within(".input-group-button") { click_on(class: "text-secondary") }
129
131
  end
130
132
  expect(page).to have_css("tbody tr", count: 1)
@@ -132,6 +134,7 @@ shared_examples "manage moderations" do
132
134
 
133
135
  it "user can see moderation details" do
134
136
  within "tr[data-id=\"#{moderation.id}\"]" do
137
+ find("button[data-controller='dropdown']").click
135
138
  click_on "Expand"
136
139
  end
137
140
 
@@ -188,7 +191,10 @@ shared_examples "manage moderations" do
188
191
  end
189
192
 
190
193
  it "user cannot unreport them" do
191
- expect(page).to have_no_css(".action-icon--unreport")
194
+ within "tr[data-id=\"#{hidden_moderations.first.id}\"]" do
195
+ find("button[data-controller='dropdown']").click
196
+ expect(page).to have_no_css("a", text: "Undo the report")
197
+ end
192
198
  end
193
199
 
194
200
  it "user can review them" do
@@ -231,6 +237,7 @@ shared_examples "manage moderations" do
231
237
  it "user can hide them" do
232
238
  moderation_id = moderations.first.id
233
239
  within "tr[data-id=\"#{moderation_id}\"]" do
240
+ find("button[data-controller='dropdown']").click
234
241
  click_on "Hide"
235
242
  end
236
243
 
@@ -1,10 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- shared_examples "manage participatory space publications" do |_options|
3
+ shared_examples "manage participatory space publications" do
4
4
  before do
5
- participatory_space.update(title: { en: title })
6
5
  switch_to_host(organization.host)
7
6
  login_as user, scope: :user
7
+ visit admin_page_path
8
8
  end
9
9
 
10
10
  context "when the participatory space is unpublished" do
@@ -12,16 +12,19 @@ shared_examples "manage participatory space publications" do |_options|
12
12
  participatory_space.unpublish!
13
13
  participatory_space.reload
14
14
  visit admin_page_path
15
+
16
+ within("tr", text: translated_attribute(participatory_space.title)) do
17
+ find("button[data-controller='dropdown']").click
18
+ find("a", text: "Publish", visible: true).click
19
+ end
15
20
  end
16
21
 
17
22
  it "publishes it" do
18
- click_on "Publish"
19
-
20
23
  expect(page).to have_content("successfully")
21
24
 
22
25
  visit public_collection_path
23
26
 
24
- expect(page).to have_content title
27
+ expect(page).to have_content(translated_attribute(participatory_space.title))
25
28
  end
26
29
  end
27
30
 
@@ -42,7 +45,10 @@ shared_examples "manage participatory space publications" do |_options|
42
45
  it "unpublishes it" do
43
46
  # we cannot use "a 404 page" shared example as we want to check it
44
47
  # inside an example
45
- click_on "Unpublish"
48
+ within("tr", text: translated_attribute(participatory_space.title)) do
49
+ find("button[data-controller='dropdown']").click
50
+ click_on "Unpublish"
51
+ end
46
52
 
47
53
  expect(page).to have_content("successfully")
48
54
 
@@ -18,7 +18,13 @@ shared_examples "manage soft deletable component or space" do |resource_name|
18
18
  expect(page).to have_content(title[:en])
19
19
  end
20
20
 
21
- accept_confirm { click_on "Soft delete" }
21
+ accept_confirm do
22
+ within("tr", text: title[:en]) do
23
+ # To remove once all the actions are migrated to dropdowns
24
+ find("button[data-controller='dropdown']").click
25
+ click_on "Move to trash"
26
+ end
27
+ end
22
28
 
23
29
  expect(page).to have_admin_callout("successfully")
24
30
 
@@ -34,7 +40,11 @@ shared_examples "manage soft deletable component or space" do |resource_name|
34
40
  end
35
41
 
36
42
  it "does not allow to move it to the trash" do
37
- expect(page).to have_no_content("Soft delete")
43
+ within("tr", text: title[:en]) do
44
+ # To remove once all the actions are migrated to dropdowns
45
+ find("button[data-controller='dropdown']").click
46
+ have_css(".dropdown__button-disabled span", text: "Move to trash")
47
+ end
38
48
  end
39
49
  end
40
50
 
@@ -67,7 +77,8 @@ shared_examples "manage soft deletable resource" do |resource_name|
67
77
  expect(page).to have_content(title[:en])
68
78
 
69
79
  within(resource_row) do
70
- accept_confirm { click_on "Soft delete" }
80
+ find("button[data-controller='dropdown']").click
81
+ accept_confirm { click_on "Move to trash" }
71
82
  end
72
83
 
73
84
  expect(page).to have_admin_callout("successfully")
@@ -101,7 +112,11 @@ shared_examples "manage trashed resource" do |resource_name|
101
112
  end
102
113
 
103
114
  it "restores the #{resource_name} from the trash" do
104
- click_on "Restore"
115
+ # To remove once all the actions are migrated to dropdowns
116
+ within("tr", text: title[:en]) do
117
+ find("button[data-controller='dropdown']").click
118
+ click_on "Restore"
119
+ end
105
120
 
106
121
  expect(page).to have_admin_callout("successfully")
107
122
  visit trash_path
@@ -16,8 +16,12 @@ shared_examples "manage taxonomy filters in settings" do
16
16
  let!(:another_taxonomy_filter) do
17
17
  create(:taxonomy_filter, internal_name: { en: "Another filter" }, participatory_space_manifests: [participatory_space.manifest.name], root_taxonomy:)
18
18
  end
19
+
19
20
  before do
20
- click_on "Configure"
21
+ within "tr", text: translated_attribute(component.name) do
22
+ find("button[data-controller='dropdown']").click
23
+ click_on "Configure"
24
+ end
21
25
  end
22
26
 
23
27
  it "can be added to settings" do
@@ -36,8 +40,9 @@ shared_examples "manage taxonomy filters in settings" do
36
40
  within ".js-current-filters" do
37
41
  expect(page).to have_css("td", text: "Internal taxonomy filter name")
38
42
  expect(page).to have_css("td", text: "Public taxonomy filter name")
39
- expect(page).to have_link("Edit")
43
+ expect(page).to have_css("button[data-controller='dropdown']", count: 1)
40
44
  end
45
+
41
46
  expect(component.reload.settings.taxonomy_filters).to eq([taxonomy_filter.id.to_s])
42
47
 
43
48
  click_on "Add filter"
@@ -52,12 +57,15 @@ shared_examples "manage taxonomy filters in settings" do
52
57
  expect(page).to have_css("td", text: "Internal taxonomy filter name")
53
58
  expect(page).to have_css("td", text: "Public taxonomy filter name")
54
59
  expect(page).to have_css("td", text: "Another filter")
55
- expect(page).to have_link("Edit", count: 2)
60
+ expect(page).to have_css("button[data-controller='dropdown']", count: 2)
56
61
  end
57
62
  expect(component.reload.settings.taxonomy_filters).to contain_exactly(taxonomy_filter.id.to_s, another_taxonomy_filter.id.to_s)
58
63
 
59
64
  click_on "Update"
60
- click_on "Configure"
65
+ within "tr", text: translated(component.name) do
66
+ find("button[data-controller='dropdown']").click
67
+ click_on "Configure"
68
+ end
61
69
  within ".js-current-filters" do
62
70
  expect(page).to have_css("td", text: "Internal taxonomy filter name")
63
71
  expect(page).to have_css("td", text: "Public taxonomy filter name")
@@ -69,7 +77,10 @@ shared_examples "manage taxonomy filters in settings" do
69
77
  let(:taxonomy_filter_item) { nil }
70
78
  let(:taxonomy_filter) { nil }
71
79
  before do
72
- click_on "Configure"
80
+ within "tr", text: translated(component.name) do
81
+ find("button[data-controller='dropdown']").click
82
+ click_on "Configure"
83
+ end
73
84
  end
74
85
 
75
86
  it "shows a configuration message" do
@@ -83,12 +94,16 @@ shared_examples "manage taxonomy filters in settings" do
83
94
 
84
95
  before do
85
96
  component.update!(settings: { taxonomy_filters: [another_taxonomy_filter.id.to_s, taxonomy_filter.id.to_s] })
86
- click_on "Configure"
97
+ within "tr", text: translated(component.name) do
98
+ find("button[data-controller='dropdown']").click
99
+ click_on "Configure"
100
+ end
87
101
  end
88
102
 
89
103
  it "can be removed from settings" do
90
104
  within ".js-current-filters" do
91
105
  within "tr", text: "Internal taxonomy filter name" do
106
+ find("button[data-controller='dropdown']").click
92
107
  click_on "Edit"
93
108
  end
94
109
  end
@@ -113,11 +128,16 @@ shared_examples "manage taxonomy filters in settings" do
113
128
  expect(page).to have_css("td", text: "Another taxonomy filter name")
114
129
  expect(page).to have_css("td", text: "Internal taxonomy filter name")
115
130
  expect(page).to have_css("td", text: "Public taxonomy filter name")
116
- expect(page).to have_link("Edit", count: 2)
131
+ within "table" do
132
+ expect(page).to have_css("button[data-controller='dropdown']", count: 2)
133
+ end
117
134
  end
118
135
 
119
136
  click_on "Update"
120
- click_on "Configure"
137
+ within "tr", text: translated(component.name) do
138
+ find("button[data-controller='dropdown']").click
139
+ click_on "Configure"
140
+ end
121
141
  within ".js-current-filters" do
122
142
  expect(page).to have_css("td", text: "Internal taxonomy filter name")
123
143
  expect(page).to have_css("td", text: "Public taxonomy filter name")
@@ -4,7 +4,7 @@ module Decidim
4
4
  # This holds the decidim-admin version.
5
5
  module Admin
6
6
  def self.version
7
- "0.30.9"
7
+ "0.31.0.rc1"
8
8
  end
9
9
  end
10
10
  end