diff --git a/.github/workflows/cypress.yml b/.github/workflows/cypress.yml index 934805784d..2192c96193 100644 --- a/.github/workflows/cypress.yml +++ b/.github/workflows/cypress.yml @@ -47,7 +47,7 @@ jobs: NODE_TLS_REJECT_UNAUTHORIZED: 0 - name: Cypress run - uses: cypress-io/github-action@59810ebfa5a5ac6fcfdcfdf036d1cd4d083a88f2 # v6.5.0 + uses: cypress-io/github-action@ebe8b24c4428922d0f793a5c4c96853a633180e3 # v6.6.0 with: wait-on: "${{ inputs.preview_url }}" command: 'npm run test:cypress:parallel' diff --git a/composer.json b/composer.json index c9aa01fac4..176ccb542f 100644 --- a/composer.json +++ b/composer.json @@ -207,7 +207,7 @@ "symfony/phpunit-bridge": "^5.1", "symfony/process": "^4.0", "symfony/routing": "^4.0", - "va-gov/content-build": "^0.0.3378", + "va-gov/content-build": "^0.0.3383", "vlucas/phpdotenv": "^5.3", "webflo/drupal-finder": "^1.0.0", "webmozart/path-util": "^2.3", diff --git a/composer.lock b/composer.lock index 5053b4500c..08937f8a9b 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "6e4c15c31d64e3479e8c7bef49129d53", + "content-hash": "6815954ef46674b341aee89059eb3ba7", "packages": [ { "name": "alchemy/zippy", @@ -202,16 +202,16 @@ }, { "name": "caxy/php-htmldiff", - "version": "v0.1.14", + "version": "v0.1.15", "source": { "type": "git", "url": "https://github.com/caxy/php-htmldiff.git", - "reference": "3f8ee7edda3d7c6d2e58a02d70a12d3242c84ea5" + "reference": "6342b02ddb86fd36093ad7e2db2efc21f01ab7cd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/caxy/php-htmldiff/zipball/3f8ee7edda3d7c6d2e58a02d70a12d3242c84ea5", - "reference": "3f8ee7edda3d7c6d2e58a02d70a12d3242c84ea5", + "url": "https://api.github.com/repos/caxy/php-htmldiff/zipball/6342b02ddb86fd36093ad7e2db2efc21f01ab7cd", + "reference": "6342b02ddb86fd36093ad7e2db2efc21f01ab7cd", "shasum": "" }, "require": { @@ -257,9 +257,9 @@ ], "support": { "issues": "https://github.com/caxy/php-htmldiff/issues", - "source": "https://github.com/caxy/php-htmldiff/tree/v0.1.14" + "source": "https://github.com/caxy/php-htmldiff/tree/v0.1.15" }, - "time": "2022-01-19T11:09:59+00:00" + "time": "2023-11-05T23:49:04+00:00" }, { "name": "chi-teck/drupal-code-generator", @@ -3701,17 +3701,17 @@ }, { "name": "drupal/content_model_documentation", - "version": "1.0.21", + "version": "1.0.22", "source": { "type": "git", "url": "https://git.drupalcode.org/project/content_model_documentation.git", - "reference": "1.0.21" + "reference": "1.0.22" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/content_model_documentation-1.0.21.zip", - "reference": "1.0.21", - "shasum": "396e36c2a3d143b364341635848bed34ad656746" + "url": "https://ftp.drupal.org/files/projects/content_model_documentation-1.0.22.zip", + "reference": "1.0.22", + "shasum": "d9205b8f9dcfd3dd55337d0fd49c864140fc2077" }, "require": { "drupal/config_views": "~2.1", @@ -3724,8 +3724,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "1.0.21", - "datestamp": "1698390837", + "version": "1.0.22", + "datestamp": "1699252266", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -5878,17 +5878,17 @@ }, { "name": "drupal/epp", - "version": "1.5.0", + "version": "1.6.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/epp.git", - "reference": "8.x-1.5" + "reference": "8.x-1.6" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/epp-8.x-1.5.zip", - "reference": "8.x-1.5", - "shasum": "54260bfa2330d36e0dc2d7c6c4574e4b5f084042" + "url": "https://ftp.drupal.org/files/projects/epp-8.x-1.6.zip", + "reference": "8.x-1.6", + "shasum": "5ccebedc80ee904769e60298e76e71ca81ca0eb6" }, "require": { "drupal/core": "^8.7.7 || ^9 || ^10" @@ -5896,8 +5896,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "8.x-1.5", - "datestamp": "1679356317", + "version": "8.x-1.6", + "datestamp": "1699288592", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -8184,17 +8184,17 @@ }, { "name": "drupal/limited_field_widgets", - "version": "2.1.0-beta1", + "version": "2.1.0-beta2", "source": { "type": "git", "url": "https://git.drupalcode.org/project/limited_field_widgets.git", - "reference": "2.1.0-beta1" + "reference": "2.1.0-beta2" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/limited_field_widgets-2.1.0-beta1.zip", - "reference": "2.1.0-beta1", - "shasum": "2eac2a75bf5f93924205650d51054541c9e9430e" + "url": "https://ftp.drupal.org/files/projects/limited_field_widgets-2.1.0-beta2.zip", + "reference": "2.1.0-beta2", + "shasum": "3ed1431bb4ed734b1131c2b78f6a948ef2e71349" }, "require": { "drupal/core": ">=9.2" @@ -8202,8 +8202,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "2.1.0-beta1", - "datestamp": "1697010667", + "version": "2.1.0-beta2", + "datestamp": "1699106716", "security-coverage": { "status": "not-covered", "message": "Beta releases are not covered by Drupal security advisories." @@ -10004,17 +10004,17 @@ }, { "name": "drupal/node_revision_delete", - "version": "1.0.0-rc6", + "version": "1.0.0-rc7", "source": { "type": "git", "url": "https://git.drupalcode.org/project/node_revision_delete.git", - "reference": "8.x-1.0-rc6" + "reference": "8.x-1.0-rc7" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/node_revision_delete-8.x-1.0-rc6.zip", - "reference": "8.x-1.0-rc6", - "shasum": "68db55e328bc247a2a16501dd930538961314107" + "url": "https://ftp.drupal.org/files/projects/node_revision_delete-8.x-1.0-rc7.zip", + "reference": "8.x-1.0-rc7", + "shasum": "e689fd6bc78afe2e26b7871ed4dc56d4dec3abd7" }, "require": { "drupal/core": "^8.7.7 || ^9.0 || ^10" @@ -10022,8 +10022,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "8.x-1.0-rc6", - "datestamp": "1668447494", + "version": "8.x-1.0-rc7", + "datestamp": "1698848506", "security-coverage": { "status": "not-covered", "message": "RC releases are not covered by Drupal security advisories." @@ -12764,17 +12764,17 @@ }, { "name": "drupal/tzfield", - "version": "1.7.0", + "version": "1.8.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/tzfield.git", - "reference": "8.x-1.7" + "reference": "8.x-1.8" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/tzfield-8.x-1.7.zip", - "reference": "8.x-1.7", - "shasum": "12f6a0ee4a73755ce4735d0301a8af2179f1dba5" + "url": "https://ftp.drupal.org/files/projects/tzfield-8.x-1.8.zip", + "reference": "8.x-1.8", + "shasum": "5793920c1d56dde77652f6b4b1e3ba3ae4625f1f" }, "require": { "drupal/core": "^8 || ^9 || ^10" @@ -12782,8 +12782,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "8.x-1.7", - "datestamp": "1673516096", + "version": "8.x-1.8", + "datestamp": "1698896138", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -13268,10 +13268,6 @@ "name": "MChittenden", "homepage": "https://www.drupal.org/user/2288348" }, - { - "name": "ofry", - "homepage": "https://www.drupal.org/user/2740599" - }, { "name": "shelane", "homepage": "https://www.drupal.org/user/2674989" @@ -13285,21 +13281,21 @@ }, { "name": "drupal/views_data_export", - "version": "1.3.0", + "version": "1.4.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/views_data_export.git", - "reference": "8.x-1.3" + "reference": "8.x-1.4" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/views_data_export-8.x-1.3.zip", - "reference": "8.x-1.3", - "shasum": "a8a5483e13787f2bb3eb66d9b0f19d96c0d8d7c1" + "url": "https://ftp.drupal.org/files/projects/views_data_export-8.x-1.4.zip", + "reference": "8.x-1.4", + "shasum": "70dede9fdf50601232f068e67309d361341e88c5" }, "require": { "drupal/core": "^9 || ^10", - "drupal/csv_serialization": "~1.4 || ~2.0 || ~3" + "drupal/csv_serialization": "~1.4 || ~2.0 || ~3 || ~4" }, "require-dev": { "drupal/search_api": "~1.12", @@ -13308,8 +13304,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "8.x-1.3", - "datestamp": "1679072666", + "version": "8.x-1.4", + "datestamp": "1698948991", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -16279,16 +16275,16 @@ }, { "name": "mglaman/phpstan-drupal", - "version": "1.2.0", + "version": "1.2.1", "source": { "type": "git", "url": "https://github.com/mglaman/phpstan-drupal.git", - "reference": "d721420086f146640acecebb7a678661a66e97d5" + "reference": "920c6b972a832046327f66dc6ff7448e3b5d6e4c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/mglaman/phpstan-drupal/zipball/d721420086f146640acecebb7a678661a66e97d5", - "reference": "d721420086f146640acecebb7a678661a66e97d5", + "url": "https://api.github.com/repos/mglaman/phpstan-drupal/zipball/920c6b972a832046327f66dc6ff7448e3b5d6e4c", + "reference": "920c6b972a832046327f66dc6ff7448e3b5d6e4c", "shasum": "" }, "require": { @@ -16363,7 +16359,7 @@ "description": "Drupal extension and rules for PHPStan", "support": { "issues": "https://github.com/mglaman/phpstan-drupal/issues", - "source": "https://github.com/mglaman/phpstan-drupal/tree/1.2.0" + "source": "https://github.com/mglaman/phpstan-drupal/tree/1.2.1" }, "funding": [ { @@ -16379,7 +16375,7 @@ "type": "tidelift" } ], - "time": "2023-08-24T20:32:56+00:00" + "time": "2023-11-03T13:17:28+00:00" }, { "name": "michelf/php-markdown", @@ -26915,16 +26911,16 @@ }, { "name": "va-gov/content-build", - "version": "v0.0.3378", + "version": "v0.0.3383", "source": { "type": "git", "url": "https://github.com/department-of-veterans-affairs/content-build.git", - "reference": "51b6a6dafdb360cd2c7a02e4a7aa14453d40e9ae" + "reference": "ec4aa8360e1e4fc028a17c29408c6aad1ace4e26" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/department-of-veterans-affairs/content-build/zipball/51b6a6dafdb360cd2c7a02e4a7aa14453d40e9ae", - "reference": "51b6a6dafdb360cd2c7a02e4a7aa14453d40e9ae", + "url": "https://api.github.com/repos/department-of-veterans-affairs/content-build/zipball/ec4aa8360e1e4fc028a17c29408c6aad1ace4e26", + "reference": "ec4aa8360e1e4fc028a17c29408c6aad1ace4e26", "shasum": "" }, "type": "node-project", @@ -26951,9 +26947,9 @@ "description": "Front-end for VA.gov. This repository contains the code that generates the www.va.gov website. It contains a Metalsmith static site builder that uses a Drupal CMS for content. This file is here to publish releases to https://packagist.org/packages/va-gov/content-build, so that the CMS CI system can install it and update it using standard composer processes, and so that we can run tests across both systems. See https://github.com/department-of-veterans-affairs/va.gov-cms for the CMS repo, and stand by for more documentation.", "support": { "issues": "https://github.com/department-of-veterans-affairs/content-build/issues", - "source": "https://github.com/department-of-veterans-affairs/content-build/tree/v0.0.3378" + "source": "https://github.com/department-of-veterans-affairs/content-build/tree/v0.0.3383" }, - "time": "2023-10-30T17:47:27+00:00" + "time": "2023-11-07T23:50:06+00:00" }, { "name": "vlucas/phpdotenv", @@ -27809,5 +27805,5 @@ "platform-overrides": { "php": "8.1" }, - "plugin-api-version": "2.6.0" + "plugin-api-version": "2.3.0" } diff --git a/config/sync/core.entity_form_display.media.document.default.yml b/config/sync/core.entity_form_display.media.document.default.yml index 26ecf0335c..0fa036c6a3 100644 --- a/config/sync/core.entity_form_display.media.document.default.yml +++ b/config/sync/core.entity_form_display.media.document.default.yml @@ -17,6 +17,7 @@ third_party_settings: group_governance: children: - field_owner + - field_media_in_library label: 'Section settings' region: content parent_name: '' @@ -41,6 +42,13 @@ content: settings: progress_indicator: throbber third_party_settings: { } + field_media_in_library: + type: boolean_checkbox + weight: 4 + region: content + settings: + display_label: true + third_party_settings: { } field_media_submission_guideline: type: markup weight: 0 @@ -61,9 +69,13 @@ content: size: 60 placeholder: '' third_party_settings: { } + translation: + weight: 10 + region: content + settings: { } + third_party_settings: { } hidden: created: true - field_media_in_library: true langcode: true moderation_state: true path: true diff --git a/config/sync/feature_toggle.features.yml b/config/sync/feature_toggle.features.yml index 40c99c928c..fbbeee8c2d 100644 --- a/config/sync/feature_toggle.features.yml +++ b/config/sync/feature_toggle.features.yml @@ -5,3 +5,4 @@ features: feature_single_value_field_link: FEATURE_SINGLE_VALUE_FIELD_LINK feature_health_connect_number: FEATURE_HEALTH_CONNECT_NUMBER feature_event_outreach_checkbox: FEATURE_EVENT_OUTREACH_CHECKBOX + feature_event_outreach_checkbox_all: FEATURE_EVENT_OUTREACH_CHECKBOX_ALL diff --git a/config/sync/field.field.node.service_region.field_service_location.yml b/config/sync/field.field.node.service_region.field_service_location.yml index 930b6d316d..d9967c1068 100644 --- a/config/sync/field.field.node.service_region.field_service_location.yml +++ b/config/sync/field.field.node.service_region.field_service_location.yml @@ -5,6 +5,7 @@ dependencies: config: - field.storage.node.field_service_location - node.type.service_region + - paragraphs.paragraphs_type.service_location module: - entity_reference_revisions id: node.service_region.field_service_location @@ -19,5 +20,144 @@ default_value: { } default_value_callback: '' settings: handler: 'default:paragraph' - handler_settings: { } + handler_settings: + target_bundles: + service_location: service_location + negate: 0 + target_bundles_drag_drop: + address: + weight: 46 + enabled: false + alert: + weight: 47 + enabled: false + alert_single: + weight: 48 + enabled: false + audience_topics: + weight: 49 + enabled: false + basic_accordion: + weight: 50 + enabled: false + button: + weight: 51 + enabled: false + centralized_content_descriptor: + weight: 52 + enabled: false + checklist: + weight: 53 + enabled: false + checklist_item: + weight: 54 + enabled: false + collapsible_panel: + weight: 55 + enabled: false + collapsible_panel_item: + weight: 56 + enabled: false + contact_information: + weight: 57 + enabled: false + downloadable_file: + weight: 58 + enabled: false + email_contact: + weight: 59 + enabled: false + embedded_video: + weight: 60 + enabled: false + expandable_text: + weight: 61 + enabled: false + featured_content: + weight: 62 + enabled: false + health_care_local_facility_servi: + weight: 63 + enabled: false + link_teaser: + weight: 64 + enabled: false + link_teaser_with_image: + weight: 65 + enabled: false + list_of_link_teasers: + weight: 68 + enabled: false + list_of_links: + weight: 67 + enabled: false + lists_of_links: + weight: 66 + enabled: false + magichead_group: + weight: 69 + enabled: false + media: + weight: 70 + enabled: false + media_list_images: + weight: 71 + enabled: false + media_list_videos: + weight: 72 + enabled: false + non_reusable_alert: + weight: 73 + enabled: false + number_callout: + weight: 74 + enabled: false + phone_number: + weight: 75 + enabled: false + process: + weight: 76 + enabled: false + q_a: + weight: 77 + enabled: false + q_a_group: + weight: 78 + enabled: false + q_a_section: + weight: 79 + enabled: false + react_widget: + weight: 80 + enabled: false + rich_text_char_limit_1000: + weight: 81 + enabled: false + service_location: + weight: 82 + enabled: true + service_location_address: + weight: 83 + enabled: false + situation_update: + weight: 84 + enabled: false + spanish_translation_summary: + weight: 85 + enabled: false + staff_profile: + weight: 86 + enabled: false + step: + weight: 87 + enabled: false + step_by_step: + weight: 88 + enabled: false + table: + weight: 89 + enabled: false + wysiwyg: + weight: 90 + enabled: false field_type: entity_reference_revisions diff --git a/config/sync/views.view.content.yml b/config/sync/views.view.content.yml index c9e0841459..d8348e8b59 100644 --- a/config/sync/views.view.content.yml +++ b/config/sync/views.view.content.yml @@ -7820,7 +7820,7 @@ display: empty_column: false responsive: '' type: - sortable: false + sortable: true default_sort_order: asc align: '' separator: '' @@ -7989,7 +7989,7 @@ display: display_extenders: jsonapi_views: enabled: true - path: admin/content/qa + path: admin/content/audit/qa menu: type: tab title: 'Page-specific Q&A' @@ -7999,10 +7999,10 @@ display: menu_name: admin parent: system.admin_content context: '0' - as_local_task: false - local_task_link_title: '' - local_task_parent: 'views_view:view.centralized_content_paragraphs.centralized_content_paragraphs' - local_task_weight: 0 + as_local_task: true + local_task_link_title: 'Page-specific Q&A' + local_task_parent: 'views_view:view.content.content_audit_page' + local_task_weight: -150 local_task_custom_parent_route: '' tab_options: type: normal diff --git a/config/sync/views.view.media.yml b/config/sync/views.view.media.yml index 20a9cb04bf..36f790603c 100644 --- a/config/sync/views.view.media.yml +++ b/config/sync/views.view.media.yml @@ -3358,6 +3358,8 @@ display: page_1: '0' filename: images-export.csv automatic_download: false + export_method: batch + export_batch_size: 500 store_in_public_file_directory: null custom_redirect_path: false redirect_to_display: none diff --git a/config/sync/views.view.user_admin_people.yml b/config/sync/views.view.user_admin_people.yml index 143b8beaed..732c3a473f 100644 --- a/config/sync/views.view.user_admin_people.yml +++ b/config/sync/views.view.user_admin_people.yml @@ -1132,7 +1132,7 @@ display: options: query_comment: '' disable_sql_rewrite: false - distinct: false + distinct: true replica: false query_tags: { } relationships: { } @@ -1166,8 +1166,10 @@ display: - 'languages:language_interface' - url - url.query_args + - user - user.permissions - tags: { } + tags: + - workbench_access_view data_export_1: id: data_export_1 display_title: 'Data export' @@ -1752,8 +1754,10 @@ display: - 'languages:language_interface' - request_format - url + - user - user.permissions - tags: { } + tags: + - workbench_access_view data_export_2: id: data_export_2 display_title: 'Data export: All users' @@ -3234,9 +3238,293 @@ display: multi_type: separator separator: ', ' field_api_classes: false + filters: + combine: + id: combine + table: views + field: combine + relationship: none + group_type: group + admin_label: '' + plugin_id: combine + operator: contains + value: '' + group: 1 + exposed: true + expose: + operator_id: combine_op + label: 'Name or email contains' + description: '' + use_operator: false + operator: combine_op + operator_limit_selection: false + operator_list: { } + identifier: user + required: false + remember: false + multiple: false + remember_roles: + authenticated: authenticated + anonymous: '0' + administrator: '0' + is_grouped: false + group_info: + label: '' + description: '' + identifier: '' + optional: true + widget: select + multiple: false + remember: false + default_group: All + default_group_multiple: { } + group_items: { } + fields: + name: name + mail: mail + status: + id: status + table: users_field_data + field: status + relationship: none + group_type: group + admin_label: '' + entity_type: user + entity_field: status + plugin_id: boolean + operator: '=' + value: '1' + group: 1 + exposed: true + expose: + operator_id: '' + label: '' + description: '' + use_operator: false + operator: status_op + operator_limit_selection: false + operator_list: { } + identifier: status + required: false + remember: false + multiple: false + remember_roles: + authenticated: authenticated + anonymous: '0' + administrator: '0' + is_grouped: true + group_info: + label: Status + description: '' + identifier: status + optional: true + widget: select + multiple: false + remember: false + default_group: '1' + default_group_multiple: { } + group_items: + 1: + title: Active + operator: '=' + value: '1' + 2: + title: Blocked + operator: '=' + value: '0' + roles_target_id: + id: roles_target_id + table: user__roles + field: roles_target_id + relationship: none + group_type: group + admin_label: '' + plugin_id: user_roles + operator: or + value: { } + group: 1 + exposed: true + expose: + operator_id: roles_target_id_op + label: Role + description: '' + use_operator: false + operator: roles_target_id_op + operator_limit_selection: false + operator_list: { } + identifier: role + required: false + remember: false + multiple: false + remember_roles: + authenticated: authenticated + anonymous: '0' + administrator: '0' + reduce: false + is_grouped: false + group_info: + label: '' + description: '' + identifier: '' + optional: true + widget: select + multiple: false + remember: false + default_group: All + default_group_multiple: { } + group_items: { } + reduce_duplicates: false + default_langcode: + id: default_langcode + table: users_field_data + field: default_langcode + relationship: none + group_type: group + admin_label: '' + entity_type: user + entity_field: default_langcode + plugin_id: boolean + operator: '=' + value: '1' + group: 1 + exposed: false + expose: + operator_id: '' + label: '' + description: '' + use_operator: false + operator: '' + operator_limit_selection: false + operator_list: { } + identifier: '' + required: false + remember: false + multiple: false + remember_roles: + authenticated: authenticated + is_grouped: false + group_info: + label: '' + description: '' + identifier: '' + optional: true + widget: select + multiple: false + remember: false + default_group: All + default_group_multiple: { } + group_items: { } + uid_raw: + id: uid_raw + table: users_field_data + field: uid_raw + relationship: none + group_type: group + admin_label: '' + entity_type: user + plugin_id: numeric + operator: '!=' + value: + min: '' + max: '' + value: '0' + group: 1 + exposed: false + expose: + operator_id: '0' + label: '' + description: '' + use_operator: false + operator: '' + operator_limit_selection: false + operator_list: { } + identifier: '' + required: false + remember: false + multiple: false + remember_roles: + authenticated: authenticated + is_grouped: false + group_info: + label: '' + description: '' + identifier: '' + optional: true + widget: select + multiple: false + remember: false + default_group: All + default_group_multiple: { } + group_items: { } + workbench_access_section__section: + id: workbench_access_section__section + table: users + field: workbench_access_section__section + relationship: none + group_type: group + admin_label: '' + entity_type: user + plugin_id: workbench_access_section + operator: in + value: { } + group: 1 + exposed: true + expose: + operator_id: workbench_access_section__section_op + label: Section + description: '' + use_operator: false + operator: workbench_access_section__section_op + operator_limit_selection: false + operator_list: { } + identifier: workbench_access_section__section + required: false + remember: false + multiple: false + remember_roles: + authenticated: authenticated + anonymous: '0' + content_api_consumer: '0' + content_creator_benefits_hubs: '0' + content_creator_resources_and_support: '0' + office_content_creator: '0' + vamc_content_creator: '0' + content_creator_vet_center: '0' + content_editor: '0' + content_reviewer: '0' + content_publisher: '0' + content_admin: '0' + redirect_administrator: '0' + admnistrator_users: '0' + administrator: '0' + homepage_manager: '0' + translation_manager: '0' + next_js: '0' + reduce: 0 + is_grouped: false + group_info: + label: '' + description: '' + identifier: '' + optional: true + widget: select + multiple: false + remember: false + default_group: All + default_group_multiple: { } + group_items: { } + reduce_duplicates: 0 + section_filter: + show_hierarchy: 1 + filter_groups: + operator: AND + groups: + 1: AND defaults: show_admin_links: false fields: false + filters: false + filter_groups: false header: false footer: false show_admin_links: false @@ -3252,7 +3540,9 @@ display: empty: false content: "
\r\nDisplaying @start - @end of @total" footer: { } - display_extenders: { } + display_extenders: + jsonapi_views: + enabled: true path: admin/people/list menu: type: 'default tab' @@ -3274,5 +3564,7 @@ display: - 'languages:language_interface' - url - url.query_args + - user - user.permissions - tags: { } + tags: + - workbench_access_view diff --git a/docroot/modules/custom/va_gov_events/src/EventSubscriber/EntityEventSubscriber.php b/docroot/modules/custom/va_gov_events/src/EventSubscriber/EntityEventSubscriber.php index fa415d8956..94d57444ae 100644 --- a/docroot/modules/custom/va_gov_events/src/EventSubscriber/EntityEventSubscriber.php +++ b/docroot/modules/custom/va_gov_events/src/EventSubscriber/EntityEventSubscriber.php @@ -50,6 +50,11 @@ class EntityEventSubscriber implements EventSubscriberInterface { */ const OUTREACH_CHECKBOX_FEATURE_NAME = 'feature_event_outreach_checkbox'; + /** + * The Feature toggle name that controls displaying the checkbox to all users. + */ + const OUTREACH_CHECKBOX_ALL_NAME = 'feature_event_outreach_checkbox_all'; + /** * The list of users allowed to view the outreach checkbox. */ @@ -101,6 +106,13 @@ class EntityEventSubscriber implements EventSubscriberInterface { */ private bool $outreachCheckboxFeatureEnabled; + /** + * TRUE if the outreach checkbox feature toggle is enabled for all users. + * + * @var bool + */ + private bool $outreachCheckboxAllFeatureEnabled; + /** * Constructs the EventSubscriber object. * @@ -115,6 +127,7 @@ public function __construct(UserPermsService $user_perms_service, AccountProxy $ $this->userPermsService = $user_perms_service; $this->currentUser = $account_proxy->getAccount(); $this->outreachCheckboxFeatureEnabled = $feature_status->getStatus(self::OUTREACH_CHECKBOX_FEATURE_NAME); + $this->outreachCheckboxAllFeatureEnabled = $feature_status->getStatus(self::OUTREACH_CHECKBOX_ALL_NAME); } /** @@ -135,7 +148,13 @@ public static function getSubscribedEvents(): array { * TRUE if the outreach checkbox should be enabled. */ protected function outreachCheckboxEnabled(): bool { + // If both feature toggles are on, display the checkbox to all users. + if ($this->outreachCheckboxFeatureEnabled && $this->outreachCheckboxAllFeatureEnabled) { + return TRUE; + } $admin = $this->userPermsService->hasAdminRole(TRUE); + // If only the primary outreach feature toggle is on, and the user is either + // an admin, or in the test user list, display the checkbox. return ( $this->outreachCheckboxFeatureEnabled && (in_array($this->currentUser->id(), self::OUTREACH_CHECKBOX_TEST_USERS) || $admin) diff --git a/tests/cypress/integration/features/content_type/event.feature b/tests/cypress/integration/features/content_type/event.feature index 58beddb9ef..fc1e84fcd8 100644 --- a/tests/cypress/integration/features/content_type/event.feature +++ b/tests/cypress/integration/features/content_type/event.feature @@ -2,8 +2,9 @@ Feature: Content Type: Event Scenario: Log in and create an event. - Given I am logged in as a user with the "administrator" role + Given I am logged in as a user with the "content_admin" role When I set the "feature_event_outreach_checkbox" feature toggle to "on" + And I set the "feature_event_outreach_checkbox_all" feature toggle to "on" Then I create a "event" node Scenario: Confirm that event form conditional fields are cleared out if parent options change diff --git a/tests/scripts/content-build-gql.sh b/tests/scripts/content-build-gql.sh index bc6db4c1de..3a8f01d9fd 100755 --- a/tests/scripts/content-build-gql.sh +++ b/tests/scripts/content-build-gql.sh @@ -13,6 +13,11 @@ set -ex repo_root="$(git rev-parse --show-toplevel)" pushd "${repo_root}" > /dev/null +export NVM_DIR="$HOME/.nvm" +[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" +[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" +source ~/.bashrc + composer va:web:prepare-dotenv touch ./.buildlock @@ -35,6 +40,7 @@ popd pushd "${web_path}" export INSTALL_HOOKS=no export NODE_ENV=production +nvm use yarn build \ --pull-drupal \ --gql-queries-only \