decidim-admin 0.27.10 → 0.28.0.rc4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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 +121 -89
- 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 +124 -92
- 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 +115 -83
- 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 +86 -85
- 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 +99 -192
- 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
|