decidim-core 0.28.5 → 0.29.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.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/app/cells/decidim/activities_cell.rb +0 -1
- data/app/cells/decidim/activity_cell.rb +7 -6
- data/app/cells/decidim/address/online.erb +2 -2
- data/app/cells/decidim/address_cell.rb +3 -9
- data/app/cells/decidim/amendable/amend_button_card_cell.rb +0 -2
- data/app/cells/decidim/amendable/amendments_cell.rb +0 -2
- data/app/cells/decidim/amendable/announcement_cell.rb +10 -14
- data/app/cells/decidim/amendable/emendation_actions_cell.rb +0 -2
- data/app/cells/decidim/amendable/promote_button_card_cell.rb +0 -2
- data/app/cells/decidim/amendable/wizard_step_form_cell.rb +6 -19
- data/app/cells/decidim/announcement/show.erb +1 -1
- data/app/cells/decidim/announcement_cell.rb +6 -2
- data/app/cells/decidim/attachments_file_tab/show.erb +3 -0
- data/app/cells/decidim/attachments_file_tab_cell.rb +11 -0
- data/app/cells/decidim/attachments_link_tab/show.erb +12 -0
- data/app/cells/decidim/attachments_link_tab_cell.rb +21 -0
- data/app/cells/decidim/author/flag.erb +2 -2
- data/app/cells/decidim/author/show.erb +4 -5
- data/app/cells/decidim/author_cell.rb +0 -28
- data/app/cells/decidim/authorization_modal_cell.rb +0 -3
- data/app/cells/decidim/badge_cell.rb +0 -4
- data/app/cells/decidim/badges_cell.rb +0 -2
- data/app/cells/decidim/button_cell.rb +0 -3
- data/app/cells/decidim/card_cell.rb +1 -5
- data/app/cells/decidim/card_g/show.erb +1 -1
- data/app/cells/decidim/card_g_cell.rb +4 -7
- data/app/cells/decidim/card_l/image.erb +2 -2
- data/app/cells/decidim/card_l/space.erb +1 -1
- data/app/cells/decidim/card_l_cell.rb +3 -8
- data/app/cells/decidim/card_metadata_cell.rb +1 -5
- data/app/cells/decidim/card_s/show.erb +3 -5
- data/app/cells/decidim/card_s_cell.rb +1 -4
- data/app/cells/decidim/coauthorships_cell.rb +0 -2
- data/app/cells/decidim/comments_button_cell.rb +0 -2
- data/app/cells/decidim/content_blocks/footer_sub_hero/show.erb +1 -1
- data/app/cells/decidim/content_blocks/footer_sub_hero_cell.rb +0 -3
- data/app/cells/decidim/content_blocks/hero/show.erb +1 -1
- data/app/cells/decidim/content_blocks/hero_cell.rb +1 -2
- data/app/cells/decidim/content_blocks/highlighted_content_banner/show.erb +1 -1
- data/app/cells/decidim/content_blocks/highlighted_content_banner_cell.rb +0 -2
- data/app/cells/decidim/content_blocks/how_to_participate/show.erb +1 -1
- data/app/cells/decidim/content_blocks/how_to_participate_cell.rb +0 -1
- data/app/cells/decidim/content_blocks/participatory_space_documents/content.erb +1 -1
- data/app/cells/decidim/content_blocks/participatory_space_documents_cell.rb +17 -1
- data/app/cells/decidim/content_blocks/participatory_space_hero_cell.rb +2 -4
- data/app/cells/decidim/content_blocks/participatory_space_last_activity_cell.rb +1 -3
- data/app/cells/decidim/content_blocks/stats/show.erb +1 -1
- data/app/cells/decidim/content_blocks/stats_cell.rb +1 -1
- data/app/cells/decidim/content_blocks/sub_hero_cell.rb +0 -3
- data/app/cells/decidim/date_range/show.erb +10 -10
- data/app/cells/decidim/date_range_cell.rb +0 -2
- data/app/cells/decidim/diff_cell.rb +0 -5
- data/app/cells/decidim/documents_panel/show.erb +4 -0
- data/app/cells/decidim/documents_panel_cell.rb +9 -1
- data/app/cells/decidim/endorsement_buttons_cell.rb +6 -14
- data/app/cells/decidim/flag_modal/flag_user.erb +3 -3
- data/app/cells/decidim/followers_cell.rb +0 -1
- data/app/cells/decidim/following_cell.rb +0 -1
- data/app/cells/decidim/footer_topics/show.erb +8 -0
- data/app/cells/decidim/footer_topics_cell.rb +39 -0
- data/app/cells/decidim/groups_cell.rb +0 -3
- data/app/cells/decidim/linked_resources_for_cell.rb +0 -3
- data/app/cells/decidim/members_cell.rb +0 -1
- data/app/cells/decidim/nav_links/show.erb +3 -3
- data/app/cells/decidim/navbar_admin_link_cell.rb +0 -2
- data/app/cells/decidim/newsletter_templates/base_cell.rb +0 -1
- data/app/cells/decidim/newsletter_templates/basic_only_text/show.erb +2 -2
- data/app/cells/decidim/newsletter_templates/image_text_cta/show.erb +2 -2
- data/app/cells/decidim/newsletter_templates/image_text_cta_cell.rb +1 -1
- data/app/cells/decidim/notification/show.erb +5 -0
- data/app/cells/decidim/notification_actions/base_cell.rb +13 -0
- data/app/cells/decidim/notification_actions/buttons/show.erb +5 -0
- data/app/cells/decidim/notification_actions/buttons_cell.rb +41 -0
- data/app/cells/decidim/notification_cell.rb +9 -3
- data/app/cells/decidim/notifications_cell.rb +0 -1
- data/app/cells/decidim/pad_iframe/show.erb +2 -2
- data/app/cells/decidim/pad_iframe_cell.rb +0 -1
- data/app/cells/decidim/participatory_space_dropdown_metadata_cell.rb +1 -2
- data/app/cells/decidim/photo_cell.rb +1 -5
- data/app/cells/decidim/photos_list_cell.rb +0 -2
- data/app/cells/decidim/profile_cell.rb +0 -2
- data/app/cells/decidim/profile_sidebar/show.erb +20 -20
- data/app/cells/decidim/profile_sidebar_cell.rb +1 -10
- data/app/cells/decidim/progress_bar/show.erb +8 -6
- data/app/cells/decidim/public_participation/show.erb +1 -1
- data/app/cells/decidim/report_button/flag_modal.erb +1 -1
- data/app/cells/decidim/resource_types_filter/show.erb +12 -11
- data/app/cells/decidim/resource_types_filter_cell.rb +0 -2
- data/app/cells/decidim/scopes_picker/show.erb +1 -1
- data/app/cells/decidim/scopes_picker_cell.rb +0 -1
- data/app/cells/decidim/search_results_cell.rb +1 -1
- data/app/cells/decidim/statistic_cell.rb +0 -2
- data/app/cells/decidim/tab_panels/show.erb +1 -1
- data/app/cells/decidim/tab_panels_cell.rb +12 -2
- data/app/cells/decidim/tags_cell.rb +0 -2
- data/app/cells/decidim/tos_page_cell.rb +0 -3
- data/app/cells/decidim/translation_bar/show.erb +2 -2
- data/app/cells/decidim/translation_bar_cell.rb +1 -3
- data/app/cells/decidim/upload_modal/files.erb +1 -1
- data/app/cells/decidim/upload_modal_cell.rb +1 -3
- data/app/cells/decidim/user_conversation/new.erb +1 -1
- data/app/cells/decidim/user_conversation/show.erb +1 -1
- data/app/cells/decidim/user_conversation_cell.rb +0 -1
- data/app/cells/decidim/user_conversations/show.erb +1 -1
- data/app/cells/decidim/user_conversations_cell.rb +0 -1
- data/app/cells/decidim/user_group_pending_invitations_list_cell.rb +0 -1
- data/app/cells/decidim/user_group_pending_requests_list_cell.rb +0 -1
- data/app/cells/decidim/user_timeline/show.erb +1 -1
- data/app/cells/decidim/version_cell.rb +3 -5
- data/app/cells/decidim/versions_list_cell.rb +1 -3
- data/app/cells/decidim/versions_list_item_cell.rb +2 -4
- data/app/cells/decidim/wizard_step_form/wizard_aside.erb +2 -2
- data/app/cells/decidim/wizard_step_form/wizard_header.erb +2 -3
- data/app/cells/decidim/wizard_step_form_cell.rb +0 -8
- data/app/commands/decidim/amendable/create_draft.rb +4 -4
- data/app/commands/decidim/amendable/promote.rb +3 -2
- data/app/commands/decidim/amendable/publish_draft.rb +3 -2
- data/app/commands/decidim/amendable/update_draft.rb +4 -3
- data/app/commands/decidim/amendable/withdraw.rb +1 -1
- data/app/commands/decidim/create_follow.rb +4 -4
- data/app/commands/decidim/create_omniauth_registration.rb +4 -10
- data/app/commands/decidim/create_report.rb +3 -3
- data/app/commands/decidim/create_user_report.rb +5 -5
- data/app/commands/decidim/delete_follow.rb +4 -4
- data/app/commands/decidim/demote_membership.rb +2 -2
- data/app/commands/decidim/destroy_account.rb +21 -22
- data/app/commands/decidim/endorse_resource.rb +1 -1
- data/app/commands/decidim/invite_user_to_group.rb +5 -4
- data/app/commands/decidim/update_account.rb +24 -22
- data/app/commands/decidim/update_notifications_settings.rb +13 -11
- data/app/commands/decidim/update_password.rb +7 -7
- data/app/commands/decidim/update_user_interests.rb +9 -7
- data/app/controllers/concerns/decidim/devise_authentication_methods.rb +1 -1
- data/app/controllers/concerns/decidim/devise_controllers.rb +2 -1
- data/app/controllers/concerns/decidim/filter_resource.rb +1 -1
- data/app/controllers/concerns/decidim/needs_rtl_direction.rb +23 -0
- data/app/controllers/concerns/decidim/paginable.rb +1 -1
- data/app/controllers/concerns/decidim/participatory_space_context.rb +1 -23
- data/app/controllers/concerns/decidim/payload_info.rb +2 -1
- data/app/controllers/concerns/decidim/registers_permissions.rb +4 -4
- data/app/controllers/concerns/decidim/use_organization_time_zone.rb +1 -1
- data/app/controllers/concerns/decidim/withdrawable.rb +1 -1
- data/app/controllers/decidim/account_controller.rb +2 -2
- data/app/controllers/{concerns/decidim → decidim}/amendments_controller.rb +3 -16
- data/app/controllers/decidim/application_controller.rb +1 -1
- data/app/controllers/decidim/components/base_controller.rb +1 -1
- data/app/controllers/decidim/devise/invitations_controller.rb +1 -1
- data/app/controllers/decidim/devise/passwords_controller.rb +2 -2
- data/app/controllers/decidim/doorkeeper/credentials_controller.rb +1 -1
- data/app/controllers/decidim/endorsements_controller.rb +1 -1
- data/app/controllers/decidim/favicon_controller.rb +1 -1
- data/app/controllers/decidim/follows_controller.rb +2 -2
- data/app/controllers/decidim/group_invites_controller.rb +36 -9
- data/app/controllers/decidim/links_controller.rb +1 -1
- data/app/controllers/decidim/newsletters_opt_in_controller.rb +1 -1
- data/app/controllers/decidim/notifications_settings_controller.rb +1 -1
- data/app/controllers/decidim/profiles_controller.rb +0 -4
- data/app/controllers/decidim/report_users_controller.rb +1 -1
- data/app/controllers/decidim/reports_controller.rb +1 -1
- data/app/controllers/decidim/user_interests_controller.rb +1 -1
- data/app/events/decidim/change_nickname_event.rb +0 -1
- data/app/events/decidim/invited_to_group_event.rb +29 -0
- data/app/events/decidim/welcome_notification_event.rb +2 -4
- data/app/forms/decidim/form.rb +4 -0
- data/app/forms/decidim/omniauth_registration_form.rb +1 -1
- data/app/forms/decidim/upload_validation_form.rb +2 -2
- data/app/helpers/concerns/decidim/flash_helper_extensions.rb +1 -1
- data/app/helpers/decidim/amendments_helper.rb +4 -14
- data/app/helpers/decidim/application_helper.rb +8 -0
- data/app/helpers/decidim/authorization_form_helper.rb +2 -2
- data/app/helpers/decidim/breadcrumb_helper.rb +1 -1
- data/app/helpers/decidim/cells_helper.rb +1 -1
- data/app/helpers/decidim/check_boxes_tree_helper.rb +1 -1
- data/app/helpers/decidim/cta_button_helper.rb +1 -1
- data/app/helpers/decidim/datalist_select_helper.rb +1 -1
- data/app/helpers/decidim/decidim_form_helper.rb +3 -3
- data/app/helpers/decidim/filters_helper.rb +1 -1
- data/app/helpers/decidim/layout_helper.rb +1 -64
- data/app/helpers/decidim/localized_locales_helper.rb +1 -1
- data/app/helpers/decidim/map_helper.rb +1 -6
- data/app/helpers/decidim/menu_helper.rb +9 -1
- data/app/helpers/decidim/meta_tags_helper.rb +26 -23
- data/app/helpers/decidim/modal_helper.rb +1 -1
- data/app/helpers/decidim/orders_helper.rb +1 -1
- data/app/helpers/decidim/organization_helper.rb +55 -0
- data/app/helpers/decidim/paginate_helper.rb +5 -3
- data/app/helpers/decidim/resource_helper.rb +0 -7
- data/app/helpers/decidim/sanitize_helper.rb +2 -11
- data/app/helpers/decidim/scopes_helper.rb +3 -4
- data/app/helpers/decidim/searches_helper.rb +1 -1
- data/app/helpers/decidim/short_link_helper.rb +2 -2
- data/app/helpers/decidim/translations_helper.rb +2 -2
- data/app/helpers/decidim/twitter_search_helper.rb +1 -1
- data/app/helpers/decidim/user_profile_helper.rb +0 -1
- data/app/jobs/decidim/email_notifications_digest_generator_job.rb +2 -2
- data/app/mailers/decidim/application_mailer.rb +6 -2
- data/app/mailers/decidim/block_user_mailer.rb +1 -1
- data/app/mailers/decidim/decidim_devise_mailer.rb +7 -1
- data/app/mailers/decidim/newsletter_mailer.rb +1 -4
- data/app/mailers/decidim/newsletters_opt_in_mailer.rb +2 -2
- data/app/mailers/decidim/notification_mailer.rb +0 -1
- data/app/mailers/decidim/notifications_digest_mailer.rb +0 -1
- data/app/mailers/decidim/reported_mailer.rb +6 -3
- data/app/mailers/decidim/user_report_mailer.rb +1 -1
- data/app/models/decidim/action_log.rb +2 -12
- data/app/models/decidim/area_type.rb +1 -1
- data/app/models/decidim/attachment.rb +28 -4
- data/app/models/decidim/authorization.rb +1 -1
- data/app/models/decidim/authorization_transfer.rb +1 -0
- data/app/models/decidim/component.rb +3 -6
- data/app/models/decidim/content_block.rb +3 -3
- data/app/models/decidim/messaging/message.rb +2 -2
- data/app/models/decidim/newsletter.rb +9 -9
- data/app/models/decidim/notification.rb +2 -2
- data/app/models/decidim/organization.rb +23 -2
- data/app/models/decidim/push_notification_message.rb +1 -1
- data/app/models/decidim/resource_link.rb +1 -1
- data/app/models/decidim/user.rb +14 -14
- data/app/models/decidim/user_group.rb +2 -2
- data/app/packs/src/decidim/a11y.js +61 -11
- data/app/packs/src/decidim/append_redirect_url_to_modals.js +14 -24
- data/app/packs/src/decidim/attachments/file_or_link_tabs.js +55 -0
- data/app/packs/src/decidim/attachments/index.js +1 -0
- data/app/packs/src/decidim/back_to_list.js +1 -1
- data/app/packs/src/decidim/check_boxes_tree.js +1 -1
- data/app/packs/src/decidim/data_consent/consent_manager.js +1 -1
- data/app/packs/src/decidim/data_consent/consent_manager.test.js +6 -6
- data/app/packs/src/decidim/data_consent/index.js +1 -1
- data/app/packs/src/decidim/datepicker/datepicker_functions.js +243 -0
- data/app/packs/src/decidim/datepicker/datepicker_listeners.js +78 -0
- data/app/packs/src/decidim/datepicker/form_datepicker.js +91 -0
- data/app/packs/src/decidim/datepicker/generate_datepicker.js +148 -0
- data/app/packs/src/decidim/datepicker/generate_timepicker.js +298 -0
- data/app/packs/src/decidim/datepicker/test/date.test.js +118 -0
- data/app/packs/src/decidim/datepicker/test/time.test.js +227 -0
- data/app/packs/src/decidim/direct_uploads/upload_field.js +8 -21
- data/app/packs/src/decidim/direct_uploads/upload_modal.js +0 -3
- data/app/packs/src/decidim/editor/extensions/indent/index.js +1 -1
- data/app/packs/src/decidim/editor/extensions/video_embed/index.js +4 -4
- data/app/packs/src/decidim/editor/test/extensions/decidim_kit.test.js +0 -15
- data/app/packs/src/decidim/editor/test/extensions/indent.test.js +1 -1
- data/app/packs/src/decidim/editor/test/fixtures/upload_templates.js +1 -1
- data/app/packs/src/decidim/editor/test/helpers.js +1 -14
- data/app/packs/src/decidim/editor/utilities/paste_transform.js +2 -2
- data/app/packs/src/decidim/external_domain_warning.js +2 -2
- data/app/packs/src/decidim/external_domain_warning.test.js +4 -4
- data/app/packs/src/decidim/form_filter.js +4 -4
- data/app/packs/src/decidim/impersonation.js +1 -1
- data/app/packs/src/decidim/index.js +11 -8
- data/app/packs/src/decidim/input_character_counter.js +2 -2
- data/app/packs/src/decidim/input_emoji.js +171 -72
- data/app/packs/src/decidim/input_hashtags.js +1 -1
- data/app/packs/src/decidim/input_mentions.js +1 -1
- data/app/packs/src/decidim/notifications_actions.js +40 -0
- data/app/packs/src/decidim/sticky_header.js +87 -0
- data/app/packs/src/decidim/sw/sw.js +8 -6
- data/app/packs/src/decidim/toggle.js +1 -1
- data/app/packs/src/decidim/tooltips.js +23 -43
- data/app/packs/stylesheets/decidim/_buttons.scss +1 -1
- data/app/packs/stylesheets/decidim/_datepicker.scss +193 -0
- data/app/packs/stylesheets/decidim/_dropdown.scss +45 -9
- data/app/packs/stylesheets/decidim/_emoji.scss +36 -0
- data/app/packs/stylesheets/decidim/_filters.scss +4 -2
- data/app/packs/stylesheets/decidim/_flash.scss +2 -2
- data/app/packs/stylesheets/decidim/_footer.scss +1 -3
- data/app/packs/stylesheets/decidim/_forms.scss +13 -5
- data/app/packs/stylesheets/decidim/_header.scss +70 -50
- data/app/packs/stylesheets/decidim/_home.scss +1 -1
- data/app/packs/stylesheets/decidim/_layout.scss +13 -0
- data/app/packs/stylesheets/decidim/_modal.scss +1 -1
- data/app/packs/stylesheets/decidim/_modal_update.scss +1 -5
- data/app/packs/stylesheets/decidim/_notifications.scss +4 -0
- data/app/packs/stylesheets/decidim/_profile.scss +1 -1
- data/app/packs/stylesheets/decidim/_progress-bar.scss +1 -1
- data/app/packs/stylesheets/decidim/_tabs_x.scss +5 -1
- data/app/packs/stylesheets/decidim/_tooltip.scss +10 -10
- data/app/packs/stylesheets/decidim/application.scss +4 -0
- data/app/packs/stylesheets/decidim/editor.scss +1 -1
- data/app/packs/stylesheets/decidim/legacy/conference-diploma.scss +1 -2
- data/app/packs/stylesheets/decidim/legacy/leaflet.scss +1 -1
- data/app/packs/stylesheets/decidim/vendor/_datepicker_light.scss +228 -0
- data/app/permissions/decidim/default_permissions.rb +2 -2
- data/app/presenters/decidim/admin_log/organization_presenter.rb +1 -1
- data/app/presenters/decidim/admin_log/static_page_presenter.rb +1 -1
- data/app/presenters/decidim/attachment_presenter.rb +1 -1
- data/app/presenters/decidim/authorization_transfer_presenter.rb +1 -1
- data/app/presenters/decidim/component_attachment_collection_presenter.rb +81 -0
- data/app/presenters/decidim/footer_menu_presenter.rb +1 -1
- data/app/presenters/decidim/home_stats_presenter.rb +1 -1
- data/app/presenters/decidim/menu_item_presenter.rb +1 -1
- data/app/presenters/decidim/organization_presenter.rb +1 -1
- data/app/queries/decidim/last_activity.rb +5 -16
- data/app/queries/decidim/metric_measure.rb +1 -1
- data/app/queries/decidim/public_activities.rb +1 -1
- data/app/queries/decidim/user_groups/admin_memberships.rb +1 -1
- data/app/queries/decidim/user_groups/member_memberships.rb +1 -1
- data/app/services/decidim/action_logger.rb +3 -3
- data/app/services/decidim/base_diff_renderer.rb +2 -26
- data/app/services/decidim/download_your_data_exporter.rb +25 -36
- data/app/services/decidim/email_notification_generator.rb +5 -14
- data/app/services/decidim/log/diff_changeset_calculator.rb +2 -2
- data/app/services/decidim/notifications_digest_sending_decider.rb +1 -1
- data/app/services/decidim/open_data_exporter.rb +7 -8
- data/app/services/decidim/zip_stream/writer.rb +39 -0
- data/app/uploaders/decidim/organization_favicon_uploader.rb +1 -1
- data/app/uploaders/decidim/record_image_uploader.rb +2 -2
- data/app/validators/organization_present_validator.rb +1 -1
- data/app/validators/passthru_validator.rb +1 -1
- data/app/validators/uploader_image_dimensions_validator.rb +2 -2
- data/app/views/decidim/account/show.html.erb +1 -1
- data/app/views/decidim/amendments/_wizard_header.html.erb +1 -2
- data/app/views/decidim/application/_collection.html.erb +3 -1
- data/app/views/decidim/application/_component_documents.html.erb +4 -0
- data/app/views/decidim/application/_document.html.erb +23 -9
- data/app/views/decidim/block_user_mailer/notify.html.erb +2 -2
- data/app/views/decidim/devise/invitations/edit.html.erb +2 -2
- data/app/views/decidim/devise/omniauth_registrations/new.html.erb +2 -2
- data/app/views/decidim/devise/registrations/new.html.erb +1 -1
- data/app/views/decidim/devise/shared/_login_boxes.html.erb +1 -1
- data/app/views/decidim/doorkeeper/authorizations/new.html.erb +1 -1
- data/app/views/decidim/endorsements/_identity.html.erb +1 -1
- data/app/views/decidim/gamification/badges/index.html.erb +1 -1
- data/app/views/decidim/manifests/show.json.erb +4 -4
- data/app/views/decidim/messaging/conversations/_add_conversation_users.html.erb +2 -2
- data/app/views/decidim/messaging/conversations/_error_modal.html.erb +5 -5
- data/app/views/decidim/newsletter_mailer/newsletter.html.erb +1 -1
- data/app/views/decidim/newsletters/show.html.erb +1 -1
- data/app/views/decidim/newsletters_opt_in_mailer/notify.html.erb +2 -2
- data/app/views/decidim/offline/show.html.erb +1 -1
- data/app/views/decidim/pages/_tabbed.html.erb +5 -5
- data/app/views/decidim/pages/index.html.erb +1 -2
- data/app/views/decidim/reported_mailer/report.html.erb +4 -2
- data/app/views/decidim/scopes/picker.html.erb +5 -5
- data/app/views/decidim/searches/_resources_filter_block.html.erb +6 -6
- data/app/views/decidim/shared/_extended_navigation_bar.html.erb +8 -8
- data/app/views/decidim/shared/_filters.html.erb +5 -5
- data/app/views/decidim/shared/_login_modal.html.erb +1 -1
- data/app/views/decidim/shared/_orders.html.erb +2 -3
- data/app/views/decidim/shared/filters/_check_boxes_tree.html.erb +1 -1
- data/app/views/decidim/shared/filters/_collection.html.erb +1 -1
- data/app/views/decidim/user_interests/_areas.html.erb +2 -2
- data/app/views/decidim/user_report_mailer/notify.html.erb +2 -2
- data/app/views/decidim/user_update_mailer/notify.html.erb +1 -1
- data/app/views/decidim/widgets/_data_picker.html.erb +1 -1
- data/app/views/devise/mailer/invitation_instructions.html.erb +1 -1
- data/app/views/devise/mailer/invitation_instructions.text.erb +1 -1
- data/app/views/devise/mailer/invite_admin.html.erb +2 -2
- data/app/views/devise/mailer/invite_admin.text.erb +2 -2
- data/app/views/devise/mailer/invite_collaborator.html.erb +2 -2
- data/app/views/devise/mailer/invite_collaborator.text.erb +2 -2
- data/app/views/devise/mailer/invite_private_user.html.erb +2 -2
- data/app/views/devise/mailer/invite_private_user.text.erb +2 -2
- data/app/views/devise/mailer/organization_admin_invitation_instructions.html.erb +1 -1
- data/app/views/devise/mailer/organization_admin_invitation_instructions.text.erb +1 -1
- data/app/views/layouts/decidim/_application.html.erb +3 -6
- data/app/views/layouts/decidim/_data_consent_warning.html.erb +2 -2
- data/app/views/layouts/decidim/_decidim_javascript.html.erb +1 -1
- data/app/views/layouts/decidim/_head.html.erb +1 -1
- data/app/views/layouts/decidim/_head_extra.html.erb +2 -2
- data/app/views/layouts/decidim/_impersonation_warning.html.erb +1 -1
- data/app/views/layouts/decidim/_js_configuration.html.erb +7 -2
- data/app/views/layouts/decidim/_logo.html.erb +2 -2
- data/app/views/layouts/decidim/_logo_mobile.html.erb +11 -0
- data/app/views/layouts/decidim/_mailer_logo.html.erb +2 -2
- data/app/views/layouts/decidim/_meta_tags_config.html.erb +1 -1
- data/app/views/layouts/decidim/_wrapper.html.erb +16 -9
- data/app/views/layouts/decidim/footer/_main.html.erb +2 -3
- data/app/views/layouts/decidim/footer/_main_intro.html.erb +2 -2
- data/app/views/layouts/decidim/footer/_main_legal.html.erb +2 -3
- data/app/views/layouts/decidim/footer/_main_links.html.erb +13 -11
- data/app/views/layouts/decidim/footer/_main_social_media_links.html.erb +8 -8
- data/app/views/layouts/decidim/header/_main.html.erb +9 -22
- data/app/views/layouts/decidim/header/_main_links_desktop.html.erb +4 -5
- data/app/views/layouts/decidim/header/_main_links_mobile_account.html.erb +11 -4
- data/app/views/layouts/decidim/header/_main_links_mobile_item_account.html.erb +24 -0
- data/app/views/layouts/decidim/header/_main_links_mobile_search.html.erb +0 -21
- data/app/views/layouts/decidim/header/_main_menu_mobile.html.erb +12 -0
- data/app/views/layouts/decidim/header/_menu_breadcrumb_desktop.html.erb +1 -1
- data/app/views/layouts/decidim/header/_menu_breadcrumb_main_dropdown_mobile.html.erb +17 -0
- data/app/views/layouts/decidim/header/_menu_breadcrumb_main_dropdown_top_left.html.erb +1 -1
- data/app/views/layouts/decidim/header/_menu_breadcrumb_mobile_tablet.html.erb +1 -1
- data/app/views/layouts/decidim/header/_menu_form_search_mobile.html.erb +16 -0
- data/app/views/layouts/decidim/header/_mobile_language_choose.html.erb +25 -0
- data/app/views/layouts/decidim/mailer.html.erb +2 -2
- data/app/views/layouts/decidim/shared/_layout_center.html.erb +1 -1
- data/app/views/layouts/decidim/shared/_layout_item.html.erb +0 -14
- data/app/views/layouts/decidim/shared/_layout_user_profile.html.erb +2 -2
- data/config/initializers/active_storage.rb +3 -0
- data/config/initializers/devise.rb +1 -1
- data/config/initializers/new_framework_defaults_7_0.rb +145 -0
- data/config/locales/ar.yml +3 -54
- data/config/locales/bg.yml +56 -57
- data/config/locales/ca.yml +78 -71
- data/config/locales/cs.yml +54 -63
- data/config/locales/de.yml +77 -70
- data/config/locales/el.yml +1 -32
- data/config/locales/en.yml +69 -62
- data/config/locales/es-MX.yml +69 -62
- data/config/locales/es-PY.yml +69 -62
- data/config/locales/es.yml +74 -67
- data/config/locales/eu.yml +251 -257
- data/config/locales/fi-plain.yml +70 -63
- data/config/locales/fi.yml +128 -121
- data/config/locales/fr-CA.yml +62 -61
- data/config/locales/fr.yml +56 -55
- data/config/locales/ga-IE.yml +0 -16
- data/config/locales/gl.yml +1 -22
- data/config/locales/hu.yml +38 -57
- data/config/locales/id-ID.yml +0 -18
- data/config/locales/is-IS.yml +1 -17
- data/config/locales/it.yml +0 -65
- data/config/locales/ja.yml +83 -74
- data/config/locales/lb.yml +0 -30
- data/config/locales/lt.yml +2 -49
- data/config/locales/lv.yml +0 -25
- data/config/locales/nl.yml +1 -30
- data/config/locales/no.yml +0 -30
- data/config/locales/pl.yml +69 -57
- data/config/locales/pt-BR.yml +5 -250
- data/config/locales/pt.yml +0 -36
- data/config/locales/ro-RO.yml +180 -329
- data/config/locales/ru.yml +0 -19
- data/config/locales/sk.yml +1 -26
- data/config/locales/sl.yml +0 -8
- data/config/locales/sv.yml +164 -605
- data/config/locales/tr-TR.yml +5 -33
- data/config/locales/uk.yml +1 -14
- data/config/locales/zh-CN.yml +0 -27
- data/config/locales/zh-TW.yml +1 -51
- data/config/routes.rb +0 -2
- data/db/migrate/20170128112958_change_user_groups_verified_to_timestamp.rb +1 -1
- data/db/migrate/20181025082245_add_timestamps_to_components.rb +1 -5
- data/db/migrate/20240110150230_rename_external_domain_whitelist_to_external_domain_allowlist.rb +7 -0
- data/db/migrate/20240326104215_remove_show_in_footer_in_static_pages.rb +7 -0
- data/db/migrate/20240401192628_change_name_on_decidim_organizations.rb +31 -0
- data/db/seeds/avatars/001.jpg +0 -0
- data/db/seeds/avatars/002.jpg +0 -0
- data/db/seeds/avatars/003.jpg +0 -0
- data/db/seeds/avatars/004.jpg +0 -0
- data/db/seeds/avatars/005.jpg +0 -0
- data/db/seeds/avatars/006.jpg +0 -0
- data/db/seeds/avatars/007.jpg +0 -0
- data/db/seeds/avatars/008.jpg +0 -0
- data/db/seeds/avatars/009.jpg +0 -0
- data/db/seeds/avatars/010.jpg +0 -0
- data/db/seeds/avatars/011.jpg +0 -0
- data/db/seeds/avatars/012.jpg +0 -0
- data/db/seeds/avatars/013.jpg +0 -0
- data/db/seeds/avatars/014.jpg +0 -0
- data/db/seeds/avatars/015.jpg +0 -0
- data/db/seeds/avatars/016.jpg +0 -0
- data/db/seeds/avatars/017.jpg +0 -0
- data/db/seeds/avatars/018.jpg +0 -0
- data/db/seeds/avatars/019.jpg +0 -0
- data/db/seeds/avatars/020.jpg +0 -0
- data/db/seeds/avatars/021.jpg +0 -0
- data/db/seeds/avatars/022.jpg +0 -0
- data/db/seeds/avatars/023.jpg +0 -0
- data/db/seeds/avatars/024.jpg +0 -0
- data/db/seeds/avatars/025.jpg +0 -0
- data/db/seeds/avatars/026.jpg +0 -0
- data/db/seeds/avatars/027.jpg +0 -0
- data/db/seeds/avatars/028.jpg +0 -0
- data/db/seeds/avatars/029.jpg +0 -0
- data/db/seeds/avatars/030.jpg +0 -0
- data/db/seeds/avatars/031.jpg +0 -0
- data/db/seeds/avatars/032.jpg +0 -0
- data/db/seeds/avatars/033.jpg +0 -0
- data/db/seeds/avatars/034.jpg +0 -0
- data/db/seeds/avatars/035.jpg +0 -0
- data/db/seeds/avatars/036.jpg +0 -0
- data/db/seeds/avatars/037.jpg +0 -0
- data/db/seeds/avatars/038.jpg +0 -0
- data/db/seeds/avatars/039.jpg +0 -0
- data/db/seeds/avatars/040.jpg +0 -0
- data/db/seeds/avatars/041.jpg +0 -0
- data/db/seeds/avatars/042.jpg +0 -0
- data/db/seeds/avatars/043.jpg +0 -0
- data/db/seeds/avatars/044.jpg +0 -0
- data/db/seeds/avatars/045.jpg +0 -0
- data/db/seeds/avatars/046.jpg +0 -0
- data/db/seeds/avatars/047.jpg +0 -0
- data/db/seeds/avatars/048.jpg +0 -0
- data/db/seeds/avatars/049.jpg +0 -0
- data/db/seeds/avatars/050.jpg +0 -0
- data/db/seeds/avatars/051.jpg +0 -0
- data/db/seeds/avatars/052.jpg +0 -0
- data/db/seeds/avatars/053.jpg +0 -0
- data/db/seeds/avatars/054.jpg +0 -0
- data/db/seeds/avatars/055.jpg +0 -0
- data/db/seeds/avatars/056.jpg +0 -0
- data/db/seeds/avatars/057.jpg +0 -0
- data/db/seeds/avatars/058.jpg +0 -0
- data/db/seeds/avatars/059.jpg +0 -0
- data/db/seeds/avatars/060.jpg +0 -0
- data/db/seeds/avatars/061.jpg +0 -0
- data/db/seeds/avatars/062.jpg +0 -0
- data/db/seeds/avatars/063.jpg +0 -0
- data/db/seeds/avatars/064.jpg +0 -0
- data/db/seeds/avatars/065.jpg +0 -0
- data/db/seeds/avatars/066.jpg +0 -0
- data/db/seeds/avatars/067.jpg +0 -0
- data/db/seeds/avatars/068.jpg +0 -0
- data/db/seeds/avatars/069.jpg +0 -0
- data/db/seeds/avatars/070.jpg +0 -0
- data/db/seeds/avatars/071.jpg +0 -0
- data/db/seeds/avatars/072.jpg +0 -0
- data/db/seeds/avatars/073.jpg +0 -0
- data/db/seeds/avatars/074.jpg +0 -0
- data/db/seeds/avatars/075.jpg +0 -0
- data/db/seeds/avatars/076.jpg +0 -0
- data/db/seeds/avatars/077.jpg +0 -0
- data/db/seeds/avatars/078.jpg +0 -0
- data/db/seeds/avatars/079.jpg +0 -0
- data/db/seeds/avatars/080.jpg +0 -0
- data/db/seeds/avatars/081.jpg +0 -0
- data/db/seeds/avatars/082.jpg +0 -0
- data/db/seeds/avatars/083.jpg +0 -0
- data/db/seeds/avatars/084.jpg +0 -0
- data/db/seeds/avatars/085.jpg +0 -0
- data/db/seeds/avatars/086.jpg +0 -0
- data/db/seeds/avatars/087.jpg +0 -0
- data/db/seeds/avatars/088.jpg +0 -0
- data/db/seeds/avatars/089.jpg +0 -0
- data/db/seeds/avatars/090.jpg +0 -0
- data/db/seeds/avatars/091.jpg +0 -0
- data/db/seeds/avatars/092.jpg +0 -0
- data/db/seeds/avatars/093.jpg +0 -0
- data/db/seeds/avatars/094.jpg +0 -0
- data/db/seeds/avatars/095.jpg +0 -0
- data/db/seeds/avatars/096.jpg +0 -0
- data/db/seeds/avatars/097.jpg +0 -0
- data/db/seeds/avatars/098.jpg +0 -0
- data/db/seeds/avatars/099.jpg +0 -0
- data/db/seeds/avatars/100.jpg +0 -0
- data/db/seeds/avatars/CREDITS.md +114 -0
- data/db/seeds/avatars/README.md +25 -0
- data/decidim-core.gemspec +8 -9
- data/lib/decidim/acts_as_author.rb +1 -1
- data/lib/decidim/admin_filter.rb +44 -0
- data/lib/decidim/admin_filters_registry.rb +55 -0
- data/lib/decidim/amendable.rb +1 -2
- data/lib/decidim/api/functions/component_finder_base.rb +1 -1
- data/lib/decidim/api/functions/component_list.rb +1 -1
- data/lib/decidim/api/functions/needs_api_filter_and_order.rb +3 -3
- data/lib/decidim/api/functions/participatory_space_finder_base.rb +2 -12
- data/lib/decidim/api/functions/participatory_space_list_base.rb +1 -1
- data/lib/decidim/api/input_filters/user_entity_input_filter.rb +3 -3
- data/lib/decidim/api/interfaces/author_interface.rb +1 -1
- data/lib/decidim/api/interfaces/participatory_space_interface.rb +1 -1
- data/lib/decidim/api/types/component_type.rb +0 -7
- data/lib/decidim/api/types/organization_type.rb +1 -1
- data/lib/decidim/api/types/user_group_type.rb +1 -5
- data/lib/decidim/api/types/user_type.rb +1 -5
- data/lib/decidim/asset_router/pipeline.rb +2 -2
- data/lib/decidim/asset_router/storage.rb +11 -214
- data/lib/decidim/assets/tailwind/instance.rb +1 -1
- data/lib/decidim/assets/tailwind/tailwind.config.js.erb +8 -3
- data/lib/decidim/attribute_object/model.rb +2 -2
- data/lib/decidim/attribute_object/type_resolver.rb +1 -3
- data/lib/decidim/attribute_object.rb +2 -2
- data/lib/decidim/attributes/time_with_zone.rb +1 -11
- data/lib/decidim/attributes.rb +0 -6
- data/lib/decidim/authorable.rb +5 -0
- data/lib/decidim/command.rb +2 -2
- data/lib/decidim/commands/create_resource.rb +63 -0
- data/lib/decidim/commands/destroy_resource.rb +74 -0
- data/lib/decidim/commands/hook_error.rb +8 -0
- data/lib/decidim/commands/resource_handler.rb +85 -0
- data/lib/decidim/commands/update_resource.rb +64 -0
- data/lib/decidim/component_manifest.rb +3 -1
- data/lib/decidim/component_validator.rb +1 -1
- data/lib/decidim/content_blocks/has_related_components.rb +1 -1
- data/lib/decidim/content_parsers/resource_parser.rb +2 -2
- data/lib/decidim/content_parsers.rb +0 -1
- data/lib/decidim/content_processor.rb +1 -1
- data/lib/decidim/content_renderers.rb +0 -1
- data/lib/decidim/content_security_policy.rb +1 -1
- data/lib/decidim/core/engine.rb +13 -58
- data/lib/decidim/core/menu.rb +13 -3
- data/lib/decidim/core/seeds.rb +120 -147
- data/lib/decidim/core/test/factories.rb +24 -31
- data/lib/decidim/core/test/shared_examples/acts_as_author_examples.rb +1 -1
- data/lib/decidim/core/test/shared_examples/amendable/withdraw_amendment_examples.rb +2 -2
- data/lib/decidim/core/test/shared_examples/announcements_examples.rb +3 -3
- data/lib/decidim/core/test/shared_examples/assembly_announcements_examples.rb +4 -4
- data/lib/decidim/core/test/shared_examples/attachable_interface_examples.rb +1 -1
- data/lib/decidim/core/test/shared_examples/authorable_interface_examples.rb +1 -1
- data/lib/decidim/core/test/shared_examples/comments_examples.rb +90 -107
- data/lib/decidim/core/test/shared_examples/comments_reports_examples.rb +4 -4
- data/lib/decidim/core/test/shared_examples/digest_mail_examples.rb +1 -1
- data/lib/decidim/core/test/shared_examples/edit_link_shared_examples.rb +1 -1
- data/lib/decidim/core/test/shared_examples/editor_shared_examples.rb +7 -7
- data/lib/decidim/core/test/shared_examples/fingerprint_examples.rb +1 -1
- data/lib/decidim/core/test/shared_examples/follows_examples.rb +6 -11
- data/lib/decidim/core/test/shared_examples/has_attachment_collections.rb +4 -2
- data/lib/decidim/core/test/shared_examples/has_attachments.rb +3 -2
- data/lib/decidim/core/test/shared_examples/has_contextual_help.rb +4 -4
- data/lib/decidim/core/test/shared_examples/has_reference.rb +1 -1
- data/lib/decidim/core/test/shared_examples/logo_email.rb +1 -1
- data/lib/decidim/core/test/shared_examples/manage_component_share_tokens.rb +9 -9
- data/lib/decidim/core/test/shared_examples/map_examples.rb +5 -5
- data/lib/decidim/core/test/shared_examples/paginated_resource_examples.rb +7 -7
- data/lib/decidim/core/test/shared_examples/participatory_space_dropdown_metadata_cell_examples.rb +3 -3
- data/lib/decidim/core/test/shared_examples/preview_component_with_share_token_examples.rb +3 -3
- data/lib/decidim/core/test/shared_examples/process_announcements_examples.rb +4 -4
- data/lib/decidim/core/test/shared_examples/reports_examples.rb +5 -5
- data/lib/decidim/core/test/shared_examples/rich_text_editor_examples.rb +10 -10
- data/lib/decidim/core/test/shared_examples/searchable_participatory_space_examples.rb +1 -1
- data/lib/decidim/core/test/shared_examples/searchable_results_examples.rb +8 -8
- data/lib/decidim/core/test/shared_examples/share_link_examples.rb +2 -2
- data/lib/decidim/core/test/shared_examples/simple_event.rb +1 -1
- data/lib/decidim/core/test/shared_examples/space_cell_changes_button_text_cta.rb +3 -3
- data/lib/decidim/core/test/shared_examples/system_endorse_resource_examples.rb +15 -113
- data/lib/decidim/core/test/shared_examples/translated_event_examples.rb +2 -2
- data/lib/decidim/core/test/shared_examples/uncommentable_component_examples.rb +2 -2
- data/lib/decidim/core/test/shared_examples/with_endorsable_permissions_examples.rb +1 -1
- data/lib/decidim/core/version.rb +1 -1
- data/lib/decidim/core.rb +24 -17
- data/lib/decidim/dependency_resolver.rb +3 -3
- data/lib/decidim/diffy_extension.rb +1 -19
- data/lib/decidim/download_your_data_serializers/download_your_data_user_serializer.rb +2 -1
- data/lib/decidim/engine_router.rb +2 -2
- data/lib/decidim/events/base_event.rb +19 -0
- data/lib/decidim/events/simple_event.rb +1 -0
- data/lib/decidim/exporters/export_manifest.rb +1 -1
- data/lib/decidim/faker/localized.rb +3 -3
- data/lib/decidim/form_builder.rb +5 -5
- data/lib/decidim/hashtag.rb +1 -1
- data/lib/decidim/jsonb_attributes.rb +4 -4
- data/lib/decidim/manifest_messages.rb +2 -2
- data/lib/decidim/map/autocomplete.rb +0 -1
- data/lib/decidim/organization_settings.rb +5 -8
- data/lib/decidim/paddable.rb +1 -1
- data/lib/decidim/participable.rb +1 -1
- data/lib/decidim/participatory_space_manifest.rb +1 -1
- data/lib/decidim/participatory_space_user.rb +0 -4
- data/lib/decidim/query_extensions.rb +26 -0
- data/lib/decidim/resourceable.rb +1 -1
- data/lib/decidim/search_resource_fields_mapper.rb +2 -2
- data/lib/decidim/searchable.rb +3 -3
- data/lib/decidim/seeds.rb +62 -0
- data/lib/decidim/settings_manifest.rb +0 -2
- data/lib/decidim/stats_registry.rb +2 -2
- data/lib/decidim/translatable_attributes.rb +4 -9
- data/lib/decidim/translatable_resource.rb +1 -1
- data/lib/decidim/view_hooks.rb +1 -1
- data/lib/decidim/view_model.rb +5 -1
- data/lib/decidim/webpacker/esbuild.config.js +14 -0
- data/lib/decidim/webpacker/shakapacker.yml +2 -2
- data/lib/decidim/webpacker/tsconfig.json +11 -0
- data/lib/decidim/webpacker/webpack/custom.js +13 -35
- data/lib/devise/models/decidim_newsletterable.rb +1 -1
- data/lib/tasks/decidim_download_your_data_tasks.rake +2 -2
- data/lib/tasks/decidim_locales_tasks.rake +1 -1
- data/lib/tasks/decidim_mailers_tasks.rake +2 -2
- data/lib/tasks/decidim_metrics_tasks.rake +6 -6
- data/lib/tasks/decidim_procfile.rake +9 -3
- data/lib/tasks/decidim_tasks.rake +5 -4
- data/lib/tasks/decidim_webpacker_tasks.rake +126 -117
- data/lib/tasks/upgrade/decidim_active_storage_migration_tasks.rake +80 -0
- data/lib/tasks/upgrade/decidim_content_blocks_tasks.rake +50 -0
- data/lib/tasks/upgrade/decidim_deduplicate_endorsements.rake +1 -1
- data/lib/tasks/upgrade/decidim_fix_categorization.rake +6 -132
- data/lib/tasks/upgrade/decidim_fix_nickname_uniqueness.rake +1 -1
- data/lib/tasks/upgrade/decidim_fix_short_url_resolver.rake +1 -1
- data/lib/tasks/upgrade/decidim_moderation_tasks.rake +1 -1
- data/lib/tasks/upgrade/decidim_user_moderation.rake +1 -1
- metadata +219 -101
- data/app/cells/decidim/content_blocks/cta/show.erb +0 -12
- data/app/cells/decidim/content_blocks/cta_cell.rb +0 -31
- data/app/cells/decidim/footer_pages/pages.erb +0 -3
- data/app/cells/decidim/footer_pages/topics.erb +0 -12
- data/app/cells/decidim/footer_pages_cell.rb +0 -68
- data/app/controllers/concerns/decidim/direct_upload.rb +0 -82
- data/app/helpers/concerns/decidim/user_role_checker.rb +0 -46
- data/app/packs/src/decidim/remote_tooltips.js +0 -38
- data/app/packs/src/decidim/vendor/modernizr.js +0 -5
- data/app/queries/decidim/similar_emendations.rb +0 -56
- data/app/uploaders/decidim/cw/application_uploader.rb +0 -77
- data/app/uploaders/decidim/cw/attachment_uploader.rb +0 -56
- data/app/uploaders/decidim/cw/avatar_uploader.rb +0 -24
- data/app/uploaders/decidim/cw/banner_image_uploader.rb +0 -7
- data/app/uploaders/decidim/cw/download_your_data_uploader.rb +0 -15
- data/app/uploaders/decidim/cw/downloader.rb +0 -9
- data/app/uploaders/decidim/cw/hero_image_uploader.rb +0 -10
- data/app/uploaders/decidim/cw/homepage_image_uploader.rb +0 -14
- data/app/uploaders/decidim/cw/image_uploader.rb +0 -78
- data/app/uploaders/decidim/cw/newsletter_template_image_uploader.rb +0 -38
- data/app/uploaders/decidim/cw/oauth_application_logo_uploader.rb +0 -10
- data/app/uploaders/decidim/cw/official_image_footer_uploader.rb +0 -10
- data/app/uploaders/decidim/cw/official_image_header_uploader.rb +0 -10
- data/app/uploaders/decidim/cw/open_data_uploader.rb +0 -23
- data/app/uploaders/decidim/cw/organization_favicon_uploader.rb +0 -18
- data/app/uploaders/decidim/cw/organization_logo_uploader.rb +0 -10
- data/app/uploaders/decidim/cw/record_image_uploader.rb +0 -15
- data/app/uploaders/decidim/downloader.rb +0 -9
- data/app/views/decidim/amendments/compare_draft.html.erb +0 -18
- data/app/views/layouts/decidim/_edit_link.html.erb +0 -0
- data/app/views/layouts/decidim/header/_main_links_mobile.html.erb +0 -36
- data/config/initializers/carrierwave.rb +0 -15
- data/config/locales/bn-BD.yml +0 -1
- data/config/locales/bs-BA.yml +0 -98
- data/lib/decidim/attributes/rich_text.rb +0 -38
- data/lib/decidim/carrier_wave_migrator_service.rb +0 -287
- data/lib/decidim/content_parsers/blob_parser.rb +0 -93
- data/lib/decidim/content_renderers/blob_renderer.rb +0 -90
- data/lib/decidim/seven_zip_wrapper.rb +0 -29
- data/lib/tasks/decidim_active_storage_migration_tasks.rake +0 -114
- data/lib/tasks/decidim_content_blocks_tasks.rake +0 -48
- data/lib/tasks/upgrade/decidim_attachments.rake +0 -14
- /data/app/views/layouts/decidim/header/{_menu_breadcrumb_main_dropdown.html.erb → _menu_breadcrumb_main_dropdown_desktop.html.erb} +0 -0
@@ -0,0 +1,23 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Decidim
|
4
|
+
module NeedsRtlDirection
|
5
|
+
extend ActiveSupport::Concern
|
6
|
+
|
7
|
+
included do
|
8
|
+
helper_method :rtl_direction
|
9
|
+
|
10
|
+
def rtl_direction
|
11
|
+
return "rtl" if rtl_languages_codes.include?(I18n.locale.to_s)
|
12
|
+
|
13
|
+
"ltr"
|
14
|
+
end
|
15
|
+
|
16
|
+
private
|
17
|
+
|
18
|
+
def rtl_languages_codes
|
19
|
+
%w(ar ar-BH ar-EG ar-SA ar-YE dv he fa ks ks-PK ug ur-IN ur-PK ydd)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -7,21 +7,6 @@ module Decidim
|
|
7
7
|
module ParticipatorySpaceContext
|
8
8
|
extend ActiveSupport::Concern
|
9
9
|
|
10
|
-
class_methods do
|
11
|
-
# Public: Called on a controller, it sets up all the surrounding methods to render a
|
12
|
-
# participatory space's template. It expects the method `current_participatory_space` to be
|
13
|
-
# defined, from which it will extract the participatory manifest.
|
14
|
-
#
|
15
|
-
# options - A hash used to modify the behavior of the layout. :only: - An array of actions on
|
16
|
-
# which the layout will be applied.
|
17
|
-
#
|
18
|
-
# Returns nothing.
|
19
|
-
def participatory_space_layout(options = {})
|
20
|
-
layout :layout, **options
|
21
|
-
before_action :authorize_participatory_space, **options
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
10
|
included do
|
26
11
|
include Decidim::NeedsOrganization
|
27
12
|
|
@@ -91,7 +76,7 @@ module Decidim
|
|
91
76
|
current_participatory_space_manifest.context(current_participatory_space_context).layout
|
92
77
|
end
|
93
78
|
|
94
|
-
# Method for current user can visit the space (assembly or
|
79
|
+
# Method for current user can visit the space (assembly or process)
|
95
80
|
def current_user_can_visit_space?
|
96
81
|
return true unless current_participatory_space.try(:private_space?) &&
|
97
82
|
!current_participatory_space.try(:is_transparent?)
|
@@ -100,13 +85,6 @@ module Decidim
|
|
100
85
|
current_user.admin || current_participatory_space.users.include?(current_user)
|
101
86
|
end
|
102
87
|
|
103
|
-
def check_current_user_can_visit_space
|
104
|
-
return if current_user_can_visit_space?
|
105
|
-
|
106
|
-
flash[:alert] = I18n.t("participatory_space_private_users.not_allowed", scope: "decidim")
|
107
|
-
redirect_to action: "index"
|
108
|
-
end
|
109
|
-
|
110
88
|
def help_section
|
111
89
|
@help_section ||= Decidim::ContextualHelpSection.find_content(
|
112
90
|
current_organization,
|
@@ -5,13 +5,14 @@ require "active_support/concern"
|
|
5
5
|
module Decidim
|
6
6
|
module PayloadInfo
|
7
7
|
extend ActiveSupport::Concern
|
8
|
+
include Decidim::TranslatableAttributes
|
8
9
|
|
9
10
|
included do
|
10
11
|
def append_info_to_payload(payload)
|
11
12
|
super
|
12
13
|
payload[:user_id] = try(:current_user).try(:id)
|
13
14
|
payload[:organization_id] = try(:current_organization).try(:id)
|
14
|
-
payload[:app] = try(:current_organization).try(:name)
|
15
|
+
payload[:app] = translated_attribute(try(:current_organization).try(:name))
|
15
16
|
payload[:remote_ip] = request.remote_ip
|
16
17
|
payload[:referer] = request.referer.to_s
|
17
18
|
payload[:request_id] = request.uuid
|
@@ -10,8 +10,8 @@ module Decidim
|
|
10
10
|
module RegistersPermissions
|
11
11
|
extend ActiveSupport::Concern
|
12
12
|
|
13
|
-
def self.register_permissions(artifact, *
|
14
|
-
::Decidim.permissions_registry.register_permissions(artifact, *
|
13
|
+
def self.register_permissions(artifact, *)
|
14
|
+
::Decidim.permissions_registry.register_permissions(artifact, *)
|
15
15
|
end
|
16
16
|
|
17
17
|
class_methods do
|
@@ -19,8 +19,8 @@ module Decidim
|
|
19
19
|
#
|
20
20
|
# +artifact+ is expected to be the class or module that declares `NeedsPermission.permission_class_chain`.
|
21
21
|
# +permission_classes+ are subclasses of `DefaultPermissions` or at least should quack as one.
|
22
|
-
def register_permissions(artifact, *
|
23
|
-
RegistersPermissions.register_permissions(artifact, *
|
22
|
+
def register_permissions(artifact, *)
|
23
|
+
RegistersPermissions.register_permissions(artifact, *)
|
24
24
|
end
|
25
25
|
end
|
26
26
|
end
|
@@ -12,7 +12,7 @@ module Decidim
|
|
12
12
|
around_action :use_organization_time_zone
|
13
13
|
helper_method :organization_time_zone
|
14
14
|
|
15
|
-
# Executes a block of code in the context of the
|
15
|
+
# Executes a block of code in the context of the organization's time zone
|
16
16
|
#
|
17
17
|
# &action - a block of code to be wrapped around the time zone
|
18
18
|
#
|
@@ -3,7 +3,7 @@
|
|
3
3
|
require "active_support/concern"
|
4
4
|
|
5
5
|
module Decidim
|
6
|
-
# A controller concern to enable
|
6
|
+
# A controller concern to enable withdrawing the controller resources. Only
|
7
7
|
# affects the UI, so the actual logic to withdraw the resource will still need
|
8
8
|
# to be implemented.
|
9
9
|
module Withdrawable
|
@@ -16,7 +16,7 @@ module Decidim
|
|
16
16
|
def update
|
17
17
|
enforce_permission_to(:update, :user, current_user:)
|
18
18
|
@account = form(AccountForm).from_params(account_params)
|
19
|
-
UpdateAccount.call(
|
19
|
+
UpdateAccount.call(@account) do
|
20
20
|
on(:ok) do |email_is_unconfirmed|
|
21
21
|
flash[:notice] = if email_is_unconfirmed
|
22
22
|
t("account.update.success_with_email_confirmation", scope: "decidim")
|
@@ -45,7 +45,7 @@ module Decidim
|
|
45
45
|
enforce_permission_to(:delete, :user, current_user:)
|
46
46
|
@form = form(DeleteAccountForm).from_params(params)
|
47
47
|
|
48
|
-
DestroyAccount.call(
|
48
|
+
DestroyAccount.call(@form) do
|
49
49
|
on(:ok) do
|
50
50
|
sign_out(current_user)
|
51
51
|
flash[:notice] = t("account.destroy.success", scope: "decidim")
|
@@ -9,8 +9,8 @@ module Decidim
|
|
9
9
|
helper UserGroupHelper
|
10
10
|
|
11
11
|
before_action :authenticate_user!
|
12
|
-
helper_method :amendment, :amendable, :emendation
|
13
|
-
before_action :ensure_is_draft_from_user, only: [:
|
12
|
+
helper_method :amendment, :amendable, :emendation
|
13
|
+
before_action :ensure_is_draft_from_user, only: [:edit_draft, :update_draft, :destroy_draft, :preview_draft, :publish_draft]
|
14
14
|
|
15
15
|
def new
|
16
16
|
raise ActionController::RoutingError, "Not Found" unless amendable
|
@@ -34,7 +34,7 @@ module Decidim
|
|
34
34
|
Decidim::Amendable::CreateDraft.call(@form) do
|
35
35
|
on(:ok) do |amendment|
|
36
36
|
flash[:notice] = t("created.success", scope: "decidim.amendments")
|
37
|
-
redirect_to
|
37
|
+
redirect_to preview_draft_amend_path(amendment)
|
38
38
|
end
|
39
39
|
|
40
40
|
on(:invalid) do
|
@@ -44,15 +44,6 @@ module Decidim
|
|
44
44
|
end
|
45
45
|
end
|
46
46
|
|
47
|
-
def compare_draft
|
48
|
-
enforce_permission_to :create, :amendment, current_component: amendable.component
|
49
|
-
|
50
|
-
if similar_emendations.empty?
|
51
|
-
flash[:notice] = t("no_similars_found", scope: "decidim.amendments.compare_draft")
|
52
|
-
redirect_to edit_draft_amend_path(amendment)
|
53
|
-
end
|
54
|
-
end
|
55
|
-
|
56
47
|
def edit_draft
|
57
48
|
enforce_permission_to :create, :amendment, current_component: amendable.component
|
58
49
|
|
@@ -219,10 +210,6 @@ module Decidim
|
|
219
210
|
raise ActionController::RoutingError, "Not Found" unless amendment.draft? && amender == current_user
|
220
211
|
end
|
221
212
|
|
222
|
-
def similar_emendations
|
223
|
-
@similar_emendations ||= Decidim::SimilarEmendations.for(amendment)
|
224
|
-
end
|
225
|
-
|
226
213
|
def breadcrumb_item
|
227
214
|
{
|
228
215
|
label: t("decidim.amendments.name"),
|
@@ -6,6 +6,7 @@ module Decidim
|
|
6
6
|
include Browser::ActionController
|
7
7
|
|
8
8
|
include NeedsOrganization
|
9
|
+
include NeedsRtlDirection
|
9
10
|
include LocaleSwitcher
|
10
11
|
include UseOrganizationTimeZone
|
11
12
|
include NeedsPermission
|
@@ -23,7 +24,6 @@ module Decidim
|
|
23
24
|
include DisableRedirectionToExternalHost
|
24
25
|
include NeedsPasswordChange
|
25
26
|
include LinkedResourceReference
|
26
|
-
include ActiveStorage::SetCurrent
|
27
27
|
|
28
28
|
helper Decidim::MetaTagsHelper
|
29
29
|
helper Decidim::DecidimFormHelper
|
@@ -3,7 +3,7 @@
|
|
3
3
|
module Decidim
|
4
4
|
module Components
|
5
5
|
# Controller from which all component engines inherit from. It is in charge of
|
6
|
-
# setting the
|
6
|
+
# setting the appropriate layout, including necessary helpers, and overall
|
7
7
|
# fooling the engine into thinking it is isolated.
|
8
8
|
class BaseController < Decidim::ApplicationController
|
9
9
|
include Settings
|
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
module Decidim
|
4
4
|
module Devise
|
5
|
-
# This controller customizes the behaviour of Devise::
|
5
|
+
# This controller customizes the behaviour of Devise::Invitable.
|
6
6
|
class InvitationsController < ::Devise::InvitationsController
|
7
7
|
include Decidim::DeviseControllers
|
8
8
|
include NeedsTosAccepted
|
@@ -25,8 +25,8 @@ module Decidim
|
|
25
25
|
self.resource = current_user
|
26
26
|
@send_path = apply_password_path
|
27
27
|
|
28
|
-
@form = Decidim::PasswordForm.from_params(params["user"])
|
29
|
-
Decidim::UpdatePassword.call(
|
28
|
+
@form = Decidim::PasswordForm.from_params(params["user"]).with_context(current_user:)
|
29
|
+
Decidim::UpdatePassword.call(@form) do
|
30
30
|
on(:ok) do
|
31
31
|
flash[:notice] = t("passwords.update.success", scope: "decidim")
|
32
32
|
bypass_sign_in(current_user)
|
@@ -28,7 +28,7 @@ module Decidim
|
|
28
28
|
end
|
29
29
|
|
30
30
|
def avatar_url
|
31
|
-
avatar_url = current_resource_owner.attached_uploader(:avatar).url
|
31
|
+
avatar_url = current_resource_owner.attached_uploader(:avatar).url(host: current_resource_owner.organization.host)
|
32
32
|
return unless avatar_url
|
33
33
|
|
34
34
|
unless %r{^https?://}.match? avatar_url
|
@@ -48,7 +48,7 @@ module Decidim
|
|
48
48
|
render :identities, layout: false
|
49
49
|
end
|
50
50
|
|
51
|
-
# should be pubic in order to be
|
51
|
+
# should be pubic in order to be visible in NeedsPermission#permissions_context
|
52
52
|
def current_component
|
53
53
|
resource.component
|
54
54
|
end
|
@@ -4,7 +4,7 @@ module Decidim
|
|
4
4
|
# We serve a custom /favicon.ico route for Decidim in order to show the
|
5
5
|
# correct favicons also when browsing e.g. PDF documents originating from the
|
6
6
|
# same domain displayed inline in the browser. For those special files
|
7
|
-
# displayed in the browser, the favicon could be otherwise incorrectly
|
7
|
+
# displayed in the browser, the favicon could be otherwise incorrectly shown
|
8
8
|
# or cached.
|
9
9
|
#
|
10
10
|
# This custom route ensures that the favicons are always correctly served for
|
@@ -10,7 +10,7 @@ module Decidim
|
|
10
10
|
@form = form(Decidim::FollowForm).from_params(params)
|
11
11
|
enforce_permission_to :delete, :follow, follow: @form.follow
|
12
12
|
|
13
|
-
DeleteFollow.call(@form
|
13
|
+
DeleteFollow.call(@form) do
|
14
14
|
on(:ok) do
|
15
15
|
render :update_button
|
16
16
|
end
|
@@ -25,7 +25,7 @@ module Decidim
|
|
25
25
|
@form = form(Decidim::FollowForm).from_params(params)
|
26
26
|
enforce_permission_to :create, :follow
|
27
27
|
|
28
|
-
CreateFollow.call(@form
|
28
|
+
CreateFollow.call(@form) do
|
29
29
|
on(:ok) do
|
30
30
|
render :update_button
|
31
31
|
end
|
@@ -34,16 +34,29 @@ module Decidim
|
|
34
34
|
|
35
35
|
def update
|
36
36
|
enforce_permission_to :accept, :user_group_invitations
|
37
|
-
|
38
37
|
AcceptGroupInvitation.call(inviting_user_group, current_user) do
|
39
38
|
on(:ok) do
|
40
|
-
|
41
|
-
|
39
|
+
respond_to do |format|
|
40
|
+
format.json do
|
41
|
+
render json: { message: t("group_invites.accept.success", scope: "decidim") }
|
42
|
+
end
|
43
|
+
format.all do
|
44
|
+
flash[:notice] = t("group_invites.accept.success", scope: "decidim")
|
45
|
+
redirect_to profile_groups_path(current_user.nickname)
|
46
|
+
end
|
47
|
+
end
|
42
48
|
end
|
43
49
|
|
44
50
|
on(:invalid) do
|
45
|
-
|
46
|
-
|
51
|
+
respond_to do |format|
|
52
|
+
format.json do
|
53
|
+
render json: { message: t("group_invites.accept.error", scope: "decidim") }, status: :unprocessable_entity
|
54
|
+
end
|
55
|
+
format.all do
|
56
|
+
flash[:alert] = t("group_invites.accept.error", scope: "decidim")
|
57
|
+
redirect_to profile_groups_path(current_user.nickname)
|
58
|
+
end
|
59
|
+
end
|
47
60
|
end
|
48
61
|
end
|
49
62
|
end
|
@@ -53,13 +66,27 @@ module Decidim
|
|
53
66
|
|
54
67
|
RejectGroupInvitation.call(inviting_user_group, current_user) do
|
55
68
|
on(:ok) do
|
56
|
-
|
57
|
-
|
69
|
+
respond_to do |format|
|
70
|
+
format.json do
|
71
|
+
render json: { message: t("group_invites.reject.success", scope: "decidim") }
|
72
|
+
end
|
73
|
+
format.all do
|
74
|
+
flash[:notice] = t("group_invites.reject.success", scope: "decidim")
|
75
|
+
redirect_to profile_groups_path(current_user.nickname)
|
76
|
+
end
|
77
|
+
end
|
58
78
|
end
|
59
79
|
|
60
80
|
on(:invalid) do
|
61
|
-
|
62
|
-
|
81
|
+
respond_to do |format|
|
82
|
+
format.json do
|
83
|
+
render json: { message: t("group_invites.reject.error", scope: "decidim") }, status: :unprocessable_entity
|
84
|
+
end
|
85
|
+
format.all do
|
86
|
+
flash[:alert] = t("group_invites.reject.error", scope: "decidim")
|
87
|
+
redirect_to profile_groups_path(current_user.nickname)
|
88
|
+
end
|
89
|
+
end
|
63
90
|
end
|
64
91
|
end
|
65
92
|
end
|
@@ -41,7 +41,7 @@ module Decidim
|
|
41
41
|
end
|
42
42
|
|
43
43
|
def escape_url(external_url)
|
44
|
-
before_fragment, fragment =
|
44
|
+
before_fragment, fragment = external_url.split("#", 2)
|
45
45
|
escaped_before_fragment = URI::Parser.new.escape(before_fragment)
|
46
46
|
|
47
47
|
if fragment
|
@@ -23,7 +23,7 @@ module Decidim
|
|
23
23
|
|
24
24
|
def check_current_user_with_token
|
25
25
|
unless current_user.newsletter_token == params[:token]
|
26
|
-
flash[:alert] = t("newsletters_opt_in.
|
26
|
+
flash[:alert] = t("newsletters_opt_in.unauthorized", scope: "decidim")
|
27
27
|
redirect_to decidim.root_path(host: current_organization)
|
28
28
|
end
|
29
29
|
end
|
@@ -14,7 +14,7 @@ module Decidim
|
|
14
14
|
enforce_permission_to(:update, :user, current_user:)
|
15
15
|
@notifications_settings = form(NotificationsSettingsForm).from_params(params)
|
16
16
|
|
17
|
-
UpdateNotificationsSettings.call(
|
17
|
+
UpdateNotificationsSettings.call(@notifications_settings) do
|
18
18
|
on(:ok) do
|
19
19
|
flash.now[:notice] = t("notifications_settings.update.success", scope: "decidim")
|
20
20
|
end
|
@@ -27,10 +27,6 @@ module Decidim
|
|
27
27
|
redirect_to profile_activity_path(nickname: params[:nickname])
|
28
28
|
end
|
29
29
|
|
30
|
-
def tooltip
|
31
|
-
render json: { data: cell("decidim/author", profile_holder.presenter).profile_minicard }
|
32
|
-
end
|
33
|
-
|
34
30
|
def following
|
35
31
|
@content_cell = "decidim/following"
|
36
32
|
@title_key = "following"
|
@@ -12,7 +12,7 @@ module Decidim
|
|
12
12
|
|
13
13
|
@form = form(Decidim::ReportForm).from_params(params)
|
14
14
|
|
15
|
-
CreateUserReport.call(@form, reportable
|
15
|
+
CreateUserReport.call(@form, reportable) do
|
16
16
|
on(:ok) do
|
17
17
|
flash[:notice] = I18n.t("decidim.reports.create.success")
|
18
18
|
if @form.block?
|
@@ -13,7 +13,7 @@ module Decidim
|
|
13
13
|
|
14
14
|
@form = form(Decidim::ReportForm).from_params(params, can_hide: reportable.try(:can_be_administered_by?, current_user))
|
15
15
|
|
16
|
-
CreateReport.call(@form, reportable
|
16
|
+
CreateReport.call(@form, reportable) do
|
17
17
|
on(:ok) do
|
18
18
|
flash[:notice] = I18n.t("decidim.reports.create.success")
|
19
19
|
redirect_back fallback_location: root_path
|
@@ -14,7 +14,7 @@ module Decidim
|
|
14
14
|
enforce_permission_to(:update, :user, current_user:)
|
15
15
|
@user_interests = form(UserInterestsForm).from_params(params)
|
16
16
|
|
17
|
-
UpdateUserInterests.call(
|
17
|
+
UpdateUserInterests.call(@user_interests) do
|
18
18
|
on(:ok) do
|
19
19
|
flash.keep[:notice] = t("user_interests.update.success", scope: "decidim")
|
20
20
|
end
|
@@ -29,5 +29,34 @@ module Decidim
|
|
29
29
|
def user_group_name
|
30
30
|
extra["user_group_name"]
|
31
31
|
end
|
32
|
+
|
33
|
+
def membership_id
|
34
|
+
extra["membership_id"]
|
35
|
+
end
|
36
|
+
|
37
|
+
def invitation
|
38
|
+
@invitation ||= UserGroupMembership.find_by(user:, id: membership_id, role: "invited")
|
39
|
+
end
|
40
|
+
|
41
|
+
def action_cell
|
42
|
+
"decidim/notification_actions/buttons" if invitation
|
43
|
+
end
|
44
|
+
|
45
|
+
def action_data
|
46
|
+
[
|
47
|
+
{
|
48
|
+
url: url_helpers.group_invite_path(user_group_nickname, membership_id, format: :json),
|
49
|
+
icon: "check-line",
|
50
|
+
method: "patch",
|
51
|
+
i18n_label: "decidim.group_invites.accept_invitation"
|
52
|
+
},
|
53
|
+
{
|
54
|
+
url: url_helpers.group_invite_path(user_group_nickname, membership_id, format: :json),
|
55
|
+
icon: "close-circle-line",
|
56
|
+
method: "delete",
|
57
|
+
i18n_label: "decidim.group_invites.reject_invitation"
|
58
|
+
}
|
59
|
+
]
|
60
|
+
end
|
32
61
|
end
|
33
62
|
end
|
@@ -1,9 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module Decidim
|
4
|
-
class WelcomeNotificationEvent < Decidim::Events::
|
5
|
-
include Decidim::Events::EmailEvent
|
6
|
-
include Decidim::Events::NotificationEvent
|
4
|
+
class WelcomeNotificationEvent < Decidim::Events::SimpleEvent
|
7
5
|
include TranslationsHelper
|
8
6
|
|
9
7
|
delegate :organization, to: :user, prefix: false
|
@@ -46,7 +44,7 @@ module Decidim
|
|
46
44
|
def interpolate(template)
|
47
45
|
template
|
48
46
|
.gsub("{{name}}", user.name)
|
49
|
-
.gsub("{{organization}}", organization
|
47
|
+
.gsub("{{organization}}", organization_name(organization))
|
50
48
|
.gsub("{{help_url}}", url_helpers.pages_url(host: organization.host))
|
51
49
|
.gsub("{{badges_url}}", url_helpers.gamification_badges_url(host: organization.host))
|
52
50
|
.html_safe
|
data/app/forms/decidim/form.rb
CHANGED
@@ -11,5 +11,9 @@ module Decidim
|
|
11
11
|
to: :context, prefix: false, allow_nil: true
|
12
12
|
|
13
13
|
delegate :available_locales, to: :current_organization, allow_nil: true
|
14
|
+
|
15
|
+
alias organization current_organization
|
16
|
+
alias component current_component
|
17
|
+
alias participatory_space current_participatory_space
|
14
18
|
end
|
15
19
|
end
|
@@ -10,7 +10,7 @@ module Decidim
|
|
10
10
|
# Property is named as attribute in upload modal and passthru validator, but
|
11
11
|
# it cannot be named as attribute here.
|
12
12
|
attribute :property, String
|
13
|
-
attribute :blob,
|
13
|
+
attribute :blob, String
|
14
14
|
attribute :form_class, String
|
15
15
|
|
16
16
|
validates :resource_class, presence: true
|
@@ -73,7 +73,7 @@ module Decidim
|
|
73
73
|
# This class provides ability to interpret the attachment context based on
|
74
74
|
# the details available within the context of this class. Normally the
|
75
75
|
# attachment context would be defined by the record to which the attachment
|
76
|
-
# are added to, e.g. proposals (participant
|
76
|
+
# are added to, e.g. proposals (participant context) or participatory
|
77
77
|
# processes (admin context). Unfortunately this information is not available
|
78
78
|
# when the parameters are passed to the upload validation.
|
79
79
|
class AttachmentContextProxy
|
@@ -43,7 +43,7 @@ module Decidim
|
|
43
43
|
#
|
44
44
|
# @param value [String] - The flash message.
|
45
45
|
# @param alert_class [String] - The foundation class of the alert message.
|
46
|
-
# @param closable [Boolean] -
|
46
|
+
# @param closable [Boolean] - Whether the close icon is added.
|
47
47
|
#
|
48
48
|
# @return [String] the HTML with the alert box
|
49
49
|
def alert_box(value, alert_class, closable, opts = {})
|
@@ -5,7 +5,7 @@ module Decidim
|
|
5
5
|
module AmendmentsHelper
|
6
6
|
include RichTextEditorHelper
|
7
7
|
|
8
|
-
TOTAL_STEPS =
|
8
|
+
TOTAL_STEPS = 2
|
9
9
|
|
10
10
|
# Renders the state of an emendation
|
11
11
|
#
|
@@ -130,14 +130,10 @@ module Decidim
|
|
130
130
|
|
131
131
|
def current_step
|
132
132
|
@current_step ||= case params[:action].to_sym
|
133
|
-
when :new, :create
|
133
|
+
when :new, :create, :edit_draft, :update_draft, :destroy_draft
|
134
134
|
1
|
135
|
-
when :compare_draft
|
136
|
-
2
|
137
|
-
when :edit_draft, :update_draft, :destroy_draft
|
138
|
-
3
|
139
135
|
when :preview_draft, :publish_draft
|
140
|
-
|
136
|
+
2
|
141
137
|
end
|
142
138
|
end
|
143
139
|
|
@@ -147,10 +143,6 @@ module Decidim
|
|
147
143
|
when 1
|
148
144
|
:new
|
149
145
|
when 2
|
150
|
-
:compare_draft
|
151
|
-
when 3
|
152
|
-
:edit_draft
|
153
|
-
when 4
|
154
146
|
:preview_draft
|
155
147
|
end
|
156
148
|
|
@@ -162,9 +154,7 @@ module Decidim
|
|
162
154
|
case current_step
|
163
155
|
when 1
|
164
156
|
Decidim::ResourceLocatorPresenter.new(amendable).path
|
165
|
-
when
|
166
|
-
Decidim::Core::Engine.routes.url_helpers.compare_draft_amend_path(amendable.amendment)
|
167
|
-
when 4
|
157
|
+
when 2
|
168
158
|
Decidim::Core::Engine.routes.url_helpers.edit_draft_amend_path(amendable.amendment)
|
169
159
|
end
|
170
160
|
end
|
@@ -105,5 +105,13 @@ module Decidim
|
|
105
105
|
def prevent_timeout_seconds
|
106
106
|
0
|
107
107
|
end
|
108
|
+
|
109
|
+
def text_initials(name)
|
110
|
+
name.split(/[\s.]+/).map(&:chr).slice(0, 2).join.upcase
|
111
|
+
end
|
112
|
+
|
113
|
+
def add_body_classes(*class_names)
|
114
|
+
content_for :body_class, class_names.map { |class_name| " #{class_name.strip}" }.join
|
115
|
+
end
|
108
116
|
end
|
109
117
|
end
|
@@ -1,12 +1,12 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module Decidim
|
4
|
-
# A
|
4
|
+
# A helper to expose an easy way to add authorization forms in a view.
|
5
5
|
module AuthorizationFormHelper
|
6
6
|
# Creates a ew authorization form in a view, accepts the same arguments as
|
7
7
|
# `form_for`.
|
8
8
|
#
|
9
|
-
# record - The record to use in the form, it
|
9
|
+
# record - The record to use in the form, it should be a descendant of
|
10
10
|
# AuthorizationHandler.
|
11
11
|
# options - An optional hash with options to pass wo the form builder.
|
12
12
|
# block - A block with the content of the form.
|