decidim-admin 0.27.8 → 0.28.0.rc4
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of decidim-admin might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/README.md +3 -3
- data/app/cells/decidim/admin/attachments_privacy_warning/show.erb +1 -1
- data/app/cells/decidim/admin/content_block/show.erb +11 -6
- data/app/cells/decidim/admin/content_block_cell.rb +21 -7
- data/app/cells/decidim/admin/homepage_content_block_cell.rb +19 -0
- data/app/cells/decidim/admin/results_per_page/show.erb +1 -1
- data/app/cells/decidim/admin/static_page_content_block_cell.rb +21 -0
- data/app/commands/decidim/admin/block_user.rb +15 -11
- data/app/commands/decidim/admin/close_session_managed_user.rb +1 -1
- data/app/commands/decidim/admin/content_blocks/create_content_block.rb +50 -0
- data/app/commands/decidim/admin/content_blocks/destroy_content_block.rb +36 -0
- data/app/commands/decidim/admin/content_blocks/reorder_content_blocks.rb +88 -0
- data/app/commands/decidim/admin/content_blocks/update_content_block.rb +81 -0
- data/app/commands/decidim/admin/create_area.rb +1 -1
- data/app/commands/decidim/admin/create_area_type.rb +1 -1
- data/app/commands/decidim/admin/create_attachment.rb +1 -1
- data/app/commands/decidim/admin/create_attachment_collection.rb +1 -1
- data/app/commands/decidim/admin/create_category.rb +1 -1
- data/app/commands/decidim/admin/create_newsletter.rb +1 -1
- data/app/commands/decidim/admin/create_participatory_space_private_user.rb +3 -3
- data/app/commands/decidim/admin/create_scope.rb +1 -1
- data/app/commands/decidim/admin/create_scope_type.rb +1 -1
- data/app/commands/decidim/admin/create_static_page.rb +1 -1
- data/app/commands/decidim/admin/create_static_page_topic.rb +1 -1
- data/app/commands/decidim/admin/destroy_area.rb +1 -1
- data/app/commands/decidim/admin/destroy_category.rb +2 -2
- data/app/commands/decidim/admin/destroy_participatory_space_private_user.rb +1 -1
- data/app/commands/decidim/admin/destroy_scope.rb +1 -1
- data/app/commands/decidim/admin/destroy_share_token.rb +1 -1
- data/app/commands/decidim/admin/destroy_static_page_topic.rb +1 -1
- data/app/commands/decidim/admin/hide_resource.rb +9 -35
- data/app/commands/decidim/admin/impersonate_user.rb +1 -1
- data/app/commands/decidim/admin/invite_admin.rb +1 -1
- data/app/commands/decidim/admin/participatory_space/create_admin.rb +132 -0
- data/app/commands/decidim/admin/participatory_space/destroy_admin.rb +61 -0
- data/app/commands/decidim/admin/participatory_space/publish.rb +41 -0
- data/app/commands/decidim/admin/participatory_space/unpublish.rb +41 -0
- data/app/commands/decidim/admin/participatory_space/update_admin.rb +72 -0
- data/app/commands/decidim/admin/process_participatory_space_private_user_import_csv.rb +4 -6
- data/app/commands/decidim/admin/process_user_group_verification_csv.rb +4 -7
- data/app/commands/decidim/admin/promote_managed_user.rb +1 -1
- data/app/commands/decidim/admin/reject_user_group.rb +1 -1
- data/app/commands/decidim/admin/update_area.rb +1 -1
- data/app/commands/decidim/admin/update_area_type.rb +1 -1
- data/app/commands/decidim/admin/update_attachment.rb +1 -1
- data/app/commands/decidim/admin/update_attachment_collection.rb +1 -1
- data/app/commands/decidim/admin/update_category.rb +1 -1
- data/app/commands/decidim/admin/update_component_permissions.rb +2 -2
- data/app/commands/decidim/admin/update_newsletter.rb +1 -1
- data/app/commands/decidim/admin/update_organization.rb +2 -2
- data/app/commands/decidim/admin/update_organization_appearance.rb +5 -7
- data/app/commands/decidim/admin/update_organization_tos_version.rb +3 -3
- data/app/commands/decidim/admin/update_resource_permissions.rb +1 -1
- data/app/commands/decidim/admin/update_scope.rb +1 -1
- data/app/commands/decidim/admin/update_scope_type.rb +1 -1
- data/app/commands/decidim/admin/update_static_page.rb +1 -1
- data/app/commands/decidim/admin/update_static_page_topic.rb +1 -1
- data/app/commands/decidim/admin/update_user_groups.rb +1 -1
- data/app/controllers/concerns/decidim/admin/content_blocks/landing_page.rb +130 -0
- data/app/controllers/concerns/decidim/admin/content_blocks/landing_page_content_blocks.rb +158 -0
- data/app/controllers/concerns/decidim/admin/filterable.rb +3 -3
- data/app/controllers/concerns/decidim/admin/global_moderation_context.rb +1 -20
- data/app/controllers/concerns/decidim/admin/logs/filterable.rb +31 -0
- data/app/controllers/concerns/decidim/admin/participatory_space_admin_breadcrumb.rb +38 -0
- data/app/controllers/concerns/decidim/admin/participatory_space_admin_context.rb +3 -2
- data/app/controllers/decidim/admin/admin_terms_controller.rb +3 -3
- data/app/controllers/decidim/admin/application_controller.rb +6 -2
- data/app/controllers/decidim/admin/area_types_controller.rb +10 -3
- data/app/controllers/decidim/admin/areas_controller.rb +10 -3
- data/app/controllers/decidim/admin/authorization_workflows_controller.rb +1 -3
- data/app/controllers/decidim/admin/block_user_controller.rb +4 -3
- data/app/controllers/decidim/admin/categories_controller.rb +20 -12
- data/app/controllers/decidim/admin/component_permissions_controller.rb +2 -2
- data/app/controllers/decidim/admin/components/base_controller.rb +16 -1
- data/app/controllers/decidim/admin/components_controller.rb +13 -1
- data/app/controllers/decidim/admin/concerns/has_attachment_collections.rb +4 -10
- data/app/controllers/decidim/admin/concerns/has_attachments.rb +10 -16
- data/app/controllers/decidim/admin/concerns/has_breadcrumb_items.rb +27 -0
- data/app/controllers/decidim/admin/concerns/has_content_blocks.rb +23 -0
- data/app/controllers/decidim/admin/concerns/has_private_users.rb +4 -4
- data/app/controllers/decidim/admin/concerns/has_private_users_csv_import.rb +2 -2
- data/app/controllers/decidim/admin/concerns/has_tabbed_menu.rb +21 -0
- data/app/controllers/decidim/admin/conflicts_controller.rb +3 -9
- data/app/controllers/decidim/admin/dashboard_controller.rb +8 -3
- data/app/controllers/decidim/admin/exports_controller.rb +21 -4
- data/app/controllers/decidim/admin/help_sections_controller.rb +3 -1
- data/app/controllers/decidim/admin/impersonatable_users_controller.rb +3 -1
- data/app/controllers/decidim/admin/impersonations_controller.rb +8 -9
- data/app/controllers/decidim/admin/imports_controller.rb +24 -6
- data/app/controllers/decidim/admin/logs_controller.rb +20 -8
- data/app/controllers/decidim/admin/managed_users/impersonation_logs_controller.rb +1 -3
- data/app/controllers/decidim/admin/managed_users/promotions_controller.rb +2 -2
- data/app/controllers/decidim/admin/metrics_controller.rb +1 -1
- data/app/controllers/decidim/admin/moderated_users_controller.rb +7 -4
- data/app/controllers/decidim/admin/newsletters_controller.rb +16 -7
- data/app/controllers/decidim/admin/officializations_controller.rb +3 -3
- data/app/controllers/decidim/admin/organization_appearance_controller.rb +3 -0
- data/app/controllers/decidim/admin/organization_controller.rb +6 -7
- data/app/controllers/decidim/admin/organization_external_domain_whitelist_controller.rb +2 -0
- data/app/controllers/decidim/admin/organization_homepage_content_blocks_controller.rb +12 -41
- data/app/controllers/decidim/admin/organization_homepage_controller.rb +15 -33
- data/app/controllers/decidim/admin/participatory_space/user_role_controller.rb +119 -0
- data/app/controllers/decidim/admin/reminders_controller.rb +1 -1
- data/app/controllers/decidim/admin/resource_permissions_controller.rb +1 -1
- data/app/controllers/decidim/admin/scope_types_controller.rb +10 -3
- data/app/controllers/decidim/admin/scopes_controller.rb +10 -3
- data/app/controllers/decidim/admin/share_tokens_controller.rb +1 -1
- data/app/controllers/decidim/admin/space_publications_controller.rb +53 -0
- data/app/controllers/decidim/admin/static_page_content_blocks_controller.rb +40 -0
- data/app/controllers/decidim/admin/static_page_topics_controller.rb +18 -7
- data/app/controllers/decidim/admin/static_pages_controller.rb +33 -6
- data/app/controllers/decidim/admin/users_controller.rb +2 -2
- data/app/events/decidim/attachment_created_event.rb +1 -1
- data/app/events/decidim/component_published_event.rb +1 -12
- data/app/events/decidim/resource_hidden_event.rb +2 -6
- data/app/forms/decidim/admin/area_form.rb +1 -1
- data/app/forms/decidim/admin/block_user_form.rb +1 -0
- data/app/forms/decidim/admin/category_form.rb +1 -1
- data/app/forms/decidim/admin/managed_user_promotion_form.rb +1 -1
- data/app/forms/decidim/admin/organization_appearance_form.rb +7 -12
- data/app/forms/decidim/admin/organization_form.rb +2 -2
- data/app/forms/decidim/admin/participatory_space_admin_user_form.rb +16 -0
- data/app/forms/decidim/admin/participatory_space_private_user_csv_import_form.rb +3 -5
- data/app/forms/decidim/admin/scope_form.rb +1 -1
- data/app/forms/decidim/admin/selective_newsletter_form.rb +1 -1
- data/app/forms/decidim/admin/static_page_form.rb +3 -3
- data/app/helpers/decidim/admin/admin_terms_helper.rb +10 -10
- data/app/helpers/decidim/admin/application_helper.rb +1 -14
- data/app/helpers/decidim/admin/attributes_display_helper.rb +1 -1
- data/app/helpers/decidim/admin/bulk_actions_helper.rb +2 -2
- data/app/helpers/decidim/admin/dashboard_helper.rb +3 -3
- data/app/helpers/decidim/admin/exports_helper.rb +26 -2
- data/app/helpers/decidim/admin/filterable_helper.rb +2 -2
- data/app/helpers/decidim/admin/icon_link_helper.rb +12 -11
- data/app/helpers/decidim/admin/icon_with_tooltip_helper.rb +22 -0
- data/app/helpers/decidim/admin/imports_helper.rb +1 -1
- data/app/helpers/decidim/admin/logs_helper.rb +18 -0
- data/app/helpers/decidim/admin/menu_helper.rb +61 -1
- data/app/helpers/decidim/admin/moderations/reports_helper.rb +3 -2
- data/app/helpers/decidim/admin/newsletters_helper.rb +4 -4
- data/app/helpers/decidim/admin/paginable/per_page_helper.rb +1 -1
- data/app/helpers/decidim/admin/resource_permissions_helper.rb +2 -2
- data/app/helpers/decidim/admin/search_form_helper.rb +19 -0
- data/app/helpers/decidim/admin/settings_helper.rb +9 -8
- data/app/jobs/decidim/admin/application_job.rb +1 -1
- data/app/jobs/decidim/admin/expire_impersonation_job.rb +1 -1
- data/app/jobs/decidim/admin/import_participatory_space_private_user_csv_job.rb +2 -2
- data/app/jobs/decidim/admin/newsletter_job.rb +1 -1
- data/app/mailers/decidim/admin/application_mailer.rb +12 -0
- data/app/packs/entrypoints/decidim_admin.js +2 -23
- data/app/packs/entrypoints/decidim_admin.scss +1 -1
- data/app/packs/src/decidim/admin/application.js +0 -12
- data/app/packs/src/decidim/admin/officializations.js +21 -3
- data/app/packs/src/decidim/admin/participatory_space_search.js +268 -0
- data/app/packs/src/decidim/admin/scope_picker_enabler.component.js +2 -2
- data/app/packs/src/decidim/admin/sortable.js +0 -2
- data/app/packs/src/decidim/admin/tab_focus.js +3 -3
- data/app/packs/src/decidim/admin/toggle_nav.js +1 -1
- data/app/packs/src/decidim/admin/triadic_color_picker.js +128 -0
- data/app/packs/stylesheets/decidim/admin/_bulk_actions.scss +16 -0
- data/app/packs/stylesheets/decidim/admin/_cards.scss +171 -0
- data/app/packs/stylesheets/decidim/admin/_color_picker.scss +61 -0
- data/app/packs/stylesheets/decidim/admin/_component-show.scss +95 -0
- data/app/packs/stylesheets/decidim/admin/_data_picker.scss +55 -0
- data/app/packs/stylesheets/decidim/admin/_dropdown.scss +35 -0
- data/app/packs/stylesheets/decidim/admin/_filters.scss +94 -0
- data/app/packs/stylesheets/decidim/admin/_forms.scss +81 -0
- data/app/packs/stylesheets/decidim/admin/_item_edit.scss +122 -0
- data/app/packs/stylesheets/decidim/admin/_item_show.scss +69 -0
- data/app/packs/stylesheets/decidim/admin/_layout.scss +79 -0
- data/app/packs/stylesheets/decidim/admin/_legacy_foundation.scss +482 -0
- data/app/packs/stylesheets/decidim/admin/_logs.scss +80 -0
- data/app/packs/stylesheets/decidim/admin/_main-nav.scss +93 -0
- data/app/packs/stylesheets/decidim/admin/_minimap.scss +59 -0
- data/app/packs/stylesheets/decidim/admin/_moderations.scss +36 -0
- data/app/packs/stylesheets/decidim/admin/_secondary-nav.scss +111 -0
- data/app/packs/stylesheets/decidim/admin/_show_email.scss +19 -0
- data/app/packs/stylesheets/decidim/admin/_sidebar-menu.scss +66 -0
- data/app/packs/stylesheets/decidim/admin/_table-list.scss +155 -0
- data/app/packs/stylesheets/decidim/admin/_tabs.scss +74 -0
- data/app/packs/stylesheets/decidim/admin/_title-bar.scss +62 -0
- data/app/packs/stylesheets/decidim/admin/_user-login.scss +9 -0
- data/app/packs/stylesheets/decidim/admin/application.scss +37 -21
- data/app/permissions/decidim/admin/permissions.rb +2 -2
- data/app/presenters/decidim/admin/aside_menu_presenter.rb +25 -0
- data/app/presenters/decidim/admin/dashboard_metric_charts_presenter.rb +0 -26
- data/app/presenters/decidim/admin/secondary_menu_presenter.rb +5 -9
- data/app/presenters/decidim/admin/simple_menu_presenter.rb +2 -2
- data/app/queries/decidim/admin/active_users_counter.rb +1 -1
- data/app/queries/decidim/admin/invites.rb +58 -0
- data/app/queries/decidim/admin/moderation_stats.rb +53 -0
- data/app/views/decidim/admin/admin_terms/show.html.erb +15 -10
- data/app/views/decidim/admin/area_types/_form.html.erb +11 -6
- data/app/views/decidim/admin/area_types/edit.html.erb +14 -12
- data/app/views/decidim/admin/area_types/index.html.erb +35 -33
- data/app/views/decidim/admin/area_types/new.html.erb +14 -12
- data/app/views/decidim/admin/areas/_form.html.erb +12 -8
- data/app/views/decidim/admin/areas/edit.html.erb +14 -12
- data/app/views/decidim/admin/areas/index.html.erb +40 -38
- data/app/views/decidim/admin/areas/new.html.erb +14 -12
- data/app/views/decidim/admin/attachment_collections/_form.html.erb +12 -14
- data/app/views/decidim/admin/attachment_collections/edit.html.erb +17 -5
- data/app/views/decidim/admin/attachment_collections/index.html.erb +35 -40
- data/app/views/decidim/admin/attachment_collections/new.html.erb +16 -5
- data/app/views/decidim/admin/attachments/_form.html.erb +18 -22
- data/app/views/decidim/admin/attachments/edit.html.erb +17 -5
- data/app/views/decidim/admin/attachments/index.html.erb +45 -48
- data/app/views/decidim/admin/attachments/new.html.erb +16 -5
- data/app/views/decidim/admin/authorization_workflows/index.html.erb +7 -0
- data/app/views/decidim/admin/block_user/new.html.erb +39 -18
- data/app/views/decidim/admin/categories/_form.html.erb +13 -15
- data/app/views/decidim/admin/categories/edit.html.erb +16 -5
- data/app/views/decidim/admin/categories/index.html.erb +44 -55
- data/app/views/decidim/admin/categories/new.html.erb +16 -5
- data/app/views/decidim/admin/components/_actions.html.erb +17 -16
- data/app/views/decidim/admin/components/_component.html.erb +5 -3
- data/app/views/decidim/admin/components/_form.html.erb +87 -47
- data/app/views/decidim/admin/components/_resource_action.html.erb +9 -0
- data/app/views/decidim/admin/components/_settings_fields.html.erb +11 -8
- data/app/views/decidim/admin/components/edit.html.erb +16 -5
- data/app/views/decidim/admin/components/index.html.erb +23 -18
- data/app/views/decidim/admin/components/new.html.erb +16 -5
- data/app/views/decidim/admin/conflicts/edit.html.erb +24 -26
- data/app/views/decidim/admin/conflicts/index.html.erb +23 -26
- data/app/views/decidim/admin/dashboard/_pending_moderations.html.erb +12 -0
- data/app/views/decidim/admin/dashboard/show.html.erb +26 -20
- data/app/views/decidim/admin/devise/mailers/password_change.html.erb +1 -1
- data/app/views/decidim/admin/devise/mailers/reset_password_instructions.html.erb +2 -2
- data/app/views/decidim/admin/exports/_dropdown.html.erb +11 -4
- data/app/views/decidim/admin/help_sections/_form.html.erb +34 -18
- data/app/views/decidim/admin/impersonatable_users/index.html.erb +46 -53
- data/app/views/decidim/admin/impersonations/_form.html.erb +53 -35
- data/app/views/decidim/admin/impersonations/new.html.erb +21 -19
- data/app/views/decidim/admin/imports/_dropdown.html.erb +5 -2
- data/app/views/decidim/admin/imports/new.html.erb +54 -43
- data/app/views/decidim/admin/logs/_filters.html.erb +37 -0
- data/app/views/decidim/admin/logs/_logs_list.html.erb +4 -3
- data/app/views/decidim/admin/logs/index.html.erb +3 -6
- data/app/views/decidim/admin/managed_users/impersonation_logs/index.html.erb +27 -28
- data/app/views/decidim/admin/managed_users/promotions/_form.html.erb +8 -2
- data/app/views/decidim/admin/managed_users/promotions/new.html.erb +17 -15
- data/app/views/decidim/admin/metrics/_metrics.html.erb +1 -6
- data/app/views/decidim/admin/metrics/index.html.erb +1 -1
- data/app/views/decidim/admin/moderated_users/_report.html.erb +1 -5
- data/app/views/decidim/admin/moderated_users/index.html.erb +58 -75
- data/app/views/decidim/admin/moderations/index.html.erb +91 -101
- data/app/views/decidim/admin/moderations/reports/index.html.erb +91 -92
- data/app/views/decidim/admin/moderations/reports/show.html.erb +51 -49
- data/app/views/decidim/admin/newsletter_templates/index.html.erb +12 -11
- data/app/views/decidim/admin/newsletter_templates/show.html.erb +8 -6
- data/app/views/decidim/admin/newsletters/_form.html.erb +10 -4
- data/app/views/decidim/admin/newsletters/edit.html.erb +21 -12
- data/app/views/decidim/admin/newsletters/index.html.erb +57 -57
- data/app/views/decidim/admin/newsletters/new.html.erb +20 -12
- data/app/views/decidim/admin/newsletters/select_recipients_to_deliver.html.erb +53 -55
- data/app/views/decidim/admin/newsletters/show.html.erb +24 -17
- data/app/views/decidim/admin/officializations/_show_email_modal.html.erb +20 -21
- data/app/views/decidim/admin/officializations/index.html.erb +55 -62
- data/app/views/decidim/admin/officializations/new.html.erb +24 -16
- data/app/views/decidim/admin/officializations/show_email.html.erb +0 -1
- data/app/views/decidim/admin/organization/_form.html.erb +76 -90
- data/app/views/decidim/admin/organization/edit.html.erb +19 -11
- data/app/views/decidim/admin/organization_appearance/_form.html.erb +72 -57
- data/app/views/decidim/admin/organization_appearance/edit.html.erb +17 -6
- data/app/views/decidim/admin/organization_appearance/form/_colors.html.erb +63 -24
- data/app/views/decidim/admin/organization_appearance/form/_header_snippets.html.erb +17 -0
- data/app/views/decidim/admin/organization_appearance/form/_images.html.erb +39 -40
- data/app/views/decidim/admin/organization_appearance/form/_minimap.html.erb +5 -14
- data/app/views/decidim/admin/organization_external_domain_whitelist/_external_domain.html.erb +18 -13
- data/app/views/decidim/admin/organization_external_domain_whitelist/_form.html.erb +8 -10
- data/app/views/decidim/admin/organization_external_domain_whitelist/edit.html.erb +17 -6
- data/app/views/decidim/admin/participatory_space_private_users/_form.html.erb +10 -14
- data/app/views/decidim/admin/participatory_space_private_users/index.html.erb +59 -60
- data/app/views/decidim/admin/participatory_space_private_users/new.html.erb +17 -5
- data/app/views/decidim/admin/participatory_space_private_users_csv_imports/new.html.erb +28 -11
- data/app/views/decidim/admin/reminders/new.html.erb +18 -16
- data/app/views/decidim/admin/resource_permissions/edit.html.erb +46 -47
- data/app/views/decidim/admin/scope_types/_form.html.erb +9 -6
- data/app/views/decidim/admin/scope_types/edit.html.erb +17 -11
- data/app/views/decidim/admin/scope_types/index.html.erb +40 -34
- data/app/views/decidim/admin/scope_types/new.html.erb +17 -11
- data/app/views/decidim/admin/scopes/_form.html.erb +11 -9
- data/app/views/decidim/admin/scopes/edit.html.erb +17 -11
- data/app/views/decidim/admin/scopes/index.html.erb +39 -41
- data/app/views/decidim/admin/scopes/new.html.erb +17 -11
- data/app/views/decidim/admin/share_tokens/_share_tokens.html.erb +3 -15
- data/app/views/decidim/admin/shared/_admin_confirm_modal.html.erb +18 -0
- data/app/views/decidim/admin/shared/_filters.html.erb +6 -10
- data/app/views/decidim/admin/shared/_gallery.html.erb +8 -19
- data/app/views/decidim/admin/shared/_js-callout.html.erb +4 -2
- data/app/views/decidim/admin/shared/landing_page/_content_blocks.html.erb +68 -0
- data/app/views/decidim/admin/shared/landing_page/edit.html.erb +1 -47
- data/app/views/decidim/admin/shared/landing_page_content_blocks/edit.html.erb +24 -14
- data/app/views/decidim/admin/static_page_topics/_form.html.erb +2 -2
- data/app/views/decidim/admin/static_page_topics/edit.html.erb +21 -11
- data/app/views/decidim/admin/static_page_topics/index.html.erb +41 -0
- data/app/views/decidim/admin/static_page_topics/new.html.erb +21 -11
- data/app/views/decidim/admin/static_pages/_form.html.erb +41 -26
- data/app/views/decidim/admin/static_pages/_form_notable_changes.html.erb +2 -3
- data/app/views/decidim/admin/static_pages/_topic.html.erb +40 -44
- data/app/views/decidim/admin/static_pages/edit.html.erb +22 -12
- data/app/views/decidim/admin/static_pages/index.html.erb +14 -2
- data/app/views/decidim/admin/static_pages/new.html.erb +15 -11
- data/app/views/decidim/admin/user_groups/index.html.erb +58 -58
- data/app/views/decidim/admin/user_groups_csv_verifications/new.html.erb +28 -17
- data/app/views/decidim/admin/users/_form.html.erb +14 -8
- data/app/views/decidim/admin/users/index.html.erb +52 -54
- data/app/views/decidim/admin/users/new.html.erb +15 -12
- data/app/views/layouts/decidim/admin/_admin_timeout_modal.html.erb +24 -0
- data/app/views/layouts/decidim/admin/_application.html.erb +50 -12
- data/app/views/layouts/decidim/admin/_breadcrumb.html.erb +26 -0
- data/app/views/layouts/decidim/admin/_callouts_full.html.erb +2 -13
- data/app/views/layouts/decidim/admin/_header.html.erb +2 -6
- data/app/views/layouts/decidim/admin/_js_configuration.html.erb +3 -6
- data/app/views/layouts/decidim/admin/_sidebar_menu.html.erb +24 -0
- data/app/views/layouts/decidim/admin/_title_bar.html.erb +36 -37
- data/app/views/layouts/decidim/admin/_title_bar_responsive.html.erb +46 -0
- data/app/views/layouts/decidim/admin/global_moderations.html.erb +1 -3
- data/app/views/layouts/decidim/admin/newsletters.erb +0 -11
- data/app/views/layouts/decidim/admin/settings.html.erb +2 -3
- data/app/views/layouts/decidim/admin/users.html.erb +1 -3
- data/config/locales/ar-SA.yml +0 -3
- data/config/locales/ar.yml +9 -83
- data/config/locales/bg.yml +3 -990
- data/config/locales/ca.yml +119 -87
- data/config/locales/cs-CZ.yml +0 -3
- data/config/locales/cs.yml +120 -86
- data/config/locales/de.yml +123 -91
- data/config/locales/el.yml +90 -78
- data/config/locales/en.yml +123 -91
- data/config/locales/eo.yml +0 -2
- data/config/locales/es-MX.yml +121 -89
- data/config/locales/es-PY.yml +121 -89
- data/config/locales/es.yml +122 -90
- data/config/locales/eu.yml +126 -94
- data/config/locales/fi-pl.yml +0 -3
- data/config/locales/fi-plain.yml +112 -80
- data/config/locales/fi.yml +113 -81
- data/config/locales/fr-CA.yml +119 -87
- data/config/locales/fr-LU.yml +0 -3
- data/config/locales/fr.yml +119 -87
- data/config/locales/ga-IE.yml +4 -12
- data/config/locales/gl.yml +7 -99
- data/config/locales/hu.yml +93 -98
- data/config/locales/id-ID.yml +0 -64
- data/config/locales/is-IS.yml +0 -53
- data/config/locales/it.yml +9 -103
- data/config/locales/ja.yml +117 -88
- data/config/locales/kaa.yml +6 -13
- data/config/locales/ko.yml +0 -720
- data/config/locales/lb-LU.yml +0 -3
- data/config/locales/lb.yml +9 -104
- data/config/locales/lt.yml +90 -72
- data/config/locales/lv.yml +0 -79
- data/config/locales/nl.yml +14 -109
- data/config/locales/no.yml +8 -115
- data/config/locales/pl.yml +7 -158
- data/config/locales/pt-BR.yml +87 -106
- data/config/locales/pt.yml +9 -104
- data/config/locales/ro-RO.yml +84 -80
- data/config/locales/ru.yml +0 -55
- data/config/locales/sk-SK.yml +3 -6
- data/config/locales/sk.yml +0 -76
- data/config/locales/sl.yml +0 -8
- data/config/locales/sq-AL.yml +4 -486
- data/config/locales/sr-CS.yml +0 -60
- data/config/locales/sv.yml +30 -108
- data/config/locales/th-TH.yml +0 -100
- data/config/locales/tr-TR.yml +1 -89
- data/config/locales/uk.yml +0 -48
- data/config/locales/zh-CN.yml +0 -79
- data/config/locales/zh-TW.yml +74 -72
- data/config/routes.rb +12 -4
- data/lib/decidim/admin/components.rb +1 -1
- data/lib/decidim/admin/custom_import.rb +29 -0
- data/lib/decidim/admin/engine.rb +54 -216
- data/lib/decidim/admin/import/importer.rb +3 -3
- data/lib/decidim/admin/import/importer_factory.rb +1 -1
- data/lib/decidim/admin/import/readers/base.rb +1 -1
- data/lib/decidim/admin/import/readers/csv.rb +2 -2
- data/lib/decidim/admin/import/verifier.rb +4 -4
- data/lib/decidim/admin/menu.rb +281 -0
- data/lib/decidim/admin/search_form_builder.rb +39 -0
- data/lib/decidim/admin/test/admin_participatory_space_access_examples.rb +3 -2
- data/lib/decidim/admin/test/commands/create_attachment_collection_examples.rb +3 -3
- data/lib/decidim/admin/test/commands/create_category_examples.rb +2 -2
- data/lib/decidim/admin/test/commands/destroy_category_examples.rb +4 -13
- data/lib/decidim/admin/test/commands/publish_participatory_space_examples.rb +102 -0
- data/lib/decidim/admin/test/commands/update_attachment_collection_examples.rb +4 -4
- data/lib/decidim/admin/test/commands/update_category_examples.rb +3 -3
- data/lib/decidim/admin/test/destroy_admin_examples.rb +39 -0
- data/lib/decidim/admin/test/filterable_examples.rb +8 -8
- data/lib/decidim/admin/test/filters_participatory_space_user_roles_examples.rb +12 -43
- data/lib/decidim/admin/test/filters_participatory_space_users_examples.rb +34 -43
- data/lib/decidim/admin/test/forms/attachment_collection_form_examples.rb +1 -1
- data/lib/decidim/admin/test/forms/attachment_form_examples.rb +1 -1
- data/lib/decidim/admin/test/forms/category_form_examples.rb +1 -1
- data/lib/decidim/admin/test/manage_attachment_collections_examples.rb +21 -22
- data/lib/decidim/admin/test/manage_attachments_examples.rb +12 -12
- data/lib/decidim/admin/test/manage_categories_examples.rb +16 -19
- data/lib/decidim/admin/test/manage_component_permissions_examples.rb +24 -24
- data/lib/decidim/admin/test/manage_hide_content_examples.rb +59 -0
- data/lib/decidim/admin/test/manage_moderations_examples.rb +39 -21
- data/lib/decidim/admin/test/manage_paginated_collection_examples.rb +2 -2
- data/lib/decidim/admin/test/manage_participatory_space_publications_examples.rb +54 -0
- data/lib/decidim/admin/test/needs_admin_tos_accepted_examples.rb +1 -1
- data/lib/decidim/admin/test.rb +4 -0
- data/lib/decidim/admin/version.rb +1 -1
- data/lib/decidim/admin.rb +2 -0
- metadata +92 -117
- data/app/commands/decidim/admin/create_participatory_space_admin_user_actions.rb +0 -94
- data/app/commands/decidim/admin/reorder_content_blocks.rb +0 -100
- data/app/commands/decidim/admin/update_content_block.rb +0 -79
- data/app/controllers/concerns/decidim/admin/landing_page.rb +0 -105
- data/app/controllers/concerns/decidim/admin/landing_page_content_blocks.rb +0 -118
- data/app/packs/images/decidim/admin/.keep +0 -0
- data/app/packs/stylesheets/decidim/admin/_decidim.scss +0 -23
- data/app/packs/stylesheets/decidim/admin/_variables.scss +0 -18
- data/app/packs/stylesheets/decidim/admin/bundle.scss +0 -2
- data/app/packs/stylesheets/decidim/admin/components/_accordion.scss +0 -41
- data/app/packs/stylesheets/decidim/admin/components/_dropdown-menu.scss +0 -3
- data/app/packs/stylesheets/decidim/admin/components/_sortable.scss +0 -5
- data/app/packs/stylesheets/decidim/admin/extra/_action-icon.scss +0 -32
- data/app/packs/stylesheets/decidim/admin/extra/_block_user.scss +0 -5
- data/app/packs/stylesheets/decidim/admin/extra/_cards.scss +0 -24
- data/app/packs/stylesheets/decidim/admin/extra/_categories.scss +0 -5
- data/app/packs/stylesheets/decidim/admin/extra/_dropdown_inverted.scss +0 -47
- data/app/packs/stylesheets/decidim/admin/extra/_editor.scss +0 -1
- data/app/packs/stylesheets/decidim/admin/extra/_email_preview.scss +0 -5
- data/app/packs/stylesheets/decidim/admin/extra/_label-required.scss +0 -3
- data/app/packs/stylesheets/decidim/admin/extra/_login.scss +0 -37
- data/app/packs/stylesheets/decidim/admin/extra/_logs.scss +0 -122
- data/app/packs/stylesheets/decidim/admin/extra/_newsletter-templates-gallery.scss +0 -3
- data/app/packs/stylesheets/decidim/admin/extra/_organization-appearance.scss +0 -141
- data/app/packs/stylesheets/decidim/admin/extra/_quill.scss +0 -12
- data/app/packs/stylesheets/decidim/admin/extra/_select_multiple.scss +0 -3
- data/app/packs/stylesheets/decidim/admin/extra/_show_email.scss +0 -31
- data/app/packs/stylesheets/decidim/admin/extra/_sort.scss +0 -13
- data/app/packs/stylesheets/decidim/admin/extra/_title_bar.scss +0 -80
- data/app/packs/stylesheets/decidim/admin/modules/_action-icon.scss +0 -30
- data/app/packs/stylesheets/decidim/admin/modules/_agenda.scss +0 -34
- data/app/packs/stylesheets/decidim/admin/modules/_autocomplete.scss +0 -5
- data/app/packs/stylesheets/decidim/admin/modules/_buttons.scss +0 -86
- data/app/packs/stylesheets/decidim/admin/modules/_callouts.scss +0 -45
- data/app/packs/stylesheets/decidim/admin/modules/_card-grid.scss +0 -25
- data/app/packs/stylesheets/decidim/admin/modules/_cards.scss +0 -126
- data/app/packs/stylesheets/decidim/admin/modules/_char-counter.scss +0 -22
- data/app/packs/stylesheets/decidim/admin/modules/_component-counter.scss +0 -26
- data/app/packs/stylesheets/decidim/admin/modules/_draggable-list.scss +0 -27
- data/app/packs/stylesheets/decidim/admin/modules/_dropdown.scss +0 -20
- data/app/packs/stylesheets/decidim/admin/modules/_filters.scss +0 -83
- data/app/packs/stylesheets/decidim/admin/modules/_forms.scss +0 -164
- data/app/packs/stylesheets/decidim/admin/modules/_icons.scss +0 -68
- data/app/packs/stylesheets/decidim/admin/modules/_layout.scss +0 -75
- data/app/packs/stylesheets/decidim/admin/modules/_loading-spinner.scss +0 -19
- data/app/packs/stylesheets/decidim/admin/modules/_main-nav.scss +0 -45
- data/app/packs/stylesheets/decidim/admin/modules/_moderations.scss +0 -39
- data/app/packs/stylesheets/decidim/admin/modules/_modules.scss +0 -44
- data/app/packs/stylesheets/decidim/admin/modules/_pics.scss +0 -5
- data/app/packs/stylesheets/decidim/admin/modules/_process-header.scss +0 -13
- data/app/packs/stylesheets/decidim/admin/modules/_reveal.scss +0 -5
- data/app/packs/stylesheets/decidim/admin/modules/_secondary-nav.scss +0 -114
- data/app/packs/stylesheets/decidim/admin/modules/_table-list.scss +0 -146
- data/app/packs/stylesheets/decidim/admin/modules/_tabs.scss +0 -63
- data/app/packs/stylesheets/decidim/admin/modules/_title-bar.scss +0 -35
- data/app/packs/stylesheets/decidim/admin/modules/_typography.scss +0 -27
- data/app/packs/stylesheets/decidim/admin/modules/_upload_modal.scss +0 -42
- data/app/packs/stylesheets/decidim/admin/modules/_user-login.scss +0 -25
- data/app/packs/stylesheets/decidim/admin/modules/_users_statistics.scss +0 -18
- data/app/packs/stylesheets/decidim/admin/plugins/_foundation-datepicker.scss +0 -224
- data/app/packs/stylesheets/decidim/admin/plugins/jquery.auto-complete.css +0 -9
- data/app/packs/stylesheets/decidim/admin/user_moderations.scss +0 -3
- data/app/packs/stylesheets/decidim/admin/utils/_flex.scss +0 -60
- data/app/packs/stylesheets/decidim/admin/utils/_helpers.scss +0 -53
- data/app/packs/stylesheets/decidim/admin/utils/_keyframes.scss +0 -21
- data/app/packs/stylesheets/decidim/admin/utils/_mixins.scss +0 -151
- data/app/packs/stylesheets/decidim/admin/utils/_settings.scss +0 -882
- data/app/packs/stylesheets/decidim/admin/utils/_toggle-expand.scss +0 -9
- data/app/packs/stylesheets/decidim/admin/vendor/mathsass/_constants.scss +0 -5
- data/app/packs/stylesheets/decidim/admin/vendor/mathsass/_math.scss +0 -45
- data/app/packs/stylesheets/decidim/admin/vendor/mathsass/functions/_acos.scss +0 -14
- data/app/packs/stylesheets/decidim/admin/vendor/mathsass/functions/_asin.scss +0 -16
- data/app/packs/stylesheets/decidim/admin/vendor/mathsass/functions/_atan.scss +0 -36
- data/app/packs/stylesheets/decidim/admin/vendor/mathsass/functions/_atan2.scss +0 -46
- data/app/packs/stylesheets/decidim/admin/vendor/mathsass/functions/_cos.scss +0 -17
- data/app/packs/stylesheets/decidim/admin/vendor/mathsass/functions/_cot.scss +0 -12
- data/app/packs/stylesheets/decidim/admin/vendor/mathsass/functions/_csc.scss +0 -12
- data/app/packs/stylesheets/decidim/admin/vendor/mathsass/functions/_exp.scss +0 -16
- data/app/packs/stylesheets/decidim/admin/vendor/mathsass/functions/_fact.scss +0 -21
- data/app/packs/stylesheets/decidim/admin/vendor/mathsass/functions/_frexp.scss +0 -25
- data/app/packs/stylesheets/decidim/admin/vendor/mathsass/functions/_ldexp.scss +0 -20
- data/app/packs/stylesheets/decidim/admin/vendor/mathsass/functions/_log.scss +0 -39
- data/app/packs/stylesheets/decidim/admin/vendor/mathsass/functions/_pow.scss +0 -34
- data/app/packs/stylesheets/decidim/admin/vendor/mathsass/functions/_sec.scss +0 -12
- data/app/packs/stylesheets/decidim/admin/vendor/mathsass/functions/_sin.scss +0 -10
- data/app/packs/stylesheets/decidim/admin/vendor/mathsass/functions/_sqrt.scss +0 -21
- data/app/packs/stylesheets/decidim/admin/vendor/mathsass/functions/_tan.scss +0 -12
- data/app/packs/stylesheets/decidim/admin/vendor/mathsass/helpers/_deg-to-rad.scss +0 -6
- data/app/packs/stylesheets/decidim/admin/vendor/mathsass/helpers/_rad-to-deg.scss +0 -6
- data/app/packs/stylesheets/decidim/admin/vendor/mathsass/helpers/_strip-unit.scss +0 -11
- data/app/packs/stylesheets/decidim/admin/vendor/mathsass/helpers/_unitless-rad.scss +0 -19
- data/app/views/decidim/admin/attachment_collections/show.html.erb +0 -13
- data/app/views/decidim/admin/attachments/show.html.erb +0 -24
- data/app/views/decidim/admin/categories/show.html.erb +0 -12
- data/app/views/decidim/admin/organization_homepage/edit.html.erb +0 -43
- data/app/views/decidim/admin/organization_homepage_content_blocks/edit.html.erb +0 -13
- data/app/views/decidim/admin/static_pages/show.html.erb +0 -21
- data/app/views/layouts/decidim/admin/_template_bottom.html.erb +0 -2
- data/app/views/layouts/decidim/admin/_template_top.html.erb +0 -4
- data/app/views/layouts/decidim/admin/pages.html.erb +0 -15
- data/config/locales/he-IL.yml +0 -53
- data/decidim-admin.gemspec +0 -36
@@ -8,7 +8,7 @@ module Decidim
|
|
8
8
|
# Public: Initializes the command.
|
9
9
|
#
|
10
10
|
# organization - The Organization that will be updated.
|
11
|
-
# page - A static_page instance (slug = "terms-
|
11
|
+
# page - A static_page instance (slug = "terms-of-service").
|
12
12
|
# form - A form object with the params.
|
13
13
|
def initialize(organization, page, form)
|
14
14
|
@organization = organization
|
@@ -19,13 +19,13 @@ module Decidim
|
|
19
19
|
# Executes the command. Broadcasts these events:
|
20
20
|
#
|
21
21
|
# - :ok when everything is valid.
|
22
|
-
# - :invalid if the form
|
22
|
+
# - :invalid if the form was not valid or not the TOS page.
|
23
23
|
#
|
24
24
|
# Returns nothing.
|
25
25
|
def call
|
26
26
|
return broadcast(:invalid) if @form.nil?
|
27
27
|
return broadcast(:invalid) if @page.nil?
|
28
|
-
return broadcast(:invalid) unless @page.slug == "terms-
|
28
|
+
return broadcast(:invalid) unless @page.slug == "terms-of-service"
|
29
29
|
|
30
30
|
update_organization_tos_version
|
31
31
|
broadcast(:ok)
|
@@ -16,7 +16,7 @@ module Decidim
|
|
16
16
|
# Executes the command. Broadcasts these events:
|
17
17
|
#
|
18
18
|
# - :ok when everything is valid.
|
19
|
-
# - :invalid if the form
|
19
|
+
# - :invalid if the form was not valid and we could not proceed.
|
20
20
|
#
|
21
21
|
# Returns nothing.
|
22
22
|
def call
|
@@ -17,7 +17,7 @@ module Decidim
|
|
17
17
|
# Executes the command. Broadcasts these events:
|
18
18
|
#
|
19
19
|
# - :ok when everything is valid.
|
20
|
-
# - :invalid if the form
|
20
|
+
# - :invalid if the form was not valid and we could not proceed.
|
21
21
|
#
|
22
22
|
# Returns nothing.
|
23
23
|
def call
|
@@ -16,7 +16,7 @@ module Decidim
|
|
16
16
|
# Executes the command. Broadcasts these events:
|
17
17
|
#
|
18
18
|
# - :ok when everything is valid.
|
19
|
-
# - :invalid if the form
|
19
|
+
# - :invalid if the form was not valid and we could not proceed.
|
20
20
|
#
|
21
21
|
# Returns nothing.
|
22
22
|
def call
|
@@ -16,7 +16,7 @@ module Decidim
|
|
16
16
|
# Executes the command. Broadcasts these events:
|
17
17
|
#
|
18
18
|
# - :ok when everything is valid.
|
19
|
-
# - :invalid if the form
|
19
|
+
# - :invalid if the form was not valid and we could not proceed.
|
20
20
|
#
|
21
21
|
# Returns nothing.
|
22
22
|
def call
|
@@ -16,7 +16,7 @@ module Decidim
|
|
16
16
|
# Executes the command. Broadcasts these events:
|
17
17
|
#
|
18
18
|
# - :ok when everything is valid.
|
19
|
-
# - :invalid if the form
|
19
|
+
# - :invalid if the form was not valid and we could not proceed.
|
20
20
|
#
|
21
21
|
# Returns nothing.
|
22
22
|
def call
|
@@ -0,0 +1,130 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Decidim
|
4
|
+
module Admin
|
5
|
+
module ContentBlocks
|
6
|
+
module LandingPage
|
7
|
+
extend ActiveSupport::Concern
|
8
|
+
included do
|
9
|
+
helper_method :active_blocks, :active_content_blocks_title, :add_content_block_text, :available_manifests,
|
10
|
+
:content_block_destroy_confirmation_text, :content_blocks_title, :inactive_blocks,
|
11
|
+
:inactive_content_blocks_title, :resource_content_block_cell, :resource_create_url,
|
12
|
+
:resource_sort_url
|
13
|
+
def edit
|
14
|
+
enforce_permission_to_update_resource
|
15
|
+
|
16
|
+
render "decidim/admin/shared/landing_page/edit"
|
17
|
+
end
|
18
|
+
|
19
|
+
def update
|
20
|
+
enforce_permission_to_update_resource
|
21
|
+
|
22
|
+
ReorderContentBlocks.call(current_organization, content_block_scope, params[:ids_order], scoped_resource&.id) do
|
23
|
+
on(:ok) do
|
24
|
+
head :ok
|
25
|
+
end
|
26
|
+
on(:invalid) do
|
27
|
+
head :bad_request
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
# Method that specifies the i18n scope for this controller. This can be overwritten in your controller.
|
33
|
+
# so that you can pass a different scope to the i18n methods.
|
34
|
+
def i18n_scope = "decidim.admin.content_blocks"
|
35
|
+
|
36
|
+
# Method to be implemented at the controller. Returns a string
|
37
|
+
# with the text for the title of content blocks
|
38
|
+
#
|
39
|
+
# i18n-tasks-use t('decidim.admin.content_blocks.edit.title')
|
40
|
+
# Example: t("edit.title", scope: "decidim.admin.content_blocks")
|
41
|
+
def content_blocks_title = t("edit.title", scope: i18n_scope)
|
42
|
+
|
43
|
+
# Method to be implemented at the controller. Returns a string
|
44
|
+
# with the text for the title of content blocks
|
45
|
+
#
|
46
|
+
# i18n-tasks-use t('decidim.admin.content_blocks.edit.add')
|
47
|
+
# Example: t("edit.add", scope: "decidim.admin.content_blocks")
|
48
|
+
def add_content_block_text = t("edit.add", scope: i18n_scope)
|
49
|
+
|
50
|
+
# Method to be implemented at the controller. Returns a string
|
51
|
+
# with the text for the title of content blocks
|
52
|
+
#
|
53
|
+
# i18n-tasks-use t('decidim.admin.content_blocks.edit.destroy_confirmation')
|
54
|
+
# Example: t("edit.destroy_confirmation", scope: "decidim.admin.content_blocks")
|
55
|
+
def content_block_destroy_confirmation_text = t("edit.destroy_confirmation", scope: i18n_scope)
|
56
|
+
|
57
|
+
# Method to be implemented at the controller. Returns a string
|
58
|
+
# with the header text for the active content_block column.
|
59
|
+
#
|
60
|
+
# i18n-tasks-use t('decidim.admin.content_blocks.edit.active_content_blocks')
|
61
|
+
# Example: t("edit.active_content_blocks", scope: "decidim.admin.content_blocks")
|
62
|
+
def active_content_blocks_title = t("edit.active_content_blocks", scope: i18n_scope)
|
63
|
+
|
64
|
+
# Method to be implemented at the controller. Returns a string
|
65
|
+
# with the header text for the inactive content_block column.
|
66
|
+
#
|
67
|
+
# i18n-tasks-use t('decidim.admin.content_blocks.edit.inactive_content_blocks')
|
68
|
+
# Example: t("edit.inactive_content_blocks", scope: "decidim.admin.content_blocks")
|
69
|
+
def inactive_content_blocks_title = t("edit.inactive_content_blocks", scope: i18n_scope)
|
70
|
+
|
71
|
+
private
|
72
|
+
|
73
|
+
# Method to be implemented at the controller. You need to
|
74
|
+
# return a symbol that defines the content block scope.
|
75
|
+
# Examples of scopes could be `:homepage` or `:landing_page`.
|
76
|
+
def content_block_scope
|
77
|
+
raise "#{self.class.name} is expected to implement #content_block_scope"
|
78
|
+
end
|
79
|
+
|
80
|
+
# Method to be implemented at the controller. Defines the permissions for
|
81
|
+
# edit and update actions.
|
82
|
+
# For example `enforce_permission_to :manage_landing_page, :voting, voting: current_space`.
|
83
|
+
def enforce_permission_to_update_resource
|
84
|
+
raise "#{self.class.name} is expected to implement #enforce_permission_to_update_resource"
|
85
|
+
end
|
86
|
+
|
87
|
+
# Method to be implemented at the controller. Returns the URL
|
88
|
+
# where the ordered/activated content_blocks is submitted to.
|
89
|
+
def resource_sort_url
|
90
|
+
raise "#{self.class.name} is expected to implement #resource_sort_url"
|
91
|
+
end
|
92
|
+
|
93
|
+
# Method to be implemented at the controller. Returns the URL
|
94
|
+
# where the new content_blocks is submitted to.
|
95
|
+
def resource_create_url
|
96
|
+
raise "#{self.class.name} is expected to implement #resource_create_url"
|
97
|
+
end
|
98
|
+
|
99
|
+
# Method to be implemented at the controller. Returns a string
|
100
|
+
# with the cell name to be used for the drag'n'drop for each content_block.
|
101
|
+
#
|
102
|
+
# Example: "decidim/votings/content_block"
|
103
|
+
def resource_content_block_cell
|
104
|
+
raise "#{self.class.name} is expected to implement #resource_content_block_cell"
|
105
|
+
end
|
106
|
+
|
107
|
+
# Shared methods
|
108
|
+
def content_blocks
|
109
|
+
@content_blocks ||= Decidim::ContentBlock.for_scope(
|
110
|
+
content_block_scope,
|
111
|
+
organization: current_organization
|
112
|
+
).where(scoped_resource_id: scoped_resource&.id, manifest_name: available_manifests.map(&:name))
|
113
|
+
end
|
114
|
+
|
115
|
+
def active_blocks
|
116
|
+
@active_blocks ||= content_blocks.published
|
117
|
+
end
|
118
|
+
|
119
|
+
def inactive_blocks
|
120
|
+
@inactive_blocks ||= content_blocks.unpublished
|
121
|
+
end
|
122
|
+
|
123
|
+
def available_manifests
|
124
|
+
@available_manifests ||= Decidim.content_blocks.for(content_block_scope)
|
125
|
+
end
|
126
|
+
end
|
127
|
+
end
|
128
|
+
end
|
129
|
+
end
|
130
|
+
end
|
@@ -0,0 +1,158 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Decidim
|
4
|
+
module Admin
|
5
|
+
module ContentBlocks
|
6
|
+
module LandingPageContentBlocks
|
7
|
+
extend ActiveSupport::Concern
|
8
|
+
included do
|
9
|
+
helper_method :content_block, :resource_landing_page_content_block_path, :scoped_resource, :submit_button_text
|
10
|
+
|
11
|
+
def create
|
12
|
+
enforce_permission_to_update_resource
|
13
|
+
|
14
|
+
CreateContentBlock.call(current_organization, content_block_scope, params[:manifest_name], scoped_resource&.id) do
|
15
|
+
on(:ok) do
|
16
|
+
flash[:success] = content_block_create_success_text
|
17
|
+
end
|
18
|
+
on(:invalid) do
|
19
|
+
flash[:error] = content_block_create_error_text
|
20
|
+
end
|
21
|
+
|
22
|
+
redirect_to edit_resource_landing_page_path
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
def destroy
|
27
|
+
enforce_permission_to_update_resource
|
28
|
+
|
29
|
+
DestroyContentBlock.call(content_block) do
|
30
|
+
on(:ok) do
|
31
|
+
flash[:success] = content_block_destroy_success_text
|
32
|
+
end
|
33
|
+
on(:invalid) do
|
34
|
+
flash[:error] = content_block_destroy_error_text
|
35
|
+
end
|
36
|
+
|
37
|
+
redirect_to edit_resource_landing_page_path
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
def edit
|
42
|
+
enforce_permission_to_update_resource
|
43
|
+
@form = form(ContentBlockForm).from_model(content_block)
|
44
|
+
|
45
|
+
render "decidim/admin/shared/landing_page_content_blocks/edit"
|
46
|
+
end
|
47
|
+
|
48
|
+
def update
|
49
|
+
enforce_permission_to_update_resource
|
50
|
+
|
51
|
+
@form = form(ContentBlockForm).from_params(params)
|
52
|
+
|
53
|
+
UpdateContentBlock.call(@form, content_block, content_block_scope) do
|
54
|
+
on(:ok) do
|
55
|
+
redirect_to edit_resource_landing_page_path
|
56
|
+
end
|
57
|
+
on(:invalid) do
|
58
|
+
render "decidim/admin/shared/landing_page_content_blocks/edit"
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
private
|
64
|
+
|
65
|
+
# Method to be implemented at the controller. You need to
|
66
|
+
# return a symbol that defines the content block scope.
|
67
|
+
# Examples of scopes could be `:homepage` or `:voting_landing_page`.
|
68
|
+
def content_block_scope
|
69
|
+
raise "#{self.class.name} is expected to implement #content_block_scope"
|
70
|
+
end
|
71
|
+
|
72
|
+
# Method to be implemented at the controller. You need to
|
73
|
+
# return an Object to filter the content blocks for the given resource.
|
74
|
+
#
|
75
|
+
# For example a `Voting` record.
|
76
|
+
def scoped_resource
|
77
|
+
raise "#{self.class.name} is expected to implement #scoped_resource"
|
78
|
+
end
|
79
|
+
|
80
|
+
# Method to be implemented at the controller. Defines the permissions for
|
81
|
+
# create, destroy, edit and update actions.
|
82
|
+
#
|
83
|
+
# Example: `enforce_permission_to :manage_landing_page, :voting, voting: current_space`.
|
84
|
+
def enforce_permission_to_update_resource
|
85
|
+
raise "#{self.class.name} is expected to implement #enforce_permission_to_update_resource"
|
86
|
+
end
|
87
|
+
|
88
|
+
# Method to be implemented at the controller. Returns the URL
|
89
|
+
# to the edit landing page path.
|
90
|
+
#
|
91
|
+
# Example: `edit_voting_landing_page_path(scoped_resource)`
|
92
|
+
def edit_resource_landing_page_path
|
93
|
+
raise "#{self.class.name} is expected to implement #edit_resource_landing_page_path"
|
94
|
+
end
|
95
|
+
|
96
|
+
# Method to be implemented at the controller. Returns the URL
|
97
|
+
# where the ContentBlockForm is submitted.
|
98
|
+
#
|
99
|
+
# Example: `voting_landing_page_content_block_path(scoped_resource, params[:id])`
|
100
|
+
def resource_landing_page_content_block_path
|
101
|
+
raise "#{self.class.name} is expected to implement #resource_landing_page_content_block_path"
|
102
|
+
end
|
103
|
+
|
104
|
+
# Method that specifies the i18n scope for this controller. This can be overwritten in your controller.
|
105
|
+
# so that you can pass a different scope to the i18n methods.
|
106
|
+
def i18n_scope = "decidim.admin.content_blocks"
|
107
|
+
|
108
|
+
# Method to be implemented at the controller. Returns a string
|
109
|
+
# with the text for the submit button of the ContentBlockForm.
|
110
|
+
#
|
111
|
+
# i18n-tasks-use t('decidim.admin.content_blocks.edit.update')
|
112
|
+
# Example: t("edit.update", scope: "decidim.admin.content_blocks")
|
113
|
+
def submit_button_text = t("edit.update", scope: i18n_scope)
|
114
|
+
|
115
|
+
# Method to be implemented at the controller. Returns a string
|
116
|
+
# with the success text after creating a content block.
|
117
|
+
#
|
118
|
+
# i18n-tasks-use t('decidim.admin.content_blocks.create.success')
|
119
|
+
# Example: t("create.success", scope: "decidim.admin.content_blocks")
|
120
|
+
def content_block_create_success_text = t("create.success", scope: i18n_scope)
|
121
|
+
|
122
|
+
# Method to be implemented at the controller. Returns a string
|
123
|
+
# with the success text after creating a content block.
|
124
|
+
#
|
125
|
+
# i18n-tasks-use t('decidim.admin.content_blocks.create.error')
|
126
|
+
# Example: t("create.error", scope: "decidim.admin.content_blocks")
|
127
|
+
def content_block_create_error_text = t("create.error", scope: i18n_scope)
|
128
|
+
|
129
|
+
# Method to be implemented at the controller. Returns a string
|
130
|
+
# with the success text after destroying a content block.
|
131
|
+
#
|
132
|
+
# i18n-tasks-use t('decidim.admin.content_blocks.destroy.success')
|
133
|
+
# Example: t("destroy.success", scope: "decidim.admin.content_blocks")
|
134
|
+
def content_block_destroy_success_text = t("destroy.success", scope: i18n_scope)
|
135
|
+
|
136
|
+
# Method to be implemented at the controller. Returns a string
|
137
|
+
# with the success text after destroying a content block.
|
138
|
+
#
|
139
|
+
# i18n-tasks-use t('decidim.admin.content_blocks.destroy.error')
|
140
|
+
# Example: t("destroy.error", scope: "decidim.admin.content_blocks")
|
141
|
+
def content_block_destroy_error_text = t("destroy.error", scope: i18n_scope)
|
142
|
+
|
143
|
+
# Shared methods
|
144
|
+
def content_block
|
145
|
+
@content_block ||= content_blocks.find(params[:id])
|
146
|
+
end
|
147
|
+
|
148
|
+
def content_blocks
|
149
|
+
@content_blocks ||= Decidim::ContentBlock.for_scope(
|
150
|
+
content_block_scope,
|
151
|
+
organization: current_organization
|
152
|
+
).where(scoped_resource_id: scoped_resource&.id)
|
153
|
+
end
|
154
|
+
end
|
155
|
+
end
|
156
|
+
end
|
157
|
+
end
|
158
|
+
end
|
@@ -103,7 +103,7 @@ module Decidim
|
|
103
103
|
# Hash values are used to build nested dropdown submenus with many levels.
|
104
104
|
# By default, uses the Symbols in `filters` as keys and injects an Array
|
105
105
|
# with true and false as values. If these values fit your filtering needs,
|
106
|
-
# you
|
106
|
+
# you will not have to declare a `filters_with_values` method in your concern.
|
107
107
|
def filters_with_values
|
108
108
|
filters.index_with { [true, false] }
|
109
109
|
end
|
@@ -138,11 +138,11 @@ module Decidim
|
|
138
138
|
end
|
139
139
|
|
140
140
|
def translated_scope_id_eq(id)
|
141
|
-
translated_attribute(scopes.find_by(id:
|
141
|
+
translated_attribute(scopes.find_by(id:).name)
|
142
142
|
end
|
143
143
|
|
144
144
|
def translated_category_id_eq(id)
|
145
|
-
translated_attribute(categories.find_by(id:
|
145
|
+
translated_attribute(categories.find_by(id:).name)
|
146
146
|
end
|
147
147
|
end
|
148
148
|
end
|
@@ -14,32 +14,13 @@ module Decidim
|
|
14
14
|
:global_moderation
|
15
15
|
end
|
16
16
|
|
17
|
-
# Private: Finds the participatory spaces the current user is admin to.
|
18
|
-
# This method will later be used to find out what moderations the
|
19
|
-
# current user can manage.
|
20
|
-
#
|
21
|
-
# Returns an Array.
|
22
|
-
def spaces_user_is_admin_to
|
23
|
-
@spaces_user_is_admin_to ||=
|
24
|
-
Decidim.participatory_space_manifests.flat_map do |manifest|
|
25
|
-
Decidim
|
26
|
-
.find_participatory_space_manifest(manifest.name)
|
27
|
-
.participatory_spaces
|
28
|
-
.call(current_organization)&.select do |space|
|
29
|
-
space.moderators.exists?(id: current_user.id) ||
|
30
|
-
space.admins.exists?(id: current_user.id)
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
35
17
|
# Private: finds the moderations the current user can manage, taking into
|
36
18
|
# account whether the user is an organization-wide admin or a
|
37
19
|
# "participatory space admin".
|
38
20
|
#
|
39
21
|
# Returns an `ActiveRecord::Relation`
|
40
22
|
def moderations_for_user
|
41
|
-
@moderations_for_user ||=
|
42
|
-
Decidim::Moderation.where(participatory_space: spaces_user_is_admin_to)
|
23
|
+
@moderations_for_user ||= Decidim::Admin::ModerationStats.new(current_user).content_moderations
|
43
24
|
end
|
44
25
|
end
|
45
26
|
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "active_support/concern"
|
4
|
+
|
5
|
+
module Decidim
|
6
|
+
module Admin
|
7
|
+
module Logs
|
8
|
+
module Filterable
|
9
|
+
extend ActiveSupport::Concern
|
10
|
+
|
11
|
+
included do
|
12
|
+
include Decidim::Admin::Filterable
|
13
|
+
|
14
|
+
private
|
15
|
+
|
16
|
+
def base_query
|
17
|
+
collection
|
18
|
+
end
|
19
|
+
|
20
|
+
def search_field_predicate
|
21
|
+
:user_name_or_user_nickname_or_user_email_cont
|
22
|
+
end
|
23
|
+
|
24
|
+
def filters
|
25
|
+
[]
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Decidim
|
4
|
+
module Admin
|
5
|
+
# This module contains all the logic needed to render breadcrumb items in
|
6
|
+
# the context of participatory spaces
|
7
|
+
module ParticipatorySpaceAdminBreadcrumb
|
8
|
+
extend ActiveSupport::Concern
|
9
|
+
|
10
|
+
included do
|
11
|
+
include Decidim::TranslatableAttributes
|
12
|
+
|
13
|
+
helper_method :context_breadcrumb_items
|
14
|
+
end
|
15
|
+
|
16
|
+
private
|
17
|
+
|
18
|
+
def context_breadcrumb_items
|
19
|
+
@context_breadcrumb_items ||= [current_participatory_space_breadcrumb_item].flatten.compact_blank
|
20
|
+
end
|
21
|
+
|
22
|
+
def current_participatory_space_path
|
23
|
+
Decidim::ResourceLocatorPresenter.new(current_participatory_space).edit
|
24
|
+
end
|
25
|
+
|
26
|
+
def current_participatory_space_breadcrumb_item
|
27
|
+
return {} if current_participatory_space.blank?
|
28
|
+
|
29
|
+
{
|
30
|
+
label: translated_attribute(current_participatory_space.title),
|
31
|
+
url: current_participatory_space_path,
|
32
|
+
active: true,
|
33
|
+
resource: current_participatory_space
|
34
|
+
}
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
@@ -24,6 +24,7 @@ module Decidim
|
|
24
24
|
|
25
25
|
included do
|
26
26
|
include Decidim::NeedsOrganization
|
27
|
+
include Decidim::Admin::ParticipatorySpaceAdminBreadcrumb
|
27
28
|
helper ParticipatorySpaceHelpers
|
28
29
|
|
29
30
|
helper_method :current_participatory_space
|
@@ -44,12 +45,12 @@ module Decidim
|
|
44
45
|
end
|
45
46
|
|
46
47
|
def authorize_participatory_space
|
47
|
-
enforce_permission_to :read, :participatory_space, current_participatory_space:
|
48
|
+
enforce_permission_to :read, :participatory_space, current_participatory_space:
|
48
49
|
end
|
49
50
|
|
50
51
|
def permissions_context
|
51
52
|
super.merge(
|
52
|
-
current_participatory_space:
|
53
|
+
current_participatory_space:
|
53
54
|
)
|
54
55
|
end
|
55
56
|
|
@@ -3,15 +3,15 @@
|
|
3
3
|
module Decidim
|
4
4
|
module Admin
|
5
5
|
# The controller to handle the Admin
|
6
|
-
# Terms of
|
6
|
+
# Terms of service agreement.
|
7
7
|
class AdminTermsController < Decidim::Admin::ApplicationController
|
8
8
|
def accept
|
9
9
|
current_user.admin_terms_accepted_at = Time.current
|
10
10
|
if current_user.save!
|
11
|
-
flash[:notice] = t("accept.success", scope: "decidim.admin.
|
11
|
+
flash[:notice] = t("accept.success", scope: "decidim.admin.admin_terms_of_service")
|
12
12
|
redirect_to stored_location_for(current_user) || decidim_admin.root_path
|
13
13
|
else
|
14
|
-
flash[:alert] = t("accept.error", scope: "decidim.admin.
|
14
|
+
flash[:alert] = t("accept.error", scope: "decidim.admin.admin_terms_of_service")
|
15
15
|
redirect_to decidim_admin.admin_terms_show_path
|
16
16
|
end
|
17
17
|
end
|
@@ -13,13 +13,16 @@ module Decidim
|
|
13
13
|
include LocaleSwitcher
|
14
14
|
include UseOrganizationTimeZone
|
15
15
|
include PayloadInfo
|
16
|
-
include HttpCachingDisabler
|
16
|
+
include Headers::HttpCachingDisabler
|
17
|
+
include Headers::ContentSecurityPolicy
|
17
18
|
include DisableRedirectionToExternalHost
|
19
|
+
include Decidim::Admin::Concerns::HasBreadcrumbItems
|
18
20
|
|
19
21
|
helper Decidim::Admin::ApplicationHelper
|
20
22
|
helper Decidim::Admin::AttributesDisplayHelper
|
21
23
|
helper Decidim::Admin::SettingsHelper
|
22
24
|
helper Decidim::Admin::IconLinkHelper
|
25
|
+
helper Decidim::Admin::IconWithTooltipHelper
|
23
26
|
helper Decidim::Admin::MenuHelper
|
24
27
|
helper Decidim::Admin::ScopesHelper
|
25
28
|
helper Decidim::Admin::Paginable::PerPageHelper
|
@@ -30,7 +33,8 @@ module Decidim
|
|
30
33
|
helper Decidim::LanguageChooserHelper
|
31
34
|
helper Decidim::ComponentPathHelper
|
32
35
|
helper Decidim::SanitizeHelper
|
33
|
-
helper Decidim::
|
36
|
+
helper Decidim::BreadcrumbHelper
|
37
|
+
helper Decidim::Templates::Admin::ApplicationHelper if Decidim.module_installed?(:templates)
|
34
38
|
|
35
39
|
default_form_builder Decidim::Admin::FormBuilder
|
36
40
|
|
@@ -5,7 +5,12 @@ module Decidim
|
|
5
5
|
# Controller that allows managing areatypes to group areas
|
6
6
|
|
7
7
|
class AreaTypesController < Decidim::Admin::ApplicationController
|
8
|
+
include Decidim::Admin::Concerns::HasTabbedMenu
|
9
|
+
|
8
10
|
layout "decidim/admin/settings"
|
11
|
+
|
12
|
+
add_breadcrumb_item_from_menu :admin_settings_menu
|
13
|
+
|
9
14
|
helper_method :area_types
|
10
15
|
|
11
16
|
def index
|
@@ -35,12 +40,12 @@ module Decidim
|
|
35
40
|
end
|
36
41
|
|
37
42
|
def edit
|
38
|
-
enforce_permission_to
|
43
|
+
enforce_permission_to(:update, :area_type, area_type:)
|
39
44
|
@form = form(AreaTypeForm).from_model(area_type)
|
40
45
|
end
|
41
46
|
|
42
47
|
def update
|
43
|
-
enforce_permission_to
|
48
|
+
enforce_permission_to(:update, :area_type, area_type:)
|
44
49
|
@form = form(AreaTypeForm).from_params(params)
|
45
50
|
|
46
51
|
UpdateAreaType.call(area_type, @form, current_user) do
|
@@ -57,7 +62,7 @@ module Decidim
|
|
57
62
|
end
|
58
63
|
|
59
64
|
def destroy
|
60
|
-
enforce_permission_to
|
65
|
+
enforce_permission_to(:destroy, :area_type, area_type:)
|
61
66
|
|
62
67
|
Decidim.traceability.perform_action!("delete", area_type, current_user) do
|
63
68
|
area_type.destroy!
|
@@ -70,6 +75,8 @@ module Decidim
|
|
70
75
|
|
71
76
|
private
|
72
77
|
|
78
|
+
def tab_menu_name = :admin_areas_menu
|
79
|
+
|
73
80
|
def area_type
|
74
81
|
@area_type ||= area_types.find(params[:id])
|
75
82
|
end
|
@@ -5,7 +5,12 @@ module Decidim
|
|
5
5
|
# Controller that allows managing all areas at the admin panel.
|
6
6
|
#
|
7
7
|
class AreasController < Decidim::Admin::ApplicationController
|
8
|
+
include Decidim::Admin::Concerns::HasTabbedMenu
|
9
|
+
|
8
10
|
layout "decidim/admin/settings"
|
11
|
+
|
12
|
+
add_breadcrumb_item_from_menu :admin_settings_menu
|
13
|
+
|
9
14
|
helper_method :area, :organization_areas
|
10
15
|
|
11
16
|
def index
|
@@ -35,12 +40,12 @@ module Decidim
|
|
35
40
|
end
|
36
41
|
|
37
42
|
def edit
|
38
|
-
enforce_permission_to
|
43
|
+
enforce_permission_to(:update, :area, area:)
|
39
44
|
@form = form(AreaForm).from_model(area)
|
40
45
|
end
|
41
46
|
|
42
47
|
def update
|
43
|
-
enforce_permission_to
|
48
|
+
enforce_permission_to(:update, :area, area:)
|
44
49
|
@form = form(AreaForm).from_params(params)
|
45
50
|
|
46
51
|
UpdateArea.call(area, @form) do
|
@@ -57,7 +62,7 @@ module Decidim
|
|
57
62
|
end
|
58
63
|
|
59
64
|
def destroy
|
60
|
-
enforce_permission_to
|
65
|
+
enforce_permission_to(:destroy, :area, area:)
|
61
66
|
|
62
67
|
DestroyArea.call(area, current_user) do
|
63
68
|
on(:ok) do
|
@@ -73,6 +78,8 @@ module Decidim
|
|
73
78
|
|
74
79
|
private
|
75
80
|
|
81
|
+
def tab_menu_name = :admin_areas_menu
|
82
|
+
|
76
83
|
def organization_areas
|
77
84
|
current_organization.areas
|
78
85
|
end
|