diff --git a/.github/ISSUE_TEMPLATE/cms-collaboration-cycle-request.yml b/.github/ISSUE_TEMPLATE/cms-collaboration-cycle-request.yml index 80cf49c62c9..900a0c4abe2 100644 --- a/.github/ISSUE_TEMPLATE/cms-collaboration-cycle-request.yml +++ b/.github/ISSUE_TEMPLATE/cms-collaboration-cycle-request.yml @@ -11,7 +11,7 @@ body: - type: markdown attributes: value: | - Before engaging with the CMS Collaboration Cycle, please fill out the form below to help the CMS Team determine what level of support and which touchpoints are needed for your work. + Before engaging with the CMS Collaboration Cycle, please fill out the form below to help the CMS Team determine what level of support and which touchpoints are needed for your work. Have questions about this form? Reach out to the CMS Team in the cms-support Slack channel. - type: input id: product-outline attributes: @@ -69,6 +69,7 @@ body: options: - "Yes" - "No" + - "Maybe (Leave notes in the Additional Information section of this form)" validations: required: true - type: dropdown @@ -79,6 +80,18 @@ body: options: - "Yes" - "No" + - "Maybe (Leave notes in the Additional Information section of this form)" + validations: + required: true + - type: dropdown + id: modules + attributes: + label: Will your work require introducing a new Drupal module or changes to an existing module? + multiple: false + options: + - "Yes" + - "No" + - "Maybe (Leave notes in the Additional Information section of this form)" validations: required: true - type: dropdown @@ -89,6 +102,7 @@ body: options: - "Yes" - "No" + - "Maybe (Leave notes in the Additional Information section of this form)" validations: required: true - type: dropdown @@ -99,6 +113,7 @@ body: options: - "Yes" - "No" + - "Maybe (Leave notes in the Additional Information section of this form)" validations: required: true - type: textarea @@ -107,13 +122,11 @@ body: label: Additional Information description: Please include any additional information or context that may be relevant to your request. - type: checkboxes - id: terms + id: terms-agreement attributes: - label: Please agree to the terms of this form. - description: I acknowledge that I must submit this form as an Epic and notify the cms-team user group in the cms-support Slack channel with a link to the epic that is created. + label: I acknowledge that I must submit this form as an Epic and notify the cms-team user group in the cms-support Slack channel with a link to the Epic that is created. options: - label: I agree. - validations: - required: true + required: true diff --git a/.github/ISSUE_TEMPLATE/pw-clp-request.md b/.github/ISSUE_TEMPLATE/pw-clp-request.md index 2a5a0ef250a..be7b9790e14 100644 --- a/.github/ISSUE_TEMPLATE/pw-clp-request.md +++ b/.github/ISSUE_TEMPLATE/pw-clp-request.md @@ -4,7 +4,7 @@ about: Request a new Campaign Landing Page, owned by Public Websites team title: 'Campaign Landing Page request: ' labels: Needs refining, Public Websites, VA.gov frontend, User support, CLP -assignees: jilladams, wesrowe +assignees: jilladams, FranECross --- diff --git a/.github/ISSUE_TEMPLATE/pw-dark-launch.md b/.github/ISSUE_TEMPLATE/pw-dark-launch.md index 91cc4877400..56e17a93de5 100644 --- a/.github/ISSUE_TEMPLATE/pw-dark-launch.md +++ b/.github/ISSUE_TEMPLATE/pw-dark-launch.md @@ -4,7 +4,7 @@ about: Request to dark launch CMS content that includes React widget, owned by P Websites team title: 'CMS/React content dark launch request: ' labels: Drupal engineering, Needs refining, Public Websites, VA.gov frontend -assignees: jilladams, wesrowe +assignees: jilladams, FranECross --- diff --git a/.github/ISSUE_TEMPLATE/pw-forms-bad-pdf-link-pw.md b/.github/ISSUE_TEMPLATE/pw-forms-bad-pdf-link-pw.md index 7336c1aaa63..dd46c49637a 100644 --- a/.github/ISSUE_TEMPLATE/pw-forms-bad-pdf-link-pw.md +++ b/.github/ISSUE_TEMPLATE/pw-forms-bad-pdf-link-pw.md @@ -3,7 +3,7 @@ name: "(PW) Forms/Bad PDF link defect" about: Forms outages / Bad PDF links, owned by Public Websites team title: 'Forms defect:
' labels: Defect, Find a form, Needs refining, Public Websites -assignees: jilladams, wesrowe +assignees: jilladams, FranECross --- diff --git a/.github/ISSUE_TEMPLATE/taxonomy-add-term.yml b/.github/ISSUE_TEMPLATE/taxonomy-add-term.yml new file mode 100644 index 00000000000..cefd288fd58 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/taxonomy-add-term.yml @@ -0,0 +1,98 @@ + +name: "Taxonomy - Add Term" +description: "Use this template when adding terms to the Service or Benefit taxonomy." +title: "[ADD] (Term name) to (taxonomy name)" +labels: Content, Content governance + +body: + +- type: dropdown + id: which-taxonomy + attributes: + label: Which Taxonomy is this term for? + multiple: false + options: + - VA Benefits taxonomy + - VA services taxonomy + - Other + validations: + required: true +- type: input + id: term-name + attributes: + label: Proposed term name/label + description: e.g. Veterans Pension + validations: + required: true +- type: input + id: machine-name + attributes: + label: Proposed machine name/ API ID + description: va_service_veterans_pension + validations: + required: false +- type: dropdown + id: overlap + attributes: + label: Does this overlap with any existing term in the taxonomy? + multiple: false + options: + - 'Yes' + - 'No' + validations: + required: true +- type: textarea + id: rationale + attributes: + label: Rationale for adding this term + description: Write a short explanation of why this term is needed. Include links to any relevant issues, research findings, etc. + validations: + required: true +- type: dropdown + id: products + attributes: + label: Which products will this term impact? + multiple: true + options: + - VAMCs + - Vet Centers + - VBA Regional Office + - Benefit hubs + - Other + validations: + required: false +- type: dropdown + id: stakeholders + attributes: + label: Have stakeholders from impacted products been consulted? + multiple: false + options: + - 'Yes' + - 'No' + validations: + required: true +- type: dropdown + id: subfields + attributes: + label: Have you drafted content for all the relevant subfields? + multiple: false + options: + - 'Yes' + - 'No' + validations: + required: true +- type: textarea + id: acceptance-critera + attributes: + label: Acceptance Criteria + description: Customize the Acceptance Critera or use the default + value: | + - [ ] Term is reviewed by relevant taxonomy governance body + - [ ] Term is either approved for addition, or denied with an explanation + - [ ] If approved, a Drupal admin from Product team may add the term to the taxonomy + - [ ] Content for subfields is drafted in Drupal by Product team + - [ ] (List any necessary review and approval steps here) + - [ ] Term is published + validations: + required: true + diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 973c49886d8..e2c1bd23732 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -32,6 +32,7 @@ As user _uid_ with _user_role_ - [ ] Code Quality Tests have passed. - [ ] Acceptance Criteria in related issue are met. - [ ] Manual Code Review Approved. +- [ ] If there are field changes, front end output has been thoroughly checked. ### Select Team for PR review diff --git a/.github/workflows/actions-metrics.yml b/.github/workflows/actions-metrics.yml index e9c683c41d1..f680db86c55 100644 --- a/.github/workflows/actions-metrics.yml +++ b/.github/workflows/actions-metrics.yml @@ -11,7 +11,7 @@ jobs: timeout-minutes: 10 steps: - name: Send GitHub Actions metrics to DataDog - uses: int128/datadog-actions-metrics@ddee9ed266fc818c601cadbf6a76624c97b61747 # v1.59.0 + uses: int128/datadog-actions-metrics@df9152b8d6c105a0a6bebb9f8878235abce2c4e0 # v1.63.0 with: datadog-api-key: ${{ secrets.DATADOG_API_KEY }} collect-job-metrics: true diff --git a/.github/workflows/contextual-advice.yml b/.github/workflows/contextual-advice.yml index 059484dc180..9923cacb42b 100644 --- a/.github/workflows/contextual-advice.yml +++ b/.github/workflows/contextual-advice.yml @@ -17,7 +17,7 @@ jobs: # branch or its commits, regardless of provenance. # # Do not execute any code located within the repository! - - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 + - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 with: fetch-depth: 0 ref: ${{ github.event.pull_request.head.sha }} diff --git a/.github/workflows/continuous_integration.yml b/.github/workflows/continuous_integration.yml index 0b031d849e8..8ae74fb953d 100644 --- a/.github/workflows/continuous_integration.yml +++ b/.github/workflows/continuous_integration.yml @@ -11,7 +11,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 + uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - name: Check Corresponding Entity Reference Fields # See also `composer va:test:check-cer` in composer.json run: ./tests/scripts/check-cer.sh @@ -28,7 +28,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 + uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - name: Composer Validate run: composer validate @@ -38,7 +38,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 + uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - name: Post-Checkout Actions uses: ./.github/actions/post-checkout - name: ReviewDog @@ -55,7 +55,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 + uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - name: Post-Checkout Actions uses: ./.github/actions/post-checkout - name: Run PHP_CodeSniffer and ReviewDog @@ -79,7 +79,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 + uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - name: Post-Checkout Actions uses: ./.github/actions/post-checkout - name: Run PHPLint @@ -92,7 +92,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 + uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - name: Post-Checkout Actions uses: ./.github/actions/post-checkout - name: Run PHPStan and ReviewDog @@ -119,7 +119,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 + uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - name: Post-Checkout Actions uses: ./.github/actions/post-checkout - name: Run PHPUnit (Unit Tests only) @@ -136,7 +136,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 + uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - name: Stylelint modules # See also `composer va:test:stylelint-modules` in composer.json uses: reviewdog/action-stylelint@548276a94275c7865effa8d72fa8b6983d9f47c4 # v1.18.1 @@ -164,11 +164,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 + uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 with: fetch-depth: 0 - name: Delete any existing comment. - uses: thollander/actions-comment-pull-request@d61db783da9abefc3437960d0cce08552c7c004f # v2.4.2 + uses: thollander/actions-comment-pull-request@1d3973dc4b8e1399c0620d3f2b1aa5e795465308 # v2.4.3 continue-on-error: true with: comment_tag: check-composer-lock-changes @@ -184,7 +184,7 @@ jobs: echo "LINES_CHANGED=$LINES_CHANGED" >> $GITHUB_ENV echo "THRESHOLD=$THRESHOLD" >> $GITHUB_ENV - name: Comment if composer.lock changes exceed threshold. - uses: thollander/actions-comment-pull-request@d61db783da9abefc3437960d0cce08552c7c004f # v2.4.2 + uses: thollander/actions-comment-pull-request@1d3973dc4b8e1399c0620d3f2b1aa5e795465308 # v2.4.3 if: env.LINES_CHANGED > env.THRESHOLD continue-on-error: true with: diff --git a/.github/workflows/cypress.yml b/.github/workflows/cypress.yml index 38de50b8053..484ff61a094 100644 --- a/.github/workflows/cypress.yml +++ b/.github/workflows/cypress.yml @@ -30,7 +30,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 + uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 with: # When Sorry-Cypress support is enabled on `main`, this should be # removed so that the `main` version of the workflow is used diff --git a/.github/workflows/default-branch-datadog-metrics.yml b/.github/workflows/default-branch-datadog-metrics.yml index 254b3b69392..849868d7af6 100644 --- a/.github/workflows/default-branch-datadog-metrics.yml +++ b/.github/workflows/default-branch-datadog-metrics.yml @@ -11,7 +11,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 + uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - uses: ./.github/actions/post-checkout - name: Find occurrences of "Implements hook" in *.module files. id: hook_implementations @@ -75,7 +75,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 + uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - uses: ./.github/actions/post-checkout - name: Run PHPUnit (Unit Tests only) run: bin/phpunit \ @@ -197,7 +197,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 + uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - uses: ./.github/actions/post-checkout - name: Run PHPLOC and parse output for metrics. id: phploc_code_quality diff --git a/.github/workflows/dependabot-auto-merge.yml b/.github/workflows/dependabot-auto-merge.yml index 4999189b15e..7c68d4871a6 100644 --- a/.github/workflows/dependabot-auto-merge.yml +++ b/.github/workflows/dependabot-auto-merge.yml @@ -21,7 +21,7 @@ jobs: # Checkout repo to make package allow list available - name: Checkout - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 + uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 # Use a YAML formatted config file to list which dependencies can be auto-merged - name: Read list of Allowed Auto-merge Dependencies diff --git a/.github/workflows/pull-request-labels.yml b/.github/workflows/pull-request-labels.yml index d3297b45fca..a69a1cbbf05 100644 --- a/.github/workflows/pull-request-labels.yml +++ b/.github/workflows/pull-request-labels.yml @@ -13,7 +13,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 + uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 with: token: "${{ secrets.GITHUB_TOKEN }}" - name: Autolabel diff --git a/.github/workflows/set-tugboat-tests-pending.yml b/.github/workflows/set-tugboat-tests-pending.yml index 2f8797b1947..dda9db6f8f3 100644 --- a/.github/workflows/set-tugboat-tests-pending.yml +++ b/.github/workflows/set-tugboat-tests-pending.yml @@ -21,7 +21,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 + uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - name: Set status for Tugboat tasks. run: | test_names=( diff --git a/README.md b/README.md index e30981150e8..bc1f4b0c567 100644 --- a/README.md +++ b/README.md @@ -35,7 +35,7 @@ The VA.gov CMS Team 1. [BRD Environments](READMES/brd.md) 1. [HTTPS](READMES/https.md) 1. [Environment Variables](READMES/environment-variables.md) - 1. [Kubernetes](READMES/kubernetes.md) + 1. [Kubernetes](READMES/historical/kubernetes.md) 1. [Alerts](READMES/alerts.md) 1. [GitHub Workflows](READMES/github-workflows.md) 1. [Logging into BRD (e.g. production, staging) instances](READMES/brd-login.md) diff --git a/READMES/content-model-centralized-content.md b/READMES/content-model-centralized-content.md index f5cf669c784..0b62dac6a3f 100644 --- a/READMES/content-model-centralized-content.md +++ b/READMES/content-model-centralized-content.md @@ -45,7 +45,7 @@ The target_type and the target_uuid provide the details about where the content 2. Add a "Centralized Content Descriptor" paragraph that provides the Title and Description for the paragraph that you will be creating next. This will only appear as guidance for the editors on the node you are creating. 3. Add a paragraph of any type that you need to appear where this centralized content is used. Make sure this paragraph is sorted to appear immediately below the Centralized Content Descriptor you created in the previous step. 4. Wait for this content to appear in the sanitized database you pull into your sandbox. -5. On your sandbox, in the entity bundle that will be the destination for the centralized content, add a field of type "Entity Field Fetch field". Prefix the field's machine name with "cc_". In the settings for the set the target entity type as "Node" since the content is coming from a Centralized content node. Set the node id and the machine name of the field and the uuid of the paragraph to be fetched. (with Tome gone, we will need a cleaner way to get the paragraph UUID) +5. On your sandbox, in the entity bundle that will be the destination for the centralized content, add a field of type "Entity Field Fetch field". Prefix the field's machine name with "cc_". In the settings for the set the target entity type as "Node" since the content is coming from a Centralized content node. Set the node id and the machine name of the field and the uuid of the paragraph to be fetched. The [PID can be found here](https://prod.cms.va.gov/admin/content/audit/centralized-content-paragraphs). 6. Add a "Tooltip" field group widget on both the "Manage form display" and "Manage display" tab for the entity. Then move your field_cc_ field(s) into the field group. ![Example Tooltip and entity field fetch arrangement](images/fetch-field.png) 7. Save and export your entity configuration as you would for adding any field. diff --git a/composer.json b/composer.json index d7243f00745..6e6c5fd538a 100644 --- a/composer.json +++ b/composer.json @@ -14,7 +14,6 @@ }, "require": { "alchemy/zippy": "^1.0.0", - "bower-asset/blazy": "^1.8", "bower-asset/cropper": "^4.1", "caxy/php-htmldiff": "^0.1.14", "composer/installers": "^2.2.0", @@ -31,7 +30,6 @@ "drupal/animated_gif": "^2.0", "drupal/auto_entitylabel": "^3.0", "drupal/better_exposed_filters": "^6.0", - "drupal/blazy": "^2.0@RC", "drupal/block_content_permissions": "^1.6", "drupal/cer": "^5.0@beta", "drupal/change_labels": "dev-3326097-remove-dependency-on-drupal-autoservices#7f92f90b456ac2f394dd434257e39e1d9b3086eb", @@ -209,7 +207,7 @@ "symfony/phpunit-bridge": "^5.1", "symfony/process": "^4.0", "symfony/routing": "^4.0", - "va-gov/content-build": "^0.0.3361", + "va-gov/content-build": "^0.0.3372", "vlucas/phpdotenv": "^5.3", "webflo/drupal-finder": "^1.0.0", "webmozart/path-util": "^2.3", diff --git a/composer.lock b/composer.lock index 21ca4e95a67..ff06a7f9045 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": "40cb617afcd249b5e4fcd1a637abffc1", + "content-hash": "2029832df0507f936056503739c48520", "packages": [ { "name": "alchemy/zippy", @@ -185,24 +185,6 @@ }, "time": "2021-12-21T18:37:02+00:00" }, - { - "name": "bower-asset/blazy", - "version": "1.8.2", - "source": { - "type": "git", - "url": "https://github.com/dinbror/blazy.git", - "reference": "5becad405976695e6016ba301be4f22ba61d5b95" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/dinbror/blazy/zipball/5becad405976695e6016ba301be4f22ba61d5b95", - "reference": "5becad405976695e6016ba301be4f22ba61d5b95" - }, - "type": "bower-asset", - "license": [ - "MIT" - ] - }, { "name": "bower-asset/cropper", "version": "v4.1.0", @@ -1289,16 +1271,16 @@ }, { "name": "datadog/dd-trace", - "version": "0.92.1", + "version": "0.92.2", "source": { "type": "git", "url": "https://github.com/DataDog/dd-trace-php.git", - "reference": "548306ba6879b719afda4037c4a85c2d46bc9f73" + "reference": "d1546b6ea4dded0a23d0640fd91ea5536d6fdaa7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/DataDog/dd-trace-php/zipball/548306ba6879b719afda4037c4a85c2d46bc9f73", - "reference": "548306ba6879b719afda4037c4a85c2d46bc9f73", + "url": "https://api.github.com/repos/DataDog/dd-trace-php/zipball/d1546b6ea4dded0a23d0640fd91ea5536d6fdaa7", + "reference": "d1546b6ea4dded0a23d0640fd91ea5536d6fdaa7", "shasum": "" }, "require": { @@ -1377,9 +1359,9 @@ ], "support": { "issues": "https://github.com/DataDog/dd-trace-php/issues", - "source": "https://github.com/DataDog/dd-trace-php/tree/0.92.1" + "source": "https://github.com/DataDog/dd-trace-php/tree/0.92.2" }, - "time": "2023-10-02T09:37:49+00:00" + "time": "2023-10-06T14:25:02+00:00" }, { "name": "davedevelopment/stiphle", @@ -2956,73 +2938,6 @@ "issues": "https://www.drupal.org/project/issues/better_exposed_filters" } }, - { - "name": "drupal/blazy", - "version": "2.16.0", - "source": { - "type": "git", - "url": "https://git.drupalcode.org/project/blazy.git", - "reference": "8.x-2.16" - }, - "dist": { - "type": "zip", - "url": "https://ftp.drupal.org/files/projects/blazy-8.x-2.16.zip", - "reference": "8.x-2.16", - "shasum": "ae84ac6083f734968eb9c7cc008b32aaa04c5b9c" - }, - "require": { - "drupal/core": "^8.8 || ^9 || ^10" - }, - "conflict": { - "drupal/csp": "<1.12" - }, - "type": "drupal-module", - "extra": { - "drupal": { - "version": "8.x-2.16", - "datestamp": "1685788557", - "security-coverage": { - "status": "covered", - "message": "Covered by Drupal's security advisory policy" - } - } - }, - "notification-url": "https://packages.drupal.org/8/downloads", - "license": [ - "GPL-2.0-or-later" - ], - "authors": [ - { - "name": "Gaus Surahman", - "homepage": "https://www.drupal.org/u/gausarts", - "role": "Maintainer" - }, - { - "name": "Contributors", - "homepage": "https://www.drupal.org/node/2663268/committers", - "role": "Contributor" - }, - { - "name": "geek-merlin", - "homepage": "https://www.drupal.org/user/229048" - }, - { - "name": "sun", - "homepage": "https://www.drupal.org/user/54136" - } - ], - "description": "Provides basic bLazy integration for lazy loading and multi-serving images.", - "homepage": "https://drupal.org/project/blazy", - "keywords": [ - "Drupal", - "bLazy", - "lazyload" - ], - "support": { - "source": "https://git.drupalcode.org/project/blazy", - "issues": "https://drupal.org/project/issues/blazy" - } - }, { "name": "drupal/block_content_permissions", "version": "1.11.0", @@ -3786,17 +3701,17 @@ }, { "name": "drupal/content_model_documentation", - "version": "1.0.19", + "version": "1.0.20", "source": { "type": "git", "url": "https://git.drupalcode.org/project/content_model_documentation.git", - "reference": "1.0.19" + "reference": "1.0.20" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/content_model_documentation-1.0.19.zip", - "reference": "1.0.19", - "shasum": "bac03355471ad98736c8894ca63f296a873ce5f9" + "url": "https://ftp.drupal.org/files/projects/content_model_documentation-1.0.20.zip", + "reference": "1.0.20", + "shasum": "99212baab48cfdd16e86143a87ab5caebe099da9" }, "require": { "drupal/config_views": "~2.1", @@ -3806,8 +3721,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "1.0.19", - "datestamp": "1696860039", + "version": "1.0.20", + "datestamp": "1697598127", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -5898,17 +5813,17 @@ }, { "name": "drupal/environment_indicator", - "version": "4.0.15", + "version": "4.0.17", "source": { "type": "git", "url": "https://git.drupalcode.org/project/environment_indicator.git", - "reference": "4.0.15" + "reference": "4.0.17" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/environment_indicator-4.0.15.zip", - "reference": "4.0.15", - "shasum": "0db0591160af483a3c069aac955bed9e5eced252" + "url": "https://ftp.drupal.org/files/projects/environment_indicator-4.0.17.zip", + "reference": "4.0.17", + "shasum": "d6bf00046516aaa027e5e91aaac0800e280b5160" }, "require": { "drupal/core": "^9.2 || ^10" @@ -5916,8 +5831,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "4.0.15", - "datestamp": "1693578336", + "version": "4.0.17", + "datestamp": "1696608287", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -5930,19 +5845,21 @@ ], "authors": [ { - "name": "e0ipso", - "homepage": "https://www.drupal.org/user/550110" + "name": "Mateu Aguiló Bosch", + "homepage": "https://www.drupal.org/user/550110", + "email": "mateu@mateuaguilo.com" }, { - "name": "isholgueras", - "homepage": "https://www.drupal.org/user/733162" + "name": "Ignacio Sánchez", + "homepage": "https://www.drupal.org/user/733162", + "email": "nacho@isholgueras.com" }, { "name": "mrfelton", "homepage": "https://www.drupal.org/user/305669" } ], - "description": "Adds a color indicator for the different environments.", + "description": "Environment Indicator adds some visual cuest to indicate which copy of the site are you interacting with", "homepage": "https://www.drupal.org/project/environment_indicator", "support": { "source": "https://git.drupalcode.org/project/environment_indicator" @@ -6659,17 +6576,17 @@ }, { "name": "drupal/geofield_map", - "version": "3.0.12", + "version": "3.0.14", "source": { "type": "git", "url": "https://git.drupalcode.org/project/geofield_map.git", - "reference": "3.0.12" + "reference": "3.0.14" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/geofield_map-3.0.12.zip", - "reference": "3.0.12", - "shasum": "ef0d5af83607c4fe84e8c1ac9960fa93beefaa98" + "url": "https://ftp.drupal.org/files/projects/geofield_map-3.0.14.zip", + "reference": "3.0.14", + "shasum": "8f87ab5587f113e415fc09091f62f2425843e123" }, "require": { "drupal/core": "^9.3 || ^10", @@ -6678,8 +6595,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "3.0.12", - "datestamp": "1693440081", + "version": "3.0.14", + "datestamp": "1696883247", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -8252,17 +8169,17 @@ }, { "name": "drupal/limited_field_widgets", - "version": "2.1.0-alpha1", + "version": "2.1.0-beta1", "source": { "type": "git", "url": "https://git.drupalcode.org/project/limited_field_widgets.git", - "reference": "2.1.0-alpha1" + "reference": "2.1.0-beta1" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/limited_field_widgets-2.1.0-alpha1.zip", - "reference": "2.1.0-alpha1", - "shasum": "e1f7844901412ae96369af5c315e605b445866f3" + "url": "https://ftp.drupal.org/files/projects/limited_field_widgets-2.1.0-beta1.zip", + "reference": "2.1.0-beta1", + "shasum": "2eac2a75bf5f93924205650d51054541c9e9430e" }, "require": { "drupal/core": ">=9.2" @@ -8270,11 +8187,11 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "2.1.0-alpha1", - "datestamp": "1675686521", + "version": "2.1.0-beta1", + "datestamp": "1697010667", "security-coverage": { "status": "not-covered", - "message": "Alpha releases are not covered by Drupal security advisories." + "message": "Beta releases are not covered by Drupal security advisories." } } }, @@ -9842,17 +9759,17 @@ }, { "name": "drupal/mimemail", - "version": "1.0.0-alpha5", + "version": "1.0.0-alpha6", "source": { "type": "git", "url": "https://git.drupalcode.org/project/mimemail.git", - "reference": "8.x-1.0-alpha5" + "reference": "8.x-1.0-alpha6" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/mimemail-8.x-1.0-alpha5.zip", - "reference": "8.x-1.0-alpha5", - "shasum": "a3dd29ad5e137bcdeb1c6165654ed79e26553456" + "url": "https://ftp.drupal.org/files/projects/mimemail-8.x-1.0-alpha6.zip", + "reference": "8.x-1.0-alpha6", + "shasum": "c25246747dac4372c7d5a5a5fd0f276d9e468eff" }, "require": { "drupal/core": "^9.3 || ^10", @@ -9864,8 +9781,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "8.x-1.0-alpha5", - "datestamp": "1679607103", + "version": "8.x-1.0-alpha6", + "datestamp": "1697143284", "security-coverage": { "status": "not-covered", "message": "Alpha releases are not covered by Drupal security advisories." @@ -10204,17 +10121,17 @@ }, { "name": "drupal/office_hours", - "version": "1.11.0", + "version": "1.12.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/office_hours.git", - "reference": "8.x-1.11" + "reference": "8.x-1.12" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/office_hours-8.x-1.11.zip", - "reference": "8.x-1.11", - "shasum": "5a797e47bc91770ca897aa27767b8614895b1a68" + "url": "https://ftp.drupal.org/files/projects/office_hours-8.x-1.12.zip", + "reference": "8.x-1.12", + "shasum": "e6b88520935adffc0361ab3a80dd44b76b77b9a9" }, "require": { "drupal/core": "^8 || ^9 || ^10" @@ -10222,8 +10139,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "8.x-1.11", - "datestamp": "1686759510", + "version": "8.x-1.12", + "datestamp": "1696706142", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -10883,17 +10800,17 @@ }, { "name": "drupal/pathauto", - "version": "1.11.0", + "version": "1.12.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/pathauto.git", - "reference": "8.x-1.11" + "reference": "8.x-1.12" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/pathauto-8.x-1.11.zip", - "reference": "8.x-1.11", - "shasum": "a006fe9e6046a9833711a1ae56aa4752e65bcdc8" + "url": "https://ftp.drupal.org/files/projects/pathauto-8.x-1.12.zip", + "reference": "8.x-1.12", + "shasum": "b7b6432e315e38e59a7c6cc117134326c580de4c" }, "require": { "drupal/core": "^9.3 || ^10", @@ -10906,8 +10823,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "8.x-1.11", - "datestamp": "1660129564", + "version": "8.x-1.12", + "datestamp": "1696776683", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -12117,17 +12034,17 @@ }, { "name": "drupal/string_field_formatter", - "version": "2.0.2", + "version": "2.0.3", "source": { "type": "git", "url": "https://git.drupalcode.org/project/string_field_formatter.git", - "reference": "2.0.2" + "reference": "2.0.3" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/string_field_formatter-2.0.2.zip", - "reference": "2.0.2", - "shasum": "22055a38ffaa0de12802be186bf348c1aeb1a52f" + "url": "https://ftp.drupal.org/files/projects/string_field_formatter-2.0.3.zip", + "reference": "2.0.3", + "shasum": "1268d1ac2c811130e3524700639ef9c42f83f8c1" }, "require": { "drupal/core": "^8 || ^9 || ^10" @@ -12135,8 +12052,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "2.0.2", - "datestamp": "1687527067", + "version": "2.0.3", + "datestamp": "1696786969", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -12151,6 +12068,10 @@ { "name": "Denes.Szabo", "homepage": "https://www.drupal.org/user/582668" + }, + { + "name": "xmacinfo", + "homepage": "https://www.drupal.org/user/12131" } ], "description": "Adds formatters to plain string type field.", @@ -15158,33 +15079,33 @@ }, { "name": "laminas/laminas-escaper", - "version": "2.12.0", + "version": "2.13.0", "source": { "type": "git", "url": "https://github.com/laminas/laminas-escaper.git", - "reference": "ee7a4c37bf3d0e8c03635d5bddb5bb3184ead490" + "reference": "af459883f4018d0f8a0c69c7a209daef3bf973ba" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laminas/laminas-escaper/zipball/ee7a4c37bf3d0e8c03635d5bddb5bb3184ead490", - "reference": "ee7a4c37bf3d0e8c03635d5bddb5bb3184ead490", + "url": "https://api.github.com/repos/laminas/laminas-escaper/zipball/af459883f4018d0f8a0c69c7a209daef3bf973ba", + "reference": "af459883f4018d0f8a0c69c7a209daef3bf973ba", "shasum": "" }, "require": { "ext-ctype": "*", "ext-mbstring": "*", - "php": "^7.4 || ~8.0.0 || ~8.1.0 || ~8.2.0" + "php": "~8.1.0 || ~8.2.0 || ~8.3.0" }, "conflict": { "zendframework/zend-escaper": "*" }, "require-dev": { - "infection/infection": "^0.26.6", - "laminas/laminas-coding-standard": "~2.4.0", + "infection/infection": "^0.27.0", + "laminas/laminas-coding-standard": "~2.5.0", "maglnet/composer-require-checker": "^3.8.0", - "phpunit/phpunit": "^9.5.18", - "psalm/plugin-phpunit": "^0.17.0", - "vimeo/psalm": "^4.22.0" + "phpunit/phpunit": "^9.6.7", + "psalm/plugin-phpunit": "^0.18.4", + "vimeo/psalm": "^5.9" }, "type": "library", "autoload": { @@ -15216,20 +15137,20 @@ "type": "community_bridge" } ], - "time": "2022-10-10T10:11:09+00:00" + "time": "2023-10-10T08:35:13+00:00" }, { "name": "laminas/laminas-feed", - "version": "2.21.0", + "version": "2.22.0", "source": { "type": "git", "url": "https://github.com/laminas/laminas-feed.git", - "reference": "52918789a417bc292ccd6fbb4b91bd78a65d50ab" + "reference": "669792b819fca7274698147ad7a2ecc1b0a9b141" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laminas/laminas-feed/zipball/52918789a417bc292ccd6fbb4b91bd78a65d50ab", - "reference": "52918789a417bc292ccd6fbb4b91bd78a65d50ab", + "url": "https://api.github.com/repos/laminas/laminas-feed/zipball/669792b819fca7274698147ad7a2ecc1b0a9b141", + "reference": "669792b819fca7274698147ad7a2ecc1b0a9b141", "shasum": "" }, "require": { @@ -15237,24 +15158,24 @@ "ext-libxml": "*", "laminas/laminas-escaper": "^2.9", "laminas/laminas-stdlib": "^3.6", - "php": "~8.1.0 || ~8.2.0" + "php": "~8.1.0 || ~8.2.0 || ~8.3.0" }, "conflict": { "laminas/laminas-servicemanager": "<3.3", "zendframework/zend-feed": "*" }, "require-dev": { - "laminas/laminas-cache": "^2.13.2 || ^3.10.1", + "laminas/laminas-cache": "^2.13.2 || ^3.11", "laminas/laminas-cache-storage-adapter-memory": "^1.1.0 || ^2.2", "laminas/laminas-coding-standard": "~2.5.0", "laminas/laminas-db": "^2.18", "laminas/laminas-http": "^2.18", "laminas/laminas-servicemanager": "^3.21.0", - "laminas/laminas-validator": "^2.30.1", - "phpunit/phpunit": "^10.2.6", + "laminas/laminas-validator": "^2.38", + "phpunit/phpunit": "^10.3.1", "psalm/plugin-phpunit": "^0.18.4", "psr/http-message": "^2.0", - "vimeo/psalm": "^5.13.1" + "vimeo/psalm": "^5.14.1" }, "suggest": { "laminas/laminas-cache": "Laminas\\Cache component, for optionally caching feeds between requests", @@ -15296,25 +15217,25 @@ "type": "community_bridge" } ], - "time": "2023-07-24T09:21:16+00:00" + "time": "2023-10-11T20:16:37+00:00" }, { "name": "laminas/laminas-servicemanager", - "version": "3.21.0", + "version": "3.22.0", "source": { "type": "git", "url": "https://github.com/laminas/laminas-servicemanager.git", - "reference": "625f2aa3bc6dd02688b2da5155b3a69870812bda" + "reference": "b4f547078af2ac3173cbe4a64e8fdfbd626c77ae" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laminas/laminas-servicemanager/zipball/625f2aa3bc6dd02688b2da5155b3a69870812bda", - "reference": "625f2aa3bc6dd02688b2da5155b3a69870812bda", + "url": "https://api.github.com/repos/laminas/laminas-servicemanager/zipball/b4f547078af2ac3173cbe4a64e8fdfbd626c77ae", + "reference": "b4f547078af2ac3173cbe4a64e8fdfbd626c77ae", "shasum": "" }, "require": { "laminas/laminas-stdlib": "^3.17", - "php": "~8.1.0 || ~8.2.0", + "php": "~8.1.0 || ~8.2.0 || ~8.3.0", "psr/container": "^1.0" }, "conflict": { @@ -15335,10 +15256,9 @@ "laminas/laminas-code": "^4.10.0", "laminas/laminas-coding-standard": "~2.5.0", "laminas/laminas-container-config-test": "^0.8", - "laminas/laminas-dependency-plugin": "^2.2", "mikey179/vfsstream": "^1.6.11", "phpbench/phpbench": "^1.2.9", - "phpunit/phpunit": "^10.0.17", + "phpunit/phpunit": "^10.4", "psalm/plugin-phpunit": "^0.18.4", "vimeo/psalm": "^5.8.0" }, @@ -15387,7 +15307,7 @@ "type": "community_bridge" } ], - "time": "2023-05-14T12:24:54+00:00" + "time": "2023-10-10T21:23:36+00:00" }, { "name": "laminas/laminas-stdlib", @@ -18456,16 +18376,16 @@ }, { "name": "phpstan/phpstan", - "version": "1.10.37", + "version": "1.10.39", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "058ba07e92f744d4dcf6061ae75283d0c6456f2e" + "reference": "d9dedb0413f678b4d03cbc2279a48f91592c97c4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/058ba07e92f744d4dcf6061ae75283d0c6456f2e", - "reference": "058ba07e92f744d4dcf6061ae75283d0c6456f2e", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/d9dedb0413f678b4d03cbc2279a48f91592c97c4", + "reference": "d9dedb0413f678b4d03cbc2279a48f91592c97c4", "shasum": "" }, "require": { @@ -18514,7 +18434,7 @@ "type": "tidelift" } ], - "time": "2023-10-02T16:18:37+00:00" + "time": "2023-10-17T15:46:26+00:00" }, { "name": "phpstan/phpstan-deprecation-rules", @@ -26972,16 +26892,16 @@ }, { "name": "va-gov/content-build", - "version": "v0.0.3361", + "version": "v0.0.3372", "source": { "type": "git", "url": "https://github.com/department-of-veterans-affairs/content-build.git", - "reference": "0ed083795827bf0d7b2c4d0fd116d3352c50521a" + "reference": "b2c66f1be86b262b28b6c086c217e6a308b3bfd7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/department-of-veterans-affairs/content-build/zipball/0ed083795827bf0d7b2c4d0fd116d3352c50521a", - "reference": "0ed083795827bf0d7b2c4d0fd116d3352c50521a", + "url": "https://api.github.com/repos/department-of-veterans-affairs/content-build/zipball/b2c66f1be86b262b28b6c086c217e6a308b3bfd7", + "reference": "b2c66f1be86b262b28b6c086c217e6a308b3bfd7", "shasum": "" }, "type": "node-project", @@ -27008,9 +26928,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.3361" + "source": "https://github.com/department-of-veterans-affairs/content-build/tree/v0.0.3372" }, - "time": "2023-10-06T17:03:27+00:00" + "time": "2023-10-23T14:31:55+00:00" }, { "name": "vlucas/phpdotenv", @@ -27300,16 +27220,16 @@ }, { "name": "weitzman/drupal-test-traits", - "version": "2.1.0", + "version": "2.2.0", "source": { "type": "git", "url": "git@gitlab.com:weitzman/drupal-test-traits.git", - "reference": "e40ee4e8e41f229d297c5e714fd63c4a00c633a2" + "reference": "9ef44f5cd5eef942c84f2d2ffd21734944d566f8" }, "dist": { "type": "zip", - "url": "https://gitlab.com/api/v4/projects/weitzman%2Fdrupal-test-traits/repository/archive.zip?sha=e40ee4e8e41f229d297c5e714fd63c4a00c633a2", - "reference": "e40ee4e8e41f229d297c5e714fd63c4a00c633a2", + "url": "https://gitlab.com/api/v4/projects/weitzman%2Fdrupal-test-traits/repository/archive.zip?sha=9ef44f5cd5eef942c84f2d2ffd21734944d566f8", + "reference": "9ef44f5cd5eef942c84f2d2ffd21734944d566f8", "shasum": "" }, "require": { @@ -27349,7 +27269,7 @@ } ], "description": "Traits for testing Drupal sites that have user content (versus unpopulated sites).", - "time": "2023-04-23T03:17:53+00:00" + "time": "2023-10-13T22:55:15+00:00" }, { "name": "whitehat101/apr1-md5", @@ -27820,7 +27740,6 @@ "minimum-stability": "dev", "stability-flags": { "drupal/advancedqueue": 5, - "drupal/blazy": 5, "drupal/cer": 10, "drupal/change_labels": 20, "drupal/components": 10, diff --git a/config/sync/core.base_field_override.node.vet_center_outstation.title.yml b/config/sync/core.base_field_override.node.vet_center_outstation.title.yml index 3f04877275d..f78b811862e 100644 --- a/config/sync/core.base_field_override.node.vet_center_outstation.title.yml +++ b/config/sync/core.base_field_override.node.vet_center_outstation.title.yml @@ -8,7 +8,7 @@ id: node.vet_center_outstation.title field_name: title entity_type: node bundle: vet_center_outstation -label: Title +label: 'Common name' description: '' required: true translatable: false diff --git a/config/sync/core.entity_form_display.node.campaign_landing_page.default.yml b/config/sync/core.entity_form_display.node.campaign_landing_page.default.yml index 3ea5747164a..502fc55305f 100644 --- a/config/sync/core.entity_form_display.node.campaign_landing_page.default.yml +++ b/config/sync/core.entity_form_display.node.campaign_landing_page.default.yml @@ -19,6 +19,7 @@ dependencies: - field.field.node.campaign_landing_page.field_clp_resources_header - field.field.node.campaign_landing_page.field_clp_resources_intro_text - field.field.node.campaign_landing_page.field_clp_resources_panel + - field.field.node.campaign_landing_page.field_clp_reusable_q_a - field.field.node.campaign_landing_page.field_clp_spotlight_cta - field.field.node.campaign_landing_page.field_clp_spotlight_header - field.field.node.campaign_landing_page.field_clp_spotlight_intro_text @@ -261,6 +262,7 @@ third_party_settings: children: - field_clp_faq_panel - field_clp_faq_paragraphs + - field_clp_reusable_q_a - field_clp_faq_cta label: FAQs region: content @@ -268,7 +270,7 @@ third_party_settings: weight: 8 format_type: detailswithimage format_settings: - description: 'This optional segment allows you to add reusable question and answer content related to the campaign''s message.' + description: 'This optional segment allows you to add question and answer content related to the campaign''s message. Choose between creating a page-specific Q&A or adding a reusable Q&A. ' visual_guide_file_name: faqs-guide.svg visual_guide_alt_text: 'Basic visual layout of the faqs page segment.' required_fields: '1' @@ -315,6 +317,8 @@ content: field_widget_replace: 0 open: 0 field_widget_display_settings: { } + additional_fields: + options: null third_party_settings: limited_field_widgets: limit_values: '2' @@ -343,6 +347,7 @@ content: maxlength: 70 counter_position: after js_prevent_submit: true + count_only_mode: false count_html_characters: false textcount_status_message: '@remaining_count characters remaining' third_party_settings: { } @@ -367,10 +372,12 @@ content: selection_mode: selection_append field_widget_edit: 0 field_widget_replace: 0 + additional_fields: + options: null third_party_settings: { } field_clp_faq_cta: type: paragraphs - weight: 40 + weight: 42 region: content settings: title: Paragraph @@ -389,14 +396,14 @@ content: third_party_settings: { } field_clp_faq_panel: type: boolean_checkbox - weight: 36 + weight: 39 region: content settings: display_label: true third_party_settings: { } field_clp_faq_paragraphs: type: paragraphs - weight: 37 + weight: 40 region: content settings: title: Paragraph @@ -431,6 +438,7 @@ content: collapsible: false collapsed: false revision: true + removed_reference: optional allow_system_delete: false third_party_settings: entity_browser_entity_form: @@ -465,6 +473,7 @@ content: maxlength: 70 counter_position: after js_prevent_submit: true + count_only_mode: false count_html_characters: false textcount_status_message: '@remaining_count characters remaining' third_party_settings: { } @@ -478,6 +487,7 @@ content: maxlength: 350 counter_position: after js_prevent_submit: true + count_only_mode: false count_html_characters: false textcount_status_message: "Maximum @maxlength characters, but 120 characters is recommended. @current_length characters, @remaining_count characters remaining\r\n" third_party_settings: { } @@ -488,6 +498,34 @@ content: settings: display_label: true third_party_settings: { } + field_clp_reusable_q_a: + type: paragraphs + weight: 41 + region: content + settings: + title: Paragraph + title_plural: Paragraphs + edit_mode: open + closed_mode: summary + autocollapse: none + closed_mode_threshold: 0 + add_mode: button + form_display_mode: default + default_paragraph_type: _none + features: + add_above: '0' + collapse_edit_all: collapse_edit_all + duplicate: duplicate + third_party_settings: + paragraphs_features: + add_in_between: false + add_in_between_link_count: 3 + delete_confirmation: false + show_drag_and_drop: true + limited_field_widgets: + limit_values: '0' + change_labels: + add_another: '' field_clp_spotlight_cta: type: paragraphs weight: 16 @@ -517,6 +555,7 @@ content: maxlength: 0 counter_position: after js_prevent_submit: true + count_only_mode: false count_html_characters: true textcount_status_message: 'Maxlength: @maxlength
Used: @current_length
Remaining: @remaining_count' third_party_settings: { } @@ -530,6 +569,7 @@ content: maxlength: 350 counter_position: after js_prevent_submit: true + count_only_mode: false count_html_characters: false textcount_status_message: '@remaining_count characters remaining' third_party_settings: { } @@ -582,6 +622,7 @@ content: maxlength: 70 counter_position: after js_prevent_submit: true + count_only_mode: false count_html_characters: false textcount_status_message: '@remaining_count characters remaining.' third_party_settings: { } @@ -595,6 +636,7 @@ content: maxlength: 350 counter_position: after js_prevent_submit: true + count_only_mode: false count_html_characters: false textcount_status_message: 'Maximum @maxlength characters, but 120 characters is recommended.
@current_length characters,
@remaining_count characters remaining.' third_party_settings: { } @@ -635,6 +677,7 @@ content: maxlength: 0 counter_position: after js_prevent_submit: true + count_only_mode: false count_html_characters: false textcount_status_message: '@remaining_count characters remaining' third_party_settings: { } @@ -666,6 +709,7 @@ content: maxlength: 0 counter_position: after js_prevent_submit: true + count_only_mode: false count_html_characters: false textcount_status_message: 'Characters remaining: @remaining_count' third_party_settings: { } @@ -679,6 +723,7 @@ content: maxlength: 300 counter_position: after js_prevent_submit: true + count_only_mode: false count_html_characters: false textcount_status_message: '@remaining_count characters remaining' third_party_settings: { } @@ -698,6 +743,7 @@ content: collapsible: false collapsed: false revision: true + removed_reference: optional allow_system_delete: false third_party_settings: entity_browser_entity_form: @@ -712,6 +758,7 @@ content: maxlength: 350 counter_position: after js_prevent_submit: true + count_only_mode: false count_html_characters: false textcount_status_message: '@remaining_count characters remaining' third_party_settings: { } @@ -726,6 +773,7 @@ content: maxlength: 0 counter_position: after js_prevent_submit: true + count_only_mode: false count_html_characters: false textcount_status_message: '@remaining_count characters remaining' third_party_settings: { } @@ -833,6 +881,7 @@ content: maxlength: 70 counter_position: after js_prevent_submit: true + count_only_mode: false count_html_characters: false textcount_status_message: '@remaining_count characters remaining' third_party_settings: { } diff --git a/config/sync/core.entity_form_display.node.event.default.yml b/config/sync/core.entity_form_display.node.event.default.yml index 7fbdfbd4b77..8c99f87f35d 100644 --- a/config/sync/core.entity_form_display.node.event.default.yml +++ b/config/sync/core.entity_form_display.node.event.default.yml @@ -23,7 +23,6 @@ dependencies: - field.field.node.event.field_media - field.field.node.event.field_meta_tags - field.field.node.event.field_order - - field.field.node.event.field_publish_to_outreach_cal - field.field.node.event.field_url_of_an_online_event - node.type.event - workflows.workflow.editorial @@ -47,7 +46,7 @@ third_party_settings: label: 'Section settings' region: content parent_name: '' - weight: 9 + weight: 8 format_type: details_sidebar format_settings: classes: '' @@ -65,7 +64,7 @@ third_party_settings: label: Location region: content parent_name: '' - weight: 8 + weight: 7 format_type: details format_settings: classes: '' @@ -82,7 +81,7 @@ third_party_settings: label: Registration region: content parent_name: '' - weight: 7 + weight: 6 format_type: fieldset format_settings: classes: '' @@ -143,7 +142,7 @@ third_party_settings: label: 'Meta Tags' region: content parent_name: '' - weight: 6 + weight: 5 format_type: fieldset format_settings: classes: '' @@ -174,7 +173,7 @@ third_party_settings: label: Free region: content parent_name: group_all_events_are_free - weight: 32 + weight: 15 format_type: html_element format_settings: classes: '' @@ -201,7 +200,7 @@ content: third_party_settings: { } field_additional_information_abo: type: text_textarea - weight: 32 + weight: 31 region: content settings: rows: 5 @@ -221,7 +220,7 @@ content: third_party_settings: { } field_body: type: text_textarea - weight: 5 + weight: 4 region: content settings: rows: 5 @@ -259,10 +258,7 @@ content: custom show_extra: true hide_date: false - separator: to add_abbreviations: '' - allday: true - remove_seconds: false third_party_settings: smart_date_recur: modal: true @@ -322,7 +318,7 @@ content: third_party_settings: { } field_last_saved_by_an_editor: type: datetime_timestamp - weight: 16 + weight: 44 region: content settings: { } third_party_settings: { } @@ -341,11 +337,7 @@ content: weight: 2 region: content settings: { } - third_party_settings: - limited_field_widgets: - limit_values: '1' - change_labels: - add_another: '' + third_party_settings: { } field_location_humanreadable: type: string_textfield weight: 16 @@ -362,7 +354,7 @@ content: third_party_settings: { } field_media: type: media_library_widget - weight: 4 + weight: 3 region: content settings: media_types: { } @@ -373,13 +365,6 @@ content: region: content settings: { } third_party_settings: { } - field_publish_to_outreach_cal: - type: boolean_checkbox - weight: 3 - region: content - settings: - display_label: true - third_party_settings: { } field_url_of_an_online_event: type: linkit weight: 15 diff --git a/config/sync/core.entity_form_display.node.vet_center_outstation.default.yml b/config/sync/core.entity_form_display.node.vet_center_outstation.default.yml index 033e200c52c..f7e5cc6b5c0 100644 --- a/config/sync/core.entity_form_display.node.vet_center_outstation.default.yml +++ b/config/sync/core.entity_form_display.node.vet_center_outstation.default.yml @@ -11,6 +11,7 @@ dependencies: - field.field.node.vet_center_outstation.field_media - field.field.node.vet_center_outstation.field_office - field.field.node.vet_center_outstation.field_office_hours + - field.field.node.vet_center_outstation.field_official_name - field.field.node.vet_center_outstation.field_operating_status_facility - field.field.node.vet_center_outstation.field_operating_status_more_info - field.field.node.vet_center_outstation.field_phone_number @@ -39,7 +40,7 @@ third_party_settings: label: 'Editorial workflow' region: content parent_name: '' - weight: 7 + weight: 6 format_type: fieldset format_settings: classes: '' @@ -52,7 +53,7 @@ third_party_settings: label: 'Section settings' region: content parent_name: '' - weight: 6 + weight: 5 format_type: details_sidebar format_settings: classes: '' @@ -63,12 +64,13 @@ third_party_settings: weight: 0 group_facility_name: children: - - group_page_title_tooltip + - field_official_name + - title - field_office label: 'Facility name' region: content parent_name: '' - weight: 1 + weight: 2 format_type: fieldset format_settings: classes: '' @@ -76,24 +78,6 @@ third_party_settings: id: facility-name description: '' required_fields: true - group_page_title_tooltip: - children: { } - label: 'Page title' - region: content - parent_name: group_facility_name - weight: 20 - format_type: tooltip - format_settings: - show_empty_fields: '1' - show_label: '0' - tooltip_description: "Why can’t I edit this?\r\nThis content is automatically populated from centralized databases, and helps maintain consistent information across all of VA.gov." - description: 'Page title' - required_fields: '1' - id: '' - classes: 'not-editable ' - element: div - label_element: h3 - attributes: '' group_locations_and_contact_info: children: - group_vet_center_data @@ -115,7 +99,7 @@ third_party_settings: label: 'Operating status' region: content parent_name: '' - weight: 2 + weight: 1 format_type: fieldset format_settings: classes: '' @@ -181,20 +165,20 @@ content: third_party_settings: { } field_last_saved_by_an_editor: type: datetime_timestamp - weight: 26 + weight: 7 region: content settings: { } third_party_settings: { } field_media: type: media_library_widget - weight: 5 + weight: 4 region: content settings: media_types: { } third_party_settings: { } field_office: type: options_select - weight: 21 + weight: 15 region: content settings: { } third_party_settings: { } @@ -202,7 +186,16 @@ content: type: office_hours_default weight: 25 region: content - settings: { } + settings: + collapsed: false + third_party_settings: { } + field_official_name: + type: string_textfield + weight: 9 + region: content + settings: + size: 60 + placeholder: '' third_party_settings: { } field_operating_status_facility: type: options_select @@ -220,6 +213,7 @@ content: maxlength: 300 counter_position: after js_prevent_submit: true + count_only_mode: false count_html_characters: true textcount_status_message: '@remaining_count characters remaining' third_party_settings: { } @@ -253,6 +247,14 @@ content: region: content settings: { } third_party_settings: { } + title: + type: string_textfield + weight: 11 + region: content + settings: + size: 60 + placeholder: '' + third_party_settings: { } hidden: created: true langcode: true @@ -260,6 +262,5 @@ hidden: promote: true status: true sticky: true - title: true uid: true url_redirects: true diff --git a/config/sync/core.entity_view_display.node.campaign_landing_page.default.yml b/config/sync/core.entity_view_display.node.campaign_landing_page.default.yml index 0c7a83f0942..0dc2e5b421f 100644 --- a/config/sync/core.entity_view_display.node.campaign_landing_page.default.yml +++ b/config/sync/core.entity_view_display.node.campaign_landing_page.default.yml @@ -17,6 +17,7 @@ dependencies: - field.field.node.campaign_landing_page.field_clp_resources_header - field.field.node.campaign_landing_page.field_clp_resources_intro_text - field.field.node.campaign_landing_page.field_clp_resources_panel + - field.field.node.campaign_landing_page.field_clp_reusable_q_a - field.field.node.campaign_landing_page.field_clp_spotlight_cta - field.field.node.campaign_landing_page.field_clp_spotlight_header - field.field.node.campaign_landing_page.field_clp_spotlight_intro_text @@ -307,6 +308,15 @@ content: third_party_settings: { } weight: 16 region: content + field_clp_reusable_q_a: + type: entity_reference_revisions_entity_view + label: above + settings: + view_mode: default + link: '' + third_party_settings: { } + weight: 28 + region: content field_clp_spotlight_cta: type: entity_reference_revisions_entity_view label: above diff --git a/config/sync/core.entity_view_display.node.campaign_landing_page.teaser.yml b/config/sync/core.entity_view_display.node.campaign_landing_page.teaser.yml index 946e675741b..b43aab7f65a 100644 --- a/config/sync/core.entity_view_display.node.campaign_landing_page.teaser.yml +++ b/config/sync/core.entity_view_display.node.campaign_landing_page.teaser.yml @@ -18,6 +18,7 @@ dependencies: - field.field.node.campaign_landing_page.field_clp_resources_header - field.field.node.campaign_landing_page.field_clp_resources_intro_text - field.field.node.campaign_landing_page.field_clp_resources_panel + - field.field.node.campaign_landing_page.field_clp_reusable_q_a - field.field.node.campaign_landing_page.field_clp_spotlight_cta - field.field.node.campaign_landing_page.field_clp_spotlight_header - field.field.node.campaign_landing_page.field_clp_spotlight_intro_text @@ -75,6 +76,7 @@ hidden: field_clp_resources_header: true field_clp_resources_intro_text: true field_clp_resources_panel: true + field_clp_reusable_q_a: true field_clp_spotlight_cta: true field_clp_spotlight_header: true field_clp_spotlight_intro_text: true diff --git a/config/sync/core.entity_view_display.node.event.default.yml b/config/sync/core.entity_view_display.node.event.default.yml index 936ca6c2914..c765795f387 100644 --- a/config/sync/core.entity_view_display.node.event.default.yml +++ b/config/sync/core.entity_view_display.node.event.default.yml @@ -23,7 +23,6 @@ dependencies: - field.field.node.event.field_media - field.field.node.event.field_meta_tags - field.field.node.event.field_order - - field.field.node.event.field_publish_to_outreach_cal - field.field.node.event.field_url_of_an_online_event - node.type.event module: @@ -51,7 +50,6 @@ third_party_settings: group_c: children: - field_datetime_range_timezone - - field_listing - field_media - field_body - field_url_of_an_online_event @@ -76,7 +74,7 @@ third_party_settings: label: Location-related parent_name: group_c region: content - weight: 7 + weight: 28 format_type: fieldset format_settings: classes: '' @@ -91,7 +89,7 @@ third_party_settings: label: 'Registration related' parent_name: group_c region: content - weight: 8 + weight: 29 format_type: fieldset format_settings: classes: '' @@ -136,7 +134,7 @@ content: label: above settings: { } third_party_settings: { } - weight: 4 + weight: 25 region: content field_datetime_range_timezone: type: smartdate_default @@ -148,17 +146,8 @@ content: force_chronological: false add_classes: false time_wrapper: true - localize: false - parts: - - start - - end - duration: - separator: ' | ' - unit: '' - decimals: 2 - suffix: h third_party_settings: { } - weight: 1 + weight: 23 region: content field_description: type: string @@ -181,7 +170,7 @@ content: label: above settings: { } third_party_settings: { } - weight: 6 + weight: 27 region: content field_event_registrationrequired: type: boolean @@ -233,14 +222,6 @@ content: third_party_settings: { } weight: 17 region: content - field_listing: - type: entity_reference_label - label: above - settings: - link: true - third_party_settings: { } - weight: 2 - region: content field_location_humanreadable: type: string label: above @@ -263,7 +244,7 @@ content: view_mode: default link: false third_party_settings: { } - weight: 3 + weight: 24 region: content field_order: type: list_default @@ -282,15 +263,15 @@ content: rel: '' target: '' third_party_settings: { } - weight: 5 + weight: 26 region: content hidden: breadcrumbs: true content_moderation_control: true field_administration: true field_last_saved_by_an_editor: true + field_listing: true field_meta_tags: true - field_publish_to_outreach_cal: true langcode: true links: true search_api_excerpt: true diff --git a/config/sync/core.entity_view_display.node.event.teaser.yml b/config/sync/core.entity_view_display.node.event.teaser.yml index 6cc0f1310e6..b2e2adfdd9a 100644 --- a/config/sync/core.entity_view_display.node.event.teaser.yml +++ b/config/sync/core.entity_view_display.node.event.teaser.yml @@ -24,11 +24,9 @@ dependencies: - field.field.node.event.field_media - field.field.node.event.field_meta_tags - field.field.node.event.field_order - - field.field.node.event.field_publish_to_outreach_cal - field.field.node.event.field_url_of_an_online_event - node.type.event module: - - link - smart_date - text - user @@ -37,18 +35,6 @@ targetEntityType: node bundle: event mode: teaser content: - breadcrumbs: - type: link - label: hidden - settings: - trim_length: 80 - url_only: false - url_plain: false - rel: '' - target: '' - third_party_settings: { } - weight: -5 - region: content field_body: type: text_default label: hidden @@ -87,7 +73,6 @@ hidden: field_media: true field_meta_tags: true field_order: true - field_publish_to_outreach_cal: true field_url_of_an_online_event: true langcode: true links: true diff --git a/config/sync/core.entity_view_display.node.vet_center_outstation.default.yml b/config/sync/core.entity_view_display.node.vet_center_outstation.default.yml index 11f2b157d4f..562bea320ed 100644 --- a/config/sync/core.entity_view_display.node.vet_center_outstation.default.yml +++ b/config/sync/core.entity_view_display.node.vet_center_outstation.default.yml @@ -11,6 +11,7 @@ dependencies: - field.field.node.vet_center_outstation.field_media - field.field.node.vet_center_outstation.field_office - field.field.node.vet_center_outstation.field_office_hours + - field.field.node.vet_center_outstation.field_official_name - field.field.node.vet_center_outstation.field_operating_status_facility - field.field.node.vet_center_outstation.field_operating_status_more_info - field.field.node.vet_center_outstation.field_phone_number @@ -35,7 +36,7 @@ third_party_settings: label: 'Operating status' parent_name: '' region: content - weight: 1 + weight: 2 format_type: fieldset format_settings: classes: '' @@ -48,7 +49,7 @@ third_party_settings: label: 'Location and contact information' parent_name: '' region: content - weight: 2 + weight: 3 format_type: fieldset format_settings: classes: '' @@ -81,7 +82,7 @@ third_party_settings: label: 'External content' parent_name: '' region: hidden - weight: 14 + weight: 20 format_type: fieldset format_settings: classes: '' @@ -114,8 +115,10 @@ content: settings: image_link: '' image_style: 3_2_medium_thumbnail + image_loading: + attribute: lazy third_party_settings: { } - weight: 3 + weight: 4 region: content field_office: type: entity_reference_label @@ -135,6 +138,7 @@ content: grouped: false show_closed: all closed_format: '' + all_day_format: 'All day open' separator: days: '
' grouped_days: ' - ' @@ -145,6 +149,11 @@ content: position: '' open_text: 'Currently open!' closed_text: 'Currently closed' + exceptions: + title: 'Exception hours' + restrict_exceptions_to_num_days: 7 + date_format: long + all_day_format: 'All day open' timezone_field: '' office_hours_first_day: '' schema: @@ -152,6 +161,14 @@ content: third_party_settings: { } weight: 6 region: content + field_official_name: + type: string + label: above + settings: + link_to_entity: false + third_party_settings: { } + weight: 1 + region: content field_operating_status_facility: type: list_default label: visually_hidden @@ -179,7 +196,7 @@ content: label: above settings: { } third_party_settings: { } - weight: 15 + weight: 5 region: content hidden: breadcrumbs: true diff --git a/config/sync/core.entity_view_display.node.vet_center_outstation.external_content.yml b/config/sync/core.entity_view_display.node.vet_center_outstation.external_content.yml index 2245174bbc2..a5b514b43d9 100644 --- a/config/sync/core.entity_view_display.node.vet_center_outstation.external_content.yml +++ b/config/sync/core.entity_view_display.node.vet_center_outstation.external_content.yml @@ -12,6 +12,7 @@ dependencies: - field.field.node.vet_center_outstation.field_media - field.field.node.vet_center_outstation.field_office - field.field.node.vet_center_outstation.field_office_hours + - field.field.node.vet_center_outstation.field_official_name - field.field.node.vet_center_outstation.field_operating_status_facility - field.field.node.vet_center_outstation.field_operating_status_more_info - field.field.node.vet_center_outstation.field_phone_number @@ -109,6 +110,7 @@ hidden: field_last_saved_by_an_editor: true field_media: true field_office: true + field_official_name: true field_operating_status_facility: true field_operating_status_more_info: true field_table_of_contents: true diff --git a/config/sync/core.entity_view_display.node.vet_center_outstation.teaser.yml b/config/sync/core.entity_view_display.node.vet_center_outstation.teaser.yml index 0674520116b..4c44d23ad42 100644 --- a/config/sync/core.entity_view_display.node.vet_center_outstation.teaser.yml +++ b/config/sync/core.entity_view_display.node.vet_center_outstation.teaser.yml @@ -12,6 +12,7 @@ dependencies: - field.field.node.vet_center_outstation.field_media - field.field.node.vet_center_outstation.field_office - field.field.node.vet_center_outstation.field_office_hours + - field.field.node.vet_center_outstation.field_official_name - field.field.node.vet_center_outstation.field_operating_status_facility - field.field.node.vet_center_outstation.field_operating_status_more_info - field.field.node.vet_center_outstation.field_phone_number @@ -44,6 +45,7 @@ hidden: field_media: true field_office: true field_office_hours: true + field_official_name: true field_operating_status_facility: true field_operating_status_more_info: true field_phone_number: true diff --git a/config/sync/core.extension.yml b/config/sync/core.extension.yml index 1c32fbc0943..1e012cc534a 100644 --- a/config/sync/core.extension.yml +++ b/config/sync/core.extension.yml @@ -25,6 +25,7 @@ module: change_labels: 0 ckeditor: 0 components: 0 + computed_breadcrumbs: 0 config: 0 config_filter: 0 config_ignore: 0 @@ -53,6 +54,7 @@ module: dropzonejs: 0 dynamic_entity_reference: 0 dynamic_page_cache: 0 + easy_breadcrumb: 0 editor: 0 embed: 0 entity_block: 0 diff --git a/config/sync/easy_breadcrumb.settings.yml b/config/sync/easy_breadcrumb.settings.yml new file mode 100644 index 00000000000..d93ff46bb97 --- /dev/null +++ b/config/sync/easy_breadcrumb.settings.yml @@ -0,0 +1,45 @@ +_core: + default_config_hash: i76EDs9aAKdrR4nZfe_woXsD0yihn4avDej8uClXES8 +applies_admin_routes: true +include_invalid_paths: false +excluded_paths: '' +replaced_titles: '' +custom_paths: '' +include_home_segment: true +alternative_title_field: field_breadcrumb_title +home_segment_title: Home +home_segment_keep: false +include_title_segment: true +title_from_page_when_available: true +title_segment_as_link: true +use_menu_title_as_fallback: false +use_page_title_as_menu_title_fallback: false +menu_title_preferred_menu: '' +remove_repeated_segments: true +language_path_prefix_as_segment: false +absolute_paths: false +hide_single_home_item: false +term_hierarchy: false +use_site_title: false +add_structured_data_json_ld: false +capitalizator_mode: ucwords +capitalizator_ignored_words: + - of + - and + - or + - de + - del + - 'y' + - o + - a +capitalizator_forced_words: { } +capitalizator_forced_words_case_sensitivity: true +capitalizator_forced_words_first_letter: false +follow_redirects: true +limit_segment_display: false +segment_display_limit: 0 +truncator_mode: false +truncator_length: 100 +truncator_dots: true +remove_repeated_segments_text_only: 0 +home_segment_validation_skip: 0 diff --git a/config/sync/entity_browser.browser.q_a_browser.yml b/config/sync/entity_browser.browser.q_a_browser.yml index cd142eacd35..fd43b473c6e 100644 --- a/config/sync/entity_browser.browser.q_a_browser.yml +++ b/config/sync/entity_browser.browser.q_a_browser.yml @@ -13,7 +13,7 @@ display: modal display_configuration: width: '' height: '' - link_text: 'Place Q&As' + link_text: 'Add Reusable Q&As' auto_open: false selection_display: no_display selection_display_configuration: { } diff --git a/config/sync/feature_toggle.features.yml b/config/sync/feature_toggle.features.yml index 500db737703..3c70f0d3ef2 100644 --- a/config/sync/feature_toggle.features.yml +++ b/config/sync/feature_toggle.features.yml @@ -5,4 +5,3 @@ features: feature_single_value_field_link: FEATURE_SINGLE_VALUE_FIELD_LINK feature_health_connect_number: FEATURE_HEALTH_CONNECT_NUMBER feature_mobile_app_promo: FEATURE_MOBILE_APP_PROMO - feature_event_outreach_checkbox: FEATURE_EVENT_OUTREACH_CHECKBOX diff --git a/config/sync/field.field.node.campaign_landing_page.field_clp_faq_paragraphs.yml b/config/sync/field.field.node.campaign_landing_page.field_clp_faq_paragraphs.yml index 08c47c5246a..78c2bb66a5f 100644 --- a/config/sync/field.field.node.campaign_landing_page.field_clp_faq_paragraphs.yml +++ b/config/sync/field.field.node.campaign_landing_page.field_clp_faq_paragraphs.yml @@ -8,12 +8,16 @@ dependencies: - paragraphs.paragraphs_type.q_a module: - entity_reference_revisions + - tmgmt_content +third_party_settings: + tmgmt_content: + excluded: false id: node.campaign_landing_page.field_clp_faq_paragraphs field_name: field_clp_faq_paragraphs entity_type: node bundle: campaign_landing_page -label: 'Add between 3 and 10 Q&As' -description: '' +label: 'Page-Specific Q&A' +description: 'Add questions and answers that provide information specific to the page content.' required: false translatable: false default_value: { } @@ -37,9 +41,15 @@ settings: audience_topics: weight: 45 enabled: false + basic_accordion: + weight: 50 + enabled: false button: weight: 46 enabled: false + centralized_content_descriptor: + weight: 52 + enabled: false checklist: weight: 47 enabled: false @@ -61,9 +71,15 @@ settings: email_contact: weight: 53 enabled: false + embedded_video: + weight: 60 + enabled: false expandable_text: weight: 54 enabled: false + featured_content: + weight: 62 + enabled: false health_care_local_facility_servi: weight: 55 enabled: false @@ -82,6 +98,9 @@ settings: lists_of_links: weight: 58 enabled: false + magichead_group: + weight: 69 + enabled: false media: weight: 61 enabled: false @@ -133,9 +152,6 @@ settings: staff_profile: weight: 77 enabled: false - starred_horizontal_rule: - weight: 78 - enabled: false step: weight: 79 enabled: false diff --git a/config/sync/field.field.node.campaign_landing_page.field_clp_reusable_q_a.yml b/config/sync/field.field.node.campaign_landing_page.field_clp_reusable_q_a.yml new file mode 100644 index 00000000000..4a86a5d8f9d --- /dev/null +++ b/config/sync/field.field.node.campaign_landing_page.field_clp_reusable_q_a.yml @@ -0,0 +1,167 @@ +uuid: 22948d35-29e6-4cbe-bad7-c47bf260b4fa +langcode: en +status: true +dependencies: + config: + - field.storage.node.field_clp_reusable_q_a + - node.type.campaign_landing_page + - paragraphs.paragraphs_type.q_a_group + module: + - entity_reference_revisions + - tmgmt_content +third_party_settings: + tmgmt_content: + excluded: false +id: node.campaign_landing_page.field_clp_reusable_q_a +field_name: field_clp_reusable_q_a +entity_type: node +bundle: campaign_landing_page +label: 'Reusable Q&A' +description: 'Choose from questions and answers that are stored in the CMS and used on multiple pages.' +required: false +translatable: false +default_value: { } +default_value_callback: '' +settings: + handler: 'default:paragraph' + handler_settings: + target_bundles: + q_a_group: q_a_group + 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: true + 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: false + 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/field.field.node.event.field_publish_to_outreach_cal.yml b/config/sync/field.field.node.event.field_publish_to_outreach_cal.yml deleted file mode 100644 index 297adec89eb..00000000000 --- a/config/sync/field.field.node.event.field_publish_to_outreach_cal.yml +++ /dev/null @@ -1,28 +0,0 @@ -uuid: ba2d9d43-c4b9-4bfd-831a-9ef7544d43f8 -langcode: en -status: true -dependencies: - config: - - field.storage.node.field_publish_to_outreach_cal - - node.type.event - module: - - tmgmt_content -third_party_settings: - tmgmt_content: - excluded: false -id: node.event.field_publish_to_outreach_cal -field_name: field_publish_to_outreach_cal -entity_type: node -bundle: event -label: 'Publish to the National Outreach Calendar' -description: '' -required: false -translatable: false -default_value: - - - value: 0 -default_value_callback: '' -settings: - on_label: 'Yes' - off_label: 'No' -field_type: boolean diff --git a/config/sync/field.field.node.vet_center_outstation.field_official_name.yml b/config/sync/field.field.node.vet_center_outstation.field_official_name.yml new file mode 100644 index 00000000000..108472617ee --- /dev/null +++ b/config/sync/field.field.node.vet_center_outstation.field_official_name.yml @@ -0,0 +1,24 @@ +uuid: c0d320aa-e37e-4745-9af0-157e4fdc6c7f +langcode: en +status: true +dependencies: + config: + - field.storage.node.field_official_name + - node.type.vet_center_outstation + module: + - tmgmt_content +third_party_settings: + tmgmt_content: + excluded: false +id: node.vet_center_outstation.field_official_name +field_name: field_official_name +entity_type: node +bundle: vet_center_outstation +label: 'Name of Vet Center - Oustation' +description: 'The official name of the Vet Center. To request a correction or update, email an administrator.' +required: false +translatable: true +default_value: { } +default_value_callback: '' +settings: { } +field_type: string diff --git a/config/sync/field.storage.node.field_clp_reusable_q_a.yml b/config/sync/field.storage.node.field_clp_reusable_q_a.yml new file mode 100644 index 00000000000..0ee7bc04f5e --- /dev/null +++ b/config/sync/field.storage.node.field_clp_reusable_q_a.yml @@ -0,0 +1,21 @@ +uuid: e2e9bb11-42e6-4077-95de-edf70e5ae05d +langcode: en +status: true +dependencies: + module: + - entity_reference_revisions + - node + - paragraphs +id: node.field_clp_reusable_q_a +field_name: field_clp_reusable_q_a +entity_type: node +type: entity_reference_revisions +settings: + target_type: paragraph +module: entity_reference_revisions +locked: false +cardinality: -1 +translatable: true +indexes: { } +persist_with_no_fields: false +custom_storage: false diff --git a/config/sync/field.storage.node.field_listing.yml b/config/sync/field.storage.node.field_listing.yml index 9cdedd46e60..bebbf9f95d2 100644 --- a/config/sync/field.storage.node.field_listing.yml +++ b/config/sync/field.storage.node.field_listing.yml @@ -12,7 +12,7 @@ settings: target_type: node module: core locked: false -cardinality: -1 +cardinality: 1 translatable: true indexes: { } persist_with_no_fields: false diff --git a/config/sync/field.storage.node.field_publish_to_outreach_cal.yml b/config/sync/field.storage.node.field_publish_to_outreach_cal.yml deleted file mode 100644 index 760a11b0f32..00000000000 --- a/config/sync/field.storage.node.field_publish_to_outreach_cal.yml +++ /dev/null @@ -1,18 +0,0 @@ -uuid: ad80a854-7f29-45c1-871a-2d087663f64a -langcode: en -status: true -dependencies: - module: - - node -id: node.field_publish_to_outreach_cal -field_name: field_publish_to_outreach_cal -entity_type: node -type: boolean -settings: { } -module: core -locked: false -cardinality: 1 -translatable: true -indexes: { } -persist_with_no_fields: false -custom_storage: false diff --git a/config/sync/language/es/easy_breadcrumb.settings.yml b/config/sync/language/es/easy_breadcrumb.settings.yml new file mode 100644 index 00000000000..184df9b38e6 --- /dev/null +++ b/config/sync/language/es/easy_breadcrumb.settings.yml @@ -0,0 +1,6 @@ +home_segment_title: Inicio +capitalizator_ignored_words: + 0: de + 1: 'y' + 2: o + 7: un diff --git a/config/sync/migrate_plus.migration.va_node_facility_vet_centers_os.yml b/config/sync/migrate_plus.migration.va_node_facility_vet_centers_os.yml index 3f34ae9c763..5f49e070b08 100644 --- a/config/sync/migrate_plus.migration.va_node_facility_vet_centers_os.yml +++ b/config/sync/migrate_plus.migration.va_node_facility_vet_centers_os.yml @@ -100,7 +100,7 @@ process: method: row value: - OS - title: + field_official_name: plugin: skip_on_empty method: row source: name @@ -236,13 +236,13 @@ destination: - field_geolocation - field_phone_number - field_office_hours + - field_official_name - field_timezone - new_revision - revision_default - revision_log - revision_timestamp - revision_uid - - title - uid migration_dependencies: required: { } diff --git a/config/sync/node.type.vet_center_outstation.yml b/config/sync/node.type.vet_center_outstation.yml index 6e955407eda..a437936a554 100644 --- a/config/sync/node.type.vet_center_outstation.yml +++ b/config/sync/node.type.vet_center_outstation.yml @@ -3,6 +3,7 @@ langcode: en status: true dependencies: module: + - menu_force - menu_ui - node_title_help_text third_party_settings: @@ -11,10 +12,13 @@ third_party_settings: parent: '' node_title_help_text: title_help: '' + menu_force: + menu_force: false + menu_force_parent: false name: 'Vet Center - Outstation' type: vet_center_outstation description: 'Location information for remote facilities related to a main Vet Center.' -help: '' +help: 'This name will be used in Veteran-facing content.' new_revision: true preview_mode: 0 display_submitted: false diff --git a/docroot/design-system/package-lock.json b/docroot/design-system/package-lock.json index ae06a2a3532..66eed54b35d 100644 --- a/docroot/design-system/package-lock.json +++ b/docroot/design-system/package-lock.json @@ -167,12 +167,12 @@ } }, "node_modules/@babel/generator": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.22.15.tgz", - "integrity": "sha512-Zu9oWARBqeVOW0dZOjXc3JObrzuqothQ3y/n1kUtrjCoCPLkXUwMvOo/F/TCfoHMbWIFlWwpZtkZVb9ga4U2pA==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.0.tgz", + "integrity": "sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==", "dev": true, "dependencies": { - "@babel/types": "^7.22.15", + "@babel/types": "^7.23.0", "@jridgewell/gen-mapping": "^0.3.2", "@jridgewell/trace-mapping": "^0.3.17", "jsesc": "^2.5.1" @@ -296,22 +296,22 @@ } }, "node_modules/@babel/helper-environment-visitor": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz", - "integrity": "sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-function-name": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz", - "integrity": "sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", "dev": true, "dependencies": { - "@babel/template": "^7.22.5", - "@babel/types": "^7.22.5" + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" }, "engines": { "node": ">=6.9.0" @@ -473,9 +473,9 @@ } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.19", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.19.tgz", - "integrity": "sha512-Tinq7ybnEPFFXhlYOYFiSjespWQk0dq2dRNAiMdRTOYQzEGqnnNyrTxPYHP5r6wGjlF1rFgABdDV0g8EwD6Qbg==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", "dev": true, "engines": { "node": ">=6.9.0" @@ -533,9 +533,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.22.16", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.16.tgz", - "integrity": "sha512-+gPfKv8UWeKKeJTUxe59+OobVcrYHETCsORl61EmSkmgymguYk/X5bp7GuUIXaFsc6y++v8ZxPsLSSuujqDphA==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz", + "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -2148,19 +2148,19 @@ } }, "node_modules/@babel/traverse": { - "version": "7.22.19", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.19.tgz", - "integrity": "sha512-ZCcpVPK64krfdScRbpxF6xA5fz7IOsfMwx1tcACvCzt6JY+0aHkBk7eIU8FRDSZRU5Zei6Z4JfgAxN1bqXGECg==", + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.2.tgz", + "integrity": "sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==", "dev": true, "dependencies": { "@babel/code-frame": "^7.22.13", - "@babel/generator": "^7.22.15", - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", + "@babel/generator": "^7.23.0", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", "@babel/helper-hoist-variables": "^7.22.5", "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.22.16", - "@babel/types": "^7.22.19", + "@babel/parser": "^7.23.0", + "@babel/types": "^7.23.0", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -2169,13 +2169,13 @@ } }, "node_modules/@babel/types": { - "version": "7.22.19", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.19.tgz", - "integrity": "sha512-P7LAw/LbojPzkgp5oznjE6tQEIWbp4PkkfrZDINTro9zgBRtI324/EYsiSI7lhPbpIQ+DCeR2NNmMWANGGfZsg==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.0.tgz", + "integrity": "sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==", "dev": true, "dependencies": { "@babel/helper-string-parser": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.19", + "@babel/helper-validator-identifier": "^7.22.20", "to-fast-properties": "^2.0.0" }, "engines": { @@ -17312,12 +17312,12 @@ } }, "@babel/generator": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.22.15.tgz", - "integrity": "sha512-Zu9oWARBqeVOW0dZOjXc3JObrzuqothQ3y/n1kUtrjCoCPLkXUwMvOo/F/TCfoHMbWIFlWwpZtkZVb9ga4U2pA==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.0.tgz", + "integrity": "sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==", "dev": true, "requires": { - "@babel/types": "^7.22.15", + "@babel/types": "^7.23.0", "@jridgewell/gen-mapping": "^0.3.2", "@jridgewell/trace-mapping": "^0.3.17", "jsesc": "^2.5.1" @@ -17412,19 +17412,19 @@ } }, "@babel/helper-environment-visitor": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz", - "integrity": "sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", "dev": true }, "@babel/helper-function-name": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz", - "integrity": "sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", "dev": true, "requires": { - "@babel/template": "^7.22.5", - "@babel/types": "^7.22.5" + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" } }, "@babel/helper-hoist-variables": { @@ -17538,9 +17538,9 @@ "dev": true }, "@babel/helper-validator-identifier": { - "version": "7.22.19", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.19.tgz", - "integrity": "sha512-Tinq7ybnEPFFXhlYOYFiSjespWQk0dq2dRNAiMdRTOYQzEGqnnNyrTxPYHP5r6wGjlF1rFgABdDV0g8EwD6Qbg==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", "dev": true }, "@babel/helper-validator-option": { @@ -17583,9 +17583,9 @@ } }, "@babel/parser": { - "version": "7.22.16", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.16.tgz", - "integrity": "sha512-+gPfKv8UWeKKeJTUxe59+OobVcrYHETCsORl61EmSkmgymguYk/X5bp7GuUIXaFsc6y++v8ZxPsLSSuujqDphA==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz", + "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==", "dev": true }, "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { @@ -18656,31 +18656,31 @@ } }, "@babel/traverse": { - "version": "7.22.19", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.19.tgz", - "integrity": "sha512-ZCcpVPK64krfdScRbpxF6xA5fz7IOsfMwx1tcACvCzt6JY+0aHkBk7eIU8FRDSZRU5Zei6Z4JfgAxN1bqXGECg==", + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.2.tgz", + "integrity": "sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==", "dev": true, "requires": { "@babel/code-frame": "^7.22.13", - "@babel/generator": "^7.22.15", - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", + "@babel/generator": "^7.23.0", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", "@babel/helper-hoist-variables": "^7.22.5", "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.22.16", - "@babel/types": "^7.22.19", + "@babel/parser": "^7.23.0", + "@babel/types": "^7.23.0", "debug": "^4.1.0", "globals": "^11.1.0" } }, "@babel/types": { - "version": "7.22.19", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.19.tgz", - "integrity": "sha512-P7LAw/LbojPzkgp5oznjE6tQEIWbp4PkkfrZDINTro9zgBRtI324/EYsiSI7lhPbpIQ+DCeR2NNmMWANGGfZsg==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.0.tgz", + "integrity": "sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==", "dev": true, "requires": { "@babel/helper-string-parser": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.19", + "@babel/helper-validator-identifier": "^7.22.20", "to-fast-properties": "^2.0.0" } }, diff --git a/docroot/modules/custom/va_gov_backend/va_gov_backend.module b/docroot/modules/custom/va_gov_backend/va_gov_backend.module index 4ad3d96f784..4620f913cd9 100644 --- a/docroot/modules/custom/va_gov_backend/va_gov_backend.module +++ b/docroot/modules/custom/va_gov_backend/va_gov_backend.module @@ -24,8 +24,8 @@ use Drupal\Core\Url; use Drupal\field\Entity\FieldConfig; use Drupal\field\FieldStorageConfigInterface; use Drupal\file\Entity\File; -use Drupal\paragraphs\Entity\Paragraph; use Drupal\node\NodeInterface; +use Drupal\paragraphs\Entity\Paragraph; use Drupal\taxonomy\TermInterface; use Drupal\user\Entity\Role; use Drupal\user\RoleInterface; @@ -253,6 +253,9 @@ function _va_gov_backend_get_clp_toggles() { 'required' => TRUE, 'show-indicator' => TRUE, ], + 'field_clp_reusable_q_a' => [ + 'required' => FALSE, + ], 'field_clp_faq_cta' => [ 'required' => FALSE, ], @@ -1008,7 +1011,7 @@ function va_gov_backend_preprocess_page(&$variables) { $host = \Drupal::request()->getHost(); $preview_form = new PreviewForm(); $url = $preview_form->getEnvironment($host, $nid); - $button = 'Preview'; + $button = 'Preview'; $variables['page']['sidebar_second']['#markup'] = $button; } } diff --git a/docroot/modules/custom/va_gov_build_trigger/src/Service/BuildRequester.php b/docroot/modules/custom/va_gov_build_trigger/src/Service/BuildRequester.php index 7d6d808684e..371b4bd9679 100644 --- a/docroot/modules/custom/va_gov_build_trigger/src/Service/BuildRequester.php +++ b/docroot/modules/custom/va_gov_build_trigger/src/Service/BuildRequester.php @@ -11,7 +11,7 @@ */ class BuildRequester implements BuildRequesterInterface { - public const VA_GOV_FRONTEND_VERSION = 'va_gov_build_trigger.frontend_version'; + public const VA_GOV_FRONTEND_VERSION = 'va_gov_content_release.frontend_version'; /** * The content release queue entity. diff --git a/docroot/modules/custom/va_gov_consumers/va_gov_consumers.module b/docroot/modules/custom/va_gov_consumers/va_gov_consumers.module index a8a9160e881..adc6ead1949 100644 --- a/docroot/modules/custom/va_gov_consumers/va_gov_consumers.module +++ b/docroot/modules/custom/va_gov_consumers/va_gov_consumers.module @@ -66,6 +66,8 @@ function _va_gov_consumers_return_vet_center_form_names() { return [ 'node_vet_center_edit_form', 'node_vet_center_form', + 'node_vet_center_outstation_edit_form', + 'node_vet_center_outstation_form', ]; } @@ -201,6 +203,7 @@ function _va_gov_consumers_modify_facility_fields(array &$form, $form_id, FormSt $content_types_hiding_title = [ 'health_care_local_facility', 'nca_facility', + 'vet_center_outstation', ]; if (!in_array($node->getType(), $content_types_hiding_title)) { $form['group_page_title_tooltip']['top_of_page_information'] = $form['top_of_page_information']; 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 bd3c4f98d78..b3a543ceeda 100644 --- a/docroot/modules/custom/va_gov_events/src/EventSubscriber/EntityEventSubscriber.php +++ b/docroot/modules/custom/va_gov_events/src/EventSubscriber/EntityEventSubscriber.php @@ -2,15 +2,9 @@ namespace Drupal\va_gov_events\EventSubscriber; -use Drupal\Core\Session\AccountInterface; -use Drupal\Core\Session\AccountProxy; use Drupal\Core\StringTranslation\StringTranslationTrait; -use Drupal\core_event_dispatcher\EntityHookEvents; -use Drupal\core_event_dispatcher\Event\Entity\EntityPresaveEvent; +use Drupal\Core\StringTranslation\TranslationInterface; use Drupal\core_event_dispatcher\Event\Form\FormIdAlterEvent; -use Drupal\feature_toggle\FeatureStatus; -use Drupal\node\NodeInterface; -use Drupal\va_gov_user\Service\UserPermsService; use Symfony\Component\EventDispatcher\EventSubscriberInterface; /** @@ -20,66 +14,14 @@ class EntityEventSubscriber implements EventSubscriberInterface { use StringTranslationTrait; - /** - * The 'publish to the national outreach calendar' field name. - */ - const PUBLISH_TO_OUTREACH_CAL_FIELD = 'field_publish_to_outreach_cal'; - - /** - * The 'field_listing' field name. - */ - const LISTING_FIELD = 'field_listing'; - - /** - * The National Outreach Calendar node id. - */ - const OUTREACH_CAL_NID = 736; - - /** - * The 'Outreach Hub' Section term id. - */ - const OUTREACH_HUB_TID = 7; - - /** - * The Feature toggle name for outreach checkbox. - */ - const OUTREACH_CHECKBOX_FEATURE_NAME = 'feature_event_outreach_checkbox'; - - /** - * The User Perms Service. - * - * @var \Drupal\va_gov_user\Service\UserPermsService - */ - protected UserPermsService $userPermsService; - - /** - * The current user. - * - * @var \Drupal\Core\Session\AccountInterface - */ - protected AccountInterface $currentUser; - - /** - * TRUE if the outreach checkbox feature toggle is enabled. - * - * @var bool - */ - private bool $outreachCheckboxEnabled; - /** * Constructs the EventSubscriber object. * - * @param \Drupal\va_gov_user\Service\UserPermsService $user_perms_service - * The current user perms service. - * @param \Drupal\Core\Session\AccountProxy $account_proxy - * The account proxy service. - * @param \Drupal\feature_toggle\FeatureStatus $feature_status - * The feature status service. + * @param \Drupal\Core\StringTranslation\TranslationInterface $string_translation + * The string translation service. */ - public function __construct(UserPermsService $user_perms_service, AccountProxy $account_proxy, FeatureStatus $feature_status) { - $this->userPermsService = $user_perms_service; - $this->currentUser = $account_proxy->getAccount(); - $this->outreachCheckboxEnabled = $feature_status->getStatus(self::OUTREACH_CHECKBOX_FEATURE_NAME); + public function __construct(TranslationInterface $string_translation) { + $this->stringTranslation = $string_translation; } /** @@ -89,41 +31,11 @@ public static function getSubscribedEvents(): array { return [ 'hook_event_dispatcher.form_node_event_form.alter' => 'alterEventNodeForm', 'hook_event_dispatcher.form_node_event_edit_form.alter' => 'alterEventNodeForm', - EntityHookEvents::ENTITY_PRE_SAVE => 'entityPresave', ]; } /** - * Determines if the current user is an 'Outreach Hub' only user. - * - * @return bool - * TRUE if the current user only has the 'Outreach Hub' section. - */ - protected function outreachHubOnlyUser(): bool { - $sections = $this->userPermsService->getSections($this->currentUser); - if (count($sections) === 1 && array_key_first($sections) === self::OUTREACH_HUB_TID) { - return TRUE; - } - return FALSE; - } - - /** - * Entity presave Event call. - * - * @param \Drupal\core_event_dispatcher\Event\Entity\EntityPresaveEvent $event - * The event. - * - * @throws \Drupal\Core\TypedData\Exception\MissingDataException - */ - public function entityPresave(EntityPresaveEvent $event): void { - $entity = $event->getEntity(); - if ($entity instanceof NodeInterface) { - $this->addToNationalOutreachCalendar($entity); - } - } - - /** - * Form alterations for event content type. + * Form alterations for eventcontent type. * * @param \Drupal\core_event_dispatcher\Event\Form\FormIdAlterEvent $event * The event. @@ -133,68 +45,6 @@ public function alterEventNodeForm(FormIdAlterEvent $event): void { $this->addDisplayManagementToEventFields($form); $this->modifyFormFieldsetElements($form); $this->modifyRecurringEventsWidgetFieldPresentation($form); - $this->modifyAddToOutreachCalendarElements($form); - } - - /** - * Adds the event to the National Outreach Calendar (event_listing). - * - * The purpose of this method is to add the current node event to the National - * Outreach Calendar (an event listing node) if the $listingField - * checkbox/boolean has been set, or if the current user is an Outreach Hub - * user. - * - * @param \Drupal\node\NodeInterface $node - * The node to be modified. - * - * @throws \Drupal\Core\TypedData\Exception\MissingDataException - */ - public function addToNationalOutreachCalendar(NodeInterface $node): void { - if ($node->hasField(self::LISTING_FIELD) && $node->hasField(self::PUBLISH_TO_OUTREACH_CAL_FIELD) && $this->outreachCheckboxEnabled) { - $addToCalValue = $node->get(self::PUBLISH_TO_OUTREACH_CAL_FIELD)->first()->getValue(); - if (isset($addToCalValue['value'])) { - $listings = $node->get(self::LISTING_FIELD)->getValue(); - if ($addToCalValue['value'] === 1 || $this->outreachHubOnlyUser()) { - // Add to Outreach calendar selected, or user is Outreach Hub only - // user. - if (!in_array(self::OUTREACH_CAL_NID, array_column($listings, 'target_id'))) { - $listings[] = [ - 'target_id' => self::OUTREACH_CAL_NID, - ]; - } - } - $node->set(self::LISTING_FIELD, $listings); - } - } - } - - /** - * Form changes for 'Publish to National Outreach Calendar' related elements. - * - * @param array $form - * The form array. - */ - public function modifyAddToOutreachCalendarElements(array &$form) :void { - if ($this->outreachHubOnlyUser() && $this->outreachCheckboxEnabled) { - // Disable the checkbox. - $form[self::PUBLISH_TO_OUTREACH_CAL_FIELD]['#disabled'] = TRUE; - // Set the default value of the checkbox. - $form[self::PUBLISH_TO_OUTREACH_CAL_FIELD]['widget']['value']['#default_value'] = TRUE; - // Override the field label for the checkbox. - $form[self::PUBLISH_TO_OUTREACH_CAL_FIELD]['widget']['value']['#title'] = $this->t('This event will automatically be published to the National Outreach Calendar'); - // Set the default value to the Outreach cal on the dropdown if is not - // already set. - if (empty($form[self::LISTING_FIELD]['widget']['#default_value'])) { - $form[self::LISTING_FIELD]['widget']['#default_value'] = self::OUTREACH_CAL_NID; - } - } - // Add the '- Select a value -' option (_none) since it was removed by - // the Limited Widgets for Unlimited Field module. - if (isset($form[self::LISTING_FIELD]['widget']['#options']) && !array_key_exists('_none', $form[self::LISTING_FIELD]['widget']['#options'])) { - $form[self::LISTING_FIELD]['widget']['#options'] = ['_none' => '- Select a value -'] + $form[self::LISTING_FIELD]['widget']['#options']; - } - // Disable the checkbox element until the feature toggle is on. - $form[self::PUBLISH_TO_OUTREACH_CAL_FIELD]['#access'] = $this->outreachCheckboxEnabled; } /** @@ -203,7 +53,7 @@ public function modifyAddToOutreachCalendarElements(array &$form) :void { * @param array $form * The form. */ - public function modifyRecurringEventsWidgetFieldPresentation(array &$form): void { + public function modifyRecurringEventsWidgetFieldPresentation(array &$form) { // Add our js for toggling items depending on duration choices. $form['#attached']['library'][] = 'va_gov_events/recurring_dates'; @@ -276,7 +126,7 @@ public function modifyRecurringEventsWidgetFieldPresentation(array &$form): void * @param array $form * The form. */ - public function addDisplayManagementToEventFields(array &$form): void { + public function addDisplayManagementToEventFields(array &$form) { $form['#attached']['library'][] = 'va_gov_events/event_form_states_helpers'; } @@ -290,7 +140,7 @@ public function addDisplayManagementToEventFields(array &$form): void { * @param array $form * The form. */ - public function modifyFormFieldSetElements(array &$form): void { + public function modifyFormFieldSetElements(array &$form) { // Remove the wrap and title around address widget. $form['field_address']['widget'][0]['#type'] = 'div'; unset($form['field_address']['widget'][0]['#title']); diff --git a/docroot/modules/custom/va_gov_events/va_gov_events.services.yml b/docroot/modules/custom/va_gov_events/va_gov_events.services.yml index 57e983a8232..df7b43518a3 100644 --- a/docroot/modules/custom/va_gov_events/va_gov_events.services.yml +++ b/docroot/modules/custom/va_gov_events/va_gov_events.services.yml @@ -1,7 +1,7 @@ services: va_gov_events.entity_event_subscriber: class: Drupal\va_gov_events\EventSubscriber\EntityEventSubscriber - arguments: ['@va_gov_user.user_perms', '@current_user', '@feature_toggle.feature_status'] + arguments: ['@string_translation'] tags: - { name: event_subscriber } va_gov_events.route_subscriber: diff --git a/docroot/modules/custom/va_gov_graphql/assets/explorer/package-lock.json b/docroot/modules/custom/va_gov_graphql/assets/explorer/package-lock.json index f16ddf2153b..03b3f810301 100644 --- a/docroot/modules/custom/va_gov_graphql/assets/explorer/package-lock.json +++ b/docroot/modules/custom/va_gov_graphql/assets/explorer/package-lock.json @@ -4,7 +4,6 @@ "requires": true, "packages": { "": { - "name": "explorer", "dependencies": { "graphiql": "^1.5.16", "graphiql-explorer": "^0.6.3", @@ -1900,6 +1899,14 @@ "node": ">=10.0.0" } }, + "node_modules/@fastify/busboy": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.0.0.tgz", + "integrity": "sha512-JUFJad5lv7jxj926GPgymrWQxxjPYuJNiNjNMzqT+HiuP6Vl3dk5xzG+8sTX96np0ZAluvaMzPsjhHZ5rNuNQQ==", + "engines": { + "node": ">=14" + } + }, "node_modules/@graphiql/toolkit": { "version": "0.4.2", "resolved": "https://registry.npmjs.org/@graphiql/toolkit/-/toolkit-0.4.2.tgz", @@ -5934,6 +5941,19 @@ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==" }, + "node_modules/typescript": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz", + "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==", + "peer": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, "node_modules/uc.micro": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", @@ -5955,14 +5975,14 @@ } }, "node_modules/undici": { - "version": "5.19.1", - "resolved": "https://registry.npmjs.org/undici/-/undici-5.19.1.tgz", - "integrity": "sha512-YiZ61LPIgY73E7syxCDxxa3LV2yl3sN8spnIuTct60boiiRaE1J8mNWHO8Im2Zi/sFrPusjLlmRPrsyraSqX6A==", + "version": "5.26.3", + "resolved": "https://registry.npmjs.org/undici/-/undici-5.26.3.tgz", + "integrity": "sha512-H7n2zmKEWgOllKkIUkLvFmsJQj062lSm3uA4EYApG8gLuiOM0/go9bIoC3HVaSnfg4xunowDE2i9p8drkXuvDw==", "dependencies": { - "busboy": "^1.6.0" + "@fastify/busboy": "^2.0.0" }, "engines": { - "node": ">=12.18" + "node": ">=14.0" } }, "node_modules/unicode-canonical-property-names-ecmascript": { diff --git a/docroot/modules/custom/va_gov_migrate/config/install/migrate_plus.migration.va_node_facility_vet_centers_os.yml b/docroot/modules/custom/va_gov_migrate/config/install/migrate_plus.migration.va_node_facility_vet_centers_os.yml index 064208312be..ecfe799e337 100644 --- a/docroot/modules/custom/va_gov_migrate/config/install/migrate_plus.migration.va_node_facility_vet_centers_os.yml +++ b/docroot/modules/custom/va_gov_migrate/config/install/migrate_plus.migration.va_node_facility_vet_centers_os.yml @@ -108,7 +108,7 @@ process: method: row value: - OS - title: + field_official_name: plugin: skip_on_empty method: row source: name @@ -251,13 +251,13 @@ destination: - 'field_geolocation' - field_phone_number - field_office_hours + - field_official_name - field_timezone - new_revision - revision_default - revision_log - revision_timestamp - revision_uid - - title - uid # Dependency on other migrations. migration_dependencies: diff --git a/docroot/modules/custom/va_gov_migrate/va_gov_migrate.module b/docroot/modules/custom/va_gov_migrate/va_gov_migrate.module index fe36d380e94..0aab4b06169 100644 --- a/docroot/modules/custom/va_gov_migrate/va_gov_migrate.module +++ b/docroot/modules/custom/va_gov_migrate/va_gov_migrate.module @@ -54,18 +54,19 @@ function _va_gov_migrate_process_va_form(EntityInterface &$entity) { } /** - * Set default Vet Center title. + * Set default Vet Center or Vet Center - Outstation title. * * @param \Drupal\Core\Entity\EntityInterface $entity * Entity. */ function _va_gov_migrate_set_default_vet_center_title(EntityInterface &$entity) { - if ($entity->bundle() !== 'vet_center' || (!$entity instanceof NodeInterface)) { + $bundles = ['vet_center', 'vet_center_outstation']; + if (!in_array($entity->bundle(), $bundles) || (!$entity instanceof NodeInterface)) { return; } /** @var \Drupal\node\NodeInterface $entity */ - // If a Vet Center title is empty copy the value from field_official_name. + // If a title is empty, copy the value from field_official_name. if (empty($entity->getTitle())) { $default_title = $entity->get('field_official_name')->value ?: '- none -'; $entity->setTitle($default_title); diff --git a/docroot/modules/custom/va_gov_post_api/src/EventSubscriber/QueueItemProcessedEventSubscriber.php b/docroot/modules/custom/va_gov_post_api/src/EventSubscriber/QueueItemProcessedEventSubscriber.php index ca1e3b63840..f72899e8a67 100644 --- a/docroot/modules/custom/va_gov_post_api/src/EventSubscriber/QueueItemProcessedEventSubscriber.php +++ b/docroot/modules/custom/va_gov_post_api/src/EventSubscriber/QueueItemProcessedEventSubscriber.php @@ -7,12 +7,13 @@ use Drupal\Core\Logger\LoggerChannelFactoryInterface; use Drupal\Core\Plugin\ContainerFactoryPluginInterface; use Drupal\post_api\Event\QueueItemProcessedEvent; +use Drupal\post_api\Service\AddToQueue; use Drupal\slack\Slack; use Symfony\Component\DependencyInjection\ContainerInterface; use Symfony\Component\EventDispatcher\EventSubscriberInterface; /** - * Class QueueItemProcessedEventSubscriber acts on post_api queue item processed. + * Acts on post_api queue item processed. * * @package Drupal\va_gov_post_api\EventSubscriber */ @@ -46,6 +47,13 @@ class QueueItemProcessedEventSubscriber implements EventSubscriberInterface, Con */ protected $slack; + /** + * The Post queue add service. + * + * @var \Drupal\post_api\Service\AddToQueue + */ + protected $postQueue; + /** * Creates a new QueueItemProcessedEventSubscriber object. * @@ -57,12 +65,15 @@ class QueueItemProcessedEventSubscriber implements EventSubscriberInterface, Con * Module handler. * @param \Drupal\slack\Slack $slack * Slack service. + * @param \Drupal\post_api\Service\AddToQueue $post_queue + * The PostAPI service. */ - public function __construct(ConfigFactoryInterface $config, LoggerChannelFactoryInterface $logger, ModuleHandlerInterface $moduleHandler, Slack $slack) { + public function __construct(ConfigFactoryInterface $config, LoggerChannelFactoryInterface $logger, ModuleHandlerInterface $moduleHandler, Slack $slack, AddToQueue $post_queue) { $this->config = $config; $this->logger = $logger; $this->moduleHandler = $moduleHandler; $this->slack = $slack; + $this->postQueue = $post_queue; } /** @@ -73,7 +84,8 @@ public static function create(ContainerInterface $container, array $configuratio $container->get('config.factory'), $container->get('logger.factory'), $container->get('module_handler'), - $container->get('slack.slack_service') + $container->get('slack.slack_service'), + $container->get('post_api.add_to_queue'), ); } @@ -104,6 +116,8 @@ public function onQueueItemProcessed(QueueItemProcessedEvent $event) { // The response might have been 200 from the TIC not the Facility API. $message = sprintf('Item %s Posted with a 200, but had an unexpected response with a size: %F phrase: %s', $item_data['uid'], $size, $response_phrase); $this->logger->get('va_gov_post_api')->warning($message); + // Add the item that might not have been processed back to the queue. + $this->postQueue->addToQueue($item_data); } } elseif (in_array($response_code, [201, 202])) { diff --git a/docroot/modules/custom/va_gov_post_api/va_gov_post_api.services.yml b/docroot/modules/custom/va_gov_post_api/va_gov_post_api.services.yml index 91b96ea0c57..d02a1790104 100644 --- a/docroot/modules/custom/va_gov_post_api/va_gov_post_api.services.yml +++ b/docroot/modules/custom/va_gov_post_api/va_gov_post_api.services.yml @@ -7,7 +7,7 @@ services: - { name: 'event_subscriber' } va_gov_post_api.queue_item_processed_subsriber: class: '\Drupal\va_gov_post_api\EventSubscriber\QueueItemProcessedEventSubscriber' - arguments: ['@config.factory', '@logger.factory', '@module_handler', '@slack.slack_service'] + arguments: ['@config.factory', '@logger.factory', '@module_handler', '@slack.slack_service', '@post_api.add_to_queue'] tags: - { name: 'event_subscriber' } va_gov_post_api.queue_vamc_service_updates: diff --git a/docroot/modules/custom/va_gov_vet_center/js/script.es6.js b/docroot/modules/custom/va_gov_vet_center/js/script.es6.js index 3b5c7522ce5..81f885bb816 100644 --- a/docroot/modules/custom/va_gov_vet_center/js/script.es6.js +++ b/docroot/modules/custom/va_gov_vet_center/js/script.es6.js @@ -45,7 +45,7 @@ }); const adminRoles = ["content_admin", "administrator"]; - const targetTypes = ["vet_center"]; + const targetTypes = ["vet_center", "vet_center_outstation"]; // If we are on a target type and user isn't admin, add a title, // and label to fieldgroup. if ( diff --git a/docroot/modules/custom/va_gov_vet_center/js/script.js b/docroot/modules/custom/va_gov_vet_center/js/script.js index 65114395826..59b4fadcb72 100644 --- a/docroot/modules/custom/va_gov_vet_center/js/script.js +++ b/docroot/modules/custom/va_gov_vet_center/js/script.js @@ -4,59 +4,44 @@ * https://www.drupal.org/node/2815083 * @preserve **/ - (function ($, Drupal) { Drupal.behaviors.vetCenterVastDataNodeOutputManipulation = { attach: function attach(context) { if (context.querySelectorAll(".admin-help-email-tpl").length) { var emailLinks = context.querySelectorAll(".admin-help-email-tpl"); - var facilityID = context.querySelector(".field--name-field-facility-locator-api-id .field__item") ? context.querySelector(".field--name-field-facility-locator-api-id .field__item").textContent : context.querySelector("#edit-field-facility-locator-api-id-0-value").value; - var facilityName = context.querySelector(".breadcrumb li:last-child") !== null ? context.querySelector(".breadcrumb li:last-child").textContent.trim() : ""; - emailLinks.forEach(function (emailLink) { var eHref = emailLink.href; emailLink.setAttribute("href", eHref.replace("[js_entry_facility_name]", facilityName).replace("[js_entry_facility_name]", facilityName).replace("[js_entry_facility_id]", facilityID)); }); - var adminRoles = ["content_admin", "administrator"]; - var targetTypes = ["vet_center"]; - + var targetTypes = ["vet_center", "vet_center_outstation"]; if (drupalSettings.gtm_data.contentType && targetTypes.some(function (item) { return drupalSettings.gtm_data.contentType.includes(item); }) && !adminRoles.some(function (item) { return drupalSettings.gtm_data.userRoles.includes(item); })) { var targetFieldGroup = context.querySelector(".node__content > .not-editable.tooltip-layout"); - var facilityDataFieldGroup = context.createElement("div"); - var legend = context.createElement("h3"); legend.style.fontFamily = "Lucida Grande, Lucida Sans Unicode, DejaVu Sans, Lucida Sans, sans-serif"; legend.style.fontSize = "1rem"; legend.innerHTML = "FACILITY DATA"; - var label = context.createElement("div"); label.classList.add("field__label"); label.innerHTML = "Name of facility"; - var fieldItem = context.createElement("div"); var description = context.querySelector("#locations-and-contact-information .tooltip-layout .description"); fieldItem.classList.add("field__item"); fieldItem.innerHTML = facilityName; - targetFieldGroup.insertBefore(fieldItem, targetFieldGroup.firstChild); - targetFieldGroup.insertBefore(label, targetFieldGroup.firstChild); - targetFieldGroup.insertBefore(description, targetFieldGroup.firstChild); - targetFieldGroup.insertBefore(legend, targetFieldGroup.firstChild); - targetFieldGroup.appendChild(facilityDataFieldGroup); } } } }; -})(jQuery, window.Drupal); +})(jQuery, window.Drupal); \ No newline at end of file diff --git a/docroot/modules/custom/va_gov_vet_center/src/EventSubscriber/EntityEventSubscriber.php b/docroot/modules/custom/va_gov_vet_center/src/EventSubscriber/EntityEventSubscriber.php index f300cdb510a..9d6a9c99839 100644 --- a/docroot/modules/custom/va_gov_vet_center/src/EventSubscriber/EntityEventSubscriber.php +++ b/docroot/modules/custom/va_gov_vet_center/src/EventSubscriber/EntityEventSubscriber.php @@ -3,13 +3,6 @@ namespace Drupal\va_gov_vet_center\EventSubscriber; use Drupal\Component\Render\FormattableMarkup; -use Drupal\core_event_dispatcher\EntityHookEvents; -use Drupal\core_event_dispatcher\FormHookEvents; -use Drupal\core_event_dispatcher\Event\Entity\EntityInsertEvent; -use Drupal\core_event_dispatcher\Event\Entity\EntityUpdateEvent; -use Drupal\core_event_dispatcher\Event\Entity\EntityViewAlterEvent; -use Drupal\core_event_dispatcher\Event\Form\FormAlterEvent; -use Drupal\core_event_dispatcher\Event\Form\FormIdAlterEvent; use Drupal\Core\Entity\EntityFormInterface; use Drupal\Core\Entity\EntityTypeManager; use Drupal\Core\Form\FormStateInterface; @@ -17,6 +10,13 @@ use Drupal\Core\Render\RendererInterface; use Drupal\Core\StringTranslation\StringTranslationTrait; use Drupal\Core\StringTranslation\TranslationInterface; +use Drupal\core_event_dispatcher\EntityHookEvents; +use Drupal\core_event_dispatcher\Event\Entity\EntityInsertEvent; +use Drupal\core_event_dispatcher\Event\Entity\EntityUpdateEvent; +use Drupal\core_event_dispatcher\Event\Entity\EntityViewAlterEvent; +use Drupal\core_event_dispatcher\Event\Form\FormAlterEvent; +use Drupal\core_event_dispatcher\Event\Form\FormIdAlterEvent; +use Drupal\core_event_dispatcher\FormHookEvents; use Drupal\taxonomy\Entity\Term; use Drupal\va_gov_user\Service\UserPermsService; use Drupal\va_gov_vet_center\Service\RequiredServices; @@ -278,6 +278,7 @@ public function alterVetCenterMvcNodeForm(FormIdAlterEvent $event): void { public function alterVetCenterOutstationNodeForm(FormIdAlterEvent $event): void { $form = &$event->getForm(); $form['#attached']['library'][] = 'va_gov_vet_center/limit_vet_service_selections'; + $this->disableNameFieldForNonAdmins($form); } /** diff --git a/docroot/themes/custom/vagovclaro/assets/scss/components/_fields.scss b/docroot/themes/custom/vagovclaro/assets/scss/components/_fields.scss index 7bfefb1ef9a..d3ee628d2fb 100644 --- a/docroot/themes/custom/vagovclaro/assets/scss/components/_fields.scss +++ b/docroot/themes/custom/vagovclaro/assets/scss/components/_fields.scss @@ -226,11 +226,3 @@ body:not(.role-admin) { .magichead .fieldset__wrapper { margin-left: var(--spacing-xl); } - -#edit-field-publish-to-outreach-cal-wrapper div.form-item--field-publish-to-outreach-cal-value { - margin-left: auto; -} - -#edit-field-publish-to-outreach-cal-wrapper label { - margin-left: var(--spacing-xs); -} diff --git a/package-lock.json b/package-lock.json index 00dd34cd852..96c5b3b11f8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -89,12 +89,13 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.5.tgz", - "integrity": "sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==", + "version": "7.22.13", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz", + "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==", "dev": true, "dependencies": { - "@babel/highlight": "^7.22.5" + "@babel/highlight": "^7.22.13", + "chalk": "^2.4.2" }, "engines": { "node": ">=6.9.0" @@ -163,12 +164,12 @@ "dev": true }, "node_modules/@babel/generator": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.22.5.tgz", - "integrity": "sha512-+lcUbnTRhd0jOewtFSedLyiPsD5tswKkbgcezOqqWFUVNEwoUTlpPOBmvhG7OXWLR4jMdv0czPGH5XbflnD1EA==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.0.tgz", + "integrity": "sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==", "dev": true, "dependencies": { - "@babel/types": "^7.22.5", + "@babel/types": "^7.23.0", "@jridgewell/gen-mapping": "^0.3.2", "@jridgewell/trace-mapping": "^0.3.17", "jsesc": "^2.5.1" @@ -349,22 +350,22 @@ "peer": true }, "node_modules/@babel/helper-environment-visitor": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz", - "integrity": "sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-function-name": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz", - "integrity": "sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", "dev": true, "dependencies": { - "@babel/template": "^7.22.5", - "@babel/types": "^7.22.5" + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" }, "engines": { "node": ">=6.9.0" @@ -512,9 +513,9 @@ } }, "node_modules/@babel/helper-split-export-declaration": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.5.tgz", - "integrity": "sha512-thqK5QFghPKWLhAV321lxF95yCg2K3Ob5yw+M3VHWfdia0IkPXUtoLH8x/6Fh486QUvzhb8YOWHChTVen2/PoQ==", + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", "dev": true, "dependencies": { "@babel/types": "^7.22.5" @@ -533,9 +534,9 @@ } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz", - "integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", "dev": true, "engines": { "node": ">=6.9.0" @@ -581,13 +582,13 @@ } }, "node_modules/@babel/highlight": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.5.tgz", - "integrity": "sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz", + "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==", "dev": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.22.5", - "chalk": "^2.0.0", + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", "js-tokens": "^4.0.0" }, "engines": { @@ -595,9 +596,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.5.tgz", - "integrity": "sha512-DFZMC9LJUG9PLOclRC32G63UXwzqS2koQC8dkx+PLdmt1xSePYpbT/NbsrJy8Q/muXz7o/h/d4A7Fuyixm559Q==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz", + "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -2058,33 +2059,33 @@ } }, "node_modules/@babel/template": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.5.tgz", - "integrity": "sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", + "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.22.5", - "@babel/parser": "^7.22.5", - "@babel/types": "^7.22.5" + "@babel/code-frame": "^7.22.13", + "@babel/parser": "^7.22.15", + "@babel/types": "^7.22.15" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.5.tgz", - "integrity": "sha512-7DuIjPgERaNo6r+PZwItpjCZEa5vyw4eJGufeLxrPdBXBoLcCJCIasvK6pK/9DVNrLZTLFhUGqaC6X/PA007TQ==", + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.2.tgz", + "integrity": "sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.22.5", - "@babel/generator": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.23.0", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.5", - "@babel/parser": "^7.22.5", - "@babel/types": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.23.0", + "@babel/types": "^7.23.0", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -2116,13 +2117,13 @@ "dev": true }, "node_modules/@babel/types": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.5.tgz", - "integrity": "sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.0.tgz", + "integrity": "sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==", "dev": true, "dependencies": { "@babel/helper-string-parser": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.20", "to-fast-properties": "^2.0.0" }, "engines": { @@ -16262,12 +16263,13 @@ } }, "@babel/code-frame": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.5.tgz", - "integrity": "sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==", + "version": "7.22.13", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz", + "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==", "dev": true, "requires": { - "@babel/highlight": "^7.22.5" + "@babel/highlight": "^7.22.13", + "chalk": "^2.4.2" } }, "@babel/compat-data": { @@ -16317,12 +16319,12 @@ } }, "@babel/generator": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.22.5.tgz", - "integrity": "sha512-+lcUbnTRhd0jOewtFSedLyiPsD5tswKkbgcezOqqWFUVNEwoUTlpPOBmvhG7OXWLR4jMdv0czPGH5XbflnD1EA==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.0.tgz", + "integrity": "sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==", "dev": true, "requires": { - "@babel/types": "^7.22.5", + "@babel/types": "^7.23.0", "@jridgewell/gen-mapping": "^0.3.2", "@jridgewell/trace-mapping": "^0.3.17", "jsesc": "^2.5.1" @@ -16460,19 +16462,19 @@ } }, "@babel/helper-environment-visitor": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz", - "integrity": "sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", "dev": true }, "@babel/helper-function-name": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz", - "integrity": "sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", "dev": true, "requires": { - "@babel/template": "^7.22.5", - "@babel/types": "^7.22.5" + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" } }, "@babel/helper-hoist-variables": { @@ -16584,9 +16586,9 @@ } }, "@babel/helper-split-export-declaration": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.5.tgz", - "integrity": "sha512-thqK5QFghPKWLhAV321lxF95yCg2K3Ob5yw+M3VHWfdia0IkPXUtoLH8x/6Fh486QUvzhb8YOWHChTVen2/PoQ==", + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", "dev": true, "requires": { "@babel/types": "^7.22.5" @@ -16599,9 +16601,9 @@ "dev": true }, "@babel/helper-validator-identifier": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz", - "integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", "dev": true }, "@babel/helper-validator-option": { @@ -16635,20 +16637,20 @@ } }, "@babel/highlight": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.5.tgz", - "integrity": "sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz", + "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.22.5", - "chalk": "^2.0.0", + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", "js-tokens": "^4.0.0" } }, "@babel/parser": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.5.tgz", - "integrity": "sha512-DFZMC9LJUG9PLOclRC32G63UXwzqS2koQC8dkx+PLdmt1xSePYpbT/NbsrJy8Q/muXz7o/h/d4A7Fuyixm559Q==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz", + "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==", "dev": true }, "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { @@ -17656,30 +17658,30 @@ } }, "@babel/template": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.5.tgz", - "integrity": "sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", + "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", "dev": true, "requires": { - "@babel/code-frame": "^7.22.5", - "@babel/parser": "^7.22.5", - "@babel/types": "^7.22.5" + "@babel/code-frame": "^7.22.13", + "@babel/parser": "^7.22.15", + "@babel/types": "^7.22.15" } }, "@babel/traverse": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.5.tgz", - "integrity": "sha512-7DuIjPgERaNo6r+PZwItpjCZEa5vyw4eJGufeLxrPdBXBoLcCJCIasvK6pK/9DVNrLZTLFhUGqaC6X/PA007TQ==", + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.2.tgz", + "integrity": "sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==", "dev": true, "requires": { - "@babel/code-frame": "^7.22.5", - "@babel/generator": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.23.0", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.5", - "@babel/parser": "^7.22.5", - "@babel/types": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.23.0", + "@babel/types": "^7.23.0", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -17702,13 +17704,13 @@ } }, "@babel/types": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.5.tgz", - "integrity": "sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.0.tgz", + "integrity": "sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==", "dev": true, "requires": { "@babel/helper-string-parser": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.20", "to-fast-properties": "^2.0.0" } }, diff --git a/package.json b/package.json index 5df11ed4b19..2748e288777 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,7 @@ "test:cypress": "cypress run -e \"TAGS=$CYPRESS_TAGS\"", "test:cypress:verify": "cypress verify", "test:cypress:interactive": "cypress open -e \"TAGS=not @ignore and not @piv,VAGOV_INTERACTIVE=true\"", - "test:cypress:parallel": "cypress-parallel --script test:cypress --threads 3 --strictMode false --specsDir tests/cypress/integration --weightsJson tests/cypress/integration/weights.json" + "test:cypress:parallel": "cypress-parallel -v --reporter 'spec' --script test:cypress --threads 3 --strictMode false --specsDir tests/cypress/integration --weightsJson tests/cypress/integration/weights.json" }, "repository": { "type": "git", diff --git a/scripts/content/VACMS-15422-vet-center-outstation-copy-title.php b/scripts/content/VACMS-15422-vet-center-outstation-copy-title.php new file mode 100644 index 00000000000..289f52752fe --- /dev/null +++ b/scripts/content/VACMS-15422-vet-center-outstation-copy-title.php @@ -0,0 +1,112 @@ + 0]; +do { + print(va_gov_copy_vet_center_os_title($sandbox, $revision_message)); +} while ($sandbox['#finished'] < 1); +// Node processing complete. Call this done. +return; + +/** + * Copy node title to field_official_name. + * + * @param array $sandbox + * Modeling the structure of hook_update_n sandbox. + * @param string $revision_message + * Text to be used in revision log message. + * + * @return string + * Status message. + */ +function va_gov_copy_vet_center_os_title(array &$sandbox, $revision_message) { + $node_storage = \Drupal::entityTypeManager()->getStorage('node'); + + // Get the count for Vet Center - Outstations. + // This runs only once. + if (!isset($sandbox['total'])) { + $query = $node_storage->getQuery(); + $query->condition('type', 'vet_center_outstation'); + $nids_to_update = $query->execute(); + $result_count = count($nids_to_update); + $sandbox['total'] = $result_count; + $sandbox['current'] = 0; + $sandbox['updated'] = 0; + + // Create non-numeric keys to accurately remove each nid when processed. + $sandbox['nids_to_update'] = array_combine( + array_map('_va_gov_stringifynid', array_values($nids_to_update)), + array_values($nids_to_update) + ); + } + + // Do not continue if no nodes are found. + if (empty($sandbox['total'])) { + $sandbox['#finished'] = 1; + return "No Vet Center - Outstation nodes found for processing.\n"; + } + + $limit = 25; + + // Load entities. + $node_ids = array_slice($sandbox['nids_to_update'], 0, $limit, TRUE); + $nodes = $node_storage->loadMultiple($node_ids); + foreach ($nodes as $node) { + /** @var \Drupal\node\NodeInterface $node */ + $nid = $node->id(); + $nvid = $node->getRevisionId(); + $original_name = $node->getTitle(); + $node->field_official_name->value = $original_name; + + // Grab the latest revision before we save this one. + $latest_revision = get_node_at_latest_revision($nid); + save_node_revision($node, $revision_message, FALSE); + + // If a revision (draft) newer than the default exists, update it as well. + if ($nvid !== $latest_revision->getRevisionId()) { + $original_name = $latest_revision->getTitle(); + $latest_revision->field_official_name->value = $original_name; + save_node_revision($latest_revision, $revision_message, FALSE); + unset($latest_revision); + } + + $sandbox['updated']++; + $nids[] = $nid; + + unset($sandbox['nids_to_update']["node_{$nid}"]); + $sandbox['current'] = $sandbox['total'] - count($sandbox['nids_to_update']); + } + + // Log the processed nodes. + Drupal::logger('va_gov_db') + ->log(LogLevel::INFO, 'Vet Center - Outstation update: Successfully copied %current node title fields to the "Name of Vet Center - Outstation" fields. Nodes updated: %nids', [ + '%current' => $sandbox['current'], + '%nids' => empty($nids) ? 'None' : implode(', ', $nids), + ]); + + $sandbox['#finished'] = ($sandbox['current'] / $sandbox['total']); + + // Log the all-finished notice. + if ($sandbox['#finished'] == 1) { + Drupal::logger('va_gov_db')->log(LogLevel::INFO, 'Copying all %count Vet Center - Oustation title fields completed.', [ + '%count' => $sandbox['total'], + ]); + return "Vet Center - Outstation node updates complete. {$sandbox['current']} / {$sandbox['total']} - Total updated: {$sandbox['updated']}\n"; + } + + return "Processed nodes... {$sandbox['current']} / {$sandbox['total']}.\n"; +} diff --git a/scripts/remove-git-dirs.sh b/scripts/remove-git-dirs.sh index d23b9d0adf1..950980a71ce 100755 --- a/scripts/remove-git-dirs.sh +++ b/scripts/remove-git-dirs.sh @@ -13,6 +13,7 @@ find . \ -not \ \( \ -path './docroot/vendor/va-gov/content-build/.git' \ + -or -path './docroot/vendor/va-gov/vets-website/.git' \ \) \ -print \ -exec rm -rf {} + diff --git a/tests/cypress/integration/features/content_type/campaign_landing_page/basic_requirements.feature b/tests/cypress/integration/features/content_type/campaign_landing_page/clp_basic_requirements.feature similarity index 100% rename from tests/cypress/integration/features/content_type/campaign_landing_page/basic_requirements.feature rename to tests/cypress/integration/features/content_type/campaign_landing_page/clp_basic_requirements.feature diff --git a/tests/cypress/integration/features/content_type/campaign_landing_page/connect_with_us.feature b/tests/cypress/integration/features/content_type/campaign_landing_page/clp_connect_with_us.feature similarity index 100% rename from tests/cypress/integration/features/content_type/campaign_landing_page/connect_with_us.feature rename to tests/cypress/integration/features/content_type/campaign_landing_page/clp_connect_with_us.feature diff --git a/tests/cypress/integration/features/content_type/campaign_landing_page/downloadable_resources.feature b/tests/cypress/integration/features/content_type/campaign_landing_page/clp_downloadable_resources.feature similarity index 100% rename from tests/cypress/integration/features/content_type/campaign_landing_page/downloadable_resources.feature rename to tests/cypress/integration/features/content_type/campaign_landing_page/clp_downloadable_resources.feature diff --git a/tests/cypress/integration/features/content_type/campaign_landing_page/events.feature b/tests/cypress/integration/features/content_type/campaign_landing_page/clp_events.feature similarity index 100% rename from tests/cypress/integration/features/content_type/campaign_landing_page/events.feature rename to tests/cypress/integration/features/content_type/campaign_landing_page/clp_events.feature diff --git a/tests/cypress/integration/features/content_type/campaign_landing_page/faq.feature b/tests/cypress/integration/features/content_type/campaign_landing_page/clp_faq.feature similarity index 93% rename from tests/cypress/integration/features/content_type/campaign_landing_page/faq.feature rename to tests/cypress/integration/features/content_type/campaign_landing_page/clp_faq.feature index b175dfbbf45..32a539314db 100644 --- a/tests/cypress/integration/features/content_type/campaign_landing_page/faq.feature +++ b/tests/cypress/integration/features/content_type/campaign_landing_page/clp_faq.feature @@ -10,5 +10,5 @@ Feature: Content Type: Campaign Landing Page And I click the "Add Page-Specific Q&A" button Then I can fill in "Question" field with fake text And I can fill in "Text" field with fake text + And I should see "Add Reusable Q&A" And I should see "Add a link to more FAQs" -# TODO: Test the call to action button diff --git a/tests/cypress/integration/features/content_type/campaign_landing_page/hero_banner.feature b/tests/cypress/integration/features/content_type/campaign_landing_page/clp_hero_banner.feature similarity index 100% rename from tests/cypress/integration/features/content_type/campaign_landing_page/hero_banner.feature rename to tests/cypress/integration/features/content_type/campaign_landing_page/clp_hero_banner.feature diff --git a/tests/cypress/integration/features/content_type/campaign_landing_page/spotlight.feature b/tests/cypress/integration/features/content_type/campaign_landing_page/clp_spotlight.feature similarity index 100% rename from tests/cypress/integration/features/content_type/campaign_landing_page/spotlight.feature rename to tests/cypress/integration/features/content_type/campaign_landing_page/clp_spotlight.feature diff --git a/tests/cypress/integration/features/content_type/campaign_landing_page/stories.feature b/tests/cypress/integration/features/content_type/campaign_landing_page/clp_stories.feature similarity index 100% rename from tests/cypress/integration/features/content_type/campaign_landing_page/stories.feature rename to tests/cypress/integration/features/content_type/campaign_landing_page/clp_stories.feature diff --git a/tests/cypress/integration/features/content_type/campaign_landing_page/video.feature b/tests/cypress/integration/features/content_type/campaign_landing_page/clp_video.feature similarity index 100% rename from tests/cypress/integration/features/content_type/campaign_landing_page/video.feature rename to tests/cypress/integration/features/content_type/campaign_landing_page/clp_video.feature diff --git a/tests/cypress/integration/features/content_type/campaign_landing_page/what_you_can_do.feature b/tests/cypress/integration/features/content_type/campaign_landing_page/clp_what_you_can_do.feature similarity index 100% rename from tests/cypress/integration/features/content_type/campaign_landing_page/what_you_can_do.feature rename to tests/cypress/integration/features/content_type/campaign_landing_page/clp_what_you_can_do.feature diff --git a/tests/cypress/integration/features/content_type/campaign_landing_page/why_this_matters.feature b/tests/cypress/integration/features/content_type/campaign_landing_page/clp_why_this_matters.feature similarity index 100% rename from tests/cypress/integration/features/content_type/campaign_landing_page/why_this_matters.feature rename to tests/cypress/integration/features/content_type/campaign_landing_page/clp_why_this_matters.feature diff --git a/tests/cypress/integration/features/content_type/event.feature b/tests/cypress/integration/features/content_type/event.feature index e229f0d88c1..6920dce76b6 100644 --- a/tests/cypress/integration/features/content_type/event.feature +++ b/tests/cypress/integration/features/content_type/event.feature @@ -2,11 +2,8 @@ Feature: Content Type: Event Scenario: Log in and create an event. - Given I am logged in as a user with the "administrator" role - When I set the "feature_event_outreach_checkbox" feature toggle to "on" - And I log out Given I am logged in as a user with the "content_admin" role - And I create a "event" node + Then I create a "event" node Scenario: Confirm that event form conditional fields are cleared out if parent options change Given I am logged in as a user with the "content_admin" role @@ -36,12 +33,63 @@ Feature: Content Type: Event And the option "- None -" from dropdown "State" should be selected When I select the "Online" radio button Then an element with the selector "#edit-field-url-of-an-online-event-0-uri" should be empty + # EVENT FORM SPECS - Scenario: Users who can only publish to National Outreach Calendar do not see the "Publish to the National Outreach Calendar" checkbox - Given I am logged in as a user with the "administrator" role - When I set the "feature_event_outreach_checkbox" feature toggle to "on" - And I log out - Given I am logged in as a user with the roles "office_content_creator, content_publisher" - And my workbench access sections are set to "7" + Scenario: Confirm that the default time zone when creating an event is set explicitly to Eastern. + Given I am logged in as a user with the "content_admin" role + When I am at "node/add/event" + Then the element with selector "#edit-field-datetime-range-timezone-0-timezone" should contain "New York" + + Scenario: Confirm that the event form conditional elements are shown or hidden appropriately + Given I am logged in as a user with the "content_admin" role And I am at "node/add/event" - Then I should see "This event will automatically be published to the National Outreach Calendar" + + And I select the "At a VA facility" radio button + Then I should see "Facility location" + And I should see "Building, floor, or room" + And I should not see "Street address" + And I should not see an element with the selector "#edit-field-address-0-address-locality" + And I should not see an element with the selector "#edit-field-address-0-address-administrative-area" + And I should not see "Country" + And I should not see an element with the selector "#edit-field-url-of-an-online-event-0-uri" + + When I select the "At a non-VA location" radio button + Then I should not see "Facility location" + And I should see "Building, floor, or room" + And I should see "Street address" + And I should see an element with the selector "#edit-field-address-0-address-locality" + And I should see an element with the selector "#edit-field-address-0-address-administrative-area" + And I should see "Country" + And I should not see an element with the selector "#edit-field-url-of-an-online-event-0-uri" + + When I select the "Online" radio button + Then I should not see "Facility location" + And I should not see "Building, floor, or room" + And I should not see "Street address" + And I should not see an element with the selector "#edit-field-address-0-address-locality" + And I should not see an element with the selector "#edit-field-address-0-address-administrative-area" + And I should not see "Country" + And I should see an element with the selector "#edit-field-url-of-an-online-event-0-uri" + + # Registration checkbox reveals conditional form elements + When I check the "Include registration information" checkbox + Then "Cost" should be visible + And I should see "Registration is required for this event" + And "Call to action" should be visible + + When I select option "Register" from dropdown "Call to action" + Then I should see an element with the selector "#edit-field-link-0-uri" + And I select option "Apply" from dropdown "Call to action" + Then I should see an element with the selector "#edit-field-link-0-uri" + And I select option "RSVP" from dropdown "Call to action" + Then I should see an element with the selector "#edit-field-link-0-uri" + And I select option "More Details" from dropdown "Call to action" + Then I should see an element with the selector "#edit-field-link-0-uri" + And I select option "- None -" from dropdown "Call to action" + Then I should not see an element with the selector "#edit-field-link-0-uri" + + When I uncheck the "Include registration information" checkbox + Then I should not see "Cost" + And I should not see "Registration is required for this event" + And I should not see "Call to action" + And I should not see an element with the selector "#edit-field-link-0-uri" diff --git a/tests/cypress/integration/features/content_type/full_width_banner_alert.feature b/tests/cypress/integration/features/content_type/full_width_banner_alert.feature index 3dbef934dac..44a7880c2dd 100644 --- a/tests/cypress/integration/features/content_type/full_width_banner_alert.feature +++ b/tests/cypress/integration/features/content_type/full_width_banner_alert.feature @@ -20,12 +20,13 @@ Scenario: Log in and create VAMC Full Width Banner Alert And I save the node Then the primary tab "Edit" should exist And the primary tab "Revisions" should exist - Given I click the edit tab - And I fill in field with selector "#edit-revision-log-0-value" with value "[Test Data] Revision log message unpublish." - And I uncheck the "Published" checkbox within "#edit-status-wrapper" - And I save the node - Then the primary tab "Edit" should not exist - And the primary tab "Revisions" should exist - And I should see "it can no longer be edited." - Given I reload the page - Then I should see "it can no longer be edited." +# -- The test fails from this point forward if there is an existing VA Boston banner. +# Given I click the edit tab +# And I fill in field with selector "#edit-revision-log-0-value" with value "[Test Data] Revision log message unpublish." +# And I uncheck the "Published" checkbox within "#edit-status-wrapper" +# And I save the node +# Then the primary tab "Edit" should not exist +# And the primary tab "Revisions" should exist +# And I should see "it can no longer be edited." +# Given I reload the page +# Then I should see "it can no longer be edited." diff --git a/tests/cypress/integration/features/platform/file_upload.feature b/tests/cypress/integration/features/platform/file_upload.feature new file mode 100644 index 00000000000..e3e3cc71a68 --- /dev/null +++ b/tests/cypress/integration/features/platform/file_upload.feature @@ -0,0 +1,11 @@ +@file_upload +Feature: Files can be uploaded and attached to nodes successfully + In order to reliably and predictably create content + As anybody involved in the project + I need to be able to upload and attach files to nodes. + + Scenario: We should be able to attach files to event nodes. + Given I am logged in as a user with the "content_admin" role + When I create a "event" node + Then "polygon_image.png" should exist + And an image with the selector 'div.field--name-image a img' should exist diff --git a/tests/cypress/integration/step_definitions/common/i_create_a_node.js b/tests/cypress/integration/step_definitions/common/i_create_a_node.js index ff6578e57ac..d3535e4114a 100644 --- a/tests/cypress/integration/step_definitions/common/i_create_a_node.js +++ b/tests/cypress/integration/step_definitions/common/i_create_a_node.js @@ -244,7 +244,6 @@ const creators = { "VA Alaska health care: Events", { force: true } ); - cy.get("#edit-field-publish-to-outreach-cal-value").check(); cy.findAllByLabelText("Street address").type( faker.address.streetAddress(), { force: true } @@ -280,7 +279,6 @@ const creators = { ).should("exist"); cy.get("form.node-form").find("input#edit-submit").click(); cy.get(".node__content").contains("Sun, Nov 5 2023, 10:00am - 11:00am MST"); - cy.get(".node__content").contains("Outreach events"); cy.scrollTo("top", { ensureScrollable: false }); cy.get(".tabs__tab a").contains("Edit").click({ force: true }); cy.get("#edit-field-datetime-range-timezone-0-manage-instances").click(); diff --git a/tests/cypress/integration/step_definitions/common/i_set_a_feature_toggle.js b/tests/cypress/integration/step_definitions/common/i_set_a_feature_toggle.js deleted file mode 100644 index 3cc671bc62e..00000000000 --- a/tests/cypress/integration/step_definitions/common/i_set_a_feature_toggle.js +++ /dev/null @@ -1,14 +0,0 @@ -import { When } from "@badeball/cypress-cucumber-preprocessor"; - -When("I set the {string} feature toggle to {string}", (featureToggleMachineName, value) => { - let featureToggleAdminUrl = '/admin/config/system/feature_toggle'; - cy.visit(featureToggleAdminUrl); - // check or uncheck the box based on the value of "value". - if (value === "on") { - cy.get(`input[name=${featureToggleMachineName}]`).check({force: true}); - } - if (value === "off") { - cy.get(`input[name=${featureToggleMachineName}]`).uncheck({force: true}); - } - cy.get('#edit-submit').click(); -});