decidim-admin 0.30.1 → 0.31.0.rc1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/app/commands/decidim/admin/update_organization.rb +18 -3
- data/app/controllers/concerns/decidim/admin/content_blocks/landing_page_content_blocks.rb +1 -1
- data/app/controllers/concerns/decidim/admin/filterable.rb +1 -1
- data/app/controllers/decidim/admin/area_types_controller.rb +2 -2
- data/app/controllers/decidim/admin/areas_controller.rb +2 -2
- data/app/controllers/decidim/admin/block_user_controller.rb +2 -2
- data/app/controllers/decidim/admin/component_permissions_controller.rb +1 -1
- data/app/controllers/decidim/admin/components_controller.rb +2 -2
- data/app/controllers/decidim/admin/concerns/has_attachment_collections.rb +2 -2
- data/app/controllers/decidim/admin/concerns/has_attachments.rb +2 -2
- data/app/controllers/decidim/admin/concerns/has_private_users.rb +3 -3
- data/app/controllers/decidim/admin/concerns/has_private_users_csv_import.rb +1 -1
- data/app/controllers/decidim/admin/conflicts_controller.rb +1 -1
- data/app/controllers/decidim/admin/dashboard_controller.rb +0 -9
- data/app/controllers/decidim/admin/impersonations_controller.rb +1 -1
- data/app/controllers/decidim/admin/imports_controller.rb +1 -1
- data/app/controllers/decidim/admin/managed_users/promotions_controller.rb +1 -1
- data/app/controllers/decidim/admin/newsletters_controller.rb +4 -4
- data/app/controllers/decidim/admin/organization_appearance_controller.rb +1 -3
- data/app/controllers/decidim/admin/organization_controller.rb +3 -5
- data/app/controllers/decidim/admin/organization_external_domain_allowlist_controller.rb +1 -1
- data/app/controllers/decidim/admin/organization_homepage_controller.rb +4 -0
- data/app/controllers/decidim/admin/participatory_space/user_role_controller.rb +2 -2
- 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 +2 -2
- data/app/controllers/decidim/admin/scopes_controller.rb +2 -2
- data/app/controllers/decidim/admin/share_tokens_controller.rb +8 -8
- data/app/controllers/decidim/admin/static_page_topics_controller.rb +2 -2
- data/app/controllers/decidim/admin/static_pages_controller.rb +2 -2
- data/app/controllers/decidim/admin/statistics_controller.rb +34 -0
- data/app/controllers/decidim/admin/taxonomies_controller.rb +2 -2
- data/app/controllers/decidim/admin/taxonomy_filters_controller.rb +2 -2
- data/app/controllers/decidim/admin/taxonomy_items_controller.rb +2 -2
- data/app/controllers/decidim/admin/users_controller.rb +1 -1
- data/app/forms/decidim/admin/block_user_form.rb +1 -1
- data/app/forms/decidim/admin/block_users_form.rb +1 -1
- data/app/forms/decidim/admin/organization_form.rb +35 -6
- data/app/helpers/decidim/admin/filterable_helper.rb +27 -8
- data/app/helpers/decidim/admin/icon_link_helper.rb +2 -3
- data/app/helpers/decidim/admin/icon_with_tooltip_helper.rb +1 -2
- data/app/helpers/decidim/admin/imports_helper.rb +0 -5
- data/app/helpers/decidim/admin/menu_helper.rb +3 -2
- data/app/helpers/decidim/admin/moderations/reports_helper.rb +1 -1
- data/app/helpers/decidim/admin/resource_permissions_helper.rb +13 -13
- data/app/helpers/decidim/admin/settings_helper.rb +11 -3
- data/app/jobs/decidim/admin/newsletter_job.rb +1 -0
- data/app/packs/entrypoints/decidim_admin.js +2 -3
- data/app/packs/entrypoints/decidim_admin.scss +1 -1
- data/app/packs/entrypoints/decidim_admin_overrides.scss +1 -1
- data/app/packs/src/decidim/admin/admin_autocomplete.js +2 -2
- data/app/packs/src/decidim/admin/application.js +11 -10
- data/app/packs/src/decidim/admin/budget_rule_toggler.component.js +84 -34
- data/app/packs/src/decidim/admin/controllers/slug/controller.js +25 -0
- data/app/packs/src/decidim/admin/controllers/slug/slug.test.js +239 -0
- data/app/packs/src/decidim/admin/css_preview.js +1 -1
- data/app/packs/src/decidim/admin/draggable-list.js +1 -1
- data/app/packs/src/decidim/admin/draggable-table.js +1 -1
- data/app/packs/src/decidim/admin/dynamic_fields.component.js +13 -12
- data/app/packs/src/decidim/admin/external_domain_allowlist.js +1 -1
- data/app/packs/src/decidim/admin/form.js +21 -4
- data/app/packs/src/decidim/admin/global_moderations.js +2 -2
- data/app/packs/src/decidim/admin/managed_moderated_users.js +2 -2
- data/app/packs/src/decidim/admin/moderations.js +1 -1
- data/app/packs/src/decidim/admin/newsletters.js +1 -1
- data/app/packs/src/decidim/admin/officializations.js +1 -1
- data/app/packs/src/decidim/admin/participatory_space_search.js +2 -2
- data/app/packs/src/decidim/admin/proposal_infinite_edit.js +1 -1
- data/app/packs/src/decidim/admin/resources_permissions.js +1 -1
- data/app/packs/src/decidim/admin/sortable.js +1 -1
- data/app/packs/src/decidim/admin/sync_radio_buttons.js +1 -1
- data/app/packs/src/decidim/admin/tab_focus.js +1 -1
- data/app/packs/src/decidim/admin/text_copy.js +1 -1
- data/app/packs/src/decidim/admin/triadic_color_picker.js +1 -1
- data/app/packs/stylesheets/decidim/admin/_datepicker.scss +2 -2
- data/app/packs/stylesheets/decidim/admin/_dropdown.scss +12 -2
- data/app/packs/stylesheets/decidim/admin/_filters.scss +1 -57
- data/app/packs/stylesheets/decidim/admin/_forms.scss +1 -10
- data/app/packs/stylesheets/decidim/admin/_item_edit.scss +2 -10
- data/app/packs/stylesheets/decidim/admin/_item_show.scss +1 -5
- data/app/packs/stylesheets/decidim/admin/_legacy_foundation.scss +0 -412
- data/app/packs/stylesheets/decidim/admin/_main-nav.scss +75 -3
- data/app/packs/stylesheets/decidim/admin/_secondary-nav.scss +6 -10
- data/app/packs/stylesheets/decidim/admin/_select_picker.scss +1 -1
- data/app/packs/stylesheets/decidim/admin/_sidebar-menu.scss +2 -2
- data/app/packs/stylesheets/decidim/admin/_table-list.scss +25 -7
- data/app/packs/stylesheets/decidim/admin/_tabs.scss +4 -0
- data/app/packs/stylesheets/decidim/admin/_taxonomies.scss +6 -2
- data/app/packs/stylesheets/decidim/admin/application.scss +28 -29
- data/app/permissions/decidim/admin/permissions.rb +17 -5
- data/app/presenters/decidim/admin/dashboard_statistic_charts_presenter.rb +18 -0
- data/app/queries/decidim/admin/user_filter.rb +3 -3
- data/app/views/decidim/admin/area_types/index.html.erb +34 -11
- data/app/views/decidim/admin/areas/index.html.erb +32 -12
- data/app/views/decidim/admin/attachment_collections/index.html.erb +42 -14
- data/app/views/decidim/admin/attachments/index.html.erb +32 -13
- data/app/views/decidim/admin/block_user/bulk_new.html.erb +1 -1
- data/app/views/decidim/admin/block_user/new.html.erb +1 -1
- data/app/views/decidim/admin/components/_actions.html.erb +114 -54
- data/app/views/decidim/admin/components/_component_row.html.erb +5 -5
- data/app/views/decidim/admin/components/_components_table.html.erb +1 -1
- data/app/views/decidim/admin/components/_form.html.erb +4 -4
- data/app/views/decidim/admin/components/index.html.erb +12 -13
- data/app/views/decidim/admin/dashboard/show.html.erb +9 -21
- data/app/views/decidim/admin/exports/_dropdown.html.erb +16 -14
- data/app/views/decidim/admin/help_sections/_form.html.erb +1 -1
- data/app/views/decidim/admin/impersonatable_users/index.html.erb +68 -33
- data/app/views/decidim/admin/imports/_dropdown.html.erb +13 -11
- data/app/views/decidim/admin/imports/new.html.erb +13 -12
- data/app/views/decidim/admin/moderated_users/bulk_actions/_dropdown.html.erb +29 -32
- data/app/views/decidim/admin/moderated_users/index.html.erb +61 -21
- data/app/views/decidim/admin/moderations/_moderation-tr.html.erb +87 -32
- data/app/views/decidim/admin/moderations/_report.html.erb +2 -4
- data/app/views/decidim/admin/moderations/bulk_actions/_dropdown.html.erb +30 -34
- data/app/views/decidim/admin/moderations/index.html.erb +1 -1
- data/app/views/decidim/admin/moderations/reports/index.html.erb +1 -2
- data/app/views/decidim/admin/newsletters/index.html.erb +64 -21
- data/app/views/decidim/admin/officializations/index.html.erb +91 -32
- data/app/views/decidim/admin/organization/_form.html.erb +6 -92
- data/app/views/decidim/admin/organization/edit.html.erb +1 -5
- data/app/views/decidim/admin/organization/form/_admin_terms_of_service.html.erb +15 -0
- data/app/views/decidim/admin/organization/form/_basic_configuration.html.erb +31 -0
- data/app/views/decidim/admin/{organization_appearance → organization}/form/_colors.html.erb +9 -9
- data/app/views/decidim/admin/organization/form/_extra_features.html.erb +84 -0
- data/app/views/decidim/admin/{organization_appearance/form/_images.html.erb → organization/form/_logos.html.erb} +4 -4
- data/app/views/decidim/admin/organization/form/_welcome_notification.html.erb +25 -0
- data/app/views/decidim/admin/organization_external_domain_allowlist/_external_domain.html.erb +8 -6
- data/app/views/decidim/admin/participatory_space_private_users/index.html.erb +49 -22
- data/app/views/decidim/admin/resource_permissions/edit.html.erb +1 -1
- data/app/views/decidim/admin/scope_types/index.html.erb +31 -12
- data/app/views/decidim/admin/scopes/index.html.erb +40 -13
- data/app/views/decidim/admin/share_tokens/_form.html.erb +1 -1
- data/app/views/decidim/admin/share_tokens/edit.html.erb +1 -1
- data/app/views/decidim/admin/share_tokens/index.html.erb +69 -12
- data/app/views/decidim/admin/share_tokens/new.html.erb +1 -1
- data/app/views/decidim/admin/shared/_filters.html.erb +8 -10
- data/app/views/decidim/admin/shared/landing_page/_content_blocks.html.erb +14 -11
- data/app/views/decidim/admin/shared/landing_page_content_blocks/edit.html.erb +2 -4
- data/app/views/decidim/admin/static_page_topics/index.html.erb +31 -10
- data/app/views/decidim/admin/static_pages/_form.html.erb +1 -1
- data/app/views/decidim/admin/static_pages/_topic.html.erb +46 -16
- data/app/views/decidim/admin/statistics/_statistics.html.erb +13 -0
- data/app/views/decidim/admin/statistics/index.html.erb +6 -0
- data/app/views/decidim/admin/taxonomies/_form.html.erb +1 -1
- data/app/views/decidim/admin/taxonomies/_row.html.erb +24 -6
- data/app/views/decidim/admin/taxonomies/_table.html.erb +2 -2
- data/app/views/decidim/admin/taxonomies/_taxonomy_actions.html.erb +48 -15
- data/app/views/decidim/admin/taxonomies/edit.html.erb +10 -0
- data/app/views/decidim/admin/taxonomy_filters/_form.html.erb +1 -1
- data/app/views/decidim/admin/taxonomy_filters/_table.html.erb +52 -15
- data/app/views/decidim/admin/taxonomy_filters/new.html.erb +1 -1
- data/app/views/decidim/admin/taxonomy_filters_selector/_component_table.html.erb +38 -23
- data/app/views/decidim/admin/taxonomy_items/_form.html.erb +1 -1
- data/app/views/decidim/admin/users/index.html.erb +48 -24
- data/app/views/layouts/decidim/admin/_application.html.erb +3 -6
- data/app/views/layouts/decidim/admin/_header.html.erb +3 -1
- data/app/views/layouts/decidim/admin/_js_configuration.html.erb +11 -12
- data/app/views/layouts/decidim/admin/_sidebar_menu.html.erb +1 -1
- data/app/views/layouts/decidim/admin/_title_bar.html.erb +4 -4
- data/app/views/layouts/decidim/admin/_title_bar_responsive.html.erb +4 -4
- data/app/views/layouts/decidim/admin/insights.html.erb +6 -0
- data/config/assets.rb +2 -2
- data/config/locales/ar.yml +2 -86
- data/config/locales/bg.yml +4 -105
- data/config/locales/bs-BA.yml +0 -44
- data/config/locales/ca-IT.yml +59 -117
- data/config/locales/ca.yml +59 -117
- data/config/locales/cs.yml +51 -119
- data/config/locales/de.yml +63 -121
- data/config/locales/el.yml +5 -97
- data/config/locales/en.yml +61 -119
- data/config/locales/eo.yml +0 -4
- data/config/locales/es-MX.yml +60 -118
- data/config/locales/es-PY.yml +60 -118
- data/config/locales/es.yml +60 -118
- data/config/locales/eu.yml +65 -123
- data/config/locales/fi-plain.yml +62 -109
- data/config/locales/fi.yml +62 -109
- data/config/locales/fr-CA.yml +69 -120
- data/config/locales/fr.yml +69 -120
- data/config/locales/ga-IE.yml +4 -28
- data/config/locales/gl.yml +3 -89
- data/config/locales/he-IL.yml +0 -8
- data/config/locales/hu.yml +5 -100
- data/config/locales/id-ID.yml +0 -58
- data/config/locales/is-IS.yml +1 -36
- data/config/locales/it.yml +202 -96
- data/config/locales/ja.yml +61 -110
- data/config/locales/kaa.yml +0 -12
- data/config/locales/ko.yml +0 -76
- data/config/locales/lb.yml +5 -89
- data/config/locales/lt.yml +4 -99
- data/config/locales/lv.yml +2 -70
- data/config/locales/nl.yml +5 -90
- data/config/locales/no.yml +5 -89
- data/config/locales/pl.yml +5 -103
- data/config/locales/pt-BR.yml +130 -105
- data/config/locales/pt.yml +2 -90
- data/config/locales/ro-RO.yml +13 -97
- data/config/locales/ru.yml +2 -50
- data/config/locales/sk.yml +2 -68
- data/config/locales/sl.yml +1 -18
- data/config/locales/sq-AL.yml +0 -43
- data/config/locales/sr-CS.yml +1 -44
- data/config/locales/sv.yml +59 -120
- data/config/locales/th-TH.yml +0 -5
- data/config/locales/tr-TR.yml +6 -83
- data/config/locales/uk.yml +1 -45
- data/config/locales/val-ES.yml +0 -1
- data/config/locales/zh-CN.yml +0 -68
- data/config/locales/zh-TW.yml +4 -97
- data/config/routes.rb +1 -12
- data/lib/decidim/admin/engine.rb +5 -1
- data/lib/decidim/admin/form_builder.rb +1 -1
- data/lib/decidim/admin/menu.rb +32 -16
- data/lib/decidim/admin/test/filterable_examples.rb +8 -18
- data/lib/decidim/admin/test/invite_participatory_space_admins_shared_examples.rb +4 -4
- data/lib/decidim/admin/test/invite_participatory_space_collaborators_shared_examples.rb +2 -2
- data/lib/decidim/admin/test/invite_participatory_space_moderators_shared_examples.rb +9 -6
- data/lib/decidim/admin/test/invite_participatory_space_users_shared_context.rb +1 -0
- data/lib/decidim/admin/test/manage_attachment_collections_examples.rb +5 -1
- data/lib/decidim/admin/test/manage_attachments_examples.rb +5 -1
- data/lib/decidim/admin/test/manage_component_permissions_examples.rb +31 -4
- data/lib/decidim/admin/test/manage_moderations_examples.rb +12 -5
- data/lib/decidim/admin/test/manage_participatory_space_publications_examples.rb +12 -6
- data/lib/decidim/admin/test/manage_resource_soft_deletion_examples.rb +19 -4
- data/lib/decidim/admin/test/manage_taxonomy_filters_examples.rb +28 -8
- data/lib/decidim/admin/version.rb +1 -1
- metadata +22 -35
- data/app/commands/decidim/admin/process_user_group_verification_csv.rb +0 -44
- data/app/commands/decidim/admin/reject_user_group.rb +0 -42
- data/app/commands/decidim/admin/update_organization_appearance.rb +0 -39
- data/app/commands/decidim/admin/update_user_groups.rb +0 -44
- data/app/commands/decidim/admin/verify_user_group.rb +0 -43
- data/app/controllers/concerns/decidim/admin/user_groups/filterable.rb +0 -45
- data/app/controllers/concerns/decidim/admin/user_groups.rb +0 -24
- data/app/controllers/decidim/admin/metrics_controller.rb +0 -23
- data/app/controllers/decidim/admin/user_groups_controller.rb +0 -76
- data/app/controllers/decidim/admin/user_groups_csv_verifications_controller.rb +0 -36
- data/app/forms/decidim/admin/organization_appearance_form.rb +0 -88
- data/app/forms/decidim/admin/user_group_csv_verification_form.rb +0 -25
- data/app/jobs/decidim/admin/verify_user_group_from_csv_job.rb +0 -30
- data/app/packs/src/decidim/admin/welcome_notification.js +0 -32
- data/app/packs/stylesheets/decidim/admin/_bulk_actions.scss +0 -16
- data/app/presenters/decidim/admin/dashboard_metric_charts_presenter.rb +0 -33
- data/app/queries/decidim/admin/user_groups_evaluation.rb +0 -56
- data/app/views/decidim/admin/metrics/_metrics.html.erb +0 -16
- data/app/views/decidim/admin/metrics/index.html.erb +0 -7
- data/app/views/decidim/admin/organization_appearance/_form.html.erb +0 -100
- data/app/views/decidim/admin/organization_appearance/edit.html.erb +0 -18
- data/app/views/decidim/admin/organization_appearance/form/_header_snippets.html.erb +0 -17
- data/app/views/decidim/admin/user_groups/index.html.erb +0 -68
- data/app/views/decidim/admin/user_groups_csv_verifications/new.html.erb +0 -31
- /data/app/views/decidim/admin/{organization_appearance → organization}/form/_minimap.html.erb +0 -0
data/lib/decidim/admin/menu.rb
CHANGED
@@ -74,6 +74,17 @@ module Decidim
|
|
74
74
|
end
|
75
75
|
end
|
76
76
|
|
77
|
+
def self.register_admin_insights_menu!
|
78
|
+
Decidim.menu :admin_insights_menu do |menu|
|
79
|
+
menu.add_item :statistics,
|
80
|
+
I18n.t("menu.statistics", scope: "decidim.admin"),
|
81
|
+
decidim_admin.statistics_path,
|
82
|
+
icon_name: "bar-chart-box-line",
|
83
|
+
position: 1,
|
84
|
+
active: is_active_link?(decidim_admin.statistics_path)
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
77
88
|
def self.register_admin_user_menu!
|
78
89
|
Decidim.menu :admin_user_menu do |menu|
|
79
90
|
menu.add_item :users,
|
@@ -81,11 +92,6 @@ module Decidim
|
|
81
92
|
icon_name: "user-line",
|
82
93
|
active: is_active_link?(decidim_admin.users_path),
|
83
94
|
if: allowed_to?(:read, :admin_user)
|
84
|
-
menu.add_item :user_groups,
|
85
|
-
I18n.t("menu.user_groups", scope: "decidim.admin"), decidim_admin.user_groups_path,
|
86
|
-
icon_name: "group-line",
|
87
|
-
active: is_active_link?(decidim_admin.user_groups_path),
|
88
|
-
if: current_organization.user_groups_enabled? && allowed_to?(:index, :user_group)
|
89
95
|
menu.add_item :officializations,
|
90
96
|
I18n.t("menu.participants", scope: "decidim.admin"), decidim_admin.officializations_path,
|
91
97
|
icon_name: "service-line",
|
@@ -149,19 +155,16 @@ module Decidim
|
|
149
155
|
icon_name: "pencil-line",
|
150
156
|
if: allowed_to?(:update, :organization, organization: current_organization)
|
151
157
|
|
152
|
-
menu.add_item :edit_organization_appearance,
|
153
|
-
I18n.t("menu.appearance", scope: "decidim.admin"),
|
154
|
-
decidim_admin.edit_organization_appearance_path,
|
155
|
-
position: 1.1,
|
156
|
-
icon_name: "tools-line",
|
157
|
-
if: allowed_to?(:update, :organization, organization: current_organization)
|
158
|
-
|
159
158
|
menu.add_item :edit_organization_homepage,
|
160
159
|
I18n.t("menu.homepage", scope: "decidim.admin"),
|
161
160
|
decidim_admin.edit_organization_homepage_path,
|
162
161
|
position: 1.2,
|
163
|
-
icon_name: "
|
164
|
-
if: allowed_to?(:update, :organization, organization: current_organization)
|
162
|
+
icon_name: "layout-masonry-line",
|
163
|
+
if: allowed_to?(:update, :organization, organization: current_organization),
|
164
|
+
active: [%w(
|
165
|
+
decidim/admin/organization_homepage
|
166
|
+
decidim/admin/organization_homepage_content_blocks
|
167
|
+
), []]
|
165
168
|
|
166
169
|
menu.add_item :taxonomies,
|
167
170
|
I18n.t("menu.taxonomies", scope: "decidim.admin"),
|
@@ -237,8 +240,6 @@ module Decidim
|
|
237
240
|
position: 5,
|
238
241
|
active: [%w(
|
239
242
|
decidim/admin/users
|
240
|
-
decidim/admin/user_groups
|
241
|
-
decidim/admin/user_groups_csv_verifications
|
242
243
|
decidim/admin/officializations
|
243
244
|
decidim/admin/impersonatable_users
|
244
245
|
decidim/admin/conflicts
|
@@ -291,6 +292,21 @@ module Decidim
|
|
291
292
|
position: 10,
|
292
293
|
active: [%w(decidim/admin/logs), []],
|
293
294
|
if: allowed_to?(:read, :admin_log)
|
295
|
+
menu.add_item :insights,
|
296
|
+
I18n.t("menu.insights", scope: "decidim.admin"),
|
297
|
+
decidim_admin.statistics_path,
|
298
|
+
icon_name: "line-chart",
|
299
|
+
position: 11,
|
300
|
+
if: allowed_to?(:read, :statistics),
|
301
|
+
active: [
|
302
|
+
%w(
|
303
|
+
decidim/admin/statistics
|
304
|
+
decidim/demographics/admin/settings
|
305
|
+
decidim/demographics/admin/questions
|
306
|
+
decidim/demographics/admin/responses
|
307
|
+
decidim/demographics/admin/publish_responses
|
308
|
+
), []
|
309
|
+
]
|
294
310
|
end
|
295
311
|
end
|
296
312
|
end
|
@@ -9,9 +9,9 @@ shared_context "with filterable context" do
|
|
9
9
|
|
10
10
|
def apply_filter(options, filter)
|
11
11
|
within(".filters__section") do
|
12
|
-
find_link("Filter").
|
13
|
-
find_link(options).
|
14
|
-
within ".
|
12
|
+
find_link("Filter").click
|
13
|
+
find_link(options).click
|
14
|
+
within ".dropdown .dropdown__right[aria-hidden='false']" do
|
15
15
|
click_on(filter)
|
16
16
|
end
|
17
17
|
end
|
@@ -19,11 +19,11 @@ shared_context "with filterable context" do
|
|
19
19
|
|
20
20
|
def apply_sub_filter(option1, option2, filter)
|
21
21
|
within(".filters__section") do
|
22
|
-
find_link("Filter").
|
23
|
-
find_link(option1).
|
24
|
-
within ".
|
25
|
-
find_link(option2).
|
26
|
-
within ".
|
22
|
+
find_link("Filter").click
|
23
|
+
find_link(option1).click
|
24
|
+
within ".dropdown .dropdown__right[aria-hidden='false']" do
|
25
|
+
find_link(option2).click
|
26
|
+
within ".dropdown .dropdown__right[aria-hidden='false']" do
|
27
27
|
click_on(filter)
|
28
28
|
end
|
29
29
|
end
|
@@ -202,14 +202,4 @@ shared_examples "a collection filtered by taxonomies" do
|
|
202
202
|
let(:in_filter) { resource_with_taxonomy21_title }
|
203
203
|
let(:not_in_filter) { [resource_with_taxonomy11_title, resource_with_taxonomy12_title, resource_with_taxonomy22_title] }
|
204
204
|
end
|
205
|
-
|
206
|
-
it_behaves_like "a filtered collection", options: "Taxonomy", filter: "Root1" do
|
207
|
-
let(:in_filter) { [resource_with_taxonomy11_title, resource_with_taxonomy12_title] }
|
208
|
-
let(:not_in_filter) { [resource_with_taxonomy21_title, resource_with_taxonomy22_title] }
|
209
|
-
end
|
210
|
-
|
211
|
-
it_behaves_like "a filtered collection", options: "Taxonomy", filter: "Root2" do
|
212
|
-
let(:in_filter) { [resource_with_taxonomy21_title, resource_with_taxonomy22_title] }
|
213
|
-
let(:not_in_filter) { [resource_with_taxonomy11_title, resource_with_taxonomy12_title] }
|
214
|
-
end
|
215
205
|
end
|
@@ -60,7 +60,7 @@ shared_examples "inviting participatory space admins" do |check_private_space: t
|
|
60
60
|
|
61
61
|
click_on space_sidebar_label
|
62
62
|
|
63
|
-
within "
|
63
|
+
within ".table-list" do
|
64
64
|
expect(page).to have_i18n_content(participatory_space.title)
|
65
65
|
within "tr", text: translated(participatory_space.title) do
|
66
66
|
click_on translated(participatory_space.title)
|
@@ -89,7 +89,7 @@ shared_examples "inviting participatory space admins" do |check_private_space: t
|
|
89
89
|
|
90
90
|
click_on space_sidebar_label
|
91
91
|
|
92
|
-
within "
|
92
|
+
within ".table-list" do
|
93
93
|
expect(page).to have_i18n_content(participatory_space.title)
|
94
94
|
within "tr", text: translated(participatory_space.title) do
|
95
95
|
click_on translated(participatory_space.title)
|
@@ -129,7 +129,7 @@ shared_examples "inviting participatory space admins" do |check_private_space: t
|
|
129
129
|
|
130
130
|
click_on space_sidebar_label
|
131
131
|
|
132
|
-
within "
|
132
|
+
within ".table-list" do
|
133
133
|
expect(page).to have_i18n_content(participatory_space.title)
|
134
134
|
expect(page).to have_i18n_content(participatory_space.title)
|
135
135
|
within "tr", text: translated(participatory_space.title) do
|
@@ -153,7 +153,7 @@ shared_examples "inviting participatory space admins" do |check_private_space: t
|
|
153
153
|
|
154
154
|
click_on space_sidebar_label
|
155
155
|
|
156
|
-
within "
|
156
|
+
within ".table-list" do
|
157
157
|
expect(page).to have_i18n_content(participatory_space.title)
|
158
158
|
expect(page).to have_i18n_content(participatory_space.title)
|
159
159
|
within "tr", text: translated(participatory_space.title) do
|
@@ -29,7 +29,7 @@ shared_examples "inviting participatory space collaborators" do
|
|
29
29
|
|
30
30
|
click_on space_sidebar_label
|
31
31
|
|
32
|
-
within "
|
32
|
+
within ".table-list" do
|
33
33
|
expect(page).to have_i18n_content(participatory_space.title)
|
34
34
|
end
|
35
35
|
end
|
@@ -53,7 +53,7 @@ shared_examples "inviting participatory space collaborators" do
|
|
53
53
|
|
54
54
|
click_on space_sidebar_label
|
55
55
|
|
56
|
-
within "
|
56
|
+
within ".table-list" do
|
57
57
|
expect(page).to have_i18n_content(participatory_space.title)
|
58
58
|
end
|
59
59
|
end
|
@@ -27,9 +27,11 @@ shared_examples "inviting participatory space moderators" do
|
|
27
27
|
|
28
28
|
click_on space_sidebar_label
|
29
29
|
|
30
|
-
within "
|
31
|
-
|
32
|
-
|
30
|
+
within ".table-list" do
|
31
|
+
within("tr", text: translated(participatory_space.title)) do
|
32
|
+
find("button[data-controller='dropdown']").click
|
33
|
+
click_on "Manage moderations"
|
34
|
+
end
|
33
35
|
end
|
34
36
|
|
35
37
|
within "div.process-title-content-breadcrumb-container-left" do
|
@@ -56,10 +58,11 @@ shared_examples "inviting participatory space moderators" do
|
|
56
58
|
|
57
59
|
click_on space_sidebar_label
|
58
60
|
|
59
|
-
within "
|
61
|
+
within ".table-list" do
|
60
62
|
expect(page).to have_i18n_content(participatory_space.title)
|
61
|
-
within
|
62
|
-
|
63
|
+
within("tr", text: translated(participatory_space.title)) do
|
64
|
+
find("button[data-controller='dropdown']").click
|
65
|
+
click_on "Manage moderations"
|
63
66
|
end
|
64
67
|
end
|
65
68
|
|
@@ -16,6 +16,7 @@ shared_examples "manage attachment collections examples" do
|
|
16
16
|
|
17
17
|
it "can view an attachment collection details" do
|
18
18
|
within "#attachment_collections table" do
|
19
|
+
find("button[data-controller='dropdown']").click
|
19
20
|
click_on "Edit"
|
20
21
|
end
|
21
22
|
|
@@ -56,6 +57,7 @@ shared_examples "manage attachment collections examples" do
|
|
56
57
|
it "can update an attachment collection" do
|
57
58
|
within "#attachment_collections" do
|
58
59
|
within "tr", text: translated(attachment_collection.name) do
|
60
|
+
find("button[data-controller='dropdown']").click
|
59
61
|
click_on "Edit"
|
60
62
|
end
|
61
63
|
end
|
@@ -90,6 +92,7 @@ shared_examples "manage attachment collections examples" do
|
|
90
92
|
|
91
93
|
it "can delete the attachment collection" do
|
92
94
|
within "tr", text: translated(attachment_collection2.name) do
|
95
|
+
find("button[data-controller='dropdown']").click
|
93
96
|
accept_confirm { click_on "Delete" }
|
94
97
|
end
|
95
98
|
|
@@ -110,7 +113,8 @@ shared_examples "manage attachment collections examples" do
|
|
110
113
|
|
111
114
|
it "cannot delete it" do
|
112
115
|
within "tr", text: translated(attachment_collection.name) do
|
113
|
-
|
116
|
+
find("button[data-controller='dropdown']").click
|
117
|
+
expect(page).to have_no_css(".button", text: "Delete")
|
114
118
|
end
|
115
119
|
end
|
116
120
|
end
|
@@ -18,7 +18,8 @@ shared_examples "manage attachments examples" do
|
|
18
18
|
end
|
19
19
|
|
20
20
|
it "can view an attachment details" do
|
21
|
-
within "
|
21
|
+
within "tr", text: translated(attachment.title) do
|
22
|
+
find("button[data-controller='dropdown']").click
|
22
23
|
click_on "Edit"
|
23
24
|
end
|
24
25
|
|
@@ -152,6 +153,7 @@ shared_examples "manage attachments examples" do
|
|
152
153
|
within "#attachments" do
|
153
154
|
within "tr", text: translated(attachment.title) do
|
154
155
|
expect(page).to have_text(translated(attachment_collection.name, locale: :en))
|
156
|
+
find("button[data-controller='dropdown']").click
|
155
157
|
click_on "Edit"
|
156
158
|
end
|
157
159
|
end
|
@@ -171,6 +173,7 @@ shared_examples "manage attachments examples" do
|
|
171
173
|
|
172
174
|
it "can delete an attachment from a process" do
|
173
175
|
within "tr", text: translated(attachment.title) do
|
176
|
+
find("button[data-controller='dropdown']").click
|
174
177
|
accept_confirm { click_on "Delete" }
|
175
178
|
end
|
176
179
|
|
@@ -182,6 +185,7 @@ shared_examples "manage attachments examples" do
|
|
182
185
|
it "can update an attachment" do
|
183
186
|
within "#attachments" do
|
184
187
|
within "tr", text: translated(attachment.title) do
|
188
|
+
find("button[data-controller='dropdown']").click
|
185
189
|
click_on "Edit"
|
186
190
|
end
|
187
191
|
end
|
@@ -2,6 +2,29 @@
|
|
2
2
|
|
3
3
|
require "spec_helper"
|
4
4
|
|
5
|
+
shared_examples "access permissions form" do
|
6
|
+
it "can view the permissions" do
|
7
|
+
within "tr", text: row_text do
|
8
|
+
find("button[data-controller='dropdown']").click
|
9
|
+
click_on "Manage permissions"
|
10
|
+
end
|
11
|
+
expect(page).to have_content("Edit permissions")
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
shared_examples "access component permissions form" do
|
16
|
+
let(:participatory_space_engine) { Decidim::EngineRouter.admin_proxy(participatory_space) }
|
17
|
+
before do
|
18
|
+
switch_to_host(organization.host)
|
19
|
+
login_as user, scope: :user
|
20
|
+
visit participatory_space_engine.components_path(participatory_space)
|
21
|
+
end
|
22
|
+
|
23
|
+
include_examples "access permissions form" do
|
24
|
+
let!(:row_text) { translated(component.name) }
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
5
28
|
shared_examples "Managing component permissions" do
|
6
29
|
let(:organization) do
|
7
30
|
create(
|
@@ -23,7 +46,8 @@ shared_examples "Managing component permissions" do
|
|
23
46
|
context "when setting permissions" do
|
24
47
|
before do
|
25
48
|
within ".component-#{component.id}" do
|
26
|
-
|
49
|
+
find("button[data-controller='dropdown']").click
|
50
|
+
click_on "Manage permissions"
|
27
51
|
end
|
28
52
|
end
|
29
53
|
|
@@ -54,7 +78,8 @@ shared_examples "Managing component permissions" do
|
|
54
78
|
before do
|
55
79
|
allow_any_instance_of(Decidim::Admin::PermissionsForm).to receive(:valid?).and_return(false)
|
56
80
|
within ".component-#{component.id}" do
|
57
|
-
|
81
|
+
find("button[data-controller='dropdown']").click
|
82
|
+
click_on "Manage permissions"
|
58
83
|
end
|
59
84
|
within "#components form" do
|
60
85
|
within ".foo-permission" do
|
@@ -85,7 +110,8 @@ shared_examples "Managing component permissions" do
|
|
85
110
|
)
|
86
111
|
|
87
112
|
within ".component-#{component.id}" do
|
88
|
-
|
113
|
+
find("button[data-controller='dropdown']").click
|
114
|
+
click_on "Manage permissions"
|
89
115
|
end
|
90
116
|
end
|
91
117
|
|
@@ -120,7 +146,8 @@ shared_examples "Managing component permissions" do
|
|
120
146
|
)
|
121
147
|
|
122
148
|
within ".component-#{component.id}" do
|
123
|
-
|
149
|
+
find("button[data-controller='dropdown']").click
|
150
|
+
click_on "Manage permissions"
|
124
151
|
end
|
125
152
|
end
|
126
153
|
|
@@ -82,7 +82,8 @@ shared_examples "manage moderations" do
|
|
82
82
|
|
83
83
|
it "user can un-report a resource" do
|
84
84
|
within "tr[data-id=\"#{moderation.id}\"]" do
|
85
|
-
|
85
|
+
find("button[data-controller='dropdown']").click
|
86
|
+
click_on "Undo the report"
|
86
87
|
end
|
87
88
|
|
88
89
|
expect(page).to have_admin_callout("Resource successfully unreported")
|
@@ -90,6 +91,7 @@ shared_examples "manage moderations" do
|
|
90
91
|
|
91
92
|
it "user can hide a resource" do
|
92
93
|
within "tr[data-id=\"#{moderation.id}\"]" do
|
94
|
+
find("button[data-controller='dropdown']").click
|
93
95
|
click_on "Hide"
|
94
96
|
end
|
95
97
|
|
@@ -114,8 +116,8 @@ shared_examples "manage moderations" do
|
|
114
116
|
it "user can filter by reportable type" do
|
115
117
|
reportable_type = moderation.reportable.class.name.demodulize
|
116
118
|
within ".filters__section" do
|
117
|
-
|
118
|
-
|
119
|
+
click_on "Filter"
|
120
|
+
click_on "Type"
|
119
121
|
click_on reportable_type
|
120
122
|
end
|
121
123
|
expect(page).to have_css("tbody tr", count: moderations.length)
|
@@ -124,7 +126,7 @@ shared_examples "manage moderations" do
|
|
124
126
|
it "user can filter by reported content" do
|
125
127
|
search = moderation.reportable.id
|
126
128
|
within ".filters__section" do
|
127
|
-
fill_in("Search
|
129
|
+
fill_in("Search moderation by reportable id or content", with: search)
|
128
130
|
within(".input-group-button") { click_on(class: "text-secondary") }
|
129
131
|
end
|
130
132
|
expect(page).to have_css("tbody tr", count: 1)
|
@@ -132,6 +134,7 @@ shared_examples "manage moderations" do
|
|
132
134
|
|
133
135
|
it "user can see moderation details" do
|
134
136
|
within "tr[data-id=\"#{moderation.id}\"]" do
|
137
|
+
find("button[data-controller='dropdown']").click
|
135
138
|
click_on "Expand"
|
136
139
|
end
|
137
140
|
|
@@ -188,7 +191,10 @@ shared_examples "manage moderations" do
|
|
188
191
|
end
|
189
192
|
|
190
193
|
it "user cannot unreport them" do
|
191
|
-
|
194
|
+
within "tr[data-id=\"#{hidden_moderations.first.id}\"]" do
|
195
|
+
find("button[data-controller='dropdown']").click
|
196
|
+
expect(page).to have_no_css("a", text: "Undo the report")
|
197
|
+
end
|
192
198
|
end
|
193
199
|
|
194
200
|
it "user can review them" do
|
@@ -231,6 +237,7 @@ shared_examples "manage moderations" do
|
|
231
237
|
it "user can hide them" do
|
232
238
|
moderation_id = moderations.first.id
|
233
239
|
within "tr[data-id=\"#{moderation_id}\"]" do
|
240
|
+
find("button[data-controller='dropdown']").click
|
234
241
|
click_on "Hide"
|
235
242
|
end
|
236
243
|
|
@@ -1,10 +1,10 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
shared_examples "manage participatory space publications" do
|
3
|
+
shared_examples "manage participatory space publications" do
|
4
4
|
before do
|
5
|
-
participatory_space.update(title: { en: title })
|
6
5
|
switch_to_host(organization.host)
|
7
6
|
login_as user, scope: :user
|
7
|
+
visit admin_page_path
|
8
8
|
end
|
9
9
|
|
10
10
|
context "when the participatory space is unpublished" do
|
@@ -12,16 +12,19 @@ shared_examples "manage participatory space publications" do |_options|
|
|
12
12
|
participatory_space.unpublish!
|
13
13
|
participatory_space.reload
|
14
14
|
visit admin_page_path
|
15
|
+
|
16
|
+
within("tr", text: translated_attribute(participatory_space.title)) do
|
17
|
+
find("button[data-controller='dropdown']").click
|
18
|
+
find("a", text: "Publish", visible: true).click
|
19
|
+
end
|
15
20
|
end
|
16
21
|
|
17
22
|
it "publishes it" do
|
18
|
-
click_on "Publish"
|
19
|
-
|
20
23
|
expect(page).to have_content("successfully")
|
21
24
|
|
22
25
|
visit public_collection_path
|
23
26
|
|
24
|
-
expect(page).to have_content
|
27
|
+
expect(page).to have_content(translated_attribute(participatory_space.title))
|
25
28
|
end
|
26
29
|
end
|
27
30
|
|
@@ -42,7 +45,10 @@ shared_examples "manage participatory space publications" do |_options|
|
|
42
45
|
it "unpublishes it" do
|
43
46
|
# we cannot use "a 404 page" shared example as we want to check it
|
44
47
|
# inside an example
|
45
|
-
|
48
|
+
within("tr", text: translated_attribute(participatory_space.title)) do
|
49
|
+
find("button[data-controller='dropdown']").click
|
50
|
+
click_on "Unpublish"
|
51
|
+
end
|
46
52
|
|
47
53
|
expect(page).to have_content("successfully")
|
48
54
|
|
@@ -18,7 +18,13 @@ shared_examples "manage soft deletable component or space" do |resource_name|
|
|
18
18
|
expect(page).to have_content(title[:en])
|
19
19
|
end
|
20
20
|
|
21
|
-
accept_confirm
|
21
|
+
accept_confirm do
|
22
|
+
within("tr", text: title[:en]) do
|
23
|
+
# To remove once all the actions are migrated to dropdowns
|
24
|
+
find("button[data-controller='dropdown']").click
|
25
|
+
click_on "Move to trash"
|
26
|
+
end
|
27
|
+
end
|
22
28
|
|
23
29
|
expect(page).to have_admin_callout("successfully")
|
24
30
|
|
@@ -34,7 +40,11 @@ shared_examples "manage soft deletable component or space" do |resource_name|
|
|
34
40
|
end
|
35
41
|
|
36
42
|
it "does not allow to move it to the trash" do
|
37
|
-
|
43
|
+
within("tr", text: title[:en]) do
|
44
|
+
# To remove once all the actions are migrated to dropdowns
|
45
|
+
find("button[data-controller='dropdown']").click
|
46
|
+
have_css(".dropdown__button-disabled span", text: "Move to trash")
|
47
|
+
end
|
38
48
|
end
|
39
49
|
end
|
40
50
|
|
@@ -67,7 +77,8 @@ shared_examples "manage soft deletable resource" do |resource_name|
|
|
67
77
|
expect(page).to have_content(title[:en])
|
68
78
|
|
69
79
|
within(resource_row) do
|
70
|
-
|
80
|
+
find("button[data-controller='dropdown']").click
|
81
|
+
accept_confirm { click_on "Move to trash" }
|
71
82
|
end
|
72
83
|
|
73
84
|
expect(page).to have_admin_callout("successfully")
|
@@ -101,7 +112,11 @@ shared_examples "manage trashed resource" do |resource_name|
|
|
101
112
|
end
|
102
113
|
|
103
114
|
it "restores the #{resource_name} from the trash" do
|
104
|
-
|
115
|
+
# To remove once all the actions are migrated to dropdowns
|
116
|
+
within("tr", text: title[:en]) do
|
117
|
+
find("button[data-controller='dropdown']").click
|
118
|
+
click_on "Restore"
|
119
|
+
end
|
105
120
|
|
106
121
|
expect(page).to have_admin_callout("successfully")
|
107
122
|
visit trash_path
|
@@ -16,8 +16,12 @@ shared_examples "manage taxonomy filters in settings" do
|
|
16
16
|
let!(:another_taxonomy_filter) do
|
17
17
|
create(:taxonomy_filter, internal_name: { en: "Another filter" }, participatory_space_manifests: [participatory_space.manifest.name], root_taxonomy:)
|
18
18
|
end
|
19
|
+
|
19
20
|
before do
|
20
|
-
|
21
|
+
within "tr", text: translated_attribute(component.name) do
|
22
|
+
find("button[data-controller='dropdown']").click
|
23
|
+
click_on "Configure"
|
24
|
+
end
|
21
25
|
end
|
22
26
|
|
23
27
|
it "can be added to settings" do
|
@@ -36,8 +40,9 @@ shared_examples "manage taxonomy filters in settings" do
|
|
36
40
|
within ".js-current-filters" do
|
37
41
|
expect(page).to have_css("td", text: "Internal taxonomy filter name")
|
38
42
|
expect(page).to have_css("td", text: "Public taxonomy filter name")
|
39
|
-
expect(page).to
|
43
|
+
expect(page).to have_css("button[data-controller='dropdown']", count: 1)
|
40
44
|
end
|
45
|
+
|
41
46
|
expect(component.reload.settings.taxonomy_filters).to eq([taxonomy_filter.id.to_s])
|
42
47
|
|
43
48
|
click_on "Add filter"
|
@@ -52,12 +57,15 @@ shared_examples "manage taxonomy filters in settings" do
|
|
52
57
|
expect(page).to have_css("td", text: "Internal taxonomy filter name")
|
53
58
|
expect(page).to have_css("td", text: "Public taxonomy filter name")
|
54
59
|
expect(page).to have_css("td", text: "Another filter")
|
55
|
-
expect(page).to
|
60
|
+
expect(page).to have_css("button[data-controller='dropdown']", count: 2)
|
56
61
|
end
|
57
62
|
expect(component.reload.settings.taxonomy_filters).to contain_exactly(taxonomy_filter.id.to_s, another_taxonomy_filter.id.to_s)
|
58
63
|
|
59
64
|
click_on "Update"
|
60
|
-
|
65
|
+
within "tr", text: translated(component.name) do
|
66
|
+
find("button[data-controller='dropdown']").click
|
67
|
+
click_on "Configure"
|
68
|
+
end
|
61
69
|
within ".js-current-filters" do
|
62
70
|
expect(page).to have_css("td", text: "Internal taxonomy filter name")
|
63
71
|
expect(page).to have_css("td", text: "Public taxonomy filter name")
|
@@ -69,7 +77,10 @@ shared_examples "manage taxonomy filters in settings" do
|
|
69
77
|
let(:taxonomy_filter_item) { nil }
|
70
78
|
let(:taxonomy_filter) { nil }
|
71
79
|
before do
|
72
|
-
|
80
|
+
within "tr", text: translated(component.name) do
|
81
|
+
find("button[data-controller='dropdown']").click
|
82
|
+
click_on "Configure"
|
83
|
+
end
|
73
84
|
end
|
74
85
|
|
75
86
|
it "shows a configuration message" do
|
@@ -83,12 +94,16 @@ shared_examples "manage taxonomy filters in settings" do
|
|
83
94
|
|
84
95
|
before do
|
85
96
|
component.update!(settings: { taxonomy_filters: [another_taxonomy_filter.id.to_s, taxonomy_filter.id.to_s] })
|
86
|
-
|
97
|
+
within "tr", text: translated(component.name) do
|
98
|
+
find("button[data-controller='dropdown']").click
|
99
|
+
click_on "Configure"
|
100
|
+
end
|
87
101
|
end
|
88
102
|
|
89
103
|
it "can be removed from settings" do
|
90
104
|
within ".js-current-filters" do
|
91
105
|
within "tr", text: "Internal taxonomy filter name" do
|
106
|
+
find("button[data-controller='dropdown']").click
|
92
107
|
click_on "Edit"
|
93
108
|
end
|
94
109
|
end
|
@@ -113,11 +128,16 @@ shared_examples "manage taxonomy filters in settings" do
|
|
113
128
|
expect(page).to have_css("td", text: "Another taxonomy filter name")
|
114
129
|
expect(page).to have_css("td", text: "Internal taxonomy filter name")
|
115
130
|
expect(page).to have_css("td", text: "Public taxonomy filter name")
|
116
|
-
|
131
|
+
within "table" do
|
132
|
+
expect(page).to have_css("button[data-controller='dropdown']", count: 2)
|
133
|
+
end
|
117
134
|
end
|
118
135
|
|
119
136
|
click_on "Update"
|
120
|
-
|
137
|
+
within "tr", text: translated(component.name) do
|
138
|
+
find("button[data-controller='dropdown']").click
|
139
|
+
click_on "Configure"
|
140
|
+
end
|
121
141
|
within ".js-current-filters" do
|
122
142
|
expect(page).to have_css("td", text: "Internal taxonomy filter name")
|
123
143
|
expect(page).to have_css("td", text: "Public taxonomy filter name")
|