decidim-core 0.28.6 → 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/show.erb +3 -5
- 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 +6 -8
- 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_activity/show.erb +1 -1
- 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 +11 -23
- 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/search.rb +0 -14
- 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 +2 -6
- data/app/controllers/decidim/report_users_controller.rb +1 -1
- data/app/controllers/decidim/reports_controller.rb +2 -2
- data/app/controllers/decidim/user_activities_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/account_form.rb +2 -5
- 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 +2 -3
- data/app/helpers/decidim/organization_helper.rb +55 -0
- data/app/helpers/decidim/paginate_helper.rb +5 -3
- data/app/helpers/decidim/participatory_space_helpers.rb +1 -1
- 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 +18 -14
- data/app/models/decidim/user_base_entity.rb +0 -4
- 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 -10
- 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/map/provider/here.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/src/decidim/vendor/leaflet-tilelayer-here.js +212 -0
- 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 -68
- 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 -1
- 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/log/user_presenter.rb +0 -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 -28
- 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/static_map_generator.rb +1 -1
- 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/last_activities/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/hide.html.erb +1 -1
- data/app/views/decidim/reported_mailer/report.html.erb +5 -3
- data/app/views/decidim/scopes/picker.html.erb +5 -5
- data/app/views/decidim/searches/_count.html.erb +1 -1
- data/app/views/decidim/searches/_filters.html.erb +38 -40
- 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 +15 -97
- data/config/locales/bg.yml +58 -68
- data/config/locales/ca.yml +85 -121
- data/config/locales/cs.yml +63 -114
- data/config/locales/de.yml +79 -115
- data/config/locales/el.yml +3 -46
- data/config/locales/en.yml +62 -98
- data/config/locales/eo.yml +0 -2
- data/config/locales/es-MX.yml +76 -112
- data/config/locales/es-PY.yml +80 -116
- data/config/locales/es.yml +86 -122
- data/config/locales/eu.yml +310 -357
- data/config/locales/fi-plain.yml +73 -101
- data/config/locales/fi.yml +135 -163
- data/config/locales/fr-CA.yml +65 -107
- data/config/locales/fr.yml +58 -100
- data/config/locales/ga-IE.yml +0 -22
- data/config/locales/gl.yml +3 -51
- data/config/locales/hu.yml +43 -69
- data/config/locales/id-ID.yml +3 -46
- data/config/locales/is-IS.yml +2 -31
- data/config/locales/it.yml +12 -107
- data/config/locales/ja.yml +86 -122
- data/config/locales/lb.yml +7 -57
- data/config/locales/lt.yml +4 -57
- data/config/locales/lv.yml +2 -47
- data/config/locales/nl.yml +6 -57
- data/config/locales/no.yml +0 -50
- data/config/locales/pl.yml +67 -64
- data/config/locales/pt-BR.yml +8 -263
- data/config/locales/pt.yml +0 -56
- data/config/locales/ro-RO.yml +253 -561
- data/config/locales/ru.yml +1 -48
- data/config/locales/sk.yml +7 -60
- data/config/locales/sl.yml +0 -12
- data/config/locales/sr-CS.yml +0 -2
- data/config/locales/sv.yml +169 -629
- data/config/locales/tr-TR.yml +12 -59
- data/config/locales/uk.yml +2 -30
- data/config/locales/zh-CN.yml +2 -49
- data/config/locales/zh-TW.yml +1 -61
- 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 +2 -16
- 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/user_parser.rb +1 -1
- 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 +11 -53
- 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 -28
- data/lib/decidim/core/test/shared_examples/versions_controller_examples.rb +0 -26
- 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/map/provider/dynamic_map/here.rb +40 -1
- data/lib/decidim/map/provider/static_map/here.rb +0 -34
- data/lib/decidim/nicknamizable.rb +1 -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/reportable.rb +2 -6
- 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 -13
- data/lib/decidim/translatable_resource.rb +1 -1
- data/lib/decidim/view_hooks.rb +1 -1
- data/lib/decidim/view_model.rb +4 -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 +20 -23
- 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 +220 -103
- 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/packs/stylesheets/decidim/_hashtags.scss +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 -100
- data/config/locales/ca-IT.yml +0 -2115
- 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 -95
- 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
@@ -16,8 +16,8 @@ module Decidim
|
|
16
16
|
@store[key] = block
|
17
17
|
end
|
18
18
|
|
19
|
-
def render(key, context = nil, **
|
20
|
-
context.instance_exec(
|
19
|
+
def render(key, context = nil, **)
|
20
|
+
context.instance_exec(**, &@store[key]) if @store[key]
|
21
21
|
end
|
22
22
|
end
|
23
23
|
end
|
@@ -49,7 +49,46 @@ module Decidim
|
|
49
49
|
private
|
50
50
|
|
51
51
|
def language_code
|
52
|
-
I18n.locale.to_s
|
52
|
+
primary = I18n.locale.to_s
|
53
|
+
secondary = primary.split("-")[0]
|
54
|
+
available_language_codes[primary] || available_language_codes[secondary] || ""
|
55
|
+
end
|
56
|
+
|
57
|
+
def available_language_codes
|
58
|
+
@available_language_codes ||= {
|
59
|
+
"ar" => "ara", # Arabic
|
60
|
+
"eu" => "baq", # Basque
|
61
|
+
"ca" => "cat", # Catalan
|
62
|
+
"zh" => "chi", # Chinese (simplified)
|
63
|
+
# "" => "cht", # Chinese (traditional)
|
64
|
+
"cs" => "cze", # Czech
|
65
|
+
"da" => "dan", # Danish
|
66
|
+
"nl" => "dut", # Dutch
|
67
|
+
"en" => "eng", # English
|
68
|
+
"fi" => "fin", # Finnish
|
69
|
+
"fr" => "fre", # French
|
70
|
+
"de" => "ger", # German
|
71
|
+
"ga" => "gle", # Gaelic
|
72
|
+
"el" => "gre", # Greek
|
73
|
+
"he" => "heb", # Hebrew
|
74
|
+
"hi" => "hin", # Hindi
|
75
|
+
"id" => "ind", # Indonesian
|
76
|
+
"it" => "ita", # Italian
|
77
|
+
"no" => "nor", # Norwegian
|
78
|
+
"fa" => "per", # Persian
|
79
|
+
"pl" => "pol", # Polish
|
80
|
+
"pt" => "por", # Portuguese
|
81
|
+
"ru" => "rus", # Russian
|
82
|
+
"si" => "sin", # Sinhalese
|
83
|
+
"es" => "spa", # Spanish
|
84
|
+
"sv" => "swe", # Swedish
|
85
|
+
"th" => "tha", # Thai
|
86
|
+
"tr" => "tur", # Turkish
|
87
|
+
"uk" => "ukr", # Ukrainian
|
88
|
+
"ur" => "urd", # Urdu
|
89
|
+
"vi" => "vie", # Vietnamese
|
90
|
+
"cy" => "wel" # Welsh
|
91
|
+
}
|
53
92
|
end
|
54
93
|
end
|
55
94
|
end
|
@@ -6,42 +6,8 @@ module Decidim
|
|
6
6
|
module StaticMap
|
7
7
|
# The static map utility class for the HERE maps service
|
8
8
|
class Here < ::Decidim::Map::StaticMap
|
9
|
-
def url(latitude:, longitude:, options: {})
|
10
|
-
map_url = configuration.fetch(:url, nil)
|
11
|
-
return super unless map_url
|
12
|
-
|
13
|
-
return super unless map_url.include?("mia/v3")
|
14
|
-
|
15
|
-
w = options[:width] || Decidim::Map::StaticMap::DEFAULT_SIZE
|
16
|
-
h = options[:height] || Decidim::Map::StaticMap::DEFAULT_SIZE
|
17
|
-
|
18
|
-
params = {
|
19
|
-
apiKey: configuration[:api_key],
|
20
|
-
overlay: "point:#{latitude},#{longitude};icon=cp;size=large|#{latitude},#{longitude};style=circle;width=50m;color=%231B9D2C60"
|
21
|
-
}
|
22
|
-
|
23
|
-
URI.parse("#{map_url}:radius=90/#{w}x#{h}/png8").tap do |uri|
|
24
|
-
uri.query = URI.encode_www_form(params)
|
25
|
-
end.to_s
|
26
|
-
end
|
27
|
-
|
28
9
|
# @See Decidim::Map::StaticMap#url_params
|
29
10
|
def url_params(latitude:, longitude:, options: {})
|
30
|
-
ActiveSupport::Deprecation.warn(
|
31
|
-
<<~DEPRECATION.strip
|
32
|
-
Please use a V3 version HERE maps.
|
33
|
-
For further information, see:
|
34
|
-
https://www.here.com/docs/bundle/map-image-migration-guide-v3/page/README.html
|
35
|
-
Also make sure your Decidim.maps configurations are using the
|
36
|
-
up to date format.
|
37
|
-
You need to change:
|
38
|
-
static_url = "https://image.maps.ls.hereapi.com/mia/1.6/mapview" if static_provider == "here" && static_url.blank?
|
39
|
-
to:
|
40
|
-
static_url = "https://image.maps.hereapi.com/mia/v3/base/mc/overlay" if static_provider == "here"
|
41
|
-
in your config/initializers/decidim.rb file.
|
42
|
-
DEPRECATION
|
43
|
-
)
|
44
|
-
|
45
11
|
params = {
|
46
12
|
c: "#{latitude}, #{longitude}",
|
47
13
|
z: options[:zoom] || Decidim::Map::StaticMap::DEFAULT_ZOOM,
|
@@ -52,7 +52,7 @@ module Decidim
|
|
52
52
|
candidate = name
|
53
53
|
|
54
54
|
2.step do |n|
|
55
|
-
return candidate if Decidim::UserBaseEntity.where(nickname
|
55
|
+
return candidate if Decidim::UserBaseEntity.where("nickname ILIKE ?", candidate.downcase).where(scope).empty?
|
56
56
|
|
57
57
|
candidate = numbered_variation_of(name, n)
|
58
58
|
end
|
@@ -79,7 +79,7 @@ module Decidim
|
|
79
79
|
# Decidim.organization_settings(org).target_config_accessor
|
80
80
|
# #=> returns the organization specific setting
|
81
81
|
#
|
82
|
-
# Decidim.organization_settings(
|
82
|
+
# Decidim.organization_settings(model_belonging_to_org).target_config_accessor
|
83
83
|
# #=> returns the organization specific setting for model's organization
|
84
84
|
#
|
85
85
|
# Decidim.organization_settings(nil).target_config_accessor
|
@@ -104,9 +104,9 @@ module Decidim
|
|
104
104
|
{
|
105
105
|
"upload" => {
|
106
106
|
"allowed_file_extensions" => {
|
107
|
-
"default" => %w(jpg jpeg png pdf rtf txt),
|
108
|
-
"admin" => %w(jpg jpeg png pdf doc docx xls xlsx ppt pptx ppx rtf txt odt ott odf otg ods ots
|
109
|
-
"image" => %w(jpg jpeg png)
|
107
|
+
"default" => %w(jpg jpeg png webp pdf rtf txt),
|
108
|
+
"admin" => %w(jpg jpeg png webp pdf doc docx xls xlsx ppt pptx ppx rtf txt odt ott odf otg ods ots),
|
109
|
+
"image" => %w(jpg jpeg png webp)
|
110
110
|
},
|
111
111
|
"allowed_content_types" => {
|
112
112
|
"default" => %w(
|
@@ -125,10 +125,7 @@ module Decidim
|
|
125
125
|
application/vnd.oasis.opendocument
|
126
126
|
application/pdf
|
127
127
|
application/rtf
|
128
|
-
application/json
|
129
|
-
text/markdown
|
130
128
|
text/plain
|
131
|
-
text/csv
|
132
129
|
)
|
133
130
|
},
|
134
131
|
"maximum_file_size" => {
|
@@ -193,7 +190,7 @@ module Decidim
|
|
193
190
|
|
194
191
|
private
|
195
192
|
|
196
|
-
# Generates a final
|
193
|
+
# Generates a final settings configuration struct from the given settings
|
197
194
|
# hash. Combines the given defaults with the settings hash.
|
198
195
|
#
|
199
196
|
# @param hash [Hash] The configurations hash.
|
data/lib/decidim/paddable.rb
CHANGED
@@ -59,7 +59,7 @@ module Decidim
|
|
59
59
|
@pad_id ||= [reference, token].join("-").slice(0, 50)
|
60
60
|
end
|
61
61
|
|
62
|
-
#
|
62
|
+
# compatibility with old versions if no salt available (less secure)
|
63
63
|
def token
|
64
64
|
if defined?(salt) && salt.present?
|
65
65
|
tokenizer = Decidim::Tokenizer.new(salt:)
|
data/lib/decidim/participable.rb
CHANGED
@@ -98,7 +98,7 @@ module Decidim
|
|
98
98
|
#
|
99
99
|
# Returns nothing.
|
100
100
|
def seed!
|
101
|
-
print "Creating seeds for the #{name} space...\n" unless Rails.env.test?
|
101
|
+
print "Creating seeds for the #{name} space...\n" unless Rails.env.test? # rubocop:disable Rails/Output
|
102
102
|
@seeds&.call
|
103
103
|
end
|
104
104
|
|
@@ -10,6 +10,22 @@ module Decidim
|
|
10
10
|
#
|
11
11
|
# Returns nothing.
|
12
12
|
def self.included(type)
|
13
|
+
type.field :participatory_processes,
|
14
|
+
[Decidim::ParticipatoryProcesses::ParticipatoryProcessType],
|
15
|
+
null: true,
|
16
|
+
description: "Lists all participatory_processes" do
|
17
|
+
argument :filter, Decidim::ParticipatoryProcesses::ParticipatoryProcessInputFilter, "This argument lets you filter the results", required: false
|
18
|
+
argument :order, Decidim::ParticipatoryProcesses::ParticipatoryProcessInputSort, "This argument lets you order the results", required: false
|
19
|
+
end
|
20
|
+
|
21
|
+
type.field :participatory_process,
|
22
|
+
Decidim::ParticipatoryProcesses::ParticipatoryProcessType,
|
23
|
+
null: true,
|
24
|
+
description: "Finds a participatory_process" do
|
25
|
+
argument :id, GraphQL::Types::ID, "The ID of the participatory space", required: false
|
26
|
+
argument :slug, String, "The slug of the participatory process", required: false
|
27
|
+
end
|
28
|
+
|
13
29
|
type.field :component, Decidim::Core::ComponentInterface, null: true do
|
14
30
|
description "Lists the components this space contains."
|
15
31
|
argument :id, GraphQL::Types::ID, required: true, description: "The ID of the component to be found"
|
@@ -46,6 +62,16 @@ module Decidim
|
|
46
62
|
end
|
47
63
|
end
|
48
64
|
|
65
|
+
def participatory_processes(filter: {}, order: {})
|
66
|
+
manifest = Decidim.participatory_space_manifests.select { |m| m.name == :participatory_processes }.first
|
67
|
+
Decidim::Core::ParticipatorySpaceListBase.new(manifest:).call(object, { filter:, order: }, context)
|
68
|
+
end
|
69
|
+
|
70
|
+
def participatory_process(id: nil, slug: nil)
|
71
|
+
manifest = Decidim.participatory_space_manifests.select { |m| m.name == :participatory_processes }.first
|
72
|
+
Decidim::Core::ParticipatorySpaceFinderBase.new(manifest:).call(object, { id:, slug: }, context)
|
73
|
+
end
|
74
|
+
|
49
75
|
def component(id: {})
|
50
76
|
component = Decidim::Component.published.find_by(id:)
|
51
77
|
component&.organization == context[:current_organization] ? component : nil
|
data/lib/decidim/reportable.rb
CHANGED
@@ -53,12 +53,8 @@ module Decidim
|
|
53
53
|
# Public: The reported content url
|
54
54
|
#
|
55
55
|
# Returns String
|
56
|
-
def reported_content_url
|
57
|
-
|
58
|
-
ResourceLocatorPresenter.new(self).index(options)
|
59
|
-
else
|
60
|
-
ResourceLocatorPresenter.new(self).url(options)
|
61
|
-
end
|
56
|
+
def reported_content_url
|
57
|
+
raise NotImplementedError
|
62
58
|
end
|
63
59
|
|
64
60
|
# Public: The collection of attribute names that are considered
|
data/lib/decidim/resourceable.rb
CHANGED
@@ -111,7 +111,7 @@ module Decidim
|
|
111
111
|
end
|
112
112
|
|
113
113
|
# Check only the resource visibility not its hierarchy.
|
114
|
-
# This method is intended to be
|
114
|
+
# This method is intended to be overridden by classes that include this module and have the
|
115
115
|
# need to impose its own visibility rules.
|
116
116
|
#
|
117
117
|
# @return If the resource is also Publicable checks if the resource is published, otherwise returns true by default.
|
@@ -13,8 +13,8 @@ module Decidim
|
|
13
13
|
#
|
14
14
|
# @param declared_fields: A Hash with the mappings between a SearchableResource attributes and
|
15
15
|
# any given model. Mapped fields are:
|
16
|
-
# - scope_id: The field where the scope is
|
17
|
-
# - participatory_space: The field where the ParticipatorySpace is
|
16
|
+
# - scope_id: The field where the scope is set in the model, if any.
|
17
|
+
# - participatory_space: The field where the ParticipatorySpace is set in the model.
|
18
18
|
# - datetime: The field that describes where in time the model is placed.
|
19
19
|
# - A, B, C, D: Weighted text fields.
|
20
20
|
#
|
data/lib/decidim/searchable.rb
CHANGED
@@ -74,7 +74,7 @@ module Decidim
|
|
74
74
|
after_destroy do |searchable|
|
75
75
|
remove_from_index(searchable) if self.class.search_resource_fields_mapper
|
76
76
|
end
|
77
|
-
# after_create and after_update callbacks are dynamically
|
77
|
+
# after_create and after_update callbacks are dynamically set in `searchable_fields` method.
|
78
78
|
|
79
79
|
# Public: after_create callback to index the model as a SearchableResource, if configured so.
|
80
80
|
#
|
@@ -178,8 +178,8 @@ module Decidim
|
|
178
178
|
# }
|
179
179
|
#
|
180
180
|
# `conditions` must be a Hash that only accepts a boolean or a Proc that will be evaluated on runtime and returns a boolean for the following keys:
|
181
|
-
# - index_on_create: Whether to index, or not, the current
|
182
|
-
# - index_on_update: Whether to index, or not, the current
|
181
|
+
# - index_on_create: Whether to index, or not, the current searchable when it is created. Defaults to true.
|
182
|
+
# - index_on_update: Whether to index, or not, the current searchable when it is updated. Defaults to true.
|
183
183
|
#
|
184
184
|
def searchable_fields(declared_fields, conditions = {})
|
185
185
|
@search_resource_indexable_fields = SearchResourceFieldsMapper.new(declared_fields)
|
data/lib/decidim/seeds.rb
CHANGED
@@ -17,6 +17,27 @@ module Decidim
|
|
17
17
|
@admin_user ||= Decidim::User.find_by(organization:, email: "admin@example.org")
|
18
18
|
end
|
19
19
|
|
20
|
+
def find_or_initialize_user_by(email:)
|
21
|
+
user = Decidim::User.find_or_initialize_by(email:)
|
22
|
+
user.update!(
|
23
|
+
name: ::Faker::Name.name,
|
24
|
+
nickname: ::Faker::Twitter.unique.screen_name,
|
25
|
+
password: "decidim123456789",
|
26
|
+
organization:,
|
27
|
+
confirmed_at: Time.current,
|
28
|
+
locale: I18n.default_locale,
|
29
|
+
personal_url: ::Faker::Internet.url,
|
30
|
+
about: ::Faker::Lorem.paragraph(sentence_count: 2),
|
31
|
+
avatar: random_avatar,
|
32
|
+
accepted_tos_version: organization.tos_version + 1.hour,
|
33
|
+
newsletter_notifications_at: Time.current,
|
34
|
+
tos_agreement: true,
|
35
|
+
password_updated_at: Time.current
|
36
|
+
)
|
37
|
+
|
38
|
+
user
|
39
|
+
end
|
40
|
+
|
20
41
|
def random_scope(participatory_space:)
|
21
42
|
if participatory_space.scope
|
22
43
|
scopes = participatory_space.scope.descendants
|
@@ -86,10 +107,51 @@ module Decidim
|
|
86
107
|
)
|
87
108
|
end
|
88
109
|
|
110
|
+
def create_report!(reportable:, current_user:)
|
111
|
+
moderation = Moderation.find_or_create_by!(reportable:, participatory_space: reportable.participatory_space)
|
112
|
+
|
113
|
+
Decidim::Report.create!(
|
114
|
+
moderation:,
|
115
|
+
user: current_user,
|
116
|
+
locale: I18n.locale,
|
117
|
+
reason: "spam",
|
118
|
+
details: "From the seeds"
|
119
|
+
)
|
120
|
+
rescue ActiveRecord::RecordInvalid
|
121
|
+
# Ignore in case we have an error in the report creation.
|
122
|
+
# Most likely is a "Validation failed: User has already been taken"
|
123
|
+
end
|
124
|
+
|
125
|
+
def hide_report!(reportable:)
|
126
|
+
moderation = Moderation.find_or_create_by!(reportable:, participatory_space: reportable.participatory_space)
|
127
|
+
moderation.update!(hidden_at: Time.zone.now)
|
128
|
+
end
|
129
|
+
|
130
|
+
def create_user_report!(reportable:, current_user:)
|
131
|
+
moderation = UserModeration.find_or_create_by!(user: reportable)
|
132
|
+
|
133
|
+
UserReport.create!(
|
134
|
+
moderation:,
|
135
|
+
user: current_user,
|
136
|
+
reason: "spam",
|
137
|
+
details: "From the seeds"
|
138
|
+
)
|
139
|
+
end
|
140
|
+
|
89
141
|
def seed_components_manifests!(participatory_space:)
|
90
142
|
Decidim.component_manifests.each do |manifest|
|
91
143
|
manifest.seed!(participatory_space.reload)
|
92
144
|
end
|
93
145
|
end
|
146
|
+
|
147
|
+
def random_avatar
|
148
|
+
file_number = format("%03d", rand(1...100))
|
149
|
+
|
150
|
+
create_blob!(seeds_file: "avatars/#{file_number}.jpg", filename: "#{file_number}.jpg", content_type: "image/jpeg")
|
151
|
+
end
|
152
|
+
|
153
|
+
def create_follow!(user, followable)
|
154
|
+
Decidim::Follow.create!(followable:, user:)
|
155
|
+
end
|
94
156
|
end
|
95
157
|
end
|
@@ -40,7 +40,7 @@ module Decidim
|
|
40
40
|
# Public: Returns a number returned by executing the corresponding block.
|
41
41
|
#
|
42
42
|
# name - The name of the stat
|
43
|
-
# context - An
|
43
|
+
# context - An arbitrary context object to compute the result.
|
44
44
|
# start_at - A date to filter resources created after it
|
45
45
|
# end_at - A date to filter resources created before it.
|
46
46
|
#
|
@@ -54,7 +54,7 @@ module Decidim
|
|
54
54
|
|
55
55
|
# Public: Resolves every stat with the given context and return an enumerator
|
56
56
|
#
|
57
|
-
# context - An
|
57
|
+
# context - An arbitrary context object to compute the result.
|
58
58
|
# start_at - A date to filter resources created after it
|
59
59
|
# end_at - A date to filter resources created before it
|
60
60
|
#
|
@@ -17,7 +17,7 @@ module Decidim
|
|
17
17
|
# type - The attribute's type
|
18
18
|
# options - Options to send to the form class when defining the attribute.
|
19
19
|
# block - An optional block to be called for each attribute name and
|
20
|
-
# locale. The block will receive two arguments, one with the
|
20
|
+
# locale. The block will receive two arguments, one with the attribute
|
21
21
|
# name and another with the locale.
|
22
22
|
#
|
23
23
|
#
|
@@ -34,15 +34,12 @@ module Decidim
|
|
34
34
|
# end
|
35
35
|
#
|
36
36
|
# Returns nothing.
|
37
|
-
|
38
|
-
def translatable_attribute(name, type, **options)
|
37
|
+
def translatable_attribute(name, type, **)
|
39
38
|
attribute(name, { String => Object }, default: {})
|
40
39
|
|
41
40
|
locales.each do |locale|
|
42
41
|
attribute_name = "#{name}_#{locale}".gsub("-", "__")
|
43
|
-
attribute
|
44
|
-
|
45
|
-
value_type = attribute_types[attribute_name.to_s]
|
42
|
+
attribute(attribute_name, type, **)
|
46
43
|
|
47
44
|
define_method attribute_name do
|
48
45
|
field = public_send(name) || {}
|
@@ -54,6 +51,7 @@ module Decidim
|
|
54
51
|
# changed and the old value is still stored against the record.
|
55
52
|
field
|
56
53
|
end
|
54
|
+
value_type = self.class.attribute_types[attribute_name.to_s]
|
57
55
|
value_type ? value_type.cast(value) : value
|
58
56
|
end
|
59
57
|
|
@@ -62,15 +60,12 @@ module Decidim
|
|
62
60
|
final = super(value)
|
63
61
|
return unless final # Do not set the `nil` values for the parent hash
|
64
62
|
|
65
|
-
final = value_type.serialize(final) if value_type && !attachment?(final)
|
66
|
-
|
67
63
|
public_send("#{name}=", field.merge(locale => final))
|
68
64
|
end
|
69
65
|
|
70
66
|
yield(attribute_name, locale) if block_given?
|
71
67
|
end
|
72
68
|
end
|
73
|
-
# rubocop:enable Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
|
74
69
|
|
75
70
|
def locales
|
76
71
|
Decidim.available_locales
|
@@ -127,9 +122,5 @@ module Decidim
|
|
127
122
|
locale.to_s == try(:default_locale).to_s ||
|
128
123
|
locale.to_s == try(:current_organization).try(:default_locale).to_s
|
129
124
|
end
|
130
|
-
|
131
|
-
def attachment?(value)
|
132
|
-
value.is_a?(String) && value.include?(ActiveStorage.routes_prefix)
|
133
|
-
end
|
134
125
|
end
|
135
126
|
end
|
@@ -19,7 +19,7 @@ module Decidim
|
|
19
19
|
method_name = "#{field}="
|
20
20
|
|
21
21
|
# We are overriding the attribute setter method so that we can reuse the
|
22
|
-
# machine translations. This is to fix a bug
|
22
|
+
# machine translations. This is to fix a bug encountered when updating
|
23
23
|
# the resource from a FormObject. The FormObject on the `#create`
|
24
24
|
# action in the controller does not have the machine translations loaded,
|
25
25
|
# so they are effectively lost whenever a resource is updated.
|
data/lib/decidim/view_hooks.rb
CHANGED
@@ -87,7 +87,7 @@ module Decidim
|
|
87
87
|
# Internal class to encapsulate each view registered on a view hook.
|
88
88
|
class ViewHook
|
89
89
|
# priority - a Number (Integer|Float) to sort the block.
|
90
|
-
# block - a block that will
|
90
|
+
# block - a block that will be rendered in a view context.
|
91
91
|
def initialize(priority, block)
|
92
92
|
@priority = priority
|
93
93
|
@block = block
|
data/lib/decidim/view_model.rb
CHANGED
@@ -17,7 +17,10 @@ module Decidim
|
|
17
17
|
include Decidim::MarkupHelper
|
18
18
|
include Decidim::LayoutHelper
|
19
19
|
include Decidim::SanitizeHelper
|
20
|
+
include Decidim::ApplicationHelper
|
21
|
+
include Decidim::IconHelper
|
20
22
|
|
23
|
+
delegate :helper_method, to: :controller
|
21
24
|
delegate :current_organization, to: :controller
|
22
25
|
delegate_missing_to :view_context
|
23
26
|
|
@@ -88,7 +91,7 @@ module Decidim
|
|
88
91
|
end
|
89
92
|
|
90
93
|
def cache_expiry_time
|
91
|
-
|
94
|
+
nil
|
92
95
|
end
|
93
96
|
|
94
97
|
def decidim
|
@@ -22,12 +22,12 @@ default: &default
|
|
22
22
|
cache_manifest: false
|
23
23
|
|
24
24
|
# Select loader to use, available options are 'babel' (default), 'swc' or 'esbuild'
|
25
|
-
webpack_loader: '
|
25
|
+
webpack_loader: 'esbuild'
|
26
26
|
|
27
27
|
# Set to true to enable check for matching versions of shakapacker gem and NPM package - will raise an error if there is a mismatch or wildcard versioning is used
|
28
28
|
ensure_consistent_versioning: true
|
29
29
|
|
30
|
-
# Select whether the compiler will use SHA digest ('digest' option) or most
|
30
|
+
# Select whether the compiler will use SHA digest ('digest' option) or most recent modified timestamp ('mtime') to determine freshness
|
31
31
|
compiler_strategy: digest
|
32
32
|
|
33
33
|
# Select whether the compiler will always use a content hash and not just in production
|
@@ -0,0 +1,11 @@
|
|
1
|
+
{
|
2
|
+
"compilerOptions": {
|
3
|
+
"strict": true, /* Enable all strict type-checking options. */
|
4
|
+
"removeComments": true, /* Disable emitting comments. */
|
5
|
+
"allowJs": true, /* Allow JavaScript files to be a part of your program. Use the `checkJS` option to get errors from these files. */
|
6
|
+
"module": "commonjs", /* Specify what module code is generated. */
|
7
|
+
"incremental": true, /* Enable incremental compilation */
|
8
|
+
"target": "es6", /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */
|
9
|
+
"skipLibCheck": true, /* Skip type checking all .d.ts files. */
|
10
|
+
}
|
11
|
+
}
|
@@ -1,7 +1,7 @@
|
|
1
1
|
/* eslint-disable */
|
2
2
|
const { config } = require("shakapacker");
|
3
3
|
const { InjectManifest } = require("workbox-webpack-plugin");
|
4
|
-
const
|
4
|
+
const { EsbuildPlugin } = require("esbuild-loader");
|
5
5
|
|
6
6
|
module.exports = {
|
7
7
|
module: {
|
@@ -15,8 +15,8 @@ module.exports = {
|
|
15
15
|
},
|
16
16
|
{
|
17
17
|
test: /\.(js|jsx)$/,
|
18
|
-
exclude: /node_modules
|
19
|
-
loader: "
|
18
|
+
exclude: /node_modules\//,
|
19
|
+
loader: "esbuild-loader"
|
20
20
|
},
|
21
21
|
{
|
22
22
|
test: /\.(graphql|gql)$/,
|
@@ -37,14 +37,11 @@ module.exports = {
|
|
37
37
|
}
|
38
38
|
},
|
39
39
|
{
|
40
|
-
test: [
|
41
|
-
/\.md$/,
|
42
|
-
/\.odt$/,
|
43
|
-
],
|
40
|
+
test: [/\.md$/, /\.odt$/],
|
44
41
|
exclude: [/\.(js|mjs|jsx|ts|tsx)$/],
|
45
|
-
type:
|
42
|
+
type: "asset/resource",
|
46
43
|
generator: {
|
47
|
-
filename:
|
44
|
+
filename: "media/documents/[hash][ext][query]"
|
48
45
|
}
|
49
46
|
},
|
50
47
|
// Overwrite webpacker files rule to amend the filename output
|
@@ -68,9 +65,9 @@ module.exports = {
|
|
68
65
|
/\.svg$/
|
69
66
|
],
|
70
67
|
exclude: [/\.(js|mjs|jsx|ts|tsx)$/],
|
71
|
-
type:
|
68
|
+
type: "asset/resource",
|
72
69
|
generator: {
|
73
|
-
filename:
|
70
|
+
filename: "media/images/[name]-[hash][ext][query]"
|
74
71
|
}
|
75
72
|
}
|
76
73
|
]
|
@@ -81,32 +78,13 @@ module.exports = {
|
|
81
78
|
crypto: false
|
82
79
|
}
|
83
80
|
},
|
84
|
-
// https://github.com/rails/webpacker/issues/2932
|
85
|
-
// As Decidim uses multiple packs, we need to enforce a single runtime, to prevent duplication
|
86
81
|
optimization: {
|
87
82
|
minimizer: [
|
88
|
-
new
|
89
|
-
|
90
|
-
|
91
|
-
parse: {
|
92
|
-
// Let terser parse ecma 8 code but always output
|
93
|
-
// ES5 compliant code for older browsers
|
94
|
-
ecma: 8
|
95
|
-
},
|
96
|
-
compress: {
|
97
|
-
ecma: 5,
|
98
|
-
warnings: false,
|
99
|
-
comparisons: false
|
100
|
-
},
|
101
|
-
mangle: { safari10: true },
|
102
|
-
output: {
|
103
|
-
ecma: 5,
|
104
|
-
comments: false,
|
105
|
-
ascii_only: true
|
106
|
-
}
|
107
|
-
}
|
83
|
+
new EsbuildPlugin({
|
84
|
+
target: "es2015",
|
85
|
+
css: true
|
108
86
|
})
|
109
|
-
]
|
87
|
+
]
|
110
88
|
},
|
111
89
|
entry: config.entrypoints,
|
112
90
|
plugins: [
|
@@ -122,4 +100,4 @@ module.exports = {
|
|
122
100
|
swDest: "../sw.js"
|
123
101
|
})
|
124
102
|
]
|
125
|
-
}
|
103
|
+
};
|
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
module Devise
|
4
4
|
module Models
|
5
|
-
# Newsletterable adds all needed validations to
|
5
|
+
# Newsletterable adds all needed validations to accomplish GDPR standards
|
6
6
|
# in newsletter notification mailing
|
7
7
|
#
|
8
8
|
# Validates that all users with notifications activated have Opt-in in
|