decidim-core 0.24.3 → 0.25.0.rc1
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of decidim-core might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/app/cells/decidim/activity_cell.rb +8 -0
- data/app/cells/decidim/announcement/show.erb +1 -1
- data/app/cells/decidim/author/comments.erb +2 -2
- data/app/cells/decidim/author/profile_inline.erb +3 -3
- data/app/cells/decidim/author_cell.rb +2 -1
- data/app/cells/decidim/coauthorships_cell.rb +2 -2
- data/app/cells/decidim/content_blocks/cta_cell.rb +1 -1
- data/app/cells/decidim/content_blocks/hero_cell.rb +1 -1
- data/app/cells/decidim/content_blocks/highlighted_content_banner/show.erb +1 -1
- data/app/cells/decidim/content_blocks/how_to_participate/show.erb +4 -4
- data/app/cells/decidim/content_blocks/stats/show.erb +8 -3
- data/app/cells/decidim/content_blocks/sub_hero/show.erb +1 -1
- data/app/cells/decidim/content_blocks/sub_hero_cell.rb +10 -0
- data/app/cells/decidim/{date → date_range}/show.erb +0 -0
- data/app/cells/decidim/{date_cell.rb → date_range_cell.rb} +1 -1
- data/app/cells/decidim/endorsement_buttons/select_identity_button.erb +0 -1
- data/app/cells/decidim/flag_modal/show.erb +11 -8
- 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 +2 -2
- data/app/cells/decidim/notifications/show.erb +0 -2
- data/app/cells/decidim/profile/invalid.erb +9 -0
- data/app/cells/decidim/profile_cell.rb +4 -5
- data/app/cells/decidim/public_participation/show.erb +4 -0
- data/app/cells/decidim/public_participation_cell.rb +12 -0
- data/app/cells/decidim/represent_user_group/show.erb +0 -1
- data/app/cells/decidim/statistic/homepage.erb +9 -0
- data/app/cells/decidim/statistic/show.erb +9 -0
- data/app/cells/decidim/statistic_cell.rb +22 -0
- data/app/cells/decidim/statistics/show.erb +19 -0
- data/app/cells/decidim/statistics_cell.rb +36 -0
- data/app/cells/decidim/user_activity/show.erb +0 -1
- data/app/cells/decidim/user_conversation/conversation_header.erb +2 -2
- data/app/cells/decidim/user_conversation/messages.erb +1 -1
- data/app/cells/decidim/user_conversation_cell.rb +11 -2
- data/app/cells/decidim/user_conversations/add_conversation_users.erb +0 -1
- data/app/cells/decidim/user_conversations/conversation_item.erb +1 -1
- data/app/cells/decidim/user_conversations/show.erb +0 -1
- data/app/cells/decidim/user_conversations_cell.rb +10 -2
- data/app/cells/decidim/user_profile/unlinked_user_data.erb +3 -3
- data/app/cells/decidim/user_profile/user_data.erb +3 -3
- data/app/cells/decidim/user_profile_cell.rb +2 -1
- data/app/cells/decidim/version_author/show.erb +4 -4
- data/app/cells/decidim/version_author_cell.rb +11 -0
- data/app/cells/decidim/versions_list_item/show.erb +1 -1
- data/app/commands/decidim/attachment_attributes_methods.rb +18 -0
- data/app/commands/decidim/attachment_methods.rb +2 -1
- data/app/commands/decidim/create_follow.rb +4 -1
- data/app/commands/decidim/create_omniauth_registration.rb +6 -1
- data/app/commands/decidim/destroy_account.rb +1 -1
- data/app/commands/decidim/gallery_methods.rb +2 -1
- data/app/commands/decidim/messaging/start_conversation.rb +2 -2
- data/app/commands/decidim/multiple_attachments_methods.rb +2 -1
- data/app/commands/decidim/update_account.rb +6 -2
- data/app/commands/decidim/update_user_group.rb +1 -2
- data/app/controllers/concerns/decidim/amendments_controller.rb +1 -0
- data/app/controllers/concerns/decidim/force_authentication.rb +0 -1
- data/app/controllers/concerns/decidim/impersonate_users.rb +12 -4
- data/app/controllers/concerns/decidim/needs_permission.rb +1 -0
- data/app/controllers/decidim/account_controller.rb +2 -2
- data/app/controllers/decidim/application_controller.rb +2 -0
- data/app/controllers/decidim/data_portability_controller.rb +2 -14
- data/app/controllers/decidim/doorkeeper/credentials_controller.rb +1 -1
- data/app/controllers/decidim/free_resource_authorization_modals_controller.rb +33 -0
- data/app/controllers/decidim/links_controller.rb +42 -0
- data/app/controllers/decidim/messaging/conversations_controller.rb +5 -2
- data/app/controllers/decidim/open_data_controller.rb +3 -9
- data/app/controllers/decidim/profiles_controller.rb +1 -7
- data/app/controllers/decidim/timeouts_controller.rb +10 -5
- data/app/controllers/decidim/user_activities_controller.rb +1 -0
- data/app/forms/decidim/account_form.rb +2 -1
- data/app/forms/decidim/messaging/conversation_form.rb +1 -1
- data/app/forms/decidim/notifications_settings_form.rb +3 -14
- data/app/forms/url_validator.rb +2 -0
- data/app/helpers/concerns/decidim/flash_helper_extensions.rb +5 -2
- data/app/helpers/decidim/action_authorization_helper.rb +7 -2
- data/app/helpers/decidim/amendments_helper.rb +0 -10
- data/app/helpers/decidim/attachments_helper.rb +1 -1
- data/app/helpers/decidim/check_boxes_tree_helper.rb +28 -10
- data/app/helpers/decidim/decidim_form_helper.rb +0 -4
- data/app/helpers/decidim/external_domain_helper.rb +13 -0
- data/app/helpers/decidim/layout_helper.rb +30 -8
- data/app/helpers/decidim/map_helper.rb +4 -3
- data/app/helpers/decidim/menu_helper.rb +4 -2
- data/app/helpers/decidim/user_group_helper.rb +22 -0
- data/app/jobs/decidim/application_job.rb +5 -0
- data/app/jobs/decidim/data_portability_export_job.rb +1 -2
- data/app/jobs/decidim/export_job.rb +1 -1
- data/app/jobs/decidim/export_participatory_space_job.rb +1 -1
- data/app/jobs/decidim/machine_translation_fields_job.rb +1 -1
- data/app/jobs/decidim/machine_translation_resource_job.rb +10 -6
- data/app/jobs/decidim/machine_translation_save_job.rb +1 -1
- data/app/jobs/decidim/open_data_job.rb +2 -2
- data/app/mailers/decidim/application_mailer.rb +1 -1
- data/app/mailers/decidim/reported_mailer.rb +1 -1
- data/app/models/decidim/attachment.rb +18 -11
- data/app/models/decidim/authorization.rb +3 -5
- data/app/models/decidim/content_block.rb +30 -44
- data/app/models/decidim/content_block_attachment.rb +35 -0
- data/app/models/decidim/impersonation_log.rb +8 -0
- data/app/models/decidim/messaging/conversation.rb +2 -0
- data/app/models/decidim/messaging/message.rb +2 -0
- data/app/models/decidim/messaging/participation.rb +2 -0
- data/app/models/decidim/messaging/receipt.rb +2 -0
- data/app/models/decidim/oauth_application.rb +2 -2
- data/app/models/decidim/organization.rb +16 -20
- data/app/models/decidim/user.rb +16 -12
- data/app/models/decidim/user_base_entity.rb +2 -2
- data/app/models/decidim/user_group.rb +20 -1
- data/app/packs/entrypoints/decidim_conference_diploma.js +2 -0
- data/app/packs/entrypoints/decidim_conference_diploma.scss +1 -0
- data/app/packs/entrypoints/decidim_core.js +69 -0
- data/app/packs/entrypoints/decidim_core.scss +1 -0
- data/app/packs/entrypoints/decidim_email.js +1 -0
- data/app/packs/entrypoints/decidim_email.scss +1 -0
- data/app/packs/entrypoints/decidim_geocoding_provider_here.js +1 -0
- data/app/packs/entrypoints/decidim_geocoding_provider_photon.js +1 -0
- data/app/packs/entrypoints/decidim_map.js +1 -0
- data/app/packs/entrypoints/decidim_map.scss +1 -0
- data/app/packs/entrypoints/decidim_map_provider_default.js +2 -0
- data/app/packs/entrypoints/decidim_map_provider_here.js +2 -0
- data/app/packs/entrypoints/decidim_widget.js +1 -0
- data/app/{assets → packs}/fonts/decidim/Roboto-Regular.eot +0 -0
- data/app/{assets → packs}/fonts/decidim/Roboto-Regular.svg +0 -0
- data/app/{assets → packs}/fonts/decidim/Roboto-Regular.ttf +0 -0
- data/app/{assets → packs}/fonts/decidim/Roboto-Regular.woff +0 -0
- data/app/{assets → packs}/fonts/decidim/Roboto-Regular.woff2 +0 -0
- data/app/{assets → packs}/fonts/decidim/Source_Sans_Pro_400.eot +0 -0
- data/app/{assets → packs}/fonts/decidim/Source_Sans_Pro_400.svg +0 -0
- data/app/{assets → packs}/fonts/decidim/Source_Sans_Pro_400.ttf +0 -0
- data/app/{assets → packs}/fonts/decidim/Source_Sans_Pro_400.woff +0 -0
- data/app/{assets → packs}/fonts/decidim/Source_Sans_Pro_400.woff2 +0 -0
- data/app/{assets → packs}/fonts/decidim/Source_Sans_Pro_600.eot +0 -0
- data/app/{assets → packs}/fonts/decidim/Source_Sans_Pro_600.svg +0 -0
- data/app/{assets → packs}/fonts/decidim/Source_Sans_Pro_600.ttf +0 -0
- data/app/{assets → packs}/fonts/decidim/Source_Sans_Pro_600.woff +0 -0
- data/app/{assets → packs}/fonts/decidim/Source_Sans_Pro_600.woff2 +0 -0
- data/app/{assets → packs}/fonts/decidim/Source_Sans_Pro_900.eot +0 -0
- data/app/{assets → packs}/fonts/decidim/Source_Sans_Pro_900.svg +0 -0
- data/app/{assets → packs}/fonts/decidim/Source_Sans_Pro_900.ttf +0 -0
- data/app/{assets → packs}/fonts/decidim/Source_Sans_Pro_900.woff +0 -0
- data/app/{assets → packs}/fonts/decidim/Source_Sans_Pro_900.woff2 +0 -0
- data/app/{assets → packs}/images/decidim/avatar-multiuser.png +0 -0
- data/app/{assets → packs}/images/decidim/brands/google.svg +0 -0
- data/app/{assets → packs}/images/decidim/cc-badge.png +0 -0
- data/app/{assets → packs}/images/decidim/decidim-logo.svg +0 -0
- data/app/{assets → packs}/images/decidim/default-avatar.svg +0 -0
- data/app/{assets/images/decidim/gamification/badges/followers.svg → packs/images/decidim/gamification/badges/decidim_gamification_badges_followers.svg} +0 -0
- data/app/{assets/images/decidim/gamification/badges/invitations.svg → packs/images/decidim/gamification/badges/decidim_gamification_badges_invitations.svg} +0 -0
- data/app/{assets → packs}/images/decidim/icons.svg +0 -0
- data/app/{assets → packs}/images/decidim/pattern.png +0 -0
- data/app/{assets → packs}/images/decidim/placeholder.jpg +0 -0
- data/app/packs/images/decidim/vendor/leaflet/layers-2x.png +0 -0
- data/app/packs/images/decidim/vendor/leaflet/layers.png +0 -0
- data/app/packs/images/decidim/vendor/leaflet/marker-icon-2x.png +0 -0
- data/app/packs/images/decidim/vendor/leaflet/marker-icon.png +0 -0
- data/app/packs/images/decidim/vendor/leaflet/marker-shadow.png +0 -0
- data/app/packs/images/decidim/vendor/social-share-button/delicious.svg +13 -0
- data/app/packs/images/decidim/vendor/social-share-button/douban.svg +8 -0
- data/app/packs/images/decidim/vendor/social-share-button/email.svg +8 -0
- data/app/packs/images/decidim/vendor/social-share-button/facebook.svg +8 -0
- data/app/packs/images/decidim/vendor/social-share-button/google_bookmark.svg +8 -0
- data/app/packs/images/decidim/vendor/social-share-button/google_plus.svg +10 -0
- data/app/packs/images/decidim/vendor/social-share-button/hacker_news.svg +69 -0
- data/app/packs/images/decidim/vendor/social-share-button/linkedin.svg +8 -0
- data/app/packs/images/decidim/vendor/social-share-button/odnoklassniki.svg +1 -0
- data/app/packs/images/decidim/vendor/social-share-button/pinterest.svg +8 -0
- data/app/packs/images/decidim/vendor/social-share-button/qq.svg +8 -0
- data/app/packs/images/decidim/vendor/social-share-button/reddit.svg +6 -0
- data/app/packs/images/decidim/vendor/social-share-button/telegram.svg +12 -0
- data/app/packs/images/decidim/vendor/social-share-button/tumblr.svg +8 -0
- data/app/packs/images/decidim/vendor/social-share-button/twitter.svg +8 -0
- data/app/packs/images/decidim/vendor/social-share-button/vkontakte.svg +23 -0
- data/app/packs/images/decidim/vendor/social-share-button/wechat.svg +8 -0
- data/app/packs/images/decidim/vendor/social-share-button/weibo.svg +10 -0
- data/app/packs/images/decidim/vendor/social-share-button/whatsapp.svg +10 -0
- data/app/packs/images/decidim/vendor/social-share-button/xing.svg +79 -0
- data/app/{assets/javascripts/decidim/account_form.js.es6 → packs/src/decidim/account_form.js} +0 -0
- data/app/{assets/javascripts/decidim/ajax_modals.js.es6 → packs/src/decidim/ajax_modals.js} +0 -0
- data/app/packs/src/decidim/append_elements.js +6 -0
- data/app/{assets/javascripts/decidim/append_redirect_url_to_modals.js.es6 → packs/src/decidim/append_redirect_url_to_modals.js} +0 -1
- data/app/packs/src/decidim/callout.js +16 -0
- data/app/packs/src/decidim/check_boxes_tree.js +185 -0
- data/app/packs/src/decidim/clipboard.js +119 -0
- data/app/packs/src/decidim/conferences.js +15 -0
- data/app/packs/src/decidim/configuration.js +17 -0
- data/app/packs/src/decidim/confirm.js +171 -0
- data/app/{assets/javascripts/decidim/conversations.js.es6 → packs/src/decidim/conversations.js} +2 -2
- data/app/packs/src/decidim/data_picker.js +272 -0
- data/app/packs/src/decidim/decidim_application.js +0 -0
- data/app/packs/src/decidim/delayed.js +23 -0
- data/app/{assets/javascripts/decidim/diff_mode_dropdown.js.es6 → packs/src/decidim/diff_mode_dropdown.js} +0 -0
- data/app/packs/src/decidim/dropdowns_menus.js +29 -0
- data/app/packs/src/decidim/editor.js +72 -0
- data/app/packs/src/decidim/editor/attribute_diff.js +28 -0
- data/app/packs/src/decidim/editor/history_override.js +110 -0
- data/app/packs/src/decidim/editor/linebreak_module.js +183 -0
- data/app/packs/src/decidim/editor/modified_backspace_offset1.js +96 -0
- data/app/packs/src/decidim/editor/modified_backspace_offset_any.js +46 -0
- data/app/packs/src/decidim/editor/modified_enter.js +116 -0
- data/app/packs/src/decidim/external_domain_warning.js +33 -0
- data/app/packs/src/decidim/external_link.js +56 -0
- data/app/{assets/javascripts/decidim/floating_help.js.es6 → packs/src/decidim/floating_help.js} +0 -0
- data/app/packs/src/decidim/form_datepicker.js +21 -0
- data/app/{assets/javascripts → packs/src}/decidim/form_filter.component.test.js +8 -9
- data/app/packs/src/decidim/form_filter.component_for_testing.js +7 -0
- data/app/packs/src/decidim/form_filter.js +319 -0
- data/app/packs/src/decidim/form_validator.js +56 -0
- data/app/packs/src/decidim/foundation_datepicker_locales.js +65 -0
- data/app/{assets/javascripts/decidim/gallery.js.es6 → packs/src/decidim/gallery.js} +0 -0
- data/app/packs/src/decidim/geocoding.js +54 -0
- data/app/packs/src/decidim/geocoding/attach_input.js +127 -0
- data/app/packs/src/decidim/geocoding/coordinate_input.js +21 -0
- data/app/packs/src/decidim/geocoding/format_address.js +27 -0
- data/app/packs/src/decidim/geocoding/provider/here.js +101 -0
- data/app/packs/src/decidim/geocoding/provider/photon.js +71 -0
- data/app/packs/src/decidim/history.js +44 -0
- data/app/packs/src/decidim/icon.js +51 -0
- data/app/{assets/javascripts/decidim/identity_selector_dialog.js.es6 → packs/src/decidim/identity_selector_dialog.js} +2 -3
- data/app/packs/src/decidim/impersonation.js +23 -0
- data/app/packs/src/decidim/index.js +69 -0
- data/app/packs/src/decidim/input_autojump.js +38 -0
- data/app/packs/src/decidim/input_character_counter.js +121 -0
- data/app/packs/src/decidim/input_emoji.js +33 -0
- data/app/{assets/javascripts/decidim/input_hashtags.js.es6 → packs/src/decidim/input_hashtags.js} +2 -1
- data/app/{assets/javascripts/decidim/input_mentions.js.es6 → packs/src/decidim/input_mentions.js} +10 -3
- data/app/{assets/javascripts/decidim/input_multiple_mentions.js.es6 → packs/src/decidim/input_multiple_mentions.js} +5 -3
- data/app/{assets/javascripts/decidim/input_tags.js.es6 → packs/src/decidim/input_tags.js} +1 -1
- data/app/packs/src/decidim/map.js +37 -0
- data/app/packs/src/decidim/map/controller.js +78 -0
- data/app/packs/src/decidim/map/controller/drag_marker.js +50 -0
- data/app/packs/src/decidim/map/controller/markers.js +75 -0
- data/app/packs/src/decidim/map/controller/static.js +44 -0
- data/app/packs/src/decidim/map/controller_registry.js +17 -0
- data/app/packs/src/decidim/map/factory.js +44 -0
- data/app/packs/src/decidim/map/icon.js +31 -0
- data/app/packs/src/decidim/map/integration/forms.js +29 -0
- data/app/packs/src/decidim/map/legacy.js +80 -0
- data/app/packs/src/decidim/map/provider/default.js +12 -0
- data/app/packs/src/decidim/map/provider/here.js +13 -0
- data/app/{assets/javascripts/decidim/notifications.js.es6 → packs/src/decidim/notifications.js} +0 -0
- data/app/{assets/javascripts/decidim/represent_user_group.js.es6 → packs/src/decidim/represent_user_group.js} +0 -0
- data/app/{assets/javascripts/decidim/responsive_horizontal_tabs.js.es6 → packs/src/decidim/responsive_horizontal_tabs.js} +0 -0
- data/app/packs/src/decidim/results_listing.js +41 -0
- data/app/packs/src/decidim/security/selfxss_warning.js +16 -0
- data/app/packs/src/decidim/session_timeouter.js +133 -0
- data/app/{assets/javascripts/decidim/slug_form.js.es6 → packs/src/decidim/slug_form.js} +0 -0
- data/app/{assets/javascripts → packs/src}/decidim/start_conversation_dialog.js +1 -1
- data/app/{assets/javascripts/decidim/tooltip_keep_on_hover.js.es6 → packs/src/decidim/tooltip_keep_on_hover.js} +0 -0
- data/app/{assets/javascripts/decidim/user_registrations.js.es6 → packs/src/decidim/user_registrations.js} +0 -0
- data/app/packs/src/decidim/vendor/foundation-datepicker.js +1431 -0
- data/app/packs/src/decidim/vendor/jquery-tmpl.js +488 -0
- data/{vendor/assets/javascripts → app/packs/src/decidim/vendor}/leaflet-tilelayer-here.js +1 -0
- data/{vendor/assets/javascripts → app/packs/src/decidim/vendor}/modernizr.js +3 -1
- data/{vendor/assets/javascripts → app/packs/src/decidim/vendor}/tribute.js +2 -0
- data/app/packs/src/decidim/vizzs.js +1 -0
- data/app/{assets/javascripts/decidim/vizzs/areachart.js.es6 → packs/src/decidim/vizzs/areachart.js} +4 -3
- data/app/{assets/javascripts/decidim/vizzs/linechart.js.es6 → packs/src/decidim/vizzs/linechart.js} +3 -3
- data/app/{assets/javascripts/decidim/vizzs/metrics.js.es6 → packs/src/decidim/vizzs/metrics.js} +3 -3
- data/app/packs/src/decidim/vizzs/renders.js +9 -0
- data/app/{assets/javascripts/decidim/vizzs/rowchart.js.es6 → packs/src/decidim/vizzs/rowchart.js} +3 -3
- data/app/{assets/javascripts/decidim/widget.js.es6 → packs/src/decidim/widget.js} +0 -0
- data/app/{assets → packs}/stylesheets/decidim/_decidim-settings.scss +2 -0
- data/app/packs/stylesheets/decidim/_decidim.scss +19 -0
- data/app/{assets/stylesheets/decidim/editor.scss → packs/stylesheets/decidim/_editor.scss} +3 -3
- data/app/{assets → packs}/stylesheets/decidim/_properties.scss +0 -0
- data/app/{assets → packs}/stylesheets/decidim/_variables.scss +2 -2
- data/app/packs/stylesheets/decidim/application.scss +9 -0
- data/app/{assets/stylesheets/decidim/conference-diploma.css.scss → packs/stylesheets/decidim/conference-diploma.scss} +8 -8
- data/app/packs/stylesheets/decidim/decidim_application.scss +7 -0
- data/app/{assets → packs}/stylesheets/decidim/email.scss +1 -1
- data/app/{assets → packs}/stylesheets/decidim/extras/_add_comments.scss +0 -0
- data/app/{assets → packs}/stylesheets/decidim/extras/_announcement.scss +0 -0
- data/app/{assets → packs}/stylesheets/decidim/extras/_collection-sort-controls.scss +0 -0
- data/app/{assets → packs}/stylesheets/decidim/extras/_embed.scss +0 -0
- data/app/{assets → packs}/stylesheets/decidim/extras/_external-links.scss +16 -0
- data/app/packs/stylesheets/decidim/extras/_extras.scss +16 -0
- data/app/{assets → packs}/stylesheets/decidim/extras/_impersonation-bar.scss +0 -0
- data/app/{assets → packs}/stylesheets/decidim/extras/_label-required.scss +0 -0
- data/app/{assets → packs}/stylesheets/decidim/extras/_leaflet.scss +0 -0
- data/app/{assets → packs}/stylesheets/decidim/extras/_meeting-registrations.scss +5 -0
- data/app/{assets → packs}/stylesheets/decidim/extras/_proposal_form.scss +0 -0
- data/app/{assets → packs}/stylesheets/decidim/extras/_quill.scss +0 -0
- data/app/{assets → packs}/stylesheets/decidim/extras/_reference.scss +0 -0
- data/app/{assets → packs}/stylesheets/decidim/extras/_results-per-page.scss +0 -0
- data/app/{assets → packs}/stylesheets/decidim/extras/_social_icons_mini.scss +0 -0
- data/app/{assets/stylesheets/decidim/extras/_social_share.css.scss → packs/stylesheets/decidim/extras/_social_share.scss} +6 -3
- data/app/{assets → packs}/stylesheets/decidim/extras/_status-labels.scss +0 -0
- data/app/{assets → packs}/stylesheets/decidim/layouts/_highlighted_banner.scss +0 -0
- data/app/{assets → packs}/stylesheets/decidim/layouts/_home.scss +35 -46
- data/app/packs/stylesheets/decidim/layouts/_layouts.scss +5 -0
- data/app/{assets → packs}/stylesheets/decidim/layouts/_logo.scss +0 -0
- data/app/{assets → packs}/stylesheets/decidim/layouts/_user.scss +0 -0
- data/app/{assets → packs}/stylesheets/decidim/layouts/_view.scss +0 -0
- data/app/packs/stylesheets/decidim/map.scss +3 -0
- data/app/{assets → packs}/stylesheets/decidim/modules/_address.scss +0 -0
- data/app/{assets → packs}/stylesheets/decidim/modules/_author-avatar.scss +1 -1
- data/app/{assets → packs}/stylesheets/decidim/modules/_badges.scss +0 -0
- data/app/{assets → packs}/stylesheets/decidim/modules/_block-banner.scss +0 -0
- data/app/{assets → packs}/stylesheets/decidim/modules/_buttons.scss +1 -1
- data/app/{assets → packs}/stylesheets/decidim/modules/_callout.scss +0 -0
- data/app/{assets → packs}/stylesheets/decidim/modules/_card-grid.scss +0 -0
- data/app/{assets → packs}/stylesheets/decidim/modules/_cards.scss +8 -8
- data/app/{assets → packs}/stylesheets/decidim/modules/_collapsible-list.scss +0 -0
- data/app/{assets → packs}/stylesheets/decidim/modules/_comments.scss +46 -12
- data/app/{assets → packs}/stylesheets/decidim/modules/_conference-diploma.scss +9 -9
- data/app/{assets → packs}/stylesheets/decidim/modules/_conference-media.scss +3 -1
- data/app/{assets → packs}/stylesheets/decidim/modules/_conference-nav.scss +0 -0
- data/app/{assets → packs}/stylesheets/decidim/modules/_conference-programme.scss +0 -0
- data/app/{assets → packs}/stylesheets/decidim/modules/_conference-registration.scss +0 -0
- data/app/{assets → packs}/stylesheets/decidim/modules/_conference-speaker.scss +0 -0
- data/app/{assets → packs}/stylesheets/decidim/modules/_confirm.scss +0 -0
- data/app/{assets → packs}/stylesheets/decidim/modules/_conversation.scss +6 -1
- data/app/{assets → packs}/stylesheets/decidim/modules/_cookie-bar.scss +0 -0
- data/app/{assets → packs}/stylesheets/decidim/modules/_data-picker.scss +0 -0
- data/app/{assets → packs}/stylesheets/decidim/modules/_datepicker.scss +0 -0
- data/app/{assets → packs}/stylesheets/decidim/modules/_definition-data.scss +0 -0
- data/app/{assets → packs}/stylesheets/decidim/modules/_docs-manager.scss +0 -0
- data/app/{assets → packs}/stylesheets/decidim/modules/_extra.scss +0 -0
- data/app/{assets → packs}/stylesheets/decidim/modules/_filter-tags.scss +0 -0
- data/app/{assets → packs}/stylesheets/decidim/modules/_filters.scss +1 -1
- data/app/{assets → packs}/stylesheets/decidim/modules/_fingerprint.scss +0 -0
- data/app/{assets → packs}/stylesheets/decidim/modules/_flag.scss +0 -0
- data/app/{assets → packs}/stylesheets/decidim/modules/_floating-helper.scss +2 -2
- data/app/{assets → packs}/stylesheets/decidim/modules/_footer.scss +0 -0
- data/app/{assets → packs}/stylesheets/decidim/modules/_forms.scss +18 -1
- data/app/{assets → packs}/stylesheets/decidim/modules/_help.scss +0 -0
- data/app/{assets → packs}/stylesheets/decidim/modules/_horizontal-tabs.scss +1 -1
- data/app/{assets → packs}/stylesheets/decidim/modules/_hover-section.scss +0 -0
- data/app/{assets → packs}/stylesheets/decidim/modules/_icons.scss +0 -0
- data/app/{assets → packs}/stylesheets/decidim/modules/_inline-filters.scss +1 -1
- data/app/{assets → packs}/stylesheets/decidim/modules/_input-gallery.scss +0 -0
- data/app/{assets → packs}/stylesheets/decidim/modules/_input-mentions.scss +1 -1
- data/app/{assets → packs}/stylesheets/decidim/modules/_input-multiple-mentions.scss +1 -1
- data/app/{assets → packs}/stylesheets/decidim/modules/_input-tags.scss +2 -2
- data/app/{assets → packs}/stylesheets/decidim/modules/_layout.scss +0 -0
- data/app/{assets → packs}/stylesheets/decidim/modules/_list-docs.scss +0 -0
- data/app/{assets → packs}/stylesheets/decidim/modules/_list-request.scss +1 -1
- data/app/{assets → packs}/stylesheets/decidim/modules/_loading-spinner.scss +0 -0
- data/app/{assets → packs}/stylesheets/decidim/modules/_main-container.scss +0 -0
- data/app/{assets → packs}/stylesheets/decidim/modules/_map.scss +1 -1
- data/app/{assets → packs}/stylesheets/decidim/modules/_margins.scss +0 -0
- data/app/{assets → packs}/stylesheets/decidim/modules/_messages.scss +0 -0
- data/app/packs/stylesheets/decidim/modules/_modules.scss +92 -0
- data/app/{assets → packs}/stylesheets/decidim/modules/_navbar.scss +3 -3
- data/app/{assets → packs}/stylesheets/decidim/modules/_notification.scss +0 -0
- data/app/{assets → packs}/stylesheets/decidim/modules/_omnipresent_banner.scss +0 -0
- data/app/{assets → packs}/stylesheets/decidim/modules/_opinion-toggle.scss +0 -0
- data/app/{assets → packs}/stylesheets/decidim/modules/_order-by.scss +0 -4
- data/app/{assets → packs}/stylesheets/decidim/modules/_pagination.scss +0 -0
- data/app/{assets → packs}/stylesheets/decidim/modules/_process-header.scss +0 -0
- data/app/{assets → packs}/stylesheets/decidim/modules/_process-info.scss +0 -0
- data/app/{assets → packs}/stylesheets/decidim/modules/_process-nav.scss +3 -3
- data/app/{assets → packs}/stylesheets/decidim/modules/_process-phase.scss +1 -1
- data/app/{assets → packs}/stylesheets/decidim/modules/_progress-bar.scss +0 -0
- data/app/{assets → packs}/stylesheets/decidim/modules/_reference.scss +0 -0
- data/app/{assets → packs}/stylesheets/decidim/modules/_reveal.scss +15 -0
- data/app/{assets → packs}/stylesheets/decidim/modules/_share.scss +0 -0
- data/app/{assets → packs}/stylesheets/decidim/modules/_signup.scss +0 -0
- data/app/{assets → packs}/stylesheets/decidim/modules/_space-stats.scss +0 -0
- data/app/{assets → packs}/stylesheets/decidim/modules/_static-pages.scss +0 -0
- data/app/packs/stylesheets/decidim/modules/_statistics.scss +53 -0
- data/app/{assets → packs}/stylesheets/decidim/modules/_status-labels.scss +0 -0
- data/app/{assets → packs}/stylesheets/decidim/modules/_sticky.scss +0 -0
- data/app/{assets → packs}/stylesheets/decidim/modules/_tags.scss +0 -0
- data/app/{assets → packs}/stylesheets/decidim/modules/_timeline.scss +2 -2
- data/app/{assets → packs}/stylesheets/decidim/modules/_title-action.scss +0 -0
- data/app/packs/stylesheets/decidim/modules/_toggle.scss +9 -0
- data/app/{assets → packs}/stylesheets/decidim/modules/_typography.scss +5 -4
- data/app/{assets → packs}/stylesheets/decidim/modules/_user-form.scss +0 -0
- data/app/{assets → packs}/stylesheets/decidim/modules/_versions.scss +0 -0
- data/app/{assets → packs}/stylesheets/decidim/modules/_video.scss +0 -0
- data/app/{assets → packs}/stylesheets/decidim/modules/_wizard-steps.scss +0 -0
- data/app/packs/stylesheets/decidim/plugins/MarkerCluster.Default.scss +67 -0
- data/app/packs/stylesheets/decidim/plugins/MarkerCluster.scss +15 -0
- data/app/packs/stylesheets/decidim/plugins/leaflet.scss +700 -0
- data/app/packs/stylesheets/decidim/utils/_fontface.scss +29 -0
- data/app/{assets → packs}/stylesheets/decidim/utils/_helpers.scss +13 -0
- data/app/{assets → packs}/stylesheets/decidim/utils/_keyframes.scss +0 -0
- data/app/{assets → packs}/stylesheets/decidim/utils/_mixins.scss +5 -5
- data/app/{assets → packs}/stylesheets/decidim/utils/_settings.scss +10 -4
- data/app/{assets → packs}/stylesheets/decidim/utils/_toggle-expand.scss +0 -0
- data/app/packs/stylesheets/decidim/vendor/_social_share_button.scss +129 -0
- data/app/packs/stylesheets/decidim/vizzs.scss +8 -0
- data/app/{assets → packs}/stylesheets/decidim/vizzs/_areachart.scss +0 -0
- data/app/{assets → packs}/stylesheets/decidim/vizzs/_chart-tooltip.scss +0 -0
- data/app/{assets → packs}/stylesheets/decidim/vizzs/_linechart.scss +1 -1
- data/app/{assets → packs}/stylesheets/decidim/vizzs/_orgchart.scss +0 -0
- data/app/{assets → packs}/stylesheets/decidim/vizzs/_rowchart.scss +1 -1
- data/app/packs/stylesheets/decidim/vizzs/_vizzs.scss +5 -0
- data/app/{assets → packs}/stylesheets/foundation-overrides/components/_button-group.scss +3 -1
- data/app/presenters/decidim/attachment_presenter.rb +1 -6
- data/app/presenters/decidim/home_stats_presenter.rb +6 -35
- data/app/presenters/decidim/menu_item_presenter.rb +12 -12
- data/app/presenters/decidim/menu_presenter.rb +2 -3
- data/app/presenters/decidim/nil_presenter.rb +1 -1
- data/app/presenters/decidim/official_author_presenter.rb +1 -1
- data/app/presenters/decidim/stats_presenter.rb +32 -0
- data/app/presenters/decidim/user_group_presenter.rb +0 -2
- data/app/presenters/decidim/user_presenter.rb +14 -2
- data/app/queries/decidim/metric_manage.rb +3 -3
- data/app/queries/decidim/similar_emendations.rb +1 -1
- data/app/queries/decidim/stats_users_count.rb +1 -2
- data/app/serializers/decidim/exporters/participatory_space_components_serializer.rb +2 -1
- data/app/serializers/decidim/exporters/serializer.rb +29 -0
- data/app/services/decidim/action_authorizer.rb +3 -2
- data/app/services/decidim/activity_search.rb +46 -1
- data/app/services/decidim/data_portability_exporter.rb +1 -1
- data/app/services/decidim/zip_stream/writer.rb +39 -0
- data/app/uploaders/decidim/application_uploader.rb +68 -27
- data/app/uploaders/decidim/attachment_uploader.rb +11 -57
- data/app/uploaders/decidim/avatar_uploader.rb +8 -14
- data/app/uploaders/decidim/cw/application_uploader.rb +77 -0
- data/app/uploaders/decidim/cw/attachment_uploader.rb +56 -0
- data/app/uploaders/decidim/cw/avatar_uploader.rb +24 -0
- data/app/uploaders/decidim/cw/banner_image_uploader.rb +7 -0
- data/app/uploaders/decidim/{data_portability_uploader.rb → cw/data_portability_uploader.rb} +1 -1
- data/app/uploaders/decidim/cw/downloader.rb +9 -0
- data/app/uploaders/decidim/cw/hero_image_uploader.rb +10 -0
- data/app/uploaders/decidim/cw/homepage_image_uploader.rb +14 -0
- data/app/uploaders/decidim/cw/image_uploader.rb +78 -0
- data/app/uploaders/decidim/cw/newsletter_template_image_uploader.rb +38 -0
- data/app/uploaders/decidim/cw/oauth_application_logo_uploader.rb +10 -0
- data/app/uploaders/decidim/cw/official_image_footer_uploader.rb +10 -0
- data/app/uploaders/decidim/cw/official_image_header_uploader.rb +10 -0
- data/app/uploaders/decidim/{open_data_uploader.rb → cw/open_data_uploader.rb} +1 -1
- data/app/uploaders/decidim/cw/organization_favicon_uploader.rb +18 -0
- data/app/uploaders/decidim/cw/organization_logo_uploader.rb +10 -0
- data/app/uploaders/decidim/cw/record_image_uploader.rb +15 -0
- data/app/uploaders/decidim/hero_image_uploader.rb +3 -1
- data/app/uploaders/decidim/homepage_image_uploader.rb +2 -2
- data/app/uploaders/decidim/image_uploader.rb +11 -47
- data/app/uploaders/decidim/newsletter_template_image_uploader.rb +3 -1
- data/app/uploaders/decidim/oauth_application_logo_uploader.rb +3 -1
- data/app/uploaders/decidim/official_image_footer_uploader.rb +3 -1
- data/app/uploaders/decidim/official_image_header_uploader.rb +3 -1
- data/app/uploaders/decidim/organization_favicon_uploader.rb +3 -3
- data/app/uploaders/decidim/organization_logo_uploader.rb +2 -2
- data/app/validators/organization_present_validator.rb +15 -0
- data/app/validators/uploader_content_type_validator.rb +2 -4
- data/app/validators/uploader_image_dimensions_validator.rb +49 -0
- data/app/views/decidim/account/show.html.erb +9 -1
- data/app/views/decidim/amendments/edit_draft.html.erb +1 -1
- data/app/views/decidim/amendments/new.html.erb +1 -1
- data/app/views/decidim/application/_attachments.html.erb +2 -2
- data/app/views/decidim/application/_collection.html.erb +8 -2
- data/app/views/decidim/application/_document.html.erb +2 -2
- data/app/views/decidim/application/_documents.html.erb +5 -3
- data/app/views/decidim/application/_photos.html.erb +1 -1
- data/app/views/decidim/block_user_mailer/notify.html.erb +4 -4
- data/app/views/decidim/doorkeeper/authorizations/new.html.erb +1 -1
- data/app/views/decidim/export_mailer/data_portability_export.html.erb +7 -2
- data/app/views/decidim/export_mailer/export.html.erb +3 -1
- data/app/views/decidim/homepage/show.html.erb +1 -0
- data/app/views/decidim/last_activities/index.html.erb +0 -2
- data/app/views/decidim/links/_modal.html.erb +22 -0
- data/app/views/decidim/links/_warning.html.erb +4 -0
- data/app/views/decidim/links/new.html.erb +22 -0
- data/app/views/decidim/links/new.js.erb +8 -0
- data/app/views/decidim/messaging/conversation_mailer/comanagers_new_conversation.html.erb +5 -5
- data/app/views/decidim/messaging/conversation_mailer/comanagers_new_message.html.erb +5 -5
- data/app/views/decidim/messaging/conversation_mailer/new_conversation.html.erb +4 -4
- data/app/views/decidim/messaging/conversation_mailer/new_group_conversation.html.erb +5 -5
- data/app/views/decidim/messaging/conversation_mailer/new_group_message.html.erb +5 -5
- data/app/views/decidim/messaging/conversation_mailer/new_message.html.erb +4 -4
- data/app/views/decidim/messaging/conversations/_add_conversation_users.html.erb +0 -1
- data/app/views/decidim/messaging/conversations/_conversation.html.erb +2 -2
- data/app/views/decidim/messaging/conversations/_messages.html.erb +1 -1
- data/app/views/decidim/messaging/conversations/_new_conversation_button.html.erb +0 -1
- data/app/views/decidim/messaging/conversations/_reply.html.erb +3 -2
- data/app/views/decidim/messaging/conversations/_show.html.erb +9 -7
- data/app/views/decidim/messaging/conversations/_start.html.erb +3 -2
- data/app/views/decidim/newsletters_opt_in_mailer/notify.html.erb +6 -6
- data/app/views/decidim/notification_mailer/event_received.html.erb +24 -7
- data/app/views/decidim/pages/_standalone.html.erb +8 -10
- data/app/views/decidim/reported_mailer/hide.html.erb +3 -3
- data/app/views/decidim/reported_mailer/report.html.erb +3 -3
- data/app/views/decidim/searches/index.html.erb +0 -2
- data/app/views/decidim/shared/_extended_navigation_bar.html.erb +3 -3
- data/app/views/decidim/shared/_orders.html.erb +6 -6
- data/app/views/decidim/shared/_results_per_page.html.erb +6 -6
- data/app/views/decidim/shared/_share_modal.html.erb +13 -4
- data/app/views/decidim/shared/participatory_space_filters/_filters.html.erb +7 -4
- data/app/views/decidim/shared/participatory_space_filters/_show.html.erb +8 -6
- data/app/views/decidim/user_report_mailer/notify.html.erb +4 -4
- data/app/views/devise/mailer/confirmation_instructions.html.erb +4 -3
- data/app/views/devise/mailer/invitation_instructions.html.erb +5 -5
- data/app/views/devise/mailer/invite_admin.html.erb +5 -5
- data/app/views/devise/mailer/invite_collaborator.html.erb +5 -5
- data/app/views/devise/mailer/invite_private_user.html.erb +5 -5
- data/app/views/devise/mailer/organization_admin_invitation_instructions.html.erb +6 -5
- data/app/views/devise/mailer/password_change.html.erb +2 -2
- data/app/views/devise/mailer/reset_password_instructions.html.erb +6 -5
- data/app/views/devise/mailer/unlock_instructions.html.erb +4 -4
- data/app/views/layouts/decidim/_application.html.erb +3 -2
- data/app/views/layouts/decidim/_cookie_warning.html.erb +1 -1
- data/app/views/layouts/decidim/_cors.html.erb +8 -0
- data/app/views/layouts/decidim/_head.html.erb +2 -4
- data/app/views/layouts/decidim/_impersonation_warning.html.erb +0 -1
- data/app/views/layouts/decidim/_js_configuration.html.erb +12 -2
- data/app/views/layouts/decidim/_language_chooser.html.erb +5 -5
- data/app/views/layouts/decidim/_logo.html.erb +2 -2
- data/app/views/layouts/decidim/_mailer_logo.html.erb +6 -2
- data/app/views/layouts/decidim/_main_footer.html.erb +2 -2
- data/app/views/layouts/decidim/_mini_footer.html.erb +2 -2
- data/app/views/layouts/decidim/_timeout_modal.html.erb +4 -3
- data/app/views/layouts/decidim/_user_menu.html.erb +6 -6
- data/app/views/layouts/decidim/_wrapper.html.erb +65 -60
- data/app/views/layouts/decidim/mailer.html.erb +3 -3
- data/app/views/layouts/decidim/newsletter_base.html.erb +1 -1
- data/app/views/layouts/decidim/widget.html.erb +4 -3
- data/config/assets.rb +16 -0
- data/config/initializers/devise.rb +1 -1
- data/config/locales/ar.yml +2 -18
- data/config/locales/bg.yml +2 -18
- data/config/locales/ca.yml +38 -18
- data/config/locales/cs.yml +40 -18
- data/config/locales/de.yml +25 -18
- data/config/locales/el.yml +2 -18
- data/config/locales/en.yml +41 -19
- data/config/locales/eo.yml +0 -2
- data/config/locales/es-MX.yml +25 -18
- data/config/locales/es-PY.yml +25 -18
- data/config/locales/es.yml +25 -18
- data/config/locales/eu.yml +2 -17
- data/config/locales/fi-plain.yml +40 -18
- data/config/locales/fi.yml +41 -19
- data/config/locales/fr-CA.yml +20 -18
- data/config/locales/fr-LU.yml +1676 -0
- data/config/locales/fr.yml +20 -18
- data/config/locales/gl.yml +36 -17
- data/config/locales/hu.yml +2 -18
- data/config/locales/id-ID.yml +2 -17
- data/config/locales/is-IS.yml +0 -7
- data/config/locales/it.yml +59 -19
- data/config/locales/ja.yml +132 -27
- data/config/locales/lb-LU.yml +1 -0
- data/config/locales/lv.yml +2 -17
- data/config/locales/nl.yml +32 -18
- data/config/locales/no.yml +2 -18
- data/config/locales/pl.yml +42 -33
- data/config/locales/pt-BR.yml +480 -20
- data/config/locales/pt.yml +2 -18
- data/config/locales/ro-RO.yml +40 -18
- data/config/locales/ru.yml +2 -15
- data/config/locales/sk.yml +2 -18
- data/config/locales/sl.yml +0 -3
- data/config/locales/sv.yml +25 -18
- data/config/locales/tr-TR.yml +2 -18
- data/config/locales/uk.yml +2 -14
- data/config/locales/zh-CN.yml +2 -18
- data/config/routes.rb +7 -0
- data/db/migrate/20170605162500_add_hierarchy_to_scopes.rb +1 -1
- data/db/migrate/20180810092428_move_organization_fields_to_hero_content_block.rb +5 -4
- data/db/migrate/20210210114657_add_external_domain_whitelist_to_organization.rb +15 -0
- data/db/migrate/20210309190009_create_active_storage_tables.active_storage.rb +29 -0
- data/db/migrate/20210407190753_allow_null_organization_logo_column_in_oauth_applications_table.rb +7 -0
- data/db/migrate/20210412120115_add_enable_participatory_space_filters_to_organization.rb +7 -0
- data/db/migrate/20210419165805_create_decidim_content_block_attachments.rb +10 -0
- data/db/migrate/20210629172525_fix_blocked_user_names_in_action_log.rb +45 -0
- data/db/seeds.rb +10 -3
- data/lib/decidim/action_authorization.rb +1 -1
- data/lib/decidim/api/functions/category_list.rb +31 -0
- data/lib/decidim/api/input_filters/category_input_filter.rb +18 -0
- data/lib/decidim/api/interfaces/categories_container_interface.rb +19 -0
- data/lib/decidim/carrier_wave_migrator_service.rb +295 -0
- data/lib/decidim/core.rb +27 -8
- data/lib/decidim/core/api.rb +3 -0
- data/lib/decidim/core/engine.rb +65 -56
- data/lib/decidim/core/test.rb +4 -0
- data/lib/decidim/core/test/factories.rb +2 -0
- data/lib/decidim/core/test/shared_examples/admin_log_presenter_examples.rb +3 -1
- data/lib/decidim/core/test/shared_examples/admin_resource_gallery_examples.rb +2 -2
- data/lib/decidim/core/test/shared_examples/assembly_announcements_examples.rb +34 -0
- data/lib/decidim/core/test/shared_examples/categories_container_examples.rb +22 -0
- data/lib/decidim/core/test/shared_examples/comments_examples.rb +189 -6
- data/lib/decidim/core/test/shared_examples/comments_reports_examples.rb +68 -0
- data/lib/decidim/core/test/shared_examples/has_attachment_collections.rb +3 -3
- data/lib/decidim/core/test/shared_examples/has_attachments.rb +2 -2
- data/lib/decidim/core/test/shared_examples/logo_email.rb +3 -2
- data/lib/decidim/core/test/shared_examples/manage_component_share_tokens.rb +1 -1
- data/lib/decidim/core/test/shared_examples/map_examples.rb +28 -11
- data/lib/decidim/core/test/shared_examples/paginated_resource_examples.rb +1 -0
- data/lib/decidim/core/test/shared_examples/share_link_examples.rb +50 -0
- data/lib/decidim/core/version.rb +1 -1
- data/lib/decidim/data_portability_serializers/data_portability_conversation_serializer.rb +1 -0
- data/lib/decidim/diffy_extension.rb +1 -1
- data/lib/decidim/events/email_event.rb +12 -0
- data/lib/decidim/exporters/csv.rb +1 -1
- data/lib/decidim/exporters/excel.rb +24 -20
- data/lib/decidim/exporters/json.rb +1 -1
- data/lib/decidim/file_validator_humanizer.rb +3 -2
- data/lib/decidim/filter_form_builder.rb +2 -2
- data/lib/decidim/fingerprintable.rb +2 -2
- data/lib/decidim/form_builder.rb +26 -20
- data/lib/decidim/gamification/badge.rb +1 -1
- data/lib/decidim/has_upload_validations.rb +37 -4
- data/lib/decidim/map/dynamic_map.rb +2 -2
- data/lib/decidim/map/provider/autocomplete/here.rb +1 -1
- data/lib/decidim/map/provider/autocomplete/osm.rb +1 -1
- data/lib/decidim/map/provider/dynamic_map/here.rb +1 -1
- data/lib/decidim/menu.rb +64 -1
- data/lib/decidim/menu_item.rb +5 -2
- data/lib/decidim/middleware/current_organization.rb +57 -0
- data/lib/decidim/middleware/strip_x_forwarded_host.rb +16 -0
- data/lib/decidim/participable.rb +41 -33
- data/lib/decidim/rails.rb +21 -0
- data/lib/decidim/resource_manifest.rb +13 -0
- data/lib/decidim/resourceable.rb +8 -0
- data/lib/decidim/searchable.rb +1 -1
- data/lib/decidim/traceable.rb +2 -3
- data/lib/decidim/translatable_resource.rb +1 -1
- data/lib/decidim/view_model.rb +1 -0
- data/lib/decidim/webpacker.rb +32 -0
- data/lib/decidim/webpacker/configuration.rb +89 -0
- data/lib/decidim/webpacker/postcss.config.js +16 -0
- data/lib/decidim/webpacker/runner.rb +24 -0
- data/lib/decidim/webpacker/webpack/base.js +6 -0
- data/lib/decidim/webpacker/webpack/custom.js +97 -0
- data/lib/decidim/webpacker/webpack/development.js +7 -0
- data/lib/decidim/webpacker/webpack/production.js +7 -0
- data/lib/decidim/webpacker/webpack/test.js +7 -0
- data/lib/decidim/webpacker/webpacker.yml +68 -0
- data/lib/gem_overrides/webpacker/runner.rb +9 -0
- data/lib/tasks/decidim_active_storage_migration_tasks.rake +43 -0
- data/lib/tasks/decidim_data_portability_tasks.rake +13 -67
- data/lib/tasks/decidim_tasks.rake +1 -1
- data/lib/tasks/decidim_webpacker_tasks.rake +166 -0
- metadata +417 -431
- data/app/assets/config/decidim_core_manifest.js +0 -25
- data/app/assets/javascripts/decidim.js.es6 +0 -82
- data/app/assets/javascripts/decidim/append_elements.js.es6 +0 -8
- data/app/assets/javascripts/decidim/assets.js.erb +0 -5
- data/app/assets/javascripts/decidim/callout.js.es6 +0 -18
- data/app/assets/javascripts/decidim/check_boxes_tree.js.es6 +0 -190
- data/app/assets/javascripts/decidim/conferences.js.es6 +0 -16
- data/app/assets/javascripts/decidim/configuration.js.es6 +0 -23
- data/app/assets/javascripts/decidim/confirm.js.es6 +0 -179
- data/app/assets/javascripts/decidim/core/bundle.js +0 -2
- data/app/assets/javascripts/decidim/core/bundle.js.map +0 -1
- data/app/assets/javascripts/decidim/core/extrapoly.js +0 -6
- data/app/assets/javascripts/decidim/data_picker.js.es6 +0 -273
- data/app/assets/javascripts/decidim/delayed.js.es6 +0 -26
- data/app/assets/javascripts/decidim/dropdowns_menus.js.es6 +0 -32
- data/app/assets/javascripts/decidim/editor.js.es6 +0 -83
- data/app/assets/javascripts/decidim/editor/history_override.js.es6 +0 -117
- data/app/assets/javascripts/decidim/editor/linebreak_module.js.es6 +0 -187
- data/app/assets/javascripts/decidim/editor/modified_backspace_offset1.js.es6 +0 -98
- data/app/assets/javascripts/decidim/editor/modified_backspace_offset_any.js.es6 +0 -48
- data/app/assets/javascripts/decidim/editor/modified_backspace_utils.js.es6 +0 -31
- data/app/assets/javascripts/decidim/editor/modified_enter.js.es6 +0 -123
- data/app/assets/javascripts/decidim/external_link.js.es6 +0 -69
- data/app/assets/javascripts/decidim/filters.js.es6 +0 -16
- data/app/assets/javascripts/decidim/form_filter.component.js.es6 +0 -315
- data/app/assets/javascripts/decidim/form_validator.es6 +0 -61
- data/app/assets/javascripts/decidim/foundation.js.es6 +0 -28
- data/app/assets/javascripts/decidim/geocoding.js.es6 +0 -60
- data/app/assets/javascripts/decidim/geocoding/attach_input.js.es6 +0 -143
- data/app/assets/javascripts/decidim/geocoding/format_address.js.es6 +0 -29
- data/app/assets/javascripts/decidim/geocoding/provider/here.js.es6 +0 -107
- data/app/assets/javascripts/decidim/geocoding/provider/photon.js.es6 +0 -77
- data/app/assets/javascripts/decidim/history.js.es6 +0 -53
- data/app/assets/javascripts/decidim/icon.js.es6 +0 -42
- data/app/assets/javascripts/decidim/impersonation.js.es6 +0 -16
- data/app/assets/javascripts/decidim/input_character_counter.js.es6 +0 -120
- data/app/assets/javascripts/decidim/map.js.es6 +0 -46
- data/app/assets/javascripts/decidim/map/controller.js.es6 +0 -92
- data/app/assets/javascripts/decidim/map/controller/markers.js.es6 +0 -95
- data/app/assets/javascripts/decidim/map/controller/static.es6 +0 -48
- data/app/assets/javascripts/decidim/map/factory.js.es6 +0 -51
- data/app/assets/javascripts/decidim/map/icon.js.es6 +0 -31
- data/app/assets/javascripts/decidim/map/legacy.js.es6 +0 -87
- data/app/assets/javascripts/decidim/map/provider/default.js.es6 +0 -22
- data/app/assets/javascripts/decidim/map/provider/here.js.es6 +0 -22
- data/app/assets/javascripts/decidim/orders.js.es6 +0 -9
- data/app/assets/javascripts/decidim/results_listing.js.es6 +0 -44
- data/app/assets/javascripts/decidim/security/selfxss_warning.js.es6 +0 -19
- data/app/assets/javascripts/decidim/session_timeouter.js.es6 +0 -78
- data/app/assets/javascripts/decidim/social_share.js +0 -2
- data/app/assets/javascripts/decidim/vizzs.js.es6 +0 -1
- data/app/assets/javascripts/decidim/vizzs/renders.js.es6 +0 -11
- data/app/assets/stylesheets/decidim/_decidim.scss +0 -19
- data/app/assets/stylesheets/decidim/application.scss.erb +0 -10
- data/app/assets/stylesheets/decidim/extras/_extras.scss +0 -17
- data/app/assets/stylesheets/decidim/extras/_process_stats.scss +0 -45
- data/app/assets/stylesheets/decidim/layouts/_layouts.scss +0 -5
- data/app/assets/stylesheets/decidim/map.css +0 -5
- data/app/assets/stylesheets/decidim/modules/_modules.scss +0 -92
- data/app/assets/stylesheets/decidim/modules/_toggle.scss +0 -9
- data/app/assets/stylesheets/decidim/utils/_fontface.scss +0 -39
- data/app/assets/stylesheets/decidim/vizzs.scss +0 -8
- data/app/assets/stylesheets/decidim/vizzs/_vizzs.scss +0 -5
- data/app/frontend/entry.ts +0 -1
- data/app/middleware/decidim/current_organization.rb +0 -55
- data/app/middleware/decidim/strip_x_forwarded_host.rb +0 -14
- data/app/services/decidim/zip_stream/zip_stream_writer.rb +0 -56
- data/config/locales/ja-JP.yml +0 -1587
- data/lib/decidim/messaging.rb +0 -9
- data/vendor/assets/javascripts/appendAround.js +0 -41
- data/vendor/assets/javascripts/d3.js +0 -17813
- data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.ar.js +0 -16
- data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.bg.js +0 -14
- data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.ca.js +0 -16
- data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.cs.js +0 -14
- data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.da.js +0 -14
- data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.de.js +0 -14
- data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.el.js +0 -14
- data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.eo.js +0 -17
- data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.es-MX.js +0 -15
- data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.es-PY.js +0 -15
- data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.es.js +0 -15
- data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.et.js +0 -18
- data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.eu.js +0 -15
- data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.fi-pl.js +0 -14
- data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.fi.js +0 -14
- data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.fr-CA.js +0 -16
- data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.fr.js +0 -16
- data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.ga.js +0 -15
- data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.gl.js +0 -12
- data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.hr.js +0 -13
- data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.hu.js +0 -16
- data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.id.js +0 -13
- data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.is.js +0 -14
- data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.it.js +0 -14
- data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.ja.js +0 -16
- data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.ko.js +0 -18
- data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.lt.js +0 -16
- data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.lv.js +0 -17
- data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.mt.js +0 -15
- data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.nl.js +0 -14
- data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.no.js +0 -13
- data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.pl.js +0 -15
- data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.pt-BR.js +0 -14
- data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.pt.js +0 -17
- data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.ro.js +0 -15
- data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.ru.js +0 -16
- data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.sk.js +0 -14
- data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.sl.js +0 -14
- data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.sr.js +0 -16
- data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.sv.js +0 -14
- data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.tr.js +0 -14
- data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.uk.js +0 -16
- data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.vi.js +0 -14
- data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.zh-CN.js +0 -14
- data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.zh-TW.js +0 -14
- data/vendor/assets/javascripts/form_datepicker.js.es6 +0 -24
- data/vendor/assets/javascripts/foundation-datepicker.js +0 -1425
- data/vendor/assets/javascripts/leaflet-svg-icon.js +0 -179
- data/vendor/assets/javascripts/leaflet.js +0 -9
- data/vendor/assets/javascripts/leaflet.markercluster.js +0 -7
- data/vendor/assets/javascripts/morphdom.js +0 -688
- data/vendor/assets/javascripts/quill.min.js +0 -8
- data/vendor/assets/javascripts/quill.min.js.map +0 -1
- data/vendor/assets/javascripts/svg4everybody.min.js +0 -1
- data/vendor/assets/javascripts/tagsinput.js +0 -683
- data/vendor/assets/stylesheets/MarkerCluster.Default.css +0 -60
- data/vendor/assets/stylesheets/MarkerCluster.css +0 -14
- data/vendor/assets/stylesheets/leaflet.css +0 -624
- data/vendor/assets/stylesheets/quill.bubble.css +0 -952
- data/vendor/assets/stylesheets/quill.core.css +0 -397
- data/vendor/assets/stylesheets/quill.snow.css +0 -945
- data/vendor/assets/stylesheets/tagsinput.css +0 -55
- data/vendor/assets/stylesheets/tribute.css +0 -27
data/lib/decidim/core.rb
CHANGED
@@ -50,7 +50,6 @@ module Decidim
|
|
50
50
|
autoload :Menu, "decidim/menu"
|
51
51
|
autoload :MenuItem, "decidim/menu_item"
|
52
52
|
autoload :MenuRegistry, "decidim/menu_registry"
|
53
|
-
autoload :Messaging, "decidim/messaging"
|
54
53
|
autoload :ManifestRegistry, "decidim/manifest_registry"
|
55
54
|
autoload :EngineRouter, "decidim/engine_router"
|
56
55
|
autoload :Events, "decidim/events"
|
@@ -95,6 +94,7 @@ module Decidim
|
|
95
94
|
autoload :ShareableWithToken, "decidim/shareable_with_token"
|
96
95
|
autoload :RecordEncryptor, "decidim/record_encryptor"
|
97
96
|
autoload :AttachmentAttributes, "decidim/attachment_attributes"
|
97
|
+
autoload :CarrierWaveMigratorService, "decidim/carrier_wave_migrator_service"
|
98
98
|
|
99
99
|
include ActiveSupport::Configurable
|
100
100
|
# Loads seeds from all engines.
|
@@ -150,6 +150,11 @@ module Decidim
|
|
150
150
|
true
|
151
151
|
end
|
152
152
|
|
153
|
+
# Having this on true will change the way the svg assets are being served.
|
154
|
+
config_accessor :cors_enabled do
|
155
|
+
false
|
156
|
+
end
|
157
|
+
|
153
158
|
# Exposes a configuration option: The application available locales.
|
154
159
|
config_accessor :available_locales do
|
155
160
|
%w(en bg ar ca cs da de el eo es es-MX es-PY et eu fi-pl fi fr fr-CA ga gl hr hu id is it ja ko lt lv mt nl no pl pt pt-BR ro ru sk sl sr sv tr uk vi zh-CN zh-TW)
|
@@ -270,9 +275,21 @@ module Decidim
|
|
270
275
|
false
|
271
276
|
end
|
272
277
|
|
273
|
-
# How long can a user remained logged in before the session expires
|
278
|
+
# How long can a user remained logged in before the session expires. Notice that
|
279
|
+
# this is also maximum time that user can idle before getting automatically signed out.
|
274
280
|
config_accessor :expire_session_after do
|
275
|
-
|
281
|
+
30.minutes
|
282
|
+
end
|
283
|
+
|
284
|
+
# If set to true, users have option to "remember me". Notice that expire_session_after won't take
|
285
|
+
# effect when the user wants to be remembered.
|
286
|
+
config_accessor :enable_remember_me do
|
287
|
+
true
|
288
|
+
end
|
289
|
+
|
290
|
+
# Defines how often session_timeouter.js checks time between current moment and last request
|
291
|
+
config_accessor :session_timeout_interval do
|
292
|
+
10.seconds
|
276
293
|
end
|
277
294
|
|
278
295
|
# Exposes a configuration option: an object to configure Etherpad
|
@@ -360,11 +377,6 @@ module Decidim
|
|
360
377
|
"decidim-cc"
|
361
378
|
end
|
362
379
|
|
363
|
-
# Defines how often session_timeouter.js checks time between current moment and last request
|
364
|
-
config_accessor :session_timeouter_interval do
|
365
|
-
10_000
|
366
|
-
end
|
367
|
-
|
368
380
|
# Public: Registers a global engine. This method is intended to be used
|
369
381
|
# by component engines that also offer unscoped functionality
|
370
382
|
#
|
@@ -573,6 +585,13 @@ module Decidim
|
|
573
585
|
Decidim::OrganizationSettings.for(organization)
|
574
586
|
end
|
575
587
|
|
588
|
+
# Defines the time after which the machine translation job should be enabled.
|
589
|
+
# In some cases, it is required to have a delay, otherwise the ttanslation job will be discarded:
|
590
|
+
# Discarded Decidim::MachineTranslationResourceJob due to a ActiveJob::DeserializationError.
|
591
|
+
config_accessor :machine_translation_delay do
|
592
|
+
0.seconds
|
593
|
+
end
|
594
|
+
|
576
595
|
def self.machine_translation_service_klass
|
577
596
|
return unless Decidim.enable_machine_translations
|
578
597
|
|
data/lib/decidim/core/api.rb
CHANGED
@@ -2,6 +2,7 @@
|
|
2
2
|
|
3
3
|
module Decidim
|
4
4
|
module Core
|
5
|
+
autoload :CategoryList, "decidim/api/functions/category_list"
|
5
6
|
autoload :ComponentFinderBase, "decidim/api/functions/component_finder_base"
|
6
7
|
autoload :ComponentList, "decidim/api/functions/component_list"
|
7
8
|
autoload :ComponentListBase, "decidim/api/functions/component_list_base"
|
@@ -37,6 +38,7 @@ module Decidim
|
|
37
38
|
autoload :UserType, "decidim/api/types/user_type"
|
38
39
|
|
39
40
|
autoload :BaseInputFilter, "decidim/api/input_filters/base_input_filter"
|
41
|
+
autoload :CategoryInputFilter, "decidim/api/input_filters/category_input_filter"
|
40
42
|
autoload :ComponentInputFilter, "decidim/api/input_filters/component_input_filter"
|
41
43
|
autoload :HasHastaggableInputFilter, "decidim/api/input_filters/has_hastaggable_input_filter"
|
42
44
|
autoload :HasLocalizedInputFilter, "decidim/api/input_filters/has_localized_input_filter"
|
@@ -59,6 +61,7 @@ module Decidim
|
|
59
61
|
autoload :AuthorInterface, "decidim/api/interfaces/author_interface"
|
60
62
|
autoload :AuthorableInterface, "decidim/api/interfaces/authorable_interface"
|
61
63
|
autoload :CoauthorableInterface, "decidim/api/interfaces/coauthorable_interface"
|
64
|
+
autoload :CategoriesContainerInterface, "decidim/api/interfaces/categories_container_interface"
|
62
65
|
autoload :CategorizableInterface, "decidim/api/interfaces/categorizable_interface"
|
63
66
|
autoload :ScopableInterface, "decidim/api/interfaces/scopable_interface"
|
64
67
|
autoload :AttachableInterface, "decidim/api/interfaces/attachable_interface"
|
data/lib/decidim/core/engine.rb
CHANGED
@@ -2,24 +2,21 @@
|
|
2
2
|
|
3
3
|
require "rails"
|
4
4
|
require "active_support/all"
|
5
|
+
require "action_view/railtie"
|
5
6
|
|
6
7
|
require "pg"
|
7
8
|
require "redis"
|
8
9
|
|
10
|
+
require "acts_as_list"
|
9
11
|
require "devise"
|
10
12
|
require "devise-i18n"
|
11
13
|
require "devise_invitable"
|
12
|
-
require "jquery-rails"
|
13
|
-
require "sassc-rails"
|
14
|
-
require "foundation-rails"
|
15
14
|
require "foundation_rails_helper"
|
16
|
-
require "autoprefixer-rails"
|
17
15
|
require "active_link_to"
|
18
16
|
require "rectify"
|
19
17
|
require "carrierwave"
|
20
18
|
require "rails-i18n"
|
21
19
|
require "date_validator"
|
22
|
-
require "sprockets/es6"
|
23
20
|
require "truncato"
|
24
21
|
require "file_validators"
|
25
22
|
require "omniauth"
|
@@ -33,6 +30,7 @@ require "geocoder"
|
|
33
30
|
require "paper_trail"
|
34
31
|
require "cells/rails"
|
35
32
|
require "cells-erb"
|
33
|
+
require "cell/partial"
|
36
34
|
require "kaminari"
|
37
35
|
require "doorkeeper"
|
38
36
|
require "doorkeeper-i18n"
|
@@ -41,8 +39,17 @@ require "batch-loader"
|
|
41
39
|
require "etherpad-lite"
|
42
40
|
require "diffy"
|
43
41
|
require "anchored"
|
42
|
+
require "social-share-button"
|
43
|
+
require "ransack"
|
44
|
+
require "searchlight"
|
45
|
+
require "webpacker"
|
46
|
+
|
47
|
+
# Needed for the assets:precompile task, for configuring webpacker instance
|
48
|
+
require "decidim/webpacker"
|
44
49
|
|
45
50
|
require "decidim/api"
|
51
|
+
require "decidim/middleware/strip_x_forwarded_host"
|
52
|
+
require "decidim/middleware/current_organization"
|
46
53
|
|
47
54
|
module Decidim
|
48
55
|
module Core
|
@@ -52,29 +59,19 @@ module Decidim
|
|
52
59
|
engine_name "decidim"
|
53
60
|
|
54
61
|
initializer "decidim.action_controller" do |_app|
|
55
|
-
|
56
|
-
|
62
|
+
config.to_prepare do
|
63
|
+
ActiveSupport.on_load :action_controller do
|
64
|
+
helper Decidim::LayoutHelper if respond_to?(:helper)
|
65
|
+
end
|
57
66
|
end
|
58
67
|
end
|
59
68
|
|
60
69
|
initializer "decidim.middleware" do |app|
|
61
|
-
app.config.middleware.insert_before Warden::Manager, Decidim::CurrentOrganization
|
62
|
-
app.config.middleware.insert_before Warden::Manager, Decidim::StripXForwardedHost
|
70
|
+
app.config.middleware.insert_before Warden::Manager, Decidim::Middleware::CurrentOrganization
|
71
|
+
app.config.middleware.insert_before Warden::Manager, Decidim::Middleware::StripXForwardedHost
|
63
72
|
app.config.middleware.use BatchLoader::Middleware
|
64
73
|
end
|
65
74
|
|
66
|
-
initializer "decidim.assets" do |app|
|
67
|
-
app.config.assets.paths << File.expand_path("../../../app/assets/stylesheets", __dir__)
|
68
|
-
app.config.assets.precompile += %w(decidim_core_manifest.js
|
69
|
-
decidim/identity_selector_dialog)
|
70
|
-
|
71
|
-
Decidim.component_manifests.each do |component|
|
72
|
-
app.config.assets.precompile += [component.icon]
|
73
|
-
end
|
74
|
-
|
75
|
-
app.config.assets.debug = true if Rails.env.test?
|
76
|
-
end
|
77
|
-
|
78
75
|
initializer "decidim.default_form_builder" do |_app|
|
79
76
|
ActionView::Base.default_form_builder = Decidim::FormBuilder
|
80
77
|
end
|
@@ -179,59 +176,70 @@ module Decidim
|
|
179
176
|
|
180
177
|
initializer "decidim.menu" do
|
181
178
|
Decidim.menu :menu do |menu|
|
182
|
-
menu.
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
179
|
+
menu.add_item :root,
|
180
|
+
I18n.t("menu.home", scope: "decidim"),
|
181
|
+
decidim.root_path,
|
182
|
+
position: 1,
|
183
|
+
active: :exclusive
|
184
|
+
|
185
|
+
menu.add_item :pages,
|
186
|
+
I18n.t("menu.help", scope: "decidim"),
|
187
|
+
decidim.pages_path,
|
188
|
+
position: 7,
|
189
|
+
active: :inclusive
|
191
190
|
end
|
192
191
|
end
|
193
192
|
|
194
193
|
initializer "decidim.user_menu" do
|
195
194
|
Decidim.menu :user_menu do |menu|
|
196
|
-
menu.
|
197
|
-
|
198
|
-
|
199
|
-
|
195
|
+
menu.add_item :account,
|
196
|
+
t("account", scope: "layouts.decidim.user_profile"),
|
197
|
+
decidim.account_path,
|
198
|
+
position: 1.0,
|
199
|
+
active: :exact
|
200
200
|
|
201
|
-
menu.
|
202
|
-
|
203
|
-
|
201
|
+
menu.add_item :notifications_settings,
|
202
|
+
t("notifications_settings", scope: "layouts.decidim.user_profile"),
|
203
|
+
decidim.notifications_settings_path,
|
204
|
+
position: 1.1
|
204
205
|
|
205
206
|
if available_verification_workflows.any?
|
206
|
-
menu.
|
207
|
-
|
208
|
-
|
207
|
+
menu.add_item :authorizations,
|
208
|
+
t("authorizations", scope: "layouts.decidim.user_profile"),
|
209
|
+
decidim_verifications.authorizations_path,
|
210
|
+
position: 1.2
|
209
211
|
end
|
210
212
|
|
211
213
|
if current_organization.user_groups_enabled? && user_groups.any?
|
212
|
-
menu.
|
213
|
-
|
214
|
-
|
214
|
+
menu.add_item :own_user_groups,
|
215
|
+
t("user_groups", scope: "layouts.decidim.user_profile"),
|
216
|
+
decidim.own_user_groups_path,
|
217
|
+
position: 1.3
|
215
218
|
end
|
216
219
|
|
217
|
-
menu.
|
218
|
-
|
219
|
-
|
220
|
+
menu.add_item :user_interests,
|
221
|
+
t("my_interests", scope: "layouts.decidim.user_profile"),
|
222
|
+
decidim.user_interests_path,
|
223
|
+
position: 1.4
|
220
224
|
|
221
|
-
menu.
|
222
|
-
|
223
|
-
|
225
|
+
menu.add_item :data_portability,
|
226
|
+
t("my_data", scope: "layouts.decidim.user_profile"),
|
227
|
+
decidim.data_portability_path,
|
228
|
+
position: 1.5
|
224
229
|
|
225
|
-
menu.
|
226
|
-
|
227
|
-
|
228
|
-
|
230
|
+
menu.add_item :delete_account,
|
231
|
+
t("delete_my_account", scope: "layouts.decidim.user_profile"),
|
232
|
+
decidim.delete_account_path,
|
233
|
+
position: 999,
|
234
|
+
active: :exact
|
229
235
|
end
|
230
236
|
end
|
231
237
|
|
232
238
|
initializer "decidim.notifications" do
|
233
|
-
|
234
|
-
|
239
|
+
config.to_prepare do
|
240
|
+
Decidim::EventsManager.subscribe(/^decidim\.events\./) do |event_name, data|
|
241
|
+
EventPublisherJob.perform_later(event_name, data)
|
242
|
+
end
|
235
243
|
end
|
236
244
|
end
|
237
245
|
|
@@ -320,6 +328,7 @@ module Decidim
|
|
320
328
|
Decidim.register_resource(:user_group) do |resource|
|
321
329
|
resource.model_class_name = "Decidim::UserGroup"
|
322
330
|
resource.card = "decidim/user_profile"
|
331
|
+
resource.searchable = true
|
323
332
|
end
|
324
333
|
end
|
325
334
|
|
@@ -486,7 +495,7 @@ module Decidim
|
|
486
495
|
{
|
487
496
|
name: :main_image,
|
488
497
|
uploader: "Decidim::NewsletterTemplateImageUploader",
|
489
|
-
preview: -> { ActionController::Base.helpers.
|
498
|
+
preview: -> { ActionController::Base.helpers.asset_pack_path("media/images/placeholder.jpg") }
|
490
499
|
}
|
491
500
|
]
|
492
501
|
|
data/lib/decidim/core/test.rb
CHANGED
@@ -19,6 +19,7 @@ require "decidim/core/test/shared_examples/announcements_examples"
|
|
19
19
|
require "decidim/core/test/shared_examples/process_announcements_examples"
|
20
20
|
require "decidim/core/test/shared_examples/reportable"
|
21
21
|
require "decidim/core/test/shared_examples/reports_examples"
|
22
|
+
require "decidim/core/test/shared_examples/comments_reports_examples"
|
22
23
|
require "decidim/core/test/shared_examples/paginated_resource_examples"
|
23
24
|
require "decidim/core/test/shared_examples/errors"
|
24
25
|
require "decidim/core/test/shared_examples/scope_helper_examples"
|
@@ -64,3 +65,6 @@ require "decidim/core/test/shared_examples/embed_resource_examples"
|
|
64
65
|
require "decidim/core/test/shared_examples/resource_search_examples"
|
65
66
|
require "decidim/core/test/shared_examples/static_pages_examples"
|
66
67
|
require "decidim/core/test/shared_examples/controller_render_views"
|
68
|
+
require "decidim/core/test/shared_examples/share_link_examples"
|
69
|
+
require "decidim/core/test/shared_examples/categories_container_examples"
|
70
|
+
require "decidim/core/test/shared_examples/assembly_announcements_examples"
|
@@ -98,6 +98,7 @@ FactoryBot.define do
|
|
98
98
|
admin_terms_of_use_body { Decidim::Faker::Localized.wrapped("<p>", "</p>") { generate_localized_title } }
|
99
99
|
force_users_to_authenticate_before_access_organization { false }
|
100
100
|
machine_translation_display_priority { "original" }
|
101
|
+
external_domain_whitelist { ["example.org", "twitter.com", "facebook.com", "youtube.com", "github.com", "mytesturl.me"] }
|
101
102
|
smtp_settings do
|
102
103
|
{
|
103
104
|
"from" => "test@example.org",
|
@@ -108,6 +109,7 @@ FactoryBot.define do
|
|
108
109
|
}
|
109
110
|
end
|
110
111
|
file_upload_settings { Decidim::OrganizationSettings.default(:upload) }
|
112
|
+
enable_participatory_space_filters { true }
|
111
113
|
|
112
114
|
trait :secure_context do
|
113
115
|
host { "localhost" }
|
@@ -8,12 +8,14 @@ shared_examples "present admin log entry" do
|
|
8
8
|
let(:organization) { create(:organization) }
|
9
9
|
let(:user) { create(:user, organization: organization) }
|
10
10
|
let(:action) { "create" }
|
11
|
+
let(:admin_log_extra_data) { {} }
|
11
12
|
let(:action_log) do
|
12
13
|
create(
|
13
14
|
:action_log,
|
14
15
|
user: user,
|
15
16
|
action: action,
|
16
|
-
resource: admin_log_resource
|
17
|
+
resource: admin_log_resource,
|
18
|
+
extra_data: admin_log_extra_data
|
17
19
|
)
|
18
20
|
end
|
19
21
|
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
shared_examples "admin creates resource gallery" do
|
4
|
-
context "when uploading images"
|
4
|
+
context "when uploading images" do
|
5
5
|
let(:uploaded_photos) do
|
6
6
|
[
|
7
7
|
Decidim::Dev.test_file("city.jpeg", "image/jpeg"),
|
@@ -30,7 +30,7 @@ shared_examples "admin creates resource gallery" do
|
|
30
30
|
end
|
31
31
|
|
32
32
|
shared_examples "admin manages resource gallery" do
|
33
|
-
context "when managing images"
|
33
|
+
context "when managing images" do
|
34
34
|
let(:uploaded_photos) do
|
35
35
|
[
|
36
36
|
Decidim::Dev.test_file("city.jpeg", "image/jpeg"),
|
@@ -0,0 +1,34 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
shared_examples "manage assemblies announcements" do
|
4
|
+
it "can customize a general announcement for the assembly" do
|
5
|
+
click_link translated(assembly.title)
|
6
|
+
|
7
|
+
fill_in_i18n_editor(
|
8
|
+
:assembly_announcement,
|
9
|
+
"#assembly-announcement-tabs",
|
10
|
+
en: "An important announcement",
|
11
|
+
es: "Un aviso muy importante",
|
12
|
+
ca: "Un avís molt important"
|
13
|
+
)
|
14
|
+
|
15
|
+
within ".edit_assembly" do
|
16
|
+
find("*[type=submit]").click
|
17
|
+
end
|
18
|
+
|
19
|
+
expect(page).to have_admin_callout("successfully")
|
20
|
+
visit decidim_admin_assemblies.assemblies_path
|
21
|
+
|
22
|
+
if defined?(parent_assembly) && !parent_assembly.nil?
|
23
|
+
within find("tr", text: translated(parent_assembly.title)) do
|
24
|
+
click_link "Assemblies"
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
within "tr", text: translated(assembly.title) do
|
29
|
+
click_link "Preview"
|
30
|
+
end
|
31
|
+
|
32
|
+
expect(page).to have_content("An important announcement")
|
33
|
+
end
|
34
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "spec_helper"
|
4
|
+
|
5
|
+
shared_examples_for "categories container interface" do
|
6
|
+
describe "categories" do
|
7
|
+
let!(:categories) { create_list(:category, 3, participatory_space: model) }
|
8
|
+
let!(:subcategories) do
|
9
|
+
categories.map { |cat| create_list(:subcategory, 3, parent: cat) }.flatten
|
10
|
+
end
|
11
|
+
let(:other_space) { create(:participatory_process, organization: model.organization) }
|
12
|
+
let!(:other_categories) { create_list(:category, 3, participatory_space: other_space) }
|
13
|
+
let(:category_ids) { [categories.map(&:id), subcategories.map(&:id)].flatten }
|
14
|
+
let(:query) { "{ categories { id } }" }
|
15
|
+
|
16
|
+
it "returns its categories" do
|
17
|
+
ids = response["categories"].map { |cat| cat["id"].to_i }
|
18
|
+
expect(ids).to match_array(category_ids)
|
19
|
+
expect(ids).not_to include(*other_categories.map(&:id))
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -48,6 +48,45 @@ shared_examples "comments" do
|
|
48
48
|
expect(page).to have_css(".comments > div:nth-child(2)", text: "Most Rated Comment")
|
49
49
|
end
|
50
50
|
|
51
|
+
context "when there are deleted comments" do
|
52
|
+
let(:deleted_comment) { comments[0] }
|
53
|
+
|
54
|
+
before do
|
55
|
+
deleted_comment.delete!
|
56
|
+
visit resource_path
|
57
|
+
end
|
58
|
+
|
59
|
+
it "shows only a deletion message for deleted comments" do
|
60
|
+
expect(page).to have_selector("#comment_#{deleted_comment.id}")
|
61
|
+
|
62
|
+
expect(page).to have_no_content(deleted_comment.author.name)
|
63
|
+
expect(page).to have_no_content(deleted_comment.body.values.first)
|
64
|
+
within "#comment_#{deleted_comment.id}" do
|
65
|
+
expect(page).to have_content("Comment deleted on")
|
66
|
+
expect(page).to have_no_selector("comment__header")
|
67
|
+
expect(page).to have_no_selector("comment__footer")
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
it "counts only not deleted comments" do
|
72
|
+
expect(page).to have_selector("span.comments-count", text: "#{comments.length - 1} COMMENTS")
|
73
|
+
end
|
74
|
+
|
75
|
+
context "when deleted comment has replies, they are shown" do
|
76
|
+
let!(:reply) { create(:comment, commentable: deleted_comment, root_commentable: commentable, body: "Please, delete your comment") }
|
77
|
+
|
78
|
+
it "shows replies of deleted comments" do
|
79
|
+
visit resource_path
|
80
|
+
|
81
|
+
within "#comment_#{deleted_comment.id}" do
|
82
|
+
expect(page).to have_selector("#comment-#{deleted_comment.id}-replies")
|
83
|
+
expect(page).to have_content(reply.author.name)
|
84
|
+
expect(page).to have_content(reply.body.values.first)
|
85
|
+
end
|
86
|
+
end
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
51
90
|
context "when not authenticated" do
|
52
91
|
it "does not show form to add comments to user" do
|
53
92
|
visit resource_path
|
@@ -82,13 +121,15 @@ shared_examples "comments" do
|
|
82
121
|
end
|
83
122
|
end
|
84
123
|
|
85
|
-
context "when component has a default comments length params" do
|
124
|
+
context "when component is present and has a default comments length params" do
|
86
125
|
it "displays the numbers of characters left" do
|
87
|
-
component.
|
88
|
-
|
126
|
+
if component.present?
|
127
|
+
component.update!(settings: { comments_max_length: 3000 })
|
128
|
+
visit current_path
|
89
129
|
|
90
|
-
|
91
|
-
|
130
|
+
within ".add-comment form" do
|
131
|
+
expect(page).to have_content("3000 characters left")
|
132
|
+
end
|
92
133
|
end
|
93
134
|
end
|
94
135
|
end
|
@@ -108,6 +149,23 @@ shared_examples "comments" do
|
|
108
149
|
end
|
109
150
|
end
|
110
151
|
|
152
|
+
context "when user adds a new comment with a link" do
|
153
|
+
before do
|
154
|
+
within ".add-comment form" do
|
155
|
+
fill_in "add-comment-#{commentable.commentable_type.demodulize}-#{commentable.id}", with: "Very nice http://www.debian.org linux distro"
|
156
|
+
click_button "Send"
|
157
|
+
end
|
158
|
+
end
|
159
|
+
|
160
|
+
it "adds external link css" do
|
161
|
+
expect(page).to have_css(".external-link-container", text: "http://www.debian.org")
|
162
|
+
end
|
163
|
+
|
164
|
+
it "changes link to point to /link" do
|
165
|
+
expect(page).to have_link("http://www.debian.org", href: "/link?external_url=http%3A%2F%2Fwww.debian.org")
|
166
|
+
end
|
167
|
+
end
|
168
|
+
|
111
169
|
context "when the user has verified organizations" do
|
112
170
|
let(:user_group) { create(:user_group, :verified) }
|
113
171
|
|
@@ -130,6 +188,127 @@ shared_examples "comments" do
|
|
130
188
|
end
|
131
189
|
end
|
132
190
|
|
191
|
+
context "when a user deletes a comment" do
|
192
|
+
let(:comment_body) { "This comment is a mistake" }
|
193
|
+
let!(:comment) { create(:comment, body: comment_body, commentable: commentable, author: comment_author) }
|
194
|
+
|
195
|
+
before do
|
196
|
+
visit resource_path
|
197
|
+
end
|
198
|
+
|
199
|
+
context "when the comment is not authored by user" do
|
200
|
+
let!(:comment_author) { create(:user, :confirmed, organization: organization) }
|
201
|
+
|
202
|
+
it "the context menu of the comment doesn't show a delete link" do
|
203
|
+
within "#comment_#{comment.id}" do
|
204
|
+
within ".comment__header__context-menu" do
|
205
|
+
page.find(".icon--ellipses").click
|
206
|
+
expect(page).to have_no_link("Delete")
|
207
|
+
end
|
208
|
+
end
|
209
|
+
end
|
210
|
+
end
|
211
|
+
|
212
|
+
context "when the comment is authored by user" do
|
213
|
+
let(:comment_author) { user }
|
214
|
+
|
215
|
+
it "the context menu of the comment shows a delete link" do
|
216
|
+
within "#comment_#{comment.id}" do
|
217
|
+
within ".comment__header__context-menu" do
|
218
|
+
page.find(".icon--ellipses").click
|
219
|
+
expect(page).to have_link("Delete")
|
220
|
+
end
|
221
|
+
end
|
222
|
+
end
|
223
|
+
|
224
|
+
it "the user can delete the comment and updates the comments counter" do
|
225
|
+
expect(Decidim::Comments::Comment.not_deleted.count).to eq(4)
|
226
|
+
|
227
|
+
within "#comment_#{comment.id}" do
|
228
|
+
within ".comment__header__context-menu" do
|
229
|
+
page.find(".icon--ellipses").click
|
230
|
+
click_link "Delete"
|
231
|
+
end
|
232
|
+
end
|
233
|
+
|
234
|
+
within "div.confirm-reveal" do
|
235
|
+
click_link "OK"
|
236
|
+
end
|
237
|
+
|
238
|
+
expect(page).to have_selector("#comment_#{comment.id}")
|
239
|
+
expect(page).to have_no_content(comment_body)
|
240
|
+
within "#comment_#{comment.id}" do
|
241
|
+
expect(page).to have_content("Comment deleted on")
|
242
|
+
expect(page).to have_no_content comment_author.name
|
243
|
+
expect(page).to have_no_selector("comment__header")
|
244
|
+
expect(page).to have_no_selector("comment__footer")
|
245
|
+
end
|
246
|
+
expect(page).to have_selector("span.comments-count", text: "3 COMMENTS")
|
247
|
+
|
248
|
+
expect(Decidim::Comments::Comment.not_deleted.count).to eq(3)
|
249
|
+
end
|
250
|
+
end
|
251
|
+
end
|
252
|
+
|
253
|
+
context "when a user edits a comment" do
|
254
|
+
let(:comment_body) { "This coment has a typo" }
|
255
|
+
let!(:comment) { create(:comment, body: comment_body, commentable: commentable, author: comment_author) }
|
256
|
+
|
257
|
+
before do
|
258
|
+
visit resource_path
|
259
|
+
end
|
260
|
+
|
261
|
+
context "when the comment is not authored by user" do
|
262
|
+
let!(:comment_author) { create(:user, :confirmed, organization: organization) }
|
263
|
+
|
264
|
+
it "the context menu of the comment doesn't show an edit button" do
|
265
|
+
within "#comment_#{comment.id}" do
|
266
|
+
within ".comment__header__context-menu" do
|
267
|
+
page.find(".icon--ellipses").click
|
268
|
+
expect(page).to have_no_button("Edit")
|
269
|
+
end
|
270
|
+
end
|
271
|
+
end
|
272
|
+
end
|
273
|
+
|
274
|
+
context "when the comment is authored by user" do
|
275
|
+
let!(:comment_author) { user }
|
276
|
+
|
277
|
+
it "the context menu of the comment show an edit button" do
|
278
|
+
within "#comment_#{comment.id}" do
|
279
|
+
within ".comment__header__context-menu" do
|
280
|
+
page.find(".icon--ellipses").click
|
281
|
+
expect(page).to have_button("Edit")
|
282
|
+
end
|
283
|
+
end
|
284
|
+
end
|
285
|
+
|
286
|
+
context "when the user edits a comment" do
|
287
|
+
before do
|
288
|
+
within "#comment_#{comment.id} .comment__header__context-menu" do
|
289
|
+
page.find(".icon--ellipses").click
|
290
|
+
click_button "Edit"
|
291
|
+
end
|
292
|
+
fill_in "edit_comment_#{comment.id}", with: "This comment has been fixed"
|
293
|
+
click_button "Send"
|
294
|
+
end
|
295
|
+
|
296
|
+
it "the comment body changes" do
|
297
|
+
within "#comment_#{comment.id}" do
|
298
|
+
expect(page).to have_content("This comment has been fixed")
|
299
|
+
expect(page).to have_no_content(comment_body)
|
300
|
+
end
|
301
|
+
end
|
302
|
+
|
303
|
+
it "the header of the comment displays an edited message" do
|
304
|
+
within "#comment_#{comment.id} .comment__header" do
|
305
|
+
expect(page).to have_content("Edited")
|
306
|
+
end
|
307
|
+
end
|
308
|
+
end
|
309
|
+
end
|
310
|
+
end
|
311
|
+
|
133
312
|
context "when a user replies to a comment", :slow do
|
134
313
|
let!(:comment_author) { create(:user, :confirmed, organization: organization) }
|
135
314
|
let!(:comment) { create(:comment, commentable: commentable, author: comment_author) }
|
@@ -184,6 +363,10 @@ shared_examples "comments" do
|
|
184
363
|
it "works according to the setting in the commentable" do
|
185
364
|
if commentable.comments_have_alignment?
|
186
365
|
page.find(".opinion-toggle--ok").click
|
366
|
+
expect(page.find(".opinion-toggle--ok")["aria-pressed"]).to eq("true")
|
367
|
+
expect(page.find(".opinion-toggle--meh")["aria-pressed"]).to eq("false")
|
368
|
+
expect(page.find(".opinion-toggle--ko")["aria-pressed"]).to eq("false")
|
369
|
+
expect(page.find(".opinion-toggle .selected-state", visible: false)).to have_content("Your opinion about this topic is positive")
|
187
370
|
|
188
371
|
within ".add-comment form" do
|
189
372
|
fill_in "add-comment-#{commentable.commentable_type.demodulize}-#{commentable.id}", with: "I am in favor about this!"
|
@@ -267,7 +450,7 @@ shared_examples "comments" do
|
|
267
450
|
let(:content) { "A unconfirmed user mention: @#{mentioned_user.nickname}" }
|
268
451
|
|
269
452
|
it "do not show the tribute container" do
|
270
|
-
expect(page).not_to have_selector(".tribute-container")
|
453
|
+
expect(page).not_to have_selector(".tribute-container", text: mentioned_user.name)
|
271
454
|
end
|
272
455
|
end
|
273
456
|
|