decidim-core 0.28.3 → 0.29.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (660) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/app/cells/decidim/activities_cell.rb +0 -1
  4. data/app/cells/decidim/activity_cell.rb +5 -7
  5. data/app/cells/decidim/address/online.erb +2 -2
  6. data/app/cells/decidim/address_cell.rb +3 -9
  7. data/app/cells/decidim/amendable/amend_button_card_cell.rb +0 -2
  8. data/app/cells/decidim/amendable/amendments_cell.rb +0 -2
  9. data/app/cells/decidim/amendable/announcement_cell.rb +10 -14
  10. data/app/cells/decidim/amendable/emendation_actions_cell.rb +0 -2
  11. data/app/cells/decidim/amendable/promote_button_card_cell.rb +0 -2
  12. data/app/cells/decidim/amendable/wizard_step_form_cell.rb +6 -19
  13. data/app/cells/decidim/announcement/show.erb +1 -1
  14. data/app/cells/decidim/announcement_cell.rb +6 -2
  15. data/app/cells/decidim/attachments_file_tab/show.erb +3 -0
  16. data/app/cells/decidim/attachments_file_tab_cell.rb +11 -0
  17. data/app/cells/decidim/attachments_link_tab/show.erb +12 -0
  18. data/app/cells/decidim/attachments_link_tab_cell.rb +21 -0
  19. data/app/cells/decidim/author/flag.erb +2 -2
  20. data/app/cells/decidim/author_cell.rb +0 -2
  21. data/app/cells/decidim/authorization_modal_cell.rb +0 -3
  22. data/app/cells/decidim/badge_cell.rb +0 -4
  23. data/app/cells/decidim/badges_cell.rb +0 -2
  24. data/app/cells/decidim/button_cell.rb +0 -3
  25. data/app/cells/decidim/card_cell.rb +1 -5
  26. data/app/cells/decidim/card_g/show.erb +1 -1
  27. data/app/cells/decidim/card_g_cell.rb +4 -7
  28. data/app/cells/decidim/card_l/image.erb +2 -2
  29. data/app/cells/decidim/card_l/space.erb +1 -1
  30. data/app/cells/decidim/card_l_cell.rb +3 -8
  31. data/app/cells/decidim/card_metadata_cell.rb +1 -5
  32. data/app/cells/decidim/card_s_cell.rb +1 -4
  33. data/app/cells/decidim/coauthorships_cell.rb +0 -2
  34. data/app/cells/decidim/comments_button_cell.rb +0 -2
  35. data/app/cells/decidim/content_blocks/footer_sub_hero/show.erb +1 -1
  36. data/app/cells/decidim/content_blocks/footer_sub_hero_cell.rb +0 -3
  37. data/app/cells/decidim/content_blocks/hero/show.erb +1 -1
  38. data/app/cells/decidim/content_blocks/hero_cell.rb +1 -2
  39. data/app/cells/decidim/content_blocks/highlighted_content_banner/show.erb +1 -1
  40. data/app/cells/decidim/content_blocks/highlighted_content_banner_cell.rb +0 -2
  41. data/app/cells/decidim/content_blocks/how_to_participate/show.erb +1 -1
  42. data/app/cells/decidim/content_blocks/how_to_participate_cell.rb +0 -1
  43. data/app/cells/decidim/content_blocks/participatory_space_documents/content.erb +1 -1
  44. data/app/cells/decidim/content_blocks/participatory_space_documents_cell.rb +17 -1
  45. data/app/cells/decidim/content_blocks/participatory_space_hero_cell.rb +2 -4
  46. data/app/cells/decidim/content_blocks/participatory_space_last_activity_cell.rb +1 -3
  47. data/app/cells/decidim/content_blocks/stats/show.erb +1 -1
  48. data/app/cells/decidim/content_blocks/sub_hero_cell.rb +0 -3
  49. data/app/cells/decidim/date_range/show.erb +10 -10
  50. data/app/cells/decidim/date_range_cell.rb +0 -2
  51. data/app/cells/decidim/diff_cell.rb +0 -1
  52. data/app/cells/decidim/documents_panel/show.erb +4 -0
  53. data/app/cells/decidim/documents_panel_cell.rb +9 -1
  54. data/app/cells/decidim/endorsement_buttons_cell.rb +5 -13
  55. data/app/cells/decidim/flag_modal/flag_user.erb +3 -3
  56. data/app/cells/decidim/followers_cell.rb +0 -1
  57. data/app/cells/decidim/following_cell.rb +0 -1
  58. data/app/cells/decidim/footer_topics/show.erb +8 -0
  59. data/app/cells/decidim/footer_topics_cell.rb +39 -0
  60. data/app/cells/decidim/groups_cell.rb +0 -3
  61. data/app/cells/decidim/linked_resources_for_cell.rb +0 -3
  62. data/app/cells/decidim/members_cell.rb +0 -1
  63. data/app/cells/decidim/navbar_admin_link_cell.rb +0 -2
  64. data/app/cells/decidim/newsletter_templates/base_cell.rb +0 -1
  65. data/app/cells/decidim/newsletter_templates/basic_only_text/show.erb +2 -2
  66. data/app/cells/decidim/newsletter_templates/image_text_cta/show.erb +2 -2
  67. data/app/cells/decidim/notification/show.erb +5 -0
  68. data/app/cells/decidim/notification_actions/base_cell.rb +13 -0
  69. data/app/cells/decidim/notification_actions/buttons/show.erb +5 -0
  70. data/app/cells/decidim/notification_actions/buttons_cell.rb +41 -0
  71. data/app/cells/decidim/notification_cell.rb +9 -3
  72. data/app/cells/decidim/notifications_cell.rb +0 -1
  73. data/app/cells/decidim/pad_iframe/show.erb +2 -2
  74. data/app/cells/decidim/pad_iframe_cell.rb +0 -1
  75. data/app/cells/decidim/participatory_space_dropdown_metadata_cell.rb +1 -2
  76. data/app/cells/decidim/photo_cell.rb +1 -5
  77. data/app/cells/decidim/photos_list_cell.rb +0 -2
  78. data/app/cells/decidim/profile_cell.rb +0 -2
  79. data/app/cells/decidim/profile_sidebar/show.erb +20 -20
  80. data/app/cells/decidim/profile_sidebar_cell.rb +1 -10
  81. data/app/cells/decidim/progress_bar/show.erb +8 -6
  82. data/app/cells/decidim/public_participation/show.erb +1 -1
  83. data/app/cells/decidim/report_button/flag_modal.erb +1 -1
  84. data/app/cells/decidim/resource_types_filter_cell.rb +0 -2
  85. data/app/cells/decidim/scopes_picker/show.erb +1 -1
  86. data/app/cells/decidim/scopes_picker_cell.rb +0 -1
  87. data/app/cells/decidim/search_results_cell.rb +1 -1
  88. data/app/cells/decidim/statistic_cell.rb +0 -2
  89. data/app/cells/decidim/tab_panels/show.erb +1 -1
  90. data/app/cells/decidim/tab_panels_cell.rb +12 -2
  91. data/app/cells/decidim/tags_cell.rb +0 -2
  92. data/app/cells/decidim/tos_page_cell.rb +0 -3
  93. data/app/cells/decidim/translation_bar/show.erb +1 -1
  94. data/app/cells/decidim/translation_bar_cell.rb +0 -2
  95. data/app/cells/decidim/upload_modal/files.erb +1 -1
  96. data/app/cells/decidim/upload_modal_cell.rb +1 -3
  97. data/app/cells/decidim/user_conversation/new.erb +1 -1
  98. data/app/cells/decidim/user_conversation/show.erb +1 -1
  99. data/app/cells/decidim/user_conversation_cell.rb +0 -1
  100. data/app/cells/decidim/user_conversations/show.erb +1 -1
  101. data/app/cells/decidim/user_conversations_cell.rb +0 -1
  102. data/app/cells/decidim/user_group_pending_invitations_list_cell.rb +0 -1
  103. data/app/cells/decidim/user_group_pending_requests_list_cell.rb +0 -1
  104. data/app/cells/decidim/user_timeline/show.erb +1 -1
  105. data/app/cells/decidim/version_cell.rb +3 -5
  106. data/app/cells/decidim/versions_list_cell.rb +1 -3
  107. data/app/cells/decidim/versions_list_item_cell.rb +2 -4
  108. data/app/cells/decidim/wizard_step_form/wizard_aside.erb +2 -2
  109. data/app/cells/decidim/wizard_step_form/wizard_header.erb +2 -3
  110. data/app/cells/decidim/wizard_step_form_cell.rb +0 -8
  111. data/app/commands/decidim/amendable/create_draft.rb +4 -3
  112. data/app/commands/decidim/amendable/promote.rb +3 -2
  113. data/app/commands/decidim/amendable/publish_draft.rb +3 -2
  114. data/app/commands/decidim/amendable/update_draft.rb +4 -3
  115. data/app/commands/decidim/amendable/withdraw.rb +1 -1
  116. data/app/commands/decidim/create_follow.rb +4 -4
  117. data/app/commands/decidim/create_omniauth_registration.rb +4 -10
  118. data/app/commands/decidim/create_report.rb +3 -3
  119. data/app/commands/decidim/create_user_report.rb +5 -5
  120. data/app/commands/decidim/delete_follow.rb +4 -4
  121. data/app/commands/decidim/demote_membership.rb +2 -2
  122. data/app/commands/decidim/destroy_account.rb +21 -19
  123. data/app/commands/decidim/endorse_resource.rb +1 -1
  124. data/app/commands/decidim/invite_user_to_group.rb +5 -4
  125. data/app/commands/decidim/update_account.rb +24 -22
  126. data/app/commands/decidim/update_notifications_settings.rb +13 -11
  127. data/app/commands/decidim/update_password.rb +7 -7
  128. data/app/commands/decidim/update_user_interests.rb +9 -7
  129. data/app/controllers/concerns/decidim/devise_controllers.rb +2 -1
  130. data/app/controllers/concerns/decidim/filter_resource.rb +1 -1
  131. data/app/controllers/concerns/decidim/needs_rtl_direction.rb +23 -0
  132. data/app/controllers/concerns/decidim/paginable.rb +1 -1
  133. data/app/controllers/concerns/decidim/participatory_space_context.rb +1 -23
  134. data/app/controllers/concerns/decidim/payload_info.rb +2 -1
  135. data/app/controllers/concerns/decidim/registers_permissions.rb +4 -4
  136. data/app/controllers/concerns/decidim/use_organization_time_zone.rb +1 -1
  137. data/app/controllers/concerns/decidim/withdrawable.rb +1 -1
  138. data/app/controllers/decidim/account_controller.rb +2 -2
  139. data/app/controllers/{concerns/decidim → decidim}/amendments_controller.rb +3 -16
  140. data/app/controllers/decidim/application_controller.rb +1 -1
  141. data/app/controllers/decidim/components/base_controller.rb +1 -1
  142. data/app/controllers/decidim/devise/invitations_controller.rb +1 -1
  143. data/app/controllers/decidim/devise/passwords_controller.rb +2 -2
  144. data/app/controllers/decidim/endorsements_controller.rb +1 -1
  145. data/app/controllers/decidim/favicon_controller.rb +1 -1
  146. data/app/controllers/decidim/follows_controller.rb +2 -2
  147. data/app/controllers/decidim/group_invites_controller.rb +36 -9
  148. data/app/controllers/decidim/newsletters_opt_in_controller.rb +1 -1
  149. data/app/controllers/decidim/notifications_settings_controller.rb +1 -1
  150. data/app/controllers/decidim/report_users_controller.rb +1 -1
  151. data/app/controllers/decidim/reports_controller.rb +1 -1
  152. data/app/controllers/decidim/user_interests_controller.rb +1 -1
  153. data/app/events/decidim/change_nickname_event.rb +0 -1
  154. data/app/events/decidim/invited_to_group_event.rb +29 -0
  155. data/app/events/decidim/welcome_notification_event.rb +2 -4
  156. data/app/forms/decidim/form.rb +4 -0
  157. data/app/forms/decidim/omniauth_registration_form.rb +1 -1
  158. data/app/forms/decidim/upload_validation_form.rb +1 -1
  159. data/app/helpers/concerns/decidim/flash_helper_extensions.rb +1 -1
  160. data/app/helpers/decidim/amendments_helper.rb +4 -14
  161. data/app/helpers/decidim/application_helper.rb +8 -0
  162. data/app/helpers/decidim/authorization_form_helper.rb +2 -2
  163. data/app/helpers/decidim/breadcrumb_helper.rb +1 -1
  164. data/app/helpers/decidim/cells_helper.rb +1 -1
  165. data/app/helpers/decidim/check_boxes_tree_helper.rb +1 -1
  166. data/app/helpers/decidim/datalist_select_helper.rb +1 -1
  167. data/app/helpers/decidim/decidim_form_helper.rb +3 -3
  168. data/app/helpers/decidim/filters_helper.rb +1 -1
  169. data/app/helpers/decidim/layout_helper.rb +1 -36
  170. data/app/helpers/decidim/localized_locales_helper.rb +1 -1
  171. data/app/helpers/decidim/menu_helper.rb +8 -0
  172. data/app/helpers/decidim/meta_tags_helper.rb +26 -23
  173. data/app/helpers/decidim/modal_helper.rb +1 -1
  174. data/app/helpers/decidim/orders_helper.rb +1 -1
  175. data/app/helpers/decidim/organization_helper.rb +55 -0
  176. data/app/helpers/decidim/paginate_helper.rb +5 -3
  177. data/app/helpers/decidim/resource_helper.rb +0 -7
  178. data/app/helpers/decidim/scopes_helper.rb +4 -2
  179. data/app/helpers/decidim/searches_helper.rb +1 -1
  180. data/app/helpers/decidim/short_link_helper.rb +2 -2
  181. data/app/helpers/decidim/translations_helper.rb +2 -2
  182. data/app/helpers/decidim/twitter_search_helper.rb +1 -1
  183. data/app/helpers/decidim/user_profile_helper.rb +0 -1
  184. data/app/jobs/decidim/email_notifications_digest_generator_job.rb +2 -2
  185. data/app/mailers/decidim/application_mailer.rb +6 -2
  186. data/app/mailers/decidim/block_user_mailer.rb +1 -1
  187. data/app/mailers/decidim/decidim_devise_mailer.rb +7 -1
  188. data/app/mailers/decidim/newsletter_mailer.rb +1 -4
  189. data/app/mailers/decidim/newsletters_opt_in_mailer.rb +2 -2
  190. data/app/mailers/decidim/notification_mailer.rb +0 -1
  191. data/app/mailers/decidim/notifications_digest_mailer.rb +0 -1
  192. data/app/mailers/decidim/reported_mailer.rb +6 -3
  193. data/app/mailers/decidim/user_report_mailer.rb +1 -1
  194. data/app/models/decidim/action_log.rb +1 -1
  195. data/app/models/decidim/area_type.rb +1 -1
  196. data/app/models/decidim/attachment.rb +28 -4
  197. data/app/models/decidim/authorization.rb +1 -1
  198. data/app/models/decidim/authorization_transfer.rb +1 -0
  199. data/app/models/decidim/component.rb +3 -6
  200. data/app/models/decidim/content_block.rb +3 -3
  201. data/app/models/decidim/messaging/message.rb +2 -2
  202. data/app/models/decidim/newsletter.rb +9 -9
  203. data/app/models/decidim/notification.rb +2 -2
  204. data/app/models/decidim/organization.rb +23 -2
  205. data/app/models/decidim/push_notification_message.rb +1 -1
  206. data/app/models/decidim/resource_link.rb +1 -1
  207. data/app/models/decidim/user.rb +14 -14
  208. data/app/models/decidim/user_group.rb +2 -2
  209. data/app/packs/src/decidim/a11y.js +46 -0
  210. data/app/packs/src/decidim/attachments/file_or_link_tabs.js +55 -0
  211. data/app/packs/src/decidim/attachments/index.js +1 -0
  212. data/app/packs/src/decidim/back_to_list.js +1 -1
  213. data/app/packs/src/decidim/check_boxes_tree.js +1 -1
  214. data/app/packs/src/decidim/data_consent/consent_manager.js +1 -1
  215. data/app/packs/src/decidim/data_consent/consent_manager.test.js +6 -6
  216. data/app/packs/src/decidim/data_consent/index.js +1 -1
  217. data/app/packs/src/decidim/datepicker/datepicker_functions.js +243 -0
  218. data/app/packs/src/decidim/datepicker/datepicker_listeners.js +78 -0
  219. data/app/packs/src/decidim/datepicker/form_datepicker.js +91 -0
  220. data/app/packs/src/decidim/datepicker/generate_datepicker.js +148 -0
  221. data/app/packs/src/decidim/datepicker/generate_timepicker.js +298 -0
  222. data/app/packs/src/decidim/datepicker/test/date.test.js +118 -0
  223. data/app/packs/src/decidim/datepicker/test/time.test.js +227 -0
  224. data/app/packs/src/decidim/editor/extensions/indent/index.js +1 -1
  225. data/app/packs/src/decidim/editor/extensions/video_embed/index.js +4 -4
  226. data/app/packs/src/decidim/editor/test/extensions/decidim_kit.test.js +0 -15
  227. data/app/packs/src/decidim/editor/test/extensions/indent.test.js +1 -1
  228. data/app/packs/src/decidim/editor/test/fixtures/upload_templates.js +1 -1
  229. data/app/packs/src/decidim/editor/test/helpers.js +1 -14
  230. data/app/packs/src/decidim/editor/utilities/paste_transform.js +2 -2
  231. data/app/packs/src/decidim/external_domain_warning.js +2 -2
  232. data/app/packs/src/decidim/external_domain_warning.test.js +4 -4
  233. data/app/packs/src/decidim/form_filter.js +4 -4
  234. data/app/packs/src/decidim/impersonation.js +1 -1
  235. data/app/packs/src/decidim/index.js +11 -5
  236. data/app/packs/src/decidim/input_character_counter.js +2 -2
  237. data/app/packs/src/decidim/input_emoji.js +171 -72
  238. data/app/packs/src/decidim/input_hashtags.js +1 -1
  239. data/app/packs/src/decidim/input_mentions.js +1 -1
  240. data/app/packs/src/decidim/notifications_actions.js +40 -0
  241. data/app/packs/src/decidim/sticky_header.js +87 -0
  242. data/app/packs/src/decidim/sw/sw.js +8 -6
  243. data/app/packs/src/decidim/tooltips.js +1 -1
  244. data/app/packs/stylesheets/decidim/_datepicker.scss +193 -0
  245. data/app/packs/stylesheets/decidim/_dropdown.scss +45 -9
  246. data/app/packs/stylesheets/decidim/_emoji.scss +36 -0
  247. data/app/packs/stylesheets/decidim/_filters.scss +4 -2
  248. data/app/packs/stylesheets/decidim/_flash.scss +2 -2
  249. data/app/packs/stylesheets/decidim/_footer.scss +1 -3
  250. data/app/packs/stylesheets/decidim/_forms.scss +13 -5
  251. data/app/packs/stylesheets/decidim/_header.scss +70 -50
  252. data/app/packs/stylesheets/decidim/_home.scss +1 -1
  253. data/app/packs/stylesheets/decidim/_layout.scss +13 -0
  254. data/app/packs/stylesheets/decidim/_modal.scss +1 -1
  255. data/app/packs/stylesheets/decidim/_modal_update.scss +1 -1
  256. data/app/packs/stylesheets/decidim/_notifications.scss +4 -0
  257. data/app/packs/stylesheets/decidim/_tabs_x.scss +5 -1
  258. data/app/packs/stylesheets/decidim/_tooltip.scss +10 -10
  259. data/app/packs/stylesheets/decidim/application.scss +4 -0
  260. data/app/packs/stylesheets/decidim/editor.scss +1 -1
  261. data/app/packs/stylesheets/decidim/legacy/leaflet.scss +1 -1
  262. data/app/packs/stylesheets/decidim/vendor/_datepicker_light.scss +228 -0
  263. data/app/permissions/decidim/default_permissions.rb +2 -2
  264. data/app/presenters/decidim/admin_log/organization_presenter.rb +1 -1
  265. data/app/presenters/decidim/admin_log/static_page_presenter.rb +1 -1
  266. data/app/presenters/decidim/authorization_transfer_presenter.rb +1 -1
  267. data/app/presenters/decidim/component_attachment_collection_presenter.rb +81 -0
  268. data/app/presenters/decidim/footer_menu_presenter.rb +1 -1
  269. data/app/presenters/decidim/home_stats_presenter.rb +1 -1
  270. data/app/presenters/decidim/organization_presenter.rb +1 -1
  271. data/app/queries/decidim/metric_measure.rb +1 -1
  272. data/app/queries/decidim/public_activities.rb +1 -1
  273. data/app/queries/decidim/user_groups/admin_memberships.rb +1 -1
  274. data/app/queries/decidim/user_groups/member_memberships.rb +1 -1
  275. data/app/services/decidim/action_logger.rb +3 -3
  276. data/app/services/decidim/download_your_data_exporter.rb +25 -36
  277. data/app/services/decidim/log/diff_changeset_calculator.rb +2 -2
  278. data/app/services/decidim/notifications_digest_sending_decider.rb +1 -1
  279. data/app/services/decidim/open_data_exporter.rb +7 -8
  280. data/app/services/decidim/zip_stream/writer.rb +39 -0
  281. data/app/uploaders/decidim/organization_favicon_uploader.rb +1 -1
  282. data/app/uploaders/decidim/record_image_uploader.rb +2 -2
  283. data/app/validators/organization_present_validator.rb +1 -1
  284. data/app/validators/passthru_validator.rb +1 -1
  285. data/app/validators/uploader_image_dimensions_validator.rb +2 -2
  286. data/app/views/decidim/account/show.html.erb +1 -1
  287. data/app/views/decidim/amendments/_wizard_header.html.erb +1 -2
  288. data/app/views/decidim/application/_collection.html.erb +3 -1
  289. data/app/views/decidim/application/_component_documents.html.erb +4 -0
  290. data/app/views/decidim/application/_document.html.erb +23 -9
  291. data/app/views/decidim/block_user_mailer/notify.html.erb +2 -2
  292. data/app/views/decidim/devise/invitations/edit.html.erb +2 -2
  293. data/app/views/decidim/devise/omniauth_registrations/new.html.erb +1 -1
  294. data/app/views/decidim/devise/registrations/new.html.erb +1 -1
  295. data/app/views/decidim/devise/shared/_login_boxes.html.erb +1 -1
  296. data/app/views/decidim/doorkeeper/authorizations/new.html.erb +1 -1
  297. data/app/views/decidim/endorsements/_identity.html.erb +1 -1
  298. data/app/views/decidim/gamification/badges/index.html.erb +1 -1
  299. data/app/views/decidim/manifests/show.json.erb +4 -4
  300. data/app/views/decidim/messaging/conversations/_add_conversation_users.html.erb +2 -2
  301. data/app/views/decidim/messaging/conversations/_error_modal.html.erb +5 -5
  302. data/app/views/decidim/newsletter_mailer/newsletter.html.erb +1 -1
  303. data/app/views/decidim/newsletters/show.html.erb +1 -1
  304. data/app/views/decidim/newsletters_opt_in_mailer/notify.html.erb +2 -2
  305. data/app/views/decidim/pages/index.html.erb +1 -2
  306. data/app/views/decidim/reported_mailer/report.html.erb +4 -2
  307. data/app/views/decidim/scopes/picker.html.erb +5 -5
  308. data/app/views/decidim/searches/_resources_filter_block.html.erb +6 -6
  309. data/app/views/decidim/shared/_extended_navigation_bar.html.erb +8 -8
  310. data/app/views/decidim/shared/_login_modal.html.erb +1 -1
  311. data/app/views/decidim/user_interests/_areas.html.erb +2 -2
  312. data/app/views/decidim/user_report_mailer/notify.html.erb +2 -2
  313. data/app/views/decidim/user_update_mailer/notify.html.erb +1 -1
  314. data/app/views/decidim/widgets/_data_picker.html.erb +1 -1
  315. data/app/views/devise/mailer/invitation_instructions.html.erb +1 -1
  316. data/app/views/devise/mailer/invitation_instructions.text.erb +1 -1
  317. data/app/views/devise/mailer/invite_admin.html.erb +2 -2
  318. data/app/views/devise/mailer/invite_admin.text.erb +2 -2
  319. data/app/views/devise/mailer/invite_collaborator.html.erb +2 -2
  320. data/app/views/devise/mailer/invite_collaborator.text.erb +2 -2
  321. data/app/views/devise/mailer/invite_private_user.html.erb +2 -2
  322. data/app/views/devise/mailer/invite_private_user.text.erb +2 -2
  323. data/app/views/devise/mailer/organization_admin_invitation_instructions.html.erb +1 -1
  324. data/app/views/devise/mailer/organization_admin_invitation_instructions.text.erb +1 -1
  325. data/app/views/layouts/decidim/_application.html.erb +3 -6
  326. data/app/views/layouts/decidim/_data_consent_warning.html.erb +2 -2
  327. data/app/views/layouts/decidim/_decidim_javascript.html.erb +1 -1
  328. data/app/views/layouts/decidim/_head_extra.html.erb +2 -2
  329. data/app/views/layouts/decidim/_impersonation_warning.html.erb +1 -1
  330. data/app/views/layouts/decidim/_js_configuration.html.erb +7 -2
  331. data/app/views/layouts/decidim/_logo.html.erb +2 -2
  332. data/app/views/layouts/decidim/_logo_mobile.html.erb +11 -0
  333. data/app/views/layouts/decidim/_mailer_logo.html.erb +2 -2
  334. data/app/views/layouts/decidim/_meta_tags_config.html.erb +1 -1
  335. data/app/views/layouts/decidim/_wrapper.html.erb +16 -9
  336. data/app/views/layouts/decidim/footer/_main.html.erb +2 -3
  337. data/app/views/layouts/decidim/footer/_main_intro.html.erb +2 -2
  338. data/app/views/layouts/decidim/footer/_main_legal.html.erb +2 -3
  339. data/app/views/layouts/decidim/footer/_main_links.html.erb +13 -11
  340. data/app/views/layouts/decidim/footer/_main_social_media_links.html.erb +8 -8
  341. data/app/views/layouts/decidim/header/_main.html.erb +9 -22
  342. data/app/views/layouts/decidim/header/_main_links_desktop.html.erb +4 -5
  343. data/app/views/layouts/decidim/header/_main_links_mobile_account.html.erb +11 -4
  344. data/app/views/layouts/decidim/header/_main_links_mobile_item_account.html.erb +24 -0
  345. data/app/views/layouts/decidim/header/_main_links_mobile_search.html.erb +0 -21
  346. data/app/views/layouts/decidim/header/_main_menu_mobile.html.erb +12 -0
  347. data/app/views/layouts/decidim/header/_menu_breadcrumb_desktop.html.erb +1 -1
  348. data/app/views/layouts/decidim/header/_menu_breadcrumb_main_dropdown_mobile.html.erb +17 -0
  349. data/app/views/layouts/decidim/header/_menu_breadcrumb_main_dropdown_top_left.html.erb +1 -1
  350. data/app/views/layouts/decidim/header/_menu_breadcrumb_mobile_tablet.html.erb +1 -1
  351. data/app/views/layouts/decidim/header/_menu_form_search_mobile.html.erb +16 -0
  352. data/app/views/layouts/decidim/header/_mobile_language_choose.html.erb +25 -0
  353. data/app/views/layouts/decidim/mailer.html.erb +2 -2
  354. data/app/views/layouts/decidim/shared/_layout_center.html.erb +1 -1
  355. data/app/views/layouts/decidim/shared/_layout_item.html.erb +0 -14
  356. data/config/initializers/active_storage.rb +3 -0
  357. data/config/initializers/devise.rb +1 -1
  358. data/config/initializers/new_framework_defaults_7_0.rb +145 -0
  359. data/config/locales/ar.yml +2 -42
  360. data/config/locales/bg.yml +55 -57
  361. data/config/locales/ca.yml +68 -57
  362. data/config/locales/cs.yml +53 -57
  363. data/config/locales/de.yml +63 -52
  364. data/config/locales/el.yml +0 -29
  365. data/config/locales/en.yml +68 -57
  366. data/config/locales/es-MX.yml +67 -56
  367. data/config/locales/es-PY.yml +67 -56
  368. data/config/locales/es.yml +66 -55
  369. data/config/locales/eu.yml +67 -56
  370. data/config/locales/fi-plain.yml +69 -58
  371. data/config/locales/fi.yml +93 -82
  372. data/config/locales/fr-CA.yml +60 -55
  373. data/config/locales/fr.yml +55 -50
  374. data/config/locales/ga-IE.yml +0 -11
  375. data/config/locales/gl.yml +0 -18
  376. data/config/locales/hu.yml +36 -56
  377. data/config/locales/id-ID.yml +0 -14
  378. data/config/locales/is-IS.yml +0 -13
  379. data/config/locales/it.yml +0 -25
  380. data/config/locales/ja.yml +67 -56
  381. data/config/locales/lb.yml +0 -25
  382. data/config/locales/lt.yml +0 -48
  383. data/config/locales/lv.yml +0 -21
  384. data/config/locales/nl.yml +0 -24
  385. data/config/locales/no.yml +0 -25
  386. data/config/locales/pl.yml +67 -56
  387. data/config/locales/pt-BR.yml +4 -51
  388. data/config/locales/pt.yml +0 -25
  389. data/config/locales/ro-RO.yml +1 -28
  390. data/config/locales/ru.yml +0 -15
  391. data/config/locales/sk.yml +0 -21
  392. data/config/locales/sl.yml +0 -8
  393. data/config/locales/sv.yml +84 -154
  394. data/config/locales/tr-TR.yml +4 -27
  395. data/config/locales/uk.yml +0 -10
  396. data/config/locales/zh-CN.yml +0 -22
  397. data/config/locales/zh-TW.yml +0 -47
  398. data/config/routes.rb +0 -1
  399. data/db/migrate/20170128112958_change_user_groups_verified_to_timestamp.rb +1 -1
  400. data/db/migrate/20181025082245_add_timestamps_to_components.rb +1 -5
  401. data/db/migrate/20240110150230_rename_external_domain_whitelist_to_external_domain_allowlist.rb +7 -0
  402. data/db/migrate/20240326104215_remove_show_in_footer_in_static_pages.rb +7 -0
  403. data/db/migrate/20240401192628_change_name_on_decidim_organizations.rb +31 -0
  404. data/db/seeds/avatars/001.jpg +0 -0
  405. data/db/seeds/avatars/002.jpg +0 -0
  406. data/db/seeds/avatars/003.jpg +0 -0
  407. data/db/seeds/avatars/004.jpg +0 -0
  408. data/db/seeds/avatars/005.jpg +0 -0
  409. data/db/seeds/avatars/006.jpg +0 -0
  410. data/db/seeds/avatars/007.jpg +0 -0
  411. data/db/seeds/avatars/008.jpg +0 -0
  412. data/db/seeds/avatars/009.jpg +0 -0
  413. data/db/seeds/avatars/010.jpg +0 -0
  414. data/db/seeds/avatars/011.jpg +0 -0
  415. data/db/seeds/avatars/012.jpg +0 -0
  416. data/db/seeds/avatars/013.jpg +0 -0
  417. data/db/seeds/avatars/014.jpg +0 -0
  418. data/db/seeds/avatars/015.jpg +0 -0
  419. data/db/seeds/avatars/016.jpg +0 -0
  420. data/db/seeds/avatars/017.jpg +0 -0
  421. data/db/seeds/avatars/018.jpg +0 -0
  422. data/db/seeds/avatars/019.jpg +0 -0
  423. data/db/seeds/avatars/020.jpg +0 -0
  424. data/db/seeds/avatars/021.jpg +0 -0
  425. data/db/seeds/avatars/022.jpg +0 -0
  426. data/db/seeds/avatars/023.jpg +0 -0
  427. data/db/seeds/avatars/024.jpg +0 -0
  428. data/db/seeds/avatars/025.jpg +0 -0
  429. data/db/seeds/avatars/026.jpg +0 -0
  430. data/db/seeds/avatars/027.jpg +0 -0
  431. data/db/seeds/avatars/028.jpg +0 -0
  432. data/db/seeds/avatars/029.jpg +0 -0
  433. data/db/seeds/avatars/030.jpg +0 -0
  434. data/db/seeds/avatars/031.jpg +0 -0
  435. data/db/seeds/avatars/032.jpg +0 -0
  436. data/db/seeds/avatars/033.jpg +0 -0
  437. data/db/seeds/avatars/034.jpg +0 -0
  438. data/db/seeds/avatars/035.jpg +0 -0
  439. data/db/seeds/avatars/036.jpg +0 -0
  440. data/db/seeds/avatars/037.jpg +0 -0
  441. data/db/seeds/avatars/038.jpg +0 -0
  442. data/db/seeds/avatars/039.jpg +0 -0
  443. data/db/seeds/avatars/040.jpg +0 -0
  444. data/db/seeds/avatars/041.jpg +0 -0
  445. data/db/seeds/avatars/042.jpg +0 -0
  446. data/db/seeds/avatars/043.jpg +0 -0
  447. data/db/seeds/avatars/044.jpg +0 -0
  448. data/db/seeds/avatars/045.jpg +0 -0
  449. data/db/seeds/avatars/046.jpg +0 -0
  450. data/db/seeds/avatars/047.jpg +0 -0
  451. data/db/seeds/avatars/048.jpg +0 -0
  452. data/db/seeds/avatars/049.jpg +0 -0
  453. data/db/seeds/avatars/050.jpg +0 -0
  454. data/db/seeds/avatars/051.jpg +0 -0
  455. data/db/seeds/avatars/052.jpg +0 -0
  456. data/db/seeds/avatars/053.jpg +0 -0
  457. data/db/seeds/avatars/054.jpg +0 -0
  458. data/db/seeds/avatars/055.jpg +0 -0
  459. data/db/seeds/avatars/056.jpg +0 -0
  460. data/db/seeds/avatars/057.jpg +0 -0
  461. data/db/seeds/avatars/058.jpg +0 -0
  462. data/db/seeds/avatars/059.jpg +0 -0
  463. data/db/seeds/avatars/060.jpg +0 -0
  464. data/db/seeds/avatars/061.jpg +0 -0
  465. data/db/seeds/avatars/062.jpg +0 -0
  466. data/db/seeds/avatars/063.jpg +0 -0
  467. data/db/seeds/avatars/064.jpg +0 -0
  468. data/db/seeds/avatars/065.jpg +0 -0
  469. data/db/seeds/avatars/066.jpg +0 -0
  470. data/db/seeds/avatars/067.jpg +0 -0
  471. data/db/seeds/avatars/068.jpg +0 -0
  472. data/db/seeds/avatars/069.jpg +0 -0
  473. data/db/seeds/avatars/070.jpg +0 -0
  474. data/db/seeds/avatars/071.jpg +0 -0
  475. data/db/seeds/avatars/072.jpg +0 -0
  476. data/db/seeds/avatars/073.jpg +0 -0
  477. data/db/seeds/avatars/074.jpg +0 -0
  478. data/db/seeds/avatars/075.jpg +0 -0
  479. data/db/seeds/avatars/076.jpg +0 -0
  480. data/db/seeds/avatars/077.jpg +0 -0
  481. data/db/seeds/avatars/078.jpg +0 -0
  482. data/db/seeds/avatars/079.jpg +0 -0
  483. data/db/seeds/avatars/080.jpg +0 -0
  484. data/db/seeds/avatars/081.jpg +0 -0
  485. data/db/seeds/avatars/082.jpg +0 -0
  486. data/db/seeds/avatars/083.jpg +0 -0
  487. data/db/seeds/avatars/084.jpg +0 -0
  488. data/db/seeds/avatars/085.jpg +0 -0
  489. data/db/seeds/avatars/086.jpg +0 -0
  490. data/db/seeds/avatars/087.jpg +0 -0
  491. data/db/seeds/avatars/088.jpg +0 -0
  492. data/db/seeds/avatars/089.jpg +0 -0
  493. data/db/seeds/avatars/090.jpg +0 -0
  494. data/db/seeds/avatars/091.jpg +0 -0
  495. data/db/seeds/avatars/092.jpg +0 -0
  496. data/db/seeds/avatars/093.jpg +0 -0
  497. data/db/seeds/avatars/094.jpg +0 -0
  498. data/db/seeds/avatars/095.jpg +0 -0
  499. data/db/seeds/avatars/096.jpg +0 -0
  500. data/db/seeds/avatars/097.jpg +0 -0
  501. data/db/seeds/avatars/098.jpg +0 -0
  502. data/db/seeds/avatars/099.jpg +0 -0
  503. data/db/seeds/avatars/100.jpg +0 -0
  504. data/db/seeds/avatars/CREDITS.md +114 -0
  505. data/db/seeds/avatars/README.md +25 -0
  506. data/decidim-core.gemspec +7 -5
  507. data/lib/decidim/acts_as_author.rb +1 -1
  508. data/lib/decidim/admin_filter.rb +44 -0
  509. data/lib/decidim/admin_filters_registry.rb +55 -0
  510. data/lib/decidim/amendable.rb +1 -2
  511. data/lib/decidim/api/functions/component_finder_base.rb +1 -1
  512. data/lib/decidim/api/functions/needs_api_filter_and_order.rb +3 -3
  513. data/lib/decidim/api/functions/participatory_space_finder_base.rb +1 -1
  514. data/lib/decidim/api/functions/participatory_space_list_base.rb +1 -1
  515. data/lib/decidim/api/input_filters/user_entity_input_filter.rb +3 -3
  516. data/lib/decidim/api/interfaces/author_interface.rb +1 -1
  517. data/lib/decidim/api/types/organization_type.rb +1 -1
  518. data/lib/decidim/api/types/user_group_type.rb +1 -1
  519. data/lib/decidim/api/types/user_type.rb +1 -1
  520. data/lib/decidim/asset_router/pipeline.rb +2 -2
  521. data/lib/decidim/asset_router/storage.rb +11 -214
  522. data/lib/decidim/assets/tailwind/instance.rb +1 -1
  523. data/lib/decidim/assets/tailwind/tailwind.config.js.erb +8 -3
  524. data/lib/decidim/attribute_object/model.rb +2 -2
  525. data/lib/decidim/attribute_object/type_resolver.rb +1 -3
  526. data/lib/decidim/attribute_object.rb +2 -2
  527. data/lib/decidim/attributes.rb +0 -4
  528. data/lib/decidim/authorable.rb +5 -0
  529. data/lib/decidim/command.rb +2 -2
  530. data/lib/decidim/commands/create_resource.rb +63 -0
  531. data/lib/decidim/commands/destroy_resource.rb +74 -0
  532. data/lib/decidim/commands/hook_error.rb +8 -0
  533. data/lib/decidim/commands/resource_handler.rb +85 -0
  534. data/lib/decidim/commands/update_resource.rb +64 -0
  535. data/lib/decidim/component_manifest.rb +3 -1
  536. data/lib/decidim/component_validator.rb +1 -1
  537. data/lib/decidim/content_blocks/has_related_components.rb +1 -1
  538. data/lib/decidim/content_parsers/resource_parser.rb +2 -2
  539. data/lib/decidim/content_processor.rb +1 -1
  540. data/lib/decidim/content_security_policy.rb +1 -1
  541. data/lib/decidim/core/engine.rb +12 -23
  542. data/lib/decidim/core/menu.rb +13 -3
  543. data/lib/decidim/core/seeds.rb +120 -147
  544. data/lib/decidim/core/test/factories.rb +24 -3
  545. data/lib/decidim/core/test/shared_examples/acts_as_author_examples.rb +1 -1
  546. data/lib/decidim/core/test/shared_examples/amendable/withdraw_amendment_examples.rb +2 -2
  547. data/lib/decidim/core/test/shared_examples/announcements_examples.rb +3 -3
  548. data/lib/decidim/core/test/shared_examples/assembly_announcements_examples.rb +4 -4
  549. data/lib/decidim/core/test/shared_examples/attachable_interface_examples.rb +1 -1
  550. data/lib/decidim/core/test/shared_examples/comments_examples.rb +88 -82
  551. data/lib/decidim/core/test/shared_examples/comments_reports_examples.rb +4 -4
  552. data/lib/decidim/core/test/shared_examples/digest_mail_examples.rb +1 -1
  553. data/lib/decidim/core/test/shared_examples/edit_link_shared_examples.rb +1 -1
  554. data/lib/decidim/core/test/shared_examples/editor_shared_examples.rb +7 -7
  555. data/lib/decidim/core/test/shared_examples/fingerprint_examples.rb +1 -1
  556. data/lib/decidim/core/test/shared_examples/follows_examples.rb +6 -11
  557. data/lib/decidim/core/test/shared_examples/has_attachment_collections.rb +4 -2
  558. data/lib/decidim/core/test/shared_examples/has_attachments.rb +3 -2
  559. data/lib/decidim/core/test/shared_examples/has_contextual_help.rb +4 -4
  560. data/lib/decidim/core/test/shared_examples/has_reference.rb +1 -1
  561. data/lib/decidim/core/test/shared_examples/logo_email.rb +1 -1
  562. data/lib/decidim/core/test/shared_examples/manage_component_share_tokens.rb +9 -9
  563. data/lib/decidim/core/test/shared_examples/map_examples.rb +5 -5
  564. data/lib/decidim/core/test/shared_examples/paginated_resource_examples.rb +7 -7
  565. data/lib/decidim/core/test/shared_examples/participatory_space_dropdown_metadata_cell_examples.rb +3 -3
  566. data/lib/decidim/core/test/shared_examples/preview_component_with_share_token_examples.rb +3 -3
  567. data/lib/decidim/core/test/shared_examples/process_announcements_examples.rb +4 -4
  568. data/lib/decidim/core/test/shared_examples/reports_examples.rb +5 -5
  569. data/lib/decidim/core/test/shared_examples/rich_text_editor_examples.rb +10 -10
  570. data/lib/decidim/core/test/shared_examples/searchable_participatory_space_examples.rb +1 -1
  571. data/lib/decidim/core/test/shared_examples/searchable_results_examples.rb +8 -8
  572. data/lib/decidim/core/test/shared_examples/share_link_examples.rb +2 -2
  573. data/lib/decidim/core/test/shared_examples/simple_event.rb +1 -1
  574. data/lib/decidim/core/test/shared_examples/space_cell_changes_button_text_cta.rb +3 -3
  575. data/lib/decidim/core/test/shared_examples/system_endorse_resource_examples.rb +11 -11
  576. data/lib/decidim/core/test/shared_examples/translated_event_examples.rb +2 -2
  577. data/lib/decidim/core/test/shared_examples/uncommentable_component_examples.rb +2 -2
  578. data/lib/decidim/core/test/shared_examples/with_endorsable_permissions_examples.rb +1 -1
  579. data/lib/decidim/core/version.rb +1 -1
  580. data/lib/decidim/core.rb +24 -6
  581. data/lib/decidim/dependency_resolver.rb +3 -3
  582. data/lib/decidim/diffy_extension.rb +1 -1
  583. data/lib/decidim/download_your_data_serializers/download_your_data_user_serializer.rb +2 -1
  584. data/lib/decidim/engine_router.rb +2 -2
  585. data/lib/decidim/events/base_event.rb +19 -0
  586. data/lib/decidim/events/simple_event.rb +1 -0
  587. data/lib/decidim/exporters/export_manifest.rb +1 -1
  588. data/lib/decidim/faker/localized.rb +3 -3
  589. data/lib/decidim/form_builder.rb +4 -4
  590. data/lib/decidim/hashtag.rb +1 -1
  591. data/lib/decidim/jsonb_attributes.rb +4 -4
  592. data/lib/decidim/manifest_messages.rb +2 -2
  593. data/lib/decidim/organization_settings.rb +5 -5
  594. data/lib/decidim/paddable.rb +1 -1
  595. data/lib/decidim/participable.rb +1 -1
  596. data/lib/decidim/participatory_space_manifest.rb +1 -1
  597. data/lib/decidim/resourceable.rb +1 -1
  598. data/lib/decidim/search_resource_fields_mapper.rb +2 -2
  599. data/lib/decidim/searchable.rb +3 -3
  600. data/lib/decidim/seeds.rb +62 -0
  601. data/lib/decidim/stats_registry.rb +2 -2
  602. data/lib/decidim/translatable_attributes.rb +3 -3
  603. data/lib/decidim/translatable_resource.rb +1 -1
  604. data/lib/decidim/view_hooks.rb +1 -1
  605. data/lib/decidim/view_model.rb +4 -0
  606. data/lib/decidim/webpacker/esbuild.config.js +14 -0
  607. data/lib/decidim/webpacker/shakapacker.yml +2 -2
  608. data/lib/decidim/webpacker/tsconfig.json +11 -0
  609. data/lib/decidim/webpacker/webpack/custom.js +13 -35
  610. data/lib/devise/models/decidim_newsletterable.rb +1 -1
  611. data/lib/tasks/decidim_download_your_data_tasks.rake +2 -2
  612. data/lib/tasks/decidim_locales_tasks.rake +1 -1
  613. data/lib/tasks/decidim_mailers_tasks.rake +2 -2
  614. data/lib/tasks/decidim_metrics_tasks.rake +6 -6
  615. data/lib/tasks/decidim_procfile.rake +9 -3
  616. data/lib/tasks/decidim_tasks.rake +5 -4
  617. data/lib/tasks/decidim_webpacker_tasks.rake +126 -117
  618. data/lib/tasks/upgrade/decidim_active_storage_migration_tasks.rake +80 -0
  619. data/lib/tasks/upgrade/decidim_content_blocks_tasks.rake +50 -0
  620. data/lib/tasks/upgrade/decidim_deduplicate_endorsements.rake +1 -1
  621. data/lib/tasks/upgrade/decidim_fix_categorization.rake +0 -100
  622. data/lib/tasks/upgrade/decidim_fix_nickname_uniqueness.rake +1 -1
  623. data/lib/tasks/upgrade/decidim_fix_short_url_resolver.rake +1 -1
  624. data/lib/tasks/upgrade/decidim_moderation_tasks.rake +1 -1
  625. data/lib/tasks/upgrade/decidim_user_moderation.rake +1 -1
  626. metadata +218 -77
  627. data/app/cells/decidim/content_blocks/cta/show.erb +0 -12
  628. data/app/cells/decidim/content_blocks/cta_cell.rb +0 -31
  629. data/app/cells/decidim/footer_pages/pages.erb +0 -3
  630. data/app/cells/decidim/footer_pages/topics.erb +0 -12
  631. data/app/cells/decidim/footer_pages_cell.rb +0 -68
  632. data/app/packs/src/decidim/vendor/modernizr.js +0 -5
  633. data/app/queries/decidim/similar_emendations.rb +0 -56
  634. data/app/uploaders/decidim/cw/application_uploader.rb +0 -77
  635. data/app/uploaders/decidim/cw/attachment_uploader.rb +0 -56
  636. data/app/uploaders/decidim/cw/avatar_uploader.rb +0 -24
  637. data/app/uploaders/decidim/cw/banner_image_uploader.rb +0 -7
  638. data/app/uploaders/decidim/cw/download_your_data_uploader.rb +0 -15
  639. data/app/uploaders/decidim/cw/downloader.rb +0 -9
  640. data/app/uploaders/decidim/cw/hero_image_uploader.rb +0 -10
  641. data/app/uploaders/decidim/cw/homepage_image_uploader.rb +0 -14
  642. data/app/uploaders/decidim/cw/image_uploader.rb +0 -78
  643. data/app/uploaders/decidim/cw/newsletter_template_image_uploader.rb +0 -38
  644. data/app/uploaders/decidim/cw/oauth_application_logo_uploader.rb +0 -10
  645. data/app/uploaders/decidim/cw/official_image_footer_uploader.rb +0 -10
  646. data/app/uploaders/decidim/cw/official_image_header_uploader.rb +0 -10
  647. data/app/uploaders/decidim/cw/open_data_uploader.rb +0 -23
  648. data/app/uploaders/decidim/cw/organization_favicon_uploader.rb +0 -18
  649. data/app/uploaders/decidim/cw/organization_logo_uploader.rb +0 -10
  650. data/app/uploaders/decidim/cw/record_image_uploader.rb +0 -15
  651. data/app/uploaders/decidim/downloader.rb +0 -9
  652. data/app/views/decidim/amendments/compare_draft.html.erb +0 -18
  653. data/app/views/layouts/decidim/_edit_link.html.erb +0 -0
  654. data/app/views/layouts/decidim/header/_main_links_mobile.html.erb +0 -36
  655. data/config/initializers/carrierwave.rb +0 -15
  656. data/lib/decidim/carrier_wave_migrator_service.rb +0 -287
  657. data/lib/decidim/seven_zip_wrapper.rb +0 -29
  658. data/lib/tasks/decidim_active_storage_migration_tasks.rake +0 -114
  659. data/lib/tasks/decidim_content_blocks_tasks.rake +0 -48
  660. /data/app/views/layouts/decidim/header/{_menu_breadcrumb_main_dropdown.html.erb → _menu_breadcrumb_main_dropdown_desktop.html.erb} +0 -0
@@ -10,7 +10,7 @@ shared_examples_for "attachable interface" do
10
10
 
11
11
  it "includes the attachment urls" do
12
12
  attachment_urls = response["attachments"].map { |attachment| attachment["url"] }
13
- expect(attachment_urls).to include_blob_urls(*attachments.map(&:file).map(&:blob))
13
+ expect(attachment_urls).to include(*attachments.map(&:url))
14
14
  end
15
15
  end
16
16
  end
@@ -16,8 +16,8 @@ shared_examples "comments" do
16
16
  it "shows the list of comments for the resource" do
17
17
  visit resource_path
18
18
 
19
- expect(page).to have_selector("#comments")
20
- expect(page).to have_selector(".comment", count: comments.length)
19
+ expect(page).to have_css("#comments")
20
+ expect(page).to have_css(".comment", count: comments.length)
21
21
 
22
22
  within "#comments" do
23
23
  comments.each do |comment|
@@ -33,12 +33,12 @@ shared_examples "comments" do
33
33
 
34
34
  visit resource_path
35
35
 
36
- expect(page).not_to have_content("Comments are disabled at this time")
36
+ expect(page).to have_no_content("Comments are disabled at this time")
37
37
 
38
38
  expect(page).to have_css(".comment", minimum: 1)
39
39
 
40
40
  within ".comment-order-by" do
41
- click_link "Best rated"
41
+ click_on "Best rated"
42
42
  end
43
43
 
44
44
  expect(page).to have_css(".comments > div:nth-child(2)", text: "Most Rated Comment")
@@ -50,7 +50,7 @@ shared_examples "comments" do
50
50
 
51
51
  it "displays the show replies link on comment with reply" do
52
52
  visit resource_path
53
- expect(page).not_to have_content("Comments are disabled at this time")
53
+ expect(page).to have_no_content("Comments are disabled at this time")
54
54
  expect(page).to have_css(".comment", minimum: 1)
55
55
 
56
56
  within("#accordion-#{single_comment.id}") do
@@ -66,11 +66,11 @@ shared_examples "comments" do
66
66
 
67
67
  it "displays the show replies link on comment with reply" do
68
68
  visit resource_path
69
- expect(page).not_to have_content("Comments are disabled at this time")
69
+ expect(page).to have_no_content("Comments are disabled at this time")
70
70
  expect(page).to have_css(".comment", minimum: 1)
71
71
 
72
72
  within("#accordion-#{single_comment.id}") do
73
- expect(page).not_to have_content "Hide reply"
73
+ expect(page).to have_no_content "Hide reply"
74
74
  end
75
75
  end
76
76
  end
@@ -85,18 +85,18 @@ shared_examples "comments" do
85
85
  end
86
86
 
87
87
  it "shows only a deletion message for deleted comments" do
88
- expect(page).to have_selector("#comment_#{deleted_comment.id}")
88
+ expect(page).to have_css("#comment_#{deleted_comment.id}")
89
89
 
90
- expect(page).not_to have_content(deleted_comment.author.name)
91
- expect(page).not_to have_content(translated(deleted_comment.body))
90
+ expect(page).to have_no_content(deleted_comment.author.name)
91
+ expect(page).to have_no_content(translated(deleted_comment.body))
92
92
  within "#comment_#{deleted_comment.id}" do
93
93
  expect(page).to have_content("Comment deleted on")
94
- expect(page).not_to have_selector("comment__footer")
94
+ expect(page).to have_no_css(".comment__header")
95
95
  end
96
96
  end
97
97
 
98
98
  it "counts only not deleted comments" do
99
- expect(page).to have_selector("span.comments-count", text: "#{comments.length - 1} comments")
99
+ expect(page).to have_css("span.comments-count", text: "#{comments.length - 1} comments")
100
100
  end
101
101
 
102
102
  context "when deleted comment has replies, they are shown" do
@@ -106,7 +106,7 @@ shared_examples "comments" do
106
106
  visit resource_path
107
107
 
108
108
  within "#comment_#{deleted_comment.id}" do
109
- expect(page).to have_selector("#comment-#{deleted_comment.id}-replies")
109
+ expect(page).to have_css("#comment-#{deleted_comment.id}-replies")
110
110
  expect(page).to have_content(reply.author.name)
111
111
  expect(page).to have_content(reply.body.values.first)
112
112
  end
@@ -117,7 +117,7 @@ shared_examples "comments" do
117
117
  context "when not authenticated" do
118
118
  it "does not show form to add comments to user" do
119
119
  visit resource_path
120
- expect(page).not_to have_css(".add-comment form")
120
+ expect(page).to have_no_css(".add-comment form")
121
121
  expect(page).to have_css(".comment-thread")
122
122
  end
123
123
  end
@@ -129,7 +129,7 @@ shared_examples "comments" do
129
129
  end
130
130
 
131
131
  it "shows form to add comments to user" do
132
- expect(page).to have_selector(".add-comment form")
132
+ expect(page).to have_css(".add-comment form")
133
133
  end
134
134
 
135
135
  context "when user is not authorized to comment" do
@@ -153,7 +153,7 @@ shared_examples "comments" do
153
153
 
154
154
  it "shows a message indicating that comments are restricted" do
155
155
  visit resource_path
156
- expect(page).not_to have_content("Comments are disabled at this time")
156
+ expect(page).to have_no_content("Comments are disabled at this time")
157
157
  expect(page).to have_content("You need to be verified to comment at this moment")
158
158
  end
159
159
  end
@@ -161,27 +161,33 @@ shared_examples "comments" do
161
161
  describe "when using emojis" do
162
162
  before do
163
163
  within_language_menu do
164
- click_link "Castellano"
164
+ click_on "Castellano"
165
165
  end
166
166
  end
167
167
  shared_examples_for "allowing to select emojis" do
168
168
  it "allows selecting emojis" do
169
169
  within_language_menu do
170
- click_link locale
170
+ click_on locale
171
171
  end
172
172
 
173
173
  within ".add-comment form" do
174
- expect(page).to have_selector(".emoji__container")
175
- expect(page).to have_selector(".emoji__trigger .emoji__button")
174
+ expect(page).to have_css(".emoji__container")
175
+ expect(page).to have_css(".emoji__trigger .emoji__button")
176
176
  find(".emoji__trigger .emoji__button").click
177
177
  end
178
178
 
179
- within ".picmo__popupContainer .picmo__picker .picmo__content" do
179
+ within ".emoji__decidim" do
180
180
  expect(page).to have_content(phrase)
181
- categories = page.all(".picmo__emojiCategory")
182
- within categories[1] do
183
- click_button "😀"
184
- end
181
+ # Since emoji-mart is a React component, we need to use JS to click on an emoji icon
182
+ # as the emoji picker is a shadow DOM element.
183
+ # The script below is trying to find the first emoji in the "Smileys & People" category and simulate
184
+ # a click from the user on it.
185
+ script = <<~JS
186
+ var emoji_picker = document.getElementsByTagName("em-emoji-picker")[0];
187
+ var category = emoji_picker.shadowRoot.querySelectorAll("div.category")[1]
188
+ category.querySelectorAll("button")[0].click();
189
+ JS
190
+ execute_script(script)
185
191
  end
186
192
 
187
193
  within ".add-comment form" do
@@ -192,14 +198,14 @@ shared_examples "comments" do
192
198
 
193
199
  context "when the locale is supported" do
194
200
  let(:locale) { "English" }
195
- let(:phrase) { "SMILEYS & EMOTION" }
201
+ let(:phrase) { I18n.t("emojis.categories.people") }
196
202
 
197
203
  it_behaves_like "allowing to select emojis"
198
204
  end
199
205
 
200
206
  context "when the locale is not supported" do
201
207
  let(:locale) { "Català" }
202
- let(:phrase) { "SOMRIURES I EMOCIONS" }
208
+ let(:phrase) { I18n.with_locale(:ca) { I18n.t("emojis.categories.people") } }
203
209
 
204
210
  it_behaves_like "allowing to select emojis"
205
211
  end
@@ -452,11 +458,11 @@ shared_examples "comments" do
452
458
  field.native.send_keys "toto"
453
459
  end
454
460
 
455
- expect(page).not_to have_selector(".picmo__picker.picmo__picker")
461
+ expect(page).to have_no_css(".emoji__decidim")
456
462
  within "form#new_comment_for_#{commentable.commentable_type.demodulize}_#{commentable.id}" do
457
463
  find(".emoji__button").click
458
464
  end
459
- expect(page).to have_selector(".picmo__picker.picmo__picker")
465
+ expect(page).to have_css(".emoji__decidim")
460
466
  end
461
467
  end
462
468
 
@@ -471,7 +477,7 @@ shared_examples "comments" do
471
477
  field.native.send_keys("0123456789012345678901234567")
472
478
  find(".emoji__button").click
473
479
  end
474
- expect(page).not_to have_selector(".picmo__picker.picmo__picker")
480
+ expect(page).to have_no_css(".emoji-picker__picker.emoji-picker__picker")
475
481
  end
476
482
  end
477
483
  end
@@ -485,13 +491,13 @@ shared_examples "comments" do
485
491
  field = find("#add-comment-#{commentable.commentable_type.demodulize}-#{commentable.id}")
486
492
  field.set " "
487
493
  field.native.send_keys content
488
- click_button "Publish comment"
494
+ click_on "Publish comment"
489
495
  end
490
496
  end
491
497
 
492
498
  it "shows comment to the user, updates the comments counter and clears the comment textarea" do
493
499
  expect(page).to have_comment_from(user, content, wait: 20)
494
- expect(page).to have_selector("span.comments-count", text: "#{commentable.comments.count} comments")
500
+ expect(page).to have_css("span.comments-count", text: "#{commentable.comments.count} comments")
495
501
  expect(page.find("#add-comment-#{commentable.commentable_type.demodulize}-#{commentable.id}").value).to be_empty
496
502
  end
497
503
  end
@@ -504,7 +510,7 @@ shared_examples "comments" do
504
510
  field = find("#add-comment-#{commentable.commentable_type.demodulize}-#{commentable.id}")
505
511
  field.set " "
506
512
  field.native.send_keys content
507
- click_button "Publish comment"
513
+ click_on "Publish comment"
508
514
  end
509
515
  end
510
516
 
@@ -555,9 +561,9 @@ shared_examples "comments" do
555
561
  it "displays the show button" do
556
562
  visit current_path
557
563
  within "#comment_#{thread.id}" do
558
- click_button "Hide reply"
564
+ click_on "Hide reply"
559
565
  expect(page).to have_content("Show reply")
560
- expect(page).not_to have_content(new_reply_body)
566
+ expect(page).to have_no_content(new_reply_body)
561
567
  end
562
568
  end
563
569
 
@@ -567,9 +573,9 @@ shared_examples "comments" do
567
573
  it "displays the show button" do
568
574
  visit current_path
569
575
  within "#comment_#{thread.id}" do
570
- click_button "Hide 3 replies"
576
+ click_on "Hide 3 replies"
571
577
  expect(page).to have_content("Show 3 replies")
572
- expect(page).not_to have_content(new_reply_body)
578
+ expect(page).to have_no_content(new_reply_body)
573
579
  end
574
580
  end
575
581
  end
@@ -618,7 +624,7 @@ shared_examples "comments" do
618
624
  field.set " "
619
625
  field.native.send_keys content
620
626
  select user_group.name, from: "Comment as"
621
- click_button "Publish comment"
627
+ click_on "Publish comment"
622
628
  end
623
629
 
624
630
  expect(page).to have_comment_from(user_group, content, wait: 20)
@@ -639,7 +645,7 @@ shared_examples "comments" do
639
645
  it "the context menu of the comment does not show a delete link" do
640
646
  within "#comment_#{comment.id}" do
641
647
  page.find("[id^='dropdown-trigger']").click
642
- expect(page).not_to have_link("Delete")
648
+ expect(page).to have_no_link("Delete")
643
649
  end
644
650
  end
645
651
  end
@@ -659,18 +665,18 @@ shared_examples "comments" do
659
665
 
660
666
  within "#comment_#{comment.id}" do
661
667
  page.find("[id^='dropdown-trigger']").click
662
- click_link "Delete"
668
+ click_on "Delete"
663
669
  end
664
670
 
665
671
  accept_confirm
666
672
 
667
- expect(page).to have_selector("#comment_#{comment.id}")
673
+ expect(page).to have_css("#comment_#{comment.id}")
668
674
  within "#comment_#{comment.id}" do
669
675
  expect(page).to have_content("Comment deleted on")
670
- expect(page).not_to have_content comment_author.name
671
- expect(page).not_to have_selector("comment__footer")
676
+ expect(page).to have_no_content comment_author.name
677
+ expect(page).to have_no_css(".comment__header")
672
678
  end
673
- expect(page).to have_selector("span.comments-count", text: "3 comments")
679
+ expect(page).to have_css("span.comments-count", text: "3 comments")
674
680
 
675
681
  expect(Decidim::Comments::Comment.not_deleted.count).to eq(3)
676
682
  end
@@ -692,7 +698,7 @@ shared_examples "comments" do
692
698
  within "#comment_#{comment.id}" do
693
699
  # Toolbar
694
700
  page.find("[id^='dropdown-trigger']").click
695
- expect(page).not_to have_button("Edit")
701
+ expect(page).to have_no_button("Edit")
696
702
  end
697
703
  end
698
704
  end
@@ -713,16 +719,16 @@ shared_examples "comments" do
713
719
  within "#comment_#{comment.id}" do
714
720
  # Toolbar
715
721
  page.find("[id^='dropdown-trigger']").click
716
- click_button "Edit"
722
+ click_on "Edit"
717
723
  end
718
724
  fill_in "edit_comment_#{comment.id}", with: " This comment has been fixed"
719
- click_button "Send"
725
+ click_on "Send"
720
726
  end
721
727
 
722
728
  it "the comment body changes" do
723
729
  within "#comment_#{comment.id}" do
724
730
  expect(page).to have_content("This comment has been fixed")
725
- expect(page).not_to have_content(comment_body)
731
+ expect(page).to have_no_content(comment_body)
726
732
  end
727
733
  end
728
734
 
@@ -744,20 +750,20 @@ shared_examples "comments" do
744
750
  visit resource_path
745
751
 
746
752
  within "#comments #comment_#{comment.id}" do
747
- click_button "Reply"
753
+ click_on "Reply"
748
754
  end
749
755
 
750
- expect(page).to have_selector("#comment_#{comment.id} .add-comment")
756
+ expect(page).to have_css("#comment_#{comment.id} .add-comment")
751
757
 
752
758
  within "form#new_comment_for_#{comment.commentable_type.demodulize}_#{comment.id}" do
753
759
  field = find("#add-comment-#{comment.commentable_type.demodulize}-#{comment.id}")
754
760
  field.set " "
755
761
  field.native.send_keys content
756
- click_button "Publish reply"
762
+ click_on "Publish reply"
757
763
  end
758
764
 
759
765
  expect(page).to have_reply_to(comment, content)
760
- expect(page).to have_selector("span.comments-count", text: "#{commentable.comments.count} comments")
766
+ expect(page).to have_css("span.comments-count", text: "#{commentable.comments.count} comments")
761
767
  expect(page).to have_reply_to(comment, "This is a reply")
762
768
  end
763
769
  end
@@ -772,7 +778,7 @@ shared_examples "comments" do
772
778
  visit current_path
773
779
 
774
780
  within "#comments #comment_#{parent.id}" do
775
- expect(page).to have_selector("#comment-#{parent.id}-replies")
781
+ expect(page).to have_css("#comment-#{parent.id}-replies")
776
782
  expect(page.find("#comment-#{parent.id}-replies").text).to be_blank
777
783
  end
778
784
  end
@@ -783,29 +789,29 @@ shared_examples "comments" do
783
789
  before do
784
790
  visit resource_path
785
791
 
786
- expect(page).to have_selector(".add-comment form")
792
+ expect(page).to have_css(".add-comment form")
787
793
  end
788
794
 
789
795
  it "works according to the setting in the commentable" do
790
796
  if commentable.comments_have_alignment?
791
- page.find(".opinion-toggle--ok").click
792
- expect(page.find(".opinion-toggle--ok")["aria-pressed"]).to eq("true")
793
- expect(page.find(".opinion-toggle--meh")["aria-pressed"]).to eq("false")
794
- expect(page.find(".opinion-toggle--ko")["aria-pressed"]).to eq("false")
795
- expect(page.find(".opinion-toggle .selected-state", visible: false)).to have_content("Your opinion about this topic is positive")
797
+ page.find("[data-toggle-ok=true]").click
798
+ expect(page.find("[data-toggle-ok=true]")["aria-pressed"]).to eq("true")
799
+ expect(page.find("[data-toggle-meh=true]")["aria-pressed"]).to eq("false")
800
+ expect(page.find("[data-toggle-ko=true]")["aria-pressed"]).to eq("false")
801
+ expect(page.find("div[data-opinion-toggle] .selected-state", visible: false)).to have_content("Your opinion about this topic is positive")
796
802
 
797
803
  within "form#new_comment_for_#{commentable.commentable_type.demodulize}_#{commentable.id}" do
798
804
  field = find("#add-comment-#{commentable.commentable_type.demodulize}-#{commentable.id}")
799
805
  field.set " "
800
806
  field.native.send_keys "I am in favor about this!"
801
- click_button "Publish comment"
807
+ click_on "Publish comment"
802
808
  end
803
809
 
804
810
  within "#comments" do
805
- expect(page).to have_selector "span.success.label", text: "In favor", wait: 20
811
+ expect(page).to have_css "span.success.label", text: "In favor", wait: 20
806
812
  end
807
813
  else
808
- expect(page).not_to have_selector(".opinion-toggle--ok")
814
+ expect(page).to have_no_css("[data-toggle-ok=true]")
809
815
  end
810
816
  end
811
817
  end
@@ -820,11 +826,11 @@ shared_examples "comments" do
820
826
  it "works according to the setting in the commentable" do
821
827
  within "#comment_#{comments[0].id}" do
822
828
  if commentable.comments_have_votes?
823
- expect(page).to have_selector(".js-comment__votes--up", text: /0/)
829
+ expect(page).to have_css(".js-comment__votes--up", text: /0/)
824
830
  page.find(".js-comment__votes--up").click
825
- expect(page).to have_selector(".js-comment__votes--up", text: /1/)
831
+ expect(page).to have_css(".js-comment__votes--up", text: /1/)
826
832
  else
827
- expect(page).not_to have_selector(".js-comment__votes--up", text: /0/)
833
+ expect(page).to have_no_css(".js-comment__votes--up", text: /0/)
828
834
  end
829
835
  end
830
836
  end
@@ -836,10 +842,10 @@ shared_examples "comments" do
836
842
  skip "Commentable comments has no votes" unless commentable.comments_have_votes?
837
843
 
838
844
  visit current_path
839
- expect(page).to have_selector("#comment_#{comments[0].id} > .comment__footer > .comment__footer-grid .comment__votes .js-comment__votes--up", text: /0/)
840
- page.find("#comment_#{comments[0].id} > .comment__footer > .comment__footer-grid .comment__votes .js-comment__votes--up").click
841
- expect(page).to have_selector("#comment_#{comments[0].id} > .comment__footer > .comment__footer-grid .comment__votes .js-comment__votes--up", text: /1/)
842
- expect(page).to have_selector("#comment_#{comment_on_comment.id} > .comment__footer > .comment__footer-grid .comment__votes .js-comment__votes--up", text: /0/)
845
+ expect(page).to have_css("#comment_#{comments[0].id} > [data-comment-footer] > .comment__footer-grid .comment__votes .js-comment__votes--up", text: /0/)
846
+ page.find("#comment_#{comments[0].id} > [data-comment-footer] > .comment__footer-grid .comment__votes .js-comment__votes--up").click
847
+ expect(page).to have_css("#comment_#{comments[0].id} > [data-comment-footer] > .comment__footer-grid .comment__votes .js-comment__votes--up", text: /1/)
848
+ expect(page).to have_css("#comment_#{comment_on_comment.id} > [data-comment-footer] > .comment__footer-grid .comment__votes .js-comment__votes--up", text: /0/)
843
849
  end
844
850
  end
845
851
  end
@@ -848,11 +854,11 @@ shared_examples "comments" do
848
854
  it "works according to the setting in the commentable" do
849
855
  within "#comment_#{comments[0].id}" do
850
856
  if commentable.comments_have_votes?
851
- expect(page).to have_selector(".js-comment__votes--down", text: /0/)
857
+ expect(page).to have_css(".js-comment__votes--down", text: /0/)
852
858
  page.find(".js-comment__votes--down").click
853
- expect(page).to have_selector(".js-comment__votes--down", text: /1/)
859
+ expect(page).to have_css(".js-comment__votes--down", text: /1/)
854
860
  else
855
- expect(page).not_to have_selector(".js-comment__votes--down", text: /0/)
861
+ expect(page).to have_no_css(".js-comment__votes--down", text: /0/)
856
862
  end
857
863
  end
858
864
  end
@@ -876,7 +882,7 @@ shared_examples "comments" do
876
882
 
877
883
  context "when text finish with a mention" do
878
884
  it "shows the tribute container" do
879
- expect(page).to have_selector(".tribute-container", text: mentioned_user.name, wait: 10)
885
+ expect(page).to have_css(".tribute-container", text: mentioned_user.name, wait: 10)
880
886
  end
881
887
  end
882
888
 
@@ -884,7 +890,7 @@ shared_examples "comments" do
884
890
  let(:content) { "A valid user mention: @#{mentioned_user.nickname}." }
885
891
 
886
892
  it "shows the tribute container" do
887
- expect(page).not_to have_selector(".tribute-container", text: mentioned_user.name)
893
+ expect(page).to have_no_css(".tribute-container", text: mentioned_user.name)
888
894
  end
889
895
  end
890
896
  end
@@ -894,7 +900,7 @@ shared_examples "comments" do
894
900
  let(:content) { "A unconfirmed user mention: @#{mentioned_user.nickname}" }
895
901
 
896
902
  it "do not show the tribute container" do
897
- expect(page).not_to have_selector(".tribute-container", text: mentioned_user.name)
903
+ expect(page).to have_no_css(".tribute-container", text: mentioned_user.name)
898
904
  end
899
905
  end
900
906
 
@@ -903,7 +909,7 @@ shared_examples "comments" do
903
909
  let(:content) { "A confirmed user group mention: @#{mentioned_group.nickname}" }
904
910
 
905
911
  it "shows the tribute container" do
906
- expect(page).to have_selector(".tribute-container", text: mentioned_group.nickname, wait: 10)
912
+ expect(page).to have_css(".tribute-container", text: mentioned_group.nickname, wait: 10)
907
913
  end
908
914
  end
909
915
  end
@@ -916,7 +922,7 @@ shared_examples "comments" do
916
922
  field = find("#add-comment-#{commentable.commentable_type.demodulize}-#{commentable.id}")
917
923
  field.set " "
918
924
  field.native.send_keys content
919
- click_button "Publish comment"
925
+ click_on "Publish comment"
920
926
  end
921
927
  end
922
928
 
@@ -937,7 +943,7 @@ shared_examples "comments" do
937
943
 
938
944
  it "ignores the mention" do
939
945
  expect(page).to have_comment_from(user, "This text mentions a user outside current organization: @#{mentioned_user.nickname}", wait: 20)
940
- expect(page).not_to have_link "@#{mentioned_user.nickname}"
946
+ expect(page).to have_no_link "@#{mentioned_user.nickname}"
941
947
  end
942
948
  end
943
949
 
@@ -946,7 +952,7 @@ shared_examples "comments" do
946
952
 
947
953
  it "ignores the mention" do
948
954
  expect(page).to have_comment_from(user, "This text mentions a @nonexistent user", wait: 20)
949
- expect(page).not_to have_link "@nonexistent"
955
+ expect(page).to have_no_link "@nonexistent"
950
956
  end
951
957
  end
952
958
  end
@@ -961,7 +967,7 @@ shared_examples "comments" do
961
967
  field = find("#add-comment-#{commentable.commentable_type.demodulize}-#{commentable.id}")
962
968
  field.set " "
963
969
  field.native.send_keys content
964
- click_button "Publish comment"
970
+ click_on "Publish comment"
965
971
  end
966
972
  end
967
973
 
@@ -1009,7 +1015,7 @@ shared_examples "comments blocked" do
1009
1015
  it "shows a message indicating that comments are disabled" do
1010
1016
  visit resource_path
1011
1017
  expect(page).to have_content("Comments are disabled at this time")
1012
- expect(page).not_to have_content("You need to be verified to comment at this moment")
1018
+ expect(page).to have_no_content("You need to be verified to comment at this moment")
1013
1019
  end
1014
1020
  end
1015
1021
  end
@@ -1034,7 +1040,7 @@ shared_examples "comments blocked" do
1034
1040
  it "shows a message indicating that comments are disabled" do
1035
1041
  visit resource_path
1036
1042
  expect(page).to have_content("Comments are disabled at this time")
1037
- expect(page).not_to have_content("You need to be verified to comment at this moment")
1043
+ expect(page).to have_no_content("You need to be verified to comment at this moment")
1038
1044
  end
1039
1045
  end
1040
1046
  end
@@ -7,7 +7,7 @@ shared_examples "comments_reports" do
7
7
 
8
8
  # Open toolbar
9
9
  page.find("[id^='dropdown-trigger']").click
10
- click_button "Report"
10
+ click_on "Report"
11
11
 
12
12
  expect(page).to have_css("#loginModal", visible: :visible)
13
13
  end
@@ -24,12 +24,12 @@ shared_examples "comments_reports" do
24
24
 
25
25
  # Open toolbar
26
26
  page.find("[id^='dropdown-trigger']").click
27
- click_button "Report"
27
+ click_on "Report"
28
28
 
29
29
  expect(page).to have_css(".flag-modal", visible: :visible)
30
30
 
31
31
  within ".flag-modal" do
32
- click_button "Report"
32
+ click_on "Report"
33
33
  end
34
34
 
35
35
  expect(page).to have_content "report has been created"
@@ -47,7 +47,7 @@ shared_examples "comments_reports" do
47
47
 
48
48
  # Open toolbar
49
49
  page.find("[id^='dropdown-trigger']").click
50
- click_button "Report"
50
+ click_on "Report"
51
51
 
52
52
  expect(page).to have_css(".flag-modal", visible: :visible)
53
53
 
@@ -15,7 +15,7 @@ shared_context "when sends the notification digest" do
15
15
  end
16
16
 
17
17
  shared_examples_for "notification digest mail" do
18
- context "when a notificable event takes place" do
18
+ context "when a notifiable event takes place" do
19
19
  let!(:organization) { create(:organization) }
20
20
  let!(:participatory_space) { create(:participatory_process, organization:) }
21
21
 
@@ -27,7 +27,7 @@ shared_examples "editable content for admins" do
27
27
  let(:user) { create(:user, :confirmed, organization:) }
28
28
 
29
29
  it "does not have a link to edit the content at the admin" do
30
- expect(page).not_to have_css(header_selector)
30
+ expect(page).to have_no_css(header_selector)
31
31
  end
32
32
  end
33
33
  end
@@ -18,25 +18,25 @@ shared_examples_for "has embedded video in description" do |description_attribut
18
18
 
19
19
  context "when cookies are rejected" do
20
20
  before do
21
- click_link "Cookie settings"
22
- click_button "Accept only essential"
21
+ click_on "Cookie settings"
22
+ click_on "Accept only essential"
23
23
  end
24
24
 
25
25
  it "disables iframe" do
26
26
  expect(page).to have_content(cookie_warning)
27
- expect(page).not_to have_selector("iframe")
27
+ expect(page).to have_no_css("iframe")
28
28
  end
29
29
  end
30
30
 
31
31
  context "when cookies are accepted" do
32
32
  before do
33
- click_link "Cookie settings"
34
- click_button "Accept all"
33
+ click_on "Cookie settings"
34
+ click_on "Accept all"
35
35
  end
36
36
 
37
37
  it "shows iframe" do
38
- expect(page).not_to have_content(cookie_warning)
39
- expect(page).to have_selector("iframe", count:)
38
+ expect(page).to have_no_content(cookie_warning)
39
+ expect(page).to have_css("iframe", count:)
40
40
  end
41
41
  end
42
42
  end
@@ -5,7 +5,7 @@ shared_examples "fingerprint" do
5
5
 
6
6
  it "shows a fingerprint" do
7
7
  visit(resource_locator(fingerprintable).path)
8
- click_button("Check fingerprint")
8
+ click_on("Check fingerprint")
9
9
 
10
10
  within ".fingerprint-modal" do
11
11
  expect(page).to(have_content(fingerprintable.fingerprint.value))