From db1e7642f367c5fa57288f6466f4ac7abe5f2ae2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 5 Sep 2024 18:04:47 -0700 Subject: [PATCH 01/86] Bump va-gov/content-build from 0.0.3583 to 0.0.3584 (#19133) Bumps [va-gov/content-build](https://github.com/department-of-veterans-affairs/content-build) from 0.0.3583 to 0.0.3584. - [Release notes](https://github.com/department-of-veterans-affairs/content-build/releases) - [Commits](https://github.com/department-of-veterans-affairs/content-build/compare/v0.0.3583...v0.0.3584) --- updated-dependencies: - dependency-name: va-gov/content-build dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- composer.json | 2 +- composer.lock | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/composer.json b/composer.json index a4e81b10f0..d9a64c3a3a 100644 --- a/composer.json +++ b/composer.json @@ -226,7 +226,7 @@ "symfony/phpunit-bridge": "^5.1", "symfony/process": "^6.3", "symfony/routing": "^6.3", - "va-gov/content-build": "^0.0.3583", + "va-gov/content-build": "^0.0.3584", "vlucas/phpdotenv": "^5.6", "webflo/drupal-finder": "1.2.2", "webmozart/path-util": "^2.3", diff --git a/composer.lock b/composer.lock index e8b22210d6..258e9d3219 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": "51a0ea05e0a2e7b078035a30656de2bb", + "content-hash": "000b2379c7ec34c23c557f3b7db07b3e", "packages": [ { "name": "asm89/stack-cors", @@ -26388,16 +26388,16 @@ }, { "name": "va-gov/content-build", - "version": "v0.0.3583", + "version": "v0.0.3584", "source": { "type": "git", "url": "https://github.com/department-of-veterans-affairs/content-build.git", - "reference": "ea6009c68e7928a043a06a2324ea883a56f46bcf" + "reference": "8281dd27e959456eca2c42a9e5f4b02d018cb6f2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/department-of-veterans-affairs/content-build/zipball/ea6009c68e7928a043a06a2324ea883a56f46bcf", - "reference": "ea6009c68e7928a043a06a2324ea883a56f46bcf", + "url": "https://api.github.com/repos/department-of-veterans-affairs/content-build/zipball/8281dd27e959456eca2c42a9e5f4b02d018cb6f2", + "reference": "8281dd27e959456eca2c42a9e5f4b02d018cb6f2", "shasum": "" }, "type": "node-project", @@ -26424,9 +26424,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.3583" + "source": "https://github.com/department-of-veterans-affairs/content-build/tree/v0.0.3584" }, - "time": "2024-09-04T14:54:39+00:00" + "time": "2024-09-05T14:17:06+00:00" }, { "name": "vlucas/phpdotenv", From 86c246d2fef7080599cd4f9f4292fab6b7307133 Mon Sep 17 00:00:00 2001 From: Randi Mays Date: Fri, 6 Sep 2024 12:50:25 -0500 Subject: [PATCH 02/86] VACMS-18855 Find Forms feature toggle for PDF modal (#19137) --- config/sync/feature_toggle.features.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/config/sync/feature_toggle.features.yml b/config/sync/feature_toggle.features.yml index ecd31bcaa8..48dccf23f0 100644 --- a/config/sync/feature_toggle.features.yml +++ b/config/sync/feature_toggle.features.yml @@ -5,3 +5,4 @@ features: feature_health_connect_number: FEATURE_HEALTH_CONNECT_NUMBER feature_next_story_preview: FEATURE_NEXT_STORY_PREVIEW feature_decision_review_rum: FEATURE_DECISION_REVIEW_RUM + feature_find_forms_modal: FEATURE_FIND_FORMS_MODAL \ No newline at end of file From fbd728ed07857e27fee481c27ea8375ae0976b64 Mon Sep 17 00:00:00 2001 From: Edmund Dunn <109987005+edmund-dunn@users.noreply.github.com> Date: Fri, 6 Sep 2024 12:34:35 -0700 Subject: [PATCH 03/86] VACMS-18821: implement script to move unattached pdfs from drupal into s3 bucket (#18908) * VACMS-18821: added s3fs file initial work on script * VACMS-18821: finalize service to remove unattached pdfs * VACMS-18821: adding s3fs settings to settings files * VACMS-18821: adding s3fs settings to settings files * VACMS-18821: updated composer.lock * VACMS-18821: add s3fs dependency to va_gov_media .info.yml file * VACMS-18821: add install file to va_gov_media to install s3fs because of service dependency * VACMS-18821: add install file to va_gov_media to install s3fs because of service dependency * 18703-update-drupal-core-to-v1031: Updating core and rerolling patches for v1032. * 18703-update-drupal-core-to-v1031: Updating ECA contrib module to apply to 1032. * VACMS-18821: update composer.lock * 18703-update-drupal-core-to-v1031: Pushing twig_tweak, animated_gif, and monolog module updates. * VACMS-18703: Resolves ECA action error after upgrading to ECA 2.x. * 18703-update-drupal-core-to-v1031: Fixing hash conflict. * VACMS-18821: update settings files for prod and staging * VACMS-18703: fix for datadogprocessor error * 180703-update-drupal-core-to-v1031: Resolving lock file conflicts. * VACMS-18703: fix for phpunit tests * VACMS-18703: fix for change to /user/logout route for cypress test * VACMS-18703: Fix for ViewsResultCondition ECA Condition plugin. * VACMS-18821: updated composer.lock * VACMS-18821: updated for linting errors * VACMS-18821: updated composer.lock * 18703-update-core-to-v1031: Fixing lockfile conflict. * VACMS-18821: updated for d10.3 * VACMS-18821: updated composer.lock * VACMS-18821: updated composer.lock * VACMS-18821: updated db update to install s3fs * VACMS-18821: updated db update to install s3fs * VACMS-18821: phpstan error fix * VACMS-18821: phpstan error fix * VACMS-18821: remove unneded .install file * VACMS-18821: update composer.lock * VACMS-18821: updated service for VAMC facilities * VACMS-18821: updated composer.lock * VACMS-18821: fix typo * VACMS-18821: updated method naming * VACMS-18821: updated method naming --------- Co-authored-by: JakeBapple Co-authored-by: Daniel Sasser Co-authored-by: Jake Bapple <166155028+JakeBapple@users.noreply.github.com> --- .tugboat/.env.j2 | 2 + composer.json | 1 + composer.lock | 136 ++++++---- .../ECA/Condition/ViewsResultCondition.php | 2 +- .../src/Service/VamcPdfDeleteInterface.php | 15 ++ .../src/Service/VamcPdfDeleteService.php | 245 ++++++++++++++++++ .../custom/va_gov_media/va_gov_media.info.yml | 1 + .../va_gov_media/va_gov_media.services.yml | 4 +- .../sites/default/settings/settings.prod.php | 12 + .../default/settings/settings.staging.php | 12 + .../default/settings/settings.tugboat.php | 9 + phpstan-baseline.neon | 2 +- 12 files changed, 392 insertions(+), 49 deletions(-) create mode 100644 docroot/modules/custom/va_gov_media/src/Service/VamcPdfDeleteInterface.php create mode 100644 docroot/modules/custom/va_gov_media/src/Service/VamcPdfDeleteService.php diff --git a/.tugboat/.env.j2 b/.tugboat/.env.j2 index 6d60e6e91a..749bb5f100 100644 --- a/.tugboat/.env.j2 +++ b/.tugboat/.env.j2 @@ -16,6 +16,8 @@ CMS_VAGOV_API_URL="{{ CMS_VAGOV_API_URL }}" CMS_GOVDELIVERY_ENDPOINT="{{ CMS_GOVDELIVERY_ENDPOINT }}" CMS_GOVDELIVERY_USERNAME="{{ CMS_GOVDELIVERY_USERNAME }}" CMS_GOVDELIVERY_PASSWORD="{{ CMS_GOVDELIVERY_PASSWORD }}" +CMS_PDF_SERVICE_ACCT_KEY="{{ CMS_PDF_SERVICE_ACCT_KEY }}" +CMS_PDF_SERVICE_ACCT_SECRET="{{ CMS_PDF_SERVICE_ACCT_SECRET }}" # GitHub-Commenter and GitHub-Status-Updater environment variables. GITHUB_OWNER={{ TUGBOAT_GITHUB_OWNER }} diff --git a/composer.json b/composer.json index d9a64c3a3a..1cd358f800 100644 --- a/composer.json +++ b/composer.json @@ -117,6 +117,7 @@ "drupal/linkychecker": "^2.2", "drupal/linkyreplacer": "^2.2", "drupal/markup": "^2.0", + "drupal/media_file_delete": "^1.3", "drupal/memcache": "^2.5.0", "drupal/memcache_admin": "^2.5.0", "drupal/menu_breadcrumb": "^2.0@alpha", diff --git a/composer.lock b/composer.lock index 258e9d3219..4c6418ac86 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": "000b2379c7ec34c23c557f3b7db07b3e", + "content-hash": "d5679fec50ebf202a5bca824616fd50c", "packages": [ { "name": "asm89/stack-cors", @@ -118,16 +118,16 @@ }, { "name": "aws/aws-sdk-php", - "version": "3.321.1", + "version": "3.319.2", "source": { "type": "git", "url": "https://github.com/aws/aws-sdk-php.git", - "reference": "f4ad64dffc2665dde6275e6dcc3f653f15c6e57f" + "reference": "99b75502221af095f0a5a72b0df7ec44e865e699" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/f4ad64dffc2665dde6275e6dcc3f653f15c6e57f", - "reference": "f4ad64dffc2665dde6275e6dcc3f653f15c6e57f", + "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/99b75502221af095f0a5a72b0df7ec44e865e699", + "reference": "99b75502221af095f0a5a72b0df7ec44e865e699", "shasum": "" }, "require": { @@ -210,9 +210,9 @@ "support": { "forum": "https://forums.aws.amazon.com/forum.jspa?forumID=80", "issues": "https://github.com/aws/aws-sdk-php/issues", - "source": "https://github.com/aws/aws-sdk-php/tree/3.321.1" + "source": "https://github.com/aws/aws-sdk-php/tree/3.319.2" }, - "time": "2024-08-29T19:10:23+00:00" + "time": "2024-08-09T18:32:29+00:00" }, { "name": "bjeavons/zxcvbn-php", @@ -274,7 +274,7 @@ "version": "v4.1.0", "source": { "type": "git", - "url": "https://github.com/fengyuanchen/cropper.git", + "url": "git@github.com:fengyuanchen/cropper.git", "reference": "617d9bdb8688cc4edb3b03bc49a04b83c7facbe7" }, "dist": { @@ -5494,29 +5494,29 @@ }, { "name": "drupal/embed", - "version": "1.9.0", + "version": "1.7.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/embed.git", - "reference": "8.x-1.9" + "reference": "8.x-1.7" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/embed-8.x-1.9.zip", - "reference": "8.x-1.9", - "shasum": "e6b4875e2b245ddf1a68a8615cbb4c5a378a0e9f" + "url": "https://ftp.drupal.org/files/projects/embed-8.x-1.7.zip", + "reference": "8.x-1.7", + "shasum": "b7ca4264be51038f947d26b6725fc0446b224f60" }, "require": { - "drupal/core": "^9.5 | ^10" + "drupal/core": "^9.3 | ^10" }, "require-dev": { - "drupal/ckeditor": "^1.0" + "drupal/ckeditor": "*" }, "type": "drupal-module", "extra": { "drupal": { - "version": "8.x-1.9", - "datestamp": "1723283819", + "version": "8.x-1.7", + "datestamp": "1697642867", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -5533,7 +5533,7 @@ "homepage": "https://www.drupal.org/user/2828287" }, { - "name": "dave reid", + "name": "Dave Reid", "homepage": "https://www.drupal.org/user/53892" }, { @@ -9297,6 +9297,53 @@ "source": "https://git.drupalcode.org/project/markup" } }, + { + "name": "drupal/media_file_delete", + "version": "1.3.1", + "source": { + "type": "git", + "url": "https://git.drupalcode.org/project/media_file_delete.git", + "reference": "1.3.1" + }, + "dist": { + "type": "zip", + "url": "https://ftp.drupal.org/files/projects/media_file_delete-1.3.1.zip", + "reference": "1.3.1", + "shasum": "5d715425c65e97343665eb23a055ab4aca45fe47" + }, + "require": { + "drupal/core": "^8.8 || ~9.0 || ~10.0 || ^11" + }, + "require-dev": { + "drupal/entity_usage": "^2@beta" + }, + "type": "drupal-module", + "extra": { + "drupal": { + "version": "1.3.1", + "datestamp": "1721367494", + "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": "larowlan", + "homepage": "https://www.drupal.org/user/395439" + } + ], + "description": "Provides content editors the ability to delete associated files when deleting media items", + "homepage": "https://www.drupal.org/project/media_file_delete", + "support": { + "source": "https://git.drupalcode.org/project/media_file_delete" + } + }, { "name": "drupal/memcache", "version": "2.7.0", @@ -9679,17 +9726,17 @@ }, { "name": "drupal/menu_link_attributes", - "version": "1.5.0", + "version": "1.4.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/menu_link_attributes.git", - "reference": "8.x-1.5" + "reference": "8.x-1.4" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/menu_link_attributes-8.x-1.5.zip", - "reference": "8.x-1.5", - "shasum": "ad1db596ad8a76ba95fbf2d0a42d4777056587d5" + "url": "https://ftp.drupal.org/files/projects/menu_link_attributes-8.x-1.4.zip", + "reference": "8.x-1.4", + "shasum": "a679a5c53c94e3c992483ce3ea782950f4f7e5b3" }, "require": { "drupal/core": "^8 || ^9 || ^10 || ^11" @@ -9697,8 +9744,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "8.x-1.5", - "datestamp": "1724848806", + "version": "8.x-1.4", + "datestamp": "1724060900", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -9711,7 +9758,7 @@ ], "authors": [ { - "name": "anybody", + "name": "Anybody", "homepage": "https://www.drupal.org/user/291091" }, { @@ -10098,45 +10145,42 @@ }, { "name": "drupal/metatag", - "version": "2.0.2", + "version": "2.0.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/metatag.git", - "reference": "2.0.2" + "reference": "2.0.0" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/metatag-2.0.2.zip", - "reference": "2.0.2", - "shasum": "748013c50a0ed5e10359413bb3481392a0bf0d3f" + "url": "https://ftp.drupal.org/files/projects/metatag-2.0.0.zip", + "reference": "2.0.0", + "shasum": "2966c854d982b7069b1c0111519427990ebbad40" }, "require": { - "drupal/core": "^9.4 || ^10 || ^11", + "drupal/core": "^9.4 || ^10", "drupal/token": "^1.0", "php": ">=8.0" }, "require-dev": { - "drupal/hal": "^1 || ^2 || ^9", + "drupal/devel": "^4.0 || ^5.0", + "drupal/hal": "^9 || ^1 || ^2", "drupal/metatag_dc": "*", "drupal/metatag_open_graph": "*", "drupal/page_manager": "^4.0", "drupal/redirect": "^1.0", - "ergebnis/composer-normalize": "*", + "drupal/webprofiler": "^9 || ^10", "mpyw/phpunit-patch-serializable-comparison": "*" }, "type": "drupal-module", "extra": { "drupal": { - "version": "2.0.2", - "datestamp": "1722869772", + "version": "2.0.0", + "datestamp": "1692368265", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" } - }, - "composer-normalize": { - "indent-size": 2, - "indent-style": "space" } }, "notification-url": "https://packages.drupal.org/8/downloads", @@ -19452,16 +19496,16 @@ }, { "name": "phpstan/phpstan", - "version": "1.12.0", + "version": "1.11.11", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "384af967d35b2162f69526c7276acadce534d0e1" + "reference": "707c2aed5d8d0075666e673a5e71440c1d01a5a3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/384af967d35b2162f69526c7276acadce534d0e1", - "reference": "384af967d35b2162f69526c7276acadce534d0e1", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/707c2aed5d8d0075666e673a5e71440c1d01a5a3", + "reference": "707c2aed5d8d0075666e673a5e71440c1d01a5a3", "shasum": "" }, "require": { @@ -19506,7 +19550,7 @@ "type": "github" } ], - "time": "2024-08-27T09:18:05+00:00" + "time": "2024-08-19T14:37:29+00:00" }, { "name": "phpstan/phpstan-deprecation-rules", @@ -26735,7 +26779,7 @@ "version": "2.3.1", "source": { "type": "git", - "url": "https://git.drupalcode.org/project/dtt/", + "url": "https://git.drupalcode.org/project/dtt.git", "reference": "5e3df23c93f4f3e4f34fd7677df10bc06616f4ce" }, "require": { diff --git a/docroot/modules/custom/va_gov_eca/src/Plugin/ECA/Condition/ViewsResultCondition.php b/docroot/modules/custom/va_gov_eca/src/Plugin/ECA/Condition/ViewsResultCondition.php index df096ffb3a..6c0cd46ea1 100644 --- a/docroot/modules/custom/va_gov_eca/src/Plugin/ECA/Condition/ViewsResultCondition.php +++ b/docroot/modules/custom/va_gov_eca/src/Plugin/ECA/Condition/ViewsResultCondition.php @@ -33,7 +33,7 @@ class ViewsResultCondition extends ConditionBase { */ public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition): static { $instance = parent::create($container, $configuration, $plugin_id, $plugin_definition); - $instance->module_handler = $container->get('module_handler'); + $instance->moduleHandler = $container->get('module_handler'); return $instance; } diff --git a/docroot/modules/custom/va_gov_media/src/Service/VamcPdfDeleteInterface.php b/docroot/modules/custom/va_gov_media/src/Service/VamcPdfDeleteInterface.php new file mode 100644 index 0000000000..f5c5b76e70 --- /dev/null +++ b/docroot/modules/custom/va_gov_media/src/Service/VamcPdfDeleteInterface.php @@ -0,0 +1,15 @@ +entityTypeManager = $entity_type_manager; + $this->usage = $usage; + $this->streamWrapperManager = $stream_wrapper_manager; + $this->dateFormatter = $date_formatter; + $this->s3fs = $s3fsfileservice; + $this->loggerFactory = $loggerFactory; + $this->user = $user; + } + + /** + * Find and delete VAMC PDFs that are not attached to content. + */ + public function vamcPdfDelete(): void { + $vha_total = 0; + $non_vha_total = 0; + $logger = $this->loggerFactory->get('va_gov_media'); + $media_storage = $this->entityTypeManager->getStorage('media'); + $pdf_list = []; + $deleted_pdfs = [ + ['File Name', 'Section', 'Upload Date', 'Uploaded By'], + ]; + $query = $media_storage->getQuery(); + $pdf_list = $query + ->accessCheck(FALSE) + ->condition('bundle', 'document') + ->execute(); + + $total_pdfs = count($pdf_list); + // Used for name csv and directory. + $timestamp = date('Y-m-d-H:i:s'); + + foreach ($pdf_list as $pdf_id) { + $is_used = $this->usage->getUsageTotal('media', $pdf_id); + /** @var \Drupal\media\MediaInterface $pdf */ + $pdf = $media_storage->load($pdf_id); + $pdf_name = $pdf->get('name')->value; + if (!$pdf->hasField('field_document')) { + $logger->warning("PDF {$pdf_id} not deleted because it has no document field."); + continue; + } + if ($is_used === 0 && $pdf->hasField('field_document')) { + $section_id = $pdf->get('field_owner')->getValue()[0]['target_id']; + if (!$section_id) { + $logger->warning("PDF {$pdf_id} has no section id."); + continue; + } + $section = $this->entityTypeManager->getStorage('taxonomy_term')->load($section_id); + $parents = $this->entityTypeManager->getStorage('taxonomy_term')->loadAllParents($section_id); + $parents = array_keys($parents); + $section_name = $section ? $section->get('name')->value : 'No Section'; + // 8 is the Term ID for VAMC Facilities. + if (in_array('8', $parents)) { + $user_id = $pdf->get('uid')->getValue()[0]['target_id']; + $user = $this->entityTypeManager->getStorage('user')->load($user_id); + $username = $user ? $user->getAccountName() : 'Unknown'; + $created_time = $this->dateFormatter->format($pdf->get('created')->value, 'short'); + $deleted_pdfs[] = [ + $pdf_name, + $section_name, + $created_time, + $username, + ]; + $this->deletePdf($pdf, $timestamp); + $vha_total++; + + } + else { + $section_error = $section ? $section->get('name')->value : $section_id; + $logger->info("PDF ({$pdf_name}) not deleted because it is not in a VHA section (Name or ID: {$section_error})."); + $non_vha_total++; + } + } + } + $this->writeCsv($deleted_pdfs, $timestamp); + $logger->info('PDFs deleted and CSV written.'); + $logger->info("Total PDFs: {$total_pdfs}"); + $logger->info("VHA unattached PDFs deleted: {$vha_total}"); + $logger->info("Non-VHA unattached PDFs not deleted: {$non_vha_total}"); + } + + /** + * Delete PDF. + * + * @param \Drupal\media\MediaInterface $pdf_entity + * The PDF entity to delete. + * @param string $timestamp + * The timestamp to use for the directory. + * + * @return void + * Return void. + * + * @throws \Drupal\Core\Entity\EntityStorageException + */ + protected function deletePdf(MediaInterface $pdf_entity, string $timestamp): void { + $file = $pdf_entity->field_document->entity; + if (!$file instanceof FileInterface) { + $pdf_name = $pdf_entity->get('name')->value; + $this->loggerFactory->get('va_gov_media')->warning("PDF {$pdf_name} does not have a file attached to it. No file was copied. Deleting the media entity."); + $pdf_entity->delete(); + return; + } + $uri = $file->getFileUri(); + $absolute_path = $this->s3fs->realpath($uri); + $path = 's3://' . $timestamp; + $this->s3fs->mkdir($path, 0755, 0); + $destination = $path . '/' . $file->getFilename(); + try { + $this->s3fs->copy($absolute_path, $destination); + } + catch (FileNotExistsException $e) { + $this->loggerFactory->get('va_gov_media')->error('Error copying file to S3: @error', ['@error' => $e->getMessage()]); + return; + } + $file->delete(); + $pdf_entity->delete(); + } + + /** + * Write CSV. + * + * @param array $deleted_pdfs + * The list of deleted PDFs. + * @param string $timestamp + * The timestamp to use for the directory. + * + * @return void + * Return void. + */ + protected function writeCsv(array $deleted_pdfs, string $timestamp): void { + $filename = $timestamp . '-deleted_pdf_list.csv'; + + // Open a file in write mode ('w') + $file = fopen($filename, 'w'); + + // Loop through file pointer and a line. + foreach ($deleted_pdfs as $fields) { + fputcsv($file, $fields); + } + fclose($file); + $destination = 's3://' . $timestamp . '/' . $filename; + $this->s3fs->copy($filename, $destination); + unlink($filename); + $this->loggerFactory->get('va_gov_media')->info("CSV written to {$destination}"); + } + +} diff --git a/docroot/modules/custom/va_gov_media/va_gov_media.info.yml b/docroot/modules/custom/va_gov_media/va_gov_media.info.yml index 3d4f813043..11b1ef3ad8 100644 --- a/docroot/modules/custom/va_gov_media/va_gov_media.info.yml +++ b/docroot/modules/custom/va_gov_media/va_gov_media.info.yml @@ -7,3 +7,4 @@ package: 'Custom' dependencies: - drupal:clientside_validation - drupal:clientside_validation_jquery + - drupal:s3fs diff --git a/docroot/modules/custom/va_gov_media/va_gov_media.services.yml b/docroot/modules/custom/va_gov_media/va_gov_media.services.yml index c5fc06afeb..3340e59488 100644 --- a/docroot/modules/custom/va_gov_media/va_gov_media.services.yml +++ b/docroot/modules/custom/va_gov_media/va_gov_media.services.yml @@ -6,8 +6,10 @@ services: class: Drupal\va_gov_media\EventSubscriber\MediaEventSubscriber tags: - { name: event_subscriber } - va_gov_media.route_subscriber: class: Drupal\va_gov_media\EventSubscriber\VaGovMediaAddRouteSubscriber tags: - { name: event_subscriber } + va_gov_media.pdf_delete: + class: Drupal\va_gov_media\Service\VamcPdfDeleteService + arguments: ['@entity_type.manager', '@entity_usage_addons.usage', '@stream_wrapper_manager', '@date.formatter', '@s3fsfileservice', '@logger.factory', '@user.data'] diff --git a/docroot/sites/default/settings/settings.prod.php b/docroot/sites/default/settings/settings.prod.php index 63ff29d87e..c7f22ffdc8 100644 --- a/docroot/sites/default/settings/settings.prod.php +++ b/docroot/sites/default/settings/settings.prod.php @@ -53,3 +53,15 @@ // Public asset S3 location $public_asset_s3_base_url = "https://dsva-vagov-prod-cms-files.s3.us-gov-west-1.amazonaws.com"; + +//S3FS settings + $settings['s3fs.access_key'] = getenv('CMS_PDF_SERVICE_ACCT_KEY'); + $settings['s3fs.secret_key'] = getenv('CMS_PDF_SERVICE_ACCT_SECRET'); + $config['s3fs.settings']['bucket'] = 'dsva-vagov-prod-cms-pdf-archive'; + if (getenv('CMS_DRUPAL_ADDRESS') === 'https://test.prod.cms.va.gov') { + $config['s3fs.settings']['bucket'] = 'dsva-vagov-prod-cms-test-pdf-archive'; + } + $config['s3fs.settings']['region'] = 'us-gov-west-1'; + $settings['s3fs.use_s3_for_public'] = FALSE; + $settings['s3fs.use_s3_for_private'] = FALSE; + $settings['s3fs.upload_as_private'] = TRUE; diff --git a/docroot/sites/default/settings/settings.staging.php b/docroot/sites/default/settings/settings.staging.php index 5460d3ea4a..b10500833b 100644 --- a/docroot/sites/default/settings/settings.staging.php +++ b/docroot/sites/default/settings/settings.staging.php @@ -50,3 +50,15 @@ // Public asset S3 location $public_asset_s3_base_url = "https://dsva-vagov-staging-cms-files.s3.us-gov-west-1.amazonaws.com"; + +//S3FS settings + $settings['s3fs.access_key'] = getenv('CMS_PDF_SERVICE_ACCT_KEY'); + $settings['s3fs.secret_key'] = getenv('CMS_PDF_SERVICE_ACCT_SECRET'); + $config['s3fs.settings']['bucket'] = 'dsva-vagov-staging-cms-pdf-archive'; + if (getenv('CMS_DRUPAL_ADDRESS') === 'https://test.staging.cms.va.gov') { + $config['s3fs.settings']['bucket'] = 'dsva-vagov-staging-cms-test-pdf-archive'; + } + $config['s3fs.settings']['region'] = 'us-gov-west-1'; + $settings['s3fs.use_s3_for_public'] = FALSE; + $settings['s3fs.use_s3_for_private'] = FALSE; + $settings['s3fs.upload_as_private'] = TRUE; diff --git a/docroot/sites/default/settings/settings.tugboat.php b/docroot/sites/default/settings/settings.tugboat.php index 1f246cc72e..e28fdc8a73 100644 --- a/docroot/sites/default/settings/settings.tugboat.php +++ b/docroot/sites/default/settings/settings.tugboat.php @@ -95,3 +95,12 @@ // Public asset S3 location $public_asset_s3_base_url = "https://dsva-vagov-staging-cms-files.s3.us-gov-west-1.amazonaws.com"; + +//S3FS settings + $settings['s3fs.access_key'] = getenv('CMS_PDF_SERVICE_ACCT_KEY'); + $settings['s3fs.secret_key'] = getenv('CMS_PDF_SERVICE_ACCT_SECRET'); + $config['s3fs.settings']['bucket'] = 'dsva-vagov-dev-cms-pdf-archive'; + $config['s3fs.settings']['region'] = 'us-gov-west-1'; + $settings['s3fs.use_s3_for_public'] = FALSE; + $settings['s3fs.use_s3_for_private'] = FALSE; + $settings['s3fs.upload_as_private'] = TRUE; diff --git a/phpstan-baseline.neon b/phpstan-baseline.neon index 211a18632c..3853db1e54 100644 --- a/phpstan-baseline.neon +++ b/phpstan-baseline.neon @@ -496,6 +496,6 @@ parameters: path: tests/scaling_performance.php - - message: "#^Call to an undefined method Drupal\\\\Core\\\\\Form\\\\\FormInterface\\:\\:getEntity\\(\\)\\.$#" + message: "#^Call to an undefined method Drupal\\\\Core\\\\Form\\\\FormInterface\\:\\:getEntity\\(\\)\\.$#" count: 1 path: docroot/modules/custom/va_gov_media/src/EventSubscriber/MediaEventSubscriber.php From d8bdabff967e93c96b4f1101a3f2279cea8fce74 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 6 Sep 2024 19:02:04 -0700 Subject: [PATCH 04/86] Bump va-gov/content-build from 0.0.3584 to 0.0.3585 (#19146) Bumps [va-gov/content-build](https://github.com/department-of-veterans-affairs/content-build) from 0.0.3584 to 0.0.3585. - [Release notes](https://github.com/department-of-veterans-affairs/content-build/releases) - [Commits](https://github.com/department-of-veterans-affairs/content-build/compare/v0.0.3584...v0.0.3585) --- updated-dependencies: - dependency-name: va-gov/content-build dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- composer.json | 2 +- composer.lock | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/composer.json b/composer.json index 1cd358f800..0eb4237c9b 100644 --- a/composer.json +++ b/composer.json @@ -227,7 +227,7 @@ "symfony/phpunit-bridge": "^5.1", "symfony/process": "^6.3", "symfony/routing": "^6.3", - "va-gov/content-build": "^0.0.3584", + "va-gov/content-build": "^0.0.3585", "vlucas/phpdotenv": "^5.6", "webflo/drupal-finder": "1.2.2", "webmozart/path-util": "^2.3", diff --git a/composer.lock b/composer.lock index 4c6418ac86..c3d3f1f3a7 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": "d5679fec50ebf202a5bca824616fd50c", + "content-hash": "b3ae5467d4b7cbfdbccb1248b808a15a", "packages": [ { "name": "asm89/stack-cors", @@ -26432,16 +26432,16 @@ }, { "name": "va-gov/content-build", - "version": "v0.0.3584", + "version": "v0.0.3585", "source": { "type": "git", "url": "https://github.com/department-of-veterans-affairs/content-build.git", - "reference": "8281dd27e959456eca2c42a9e5f4b02d018cb6f2" + "reference": "9abb220fe8ce592fbfb669e796c4a3f9fd504110" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/department-of-veterans-affairs/content-build/zipball/8281dd27e959456eca2c42a9e5f4b02d018cb6f2", - "reference": "8281dd27e959456eca2c42a9e5f4b02d018cb6f2", + "url": "https://api.github.com/repos/department-of-veterans-affairs/content-build/zipball/9abb220fe8ce592fbfb669e796c4a3f9fd504110", + "reference": "9abb220fe8ce592fbfb669e796c4a3f9fd504110", "shasum": "" }, "type": "node-project", @@ -26468,9 +26468,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.3584" + "source": "https://github.com/department-of-veterans-affairs/content-build/tree/v0.0.3585" }, - "time": "2024-09-05T14:17:06+00:00" + "time": "2024-09-06T14:57:42+00:00" }, { "name": "vlucas/phpdotenv", From d2b5059d35e19e680cf70c5985ca24521432a6c4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 9 Sep 2024 07:12:56 -0700 Subject: [PATCH 05/86] Bump cypress-io/github-action from 6.7.5 to 6.7.6 (#19152) Bumps [cypress-io/github-action](https://github.com/cypress-io/github-action) from 6.7.5 to 6.7.6. - [Release notes](https://github.com/cypress-io/github-action/releases) - [Changelog](https://github.com/cypress-io/github-action/blob/master/CHANGELOG.md) - [Commits](https://github.com/cypress-io/github-action/compare/496e7dc0edc421a9de8a36a31c793340e00c61bf...0da3c06ed8217b912deea9d8ee69630baed1737e) --- updated-dependencies: - dependency-name: cypress-io/github-action dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/cypress.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/cypress.yml b/.github/workflows/cypress.yml index 7e0b5d7a82..17b8a5c86f 100644 --- a/.github/workflows/cypress.yml +++ b/.github/workflows/cypress.yml @@ -47,7 +47,7 @@ jobs: NODE_TLS_REJECT_UNAUTHORIZED: 0 - name: Cypress run - uses: cypress-io/github-action@496e7dc0edc421a9de8a36a31c793340e00c61bf # v6.7.5 + uses: cypress-io/github-action@0da3c06ed8217b912deea9d8ee69630baed1737e # v6.7.6 with: wait-on: "${{ inputs.preview_url }}" command: 'npm run test:cypress:parallel' From d4c2b98141b6e73fd8f216d84428c4d4a4fb3d9a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 9 Sep 2024 07:13:46 -0700 Subject: [PATCH 06/86] Bump int128/datadog-actions-metrics from 1.94.0 to 1.95.0 (#19151) Bumps [int128/datadog-actions-metrics](https://github.com/int128/datadog-actions-metrics) from 1.94.0 to 1.95.0. - [Release notes](https://github.com/int128/datadog-actions-metrics/releases) - [Commits](https://github.com/int128/datadog-actions-metrics/compare/9eaafc87f92290ca061b8c6cde62821196444136...5dbc8b81eb6d1b3cbd24099ff83373df472e0e36) --- updated-dependencies: - dependency-name: int128/datadog-actions-metrics dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/actions-metrics.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/actions-metrics.yml b/.github/workflows/actions-metrics.yml index 7833139955..0f93c82119 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@9eaafc87f92290ca061b8c6cde62821196444136 # v1.94.0 + uses: int128/datadog-actions-metrics@5dbc8b81eb6d1b3cbd24099ff83373df472e0e36 # v1.95.0 with: datadog-api-key: ${{ secrets.DATADOG_API_KEY }} collect-job-metrics: true From 0e2c4bfc519e53e0fd2c0dc02d2f5a2fe72b28d3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 9 Sep 2024 07:52:19 -0700 Subject: [PATCH 07/86] Bump drupal/geofield from 1.60.0 to 1.61.0 (#19117) Bumps drupal/geofield from 1.60.0 to 1.61.0. --- updated-dependencies: - dependency-name: drupal/geofield dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Edmund Dunn <109987005+edmund-dunn@users.noreply.github.com> --- composer.lock | 197 +++++++++++++++++++++++++------------------------- 1 file changed, 99 insertions(+), 98 deletions(-) diff --git a/composer.lock b/composer.lock index c3d3f1f3a7..959f7c93d3 100644 --- a/composer.lock +++ b/composer.lock @@ -7196,17 +7196,17 @@ }, { "name": "drupal/geofield", - "version": "1.60.0", + "version": "1.61.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/geofield.git", - "reference": "8.x-1.60" + "reference": "8.x-1.61" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/geofield-8.x-1.60.zip", - "reference": "8.x-1.60", - "shasum": "ffb1891148b343208e7a190c8cc606a339c74ee1" + "url": "https://ftp.drupal.org/files/projects/geofield-8.x-1.61.zip", + "reference": "8.x-1.61", + "shasum": "b204f101ee536597b9c293f66f75102d6ea2d268" }, "require": { "drupal/core": "^9 || ^10 || ^11", @@ -7219,8 +7219,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "8.x-1.60", - "datestamp": "1722078200", + "version": "8.x-1.61", + "datestamp": "1725441883", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -17260,23 +17260,24 @@ }, { "name": "mikey179/vfsstream", - "version": "v1.6.11", + "version": "v1.6.12", "source": { "type": "git", "url": "https://github.com/bovigo/vfsStream.git", - "reference": "17d16a85e6c26ce1f3e2fa9ceeacdc2855db1e9f" + "reference": "fe695ec993e0a55c3abdda10a9364eb31c6f1bf0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/bovigo/vfsStream/zipball/17d16a85e6c26ce1f3e2fa9ceeacdc2855db1e9f", - "reference": "17d16a85e6c26ce1f3e2fa9ceeacdc2855db1e9f", + "url": "https://api.github.com/repos/bovigo/vfsStream/zipball/fe695ec993e0a55c3abdda10a9364eb31c6f1bf0", + "reference": "fe695ec993e0a55c3abdda10a9364eb31c6f1bf0", "shasum": "" }, "require": { - "php": ">=5.3.0" + "php": ">=7.1.0" }, "require-dev": { - "phpunit/phpunit": "^4.5|^5.0" + "phpunit/phpunit": "^7.5||^8.5||^9.6", + "yoast/phpunit-polyfills": "^2.0" }, "type": "library", "extra": { @@ -17307,7 +17308,7 @@ "source": "https://github.com/bovigo/vfsStream/tree/master", "wiki": "https://github.com/bovigo/vfsStream/wiki" }, - "time": "2022-02-23T02:02:42+00:00" + "time": "2024-08-29T18:43:31+00:00" }, { "name": "mkalkbrenner/php-htmldiff-advanced", @@ -19449,16 +19450,16 @@ }, { "name": "phpstan/phpdoc-parser", - "version": "1.29.1", + "version": "1.30.0", "source": { "type": "git", "url": "https://github.com/phpstan/phpdoc-parser.git", - "reference": "fcaefacf2d5c417e928405b71b400d4ce10daaf4" + "reference": "5ceb0e384997db59f38774bf79c2a6134252c08f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/fcaefacf2d5c417e928405b71b400d4ce10daaf4", - "reference": "fcaefacf2d5c417e928405b71b400d4ce10daaf4", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/5ceb0e384997db59f38774bf79c2a6134252c08f", + "reference": "5ceb0e384997db59f38774bf79c2a6134252c08f", "shasum": "" }, "require": { @@ -19490,9 +19491,9 @@ "description": "PHPDoc parser with support for nullable, intersection and generic types", "support": { "issues": "https://github.com/phpstan/phpdoc-parser/issues", - "source": "https://github.com/phpstan/phpdoc-parser/tree/1.29.1" + "source": "https://github.com/phpstan/phpdoc-parser/tree/1.30.0" }, - "time": "2024-05-31T08:52:43+00:00" + "time": "2024-08-29T09:54:52+00:00" }, { "name": "phpstan/phpstan", @@ -22788,16 +22789,16 @@ }, { "name": "symfony/console", - "version": "v6.4.10", + "version": "v6.4.11", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "504974cbe43d05f83b201d6498c206f16fc0cdbc" + "reference": "42686880adaacdad1835ee8fc2a9ec5b7bd63998" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/504974cbe43d05f83b201d6498c206f16fc0cdbc", - "reference": "504974cbe43d05f83b201d6498c206f16fc0cdbc", + "url": "https://api.github.com/repos/symfony/console/zipball/42686880adaacdad1835ee8fc2a9ec5b7bd63998", + "reference": "42686880adaacdad1835ee8fc2a9ec5b7bd63998", "shasum": "" }, "require": { @@ -22862,7 +22863,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v6.4.10" + "source": "https://github.com/symfony/console/tree/v6.4.11" }, "funding": [ { @@ -22878,20 +22879,20 @@ "type": "tidelift" } ], - "time": "2024-07-26T12:30:32+00:00" + "time": "2024-08-15T22:48:29+00:00" }, { "name": "symfony/dependency-injection", - "version": "v6.4.10", + "version": "v6.4.11", "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "5caf9c5f6085f13b27d70a236b776c07e4a1c3eb" + "reference": "e93c8368dc9915c2fe12018ff22fcbbdd32c9a9e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/5caf9c5f6085f13b27d70a236b776c07e4a1c3eb", - "reference": "5caf9c5f6085f13b27d70a236b776c07e4a1c3eb", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/e93c8368dc9915c2fe12018ff22fcbbdd32c9a9e", + "reference": "e93c8368dc9915c2fe12018ff22fcbbdd32c9a9e", "shasum": "" }, "require": { @@ -22943,7 +22944,7 @@ "description": "Allows you to standardize and centralize the way objects are constructed in your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/dependency-injection/tree/v6.4.10" + "source": "https://github.com/symfony/dependency-injection/tree/v6.4.11" }, "funding": [ { @@ -22959,7 +22960,7 @@ "type": "tidelift" } ], - "time": "2024-07-26T07:32:07+00:00" + "time": "2024-08-29T08:15:38+00:00" }, { "name": "symfony/deprecation-contracts", @@ -23394,16 +23395,16 @@ }, { "name": "symfony/finder", - "version": "v6.4.10", + "version": "v6.4.11", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "af29198d87112bebdd397bd7735fbd115997824c" + "reference": "d7eb6daf8cd7e9ac4976e9576b32042ef7253453" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/af29198d87112bebdd397bd7735fbd115997824c", - "reference": "af29198d87112bebdd397bd7735fbd115997824c", + "url": "https://api.github.com/repos/symfony/finder/zipball/d7eb6daf8cd7e9ac4976e9576b32042ef7253453", + "reference": "d7eb6daf8cd7e9ac4976e9576b32042ef7253453", "shasum": "" }, "require": { @@ -23438,7 +23439,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v6.4.10" + "source": "https://github.com/symfony/finder/tree/v6.4.11" }, "funding": [ { @@ -23454,7 +23455,7 @@ "type": "tidelift" } ], - "time": "2024-07-24T07:06:38+00:00" + "time": "2024-08-13T14:27:37+00:00" }, { "name": "symfony/framework-bundle", @@ -23683,16 +23684,16 @@ }, { "name": "symfony/http-kernel", - "version": "v6.4.10", + "version": "v6.4.11", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "147e0daf618d7575b5007055340d09aece5cf068" + "reference": "1ba6b89d781cb47448155cc70dd2e0f1b0584c79" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/147e0daf618d7575b5007055340d09aece5cf068", - "reference": "147e0daf618d7575b5007055340d09aece5cf068", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/1ba6b89d781cb47448155cc70dd2e0f1b0584c79", + "reference": "1ba6b89d781cb47448155cc70dd2e0f1b0584c79", "shasum": "" }, "require": { @@ -23777,7 +23778,7 @@ "description": "Provides a structured process for converting a Request into a Response", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-kernel/tree/v6.4.10" + "source": "https://github.com/symfony/http-kernel/tree/v6.4.11" }, "funding": [ { @@ -23793,7 +23794,7 @@ "type": "tidelift" } ], - "time": "2024-07-26T14:52:04+00:00" + "time": "2024-08-30T16:57:20+00:00" }, { "name": "symfony/intl", @@ -23959,16 +23960,16 @@ }, { "name": "symfony/mime", - "version": "v6.4.9", + "version": "v6.4.11", "source": { "type": "git", "url": "https://github.com/symfony/mime.git", - "reference": "7d048964877324debdcb4e0549becfa064a20d43" + "reference": "dba5d5f6073baf7a3576b580cc4a208b4ca00553" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/7d048964877324debdcb4e0549becfa064a20d43", - "reference": "7d048964877324debdcb4e0549becfa064a20d43", + "url": "https://api.github.com/repos/symfony/mime/zipball/dba5d5f6073baf7a3576b580cc4a208b4ca00553", + "reference": "dba5d5f6073baf7a3576b580cc4a208b4ca00553", "shasum": "" }, "require": { @@ -24024,7 +24025,7 @@ "mime-type" ], "support": { - "source": "https://github.com/symfony/mime/tree/v6.4.9" + "source": "https://github.com/symfony/mime/tree/v6.4.11" }, "funding": [ { @@ -24040,7 +24041,7 @@ "type": "tidelift" } ], - "time": "2024-06-28T09:49:33+00:00" + "time": "2024-08-13T12:15:02+00:00" }, { "name": "symfony/options-resolver", @@ -25128,16 +25129,16 @@ }, { "name": "symfony/property-access", - "version": "v6.4.8", + "version": "v6.4.11", "source": { "type": "git", "url": "https://github.com/symfony/property-access.git", - "reference": "e4d9b00983612f9c0013ca37c61affdba2dd975a" + "reference": "866f6cd84f2094cbc6f66ce9752faf749916e2a9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/property-access/zipball/e4d9b00983612f9c0013ca37c61affdba2dd975a", - "reference": "e4d9b00983612f9c0013ca37c61affdba2dd975a", + "url": "https://api.github.com/repos/symfony/property-access/zipball/866f6cd84f2094cbc6f66ce9752faf749916e2a9", + "reference": "866f6cd84f2094cbc6f66ce9752faf749916e2a9", "shasum": "" }, "require": { @@ -25185,7 +25186,7 @@ "reflection" ], "support": { - "source": "https://github.com/symfony/property-access/tree/v6.4.8" + "source": "https://github.com/symfony/property-access/tree/v6.4.11" }, "funding": [ { @@ -25201,7 +25202,7 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:49:08+00:00" + "time": "2024-08-30T16:10:11+00:00" }, { "name": "symfony/property-info", @@ -25288,16 +25289,16 @@ }, { "name": "symfony/psr-http-message-bridge", - "version": "v6.4.10", + "version": "v6.4.11", "source": { "type": "git", "url": "https://github.com/symfony/psr-http-message-bridge.git", - "reference": "89a24648d73e4eee30893b0da16abc454a65c53b" + "reference": "74835ba54eca99a38f374f7a6d932fa510124773" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/psr-http-message-bridge/zipball/89a24648d73e4eee30893b0da16abc454a65c53b", - "reference": "89a24648d73e4eee30893b0da16abc454a65c53b", + "url": "https://api.github.com/repos/symfony/psr-http-message-bridge/zipball/74835ba54eca99a38f374f7a6d932fa510124773", + "reference": "74835ba54eca99a38f374f7a6d932fa510124773", "shasum": "" }, "require": { @@ -25351,7 +25352,7 @@ "psr-7" ], "support": { - "source": "https://github.com/symfony/psr-http-message-bridge/tree/v6.4.10" + "source": "https://github.com/symfony/psr-http-message-bridge/tree/v6.4.11" }, "funding": [ { @@ -25367,20 +25368,20 @@ "type": "tidelift" } ], - "time": "2024-07-15T09:36:38+00:00" + "time": "2024-08-14T13:55:58+00:00" }, { "name": "symfony/routing", - "version": "v6.4.10", + "version": "v6.4.11", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "aad19fe10753ba842f0d653a8db819c4b3affa87" + "reference": "8ee0c24c1bf61c263a26f1b9b6d19e83b1121f2a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/aad19fe10753ba842f0d653a8db819c4b3affa87", - "reference": "aad19fe10753ba842f0d653a8db819c4b3affa87", + "url": "https://api.github.com/repos/symfony/routing/zipball/8ee0c24c1bf61c263a26f1b9b6d19e83b1121f2a", + "reference": "8ee0c24c1bf61c263a26f1b9b6d19e83b1121f2a", "shasum": "" }, "require": { @@ -25434,7 +25435,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v6.4.10" + "source": "https://github.com/symfony/routing/tree/v6.4.11" }, "funding": [ { @@ -25450,20 +25451,20 @@ "type": "tidelift" } ], - "time": "2024-07-15T09:26:24+00:00" + "time": "2024-08-29T08:15:38+00:00" }, { "name": "symfony/serializer", - "version": "v6.4.10", + "version": "v6.4.11", "source": { "type": "git", "url": "https://github.com/symfony/serializer.git", - "reference": "9a67fcf320561e96f94d62bbe0e169ac534a5718" + "reference": "a75d03d7720417f8a654e73e8f02acdea8779cd0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/serializer/zipball/9a67fcf320561e96f94d62bbe0e169ac534a5718", - "reference": "9a67fcf320561e96f94d62bbe0e169ac534a5718", + "url": "https://api.github.com/repos/symfony/serializer/zipball/a75d03d7720417f8a654e73e8f02acdea8779cd0", + "reference": "a75d03d7720417f8a654e73e8f02acdea8779cd0", "shasum": "" }, "require": { @@ -25532,7 +25533,7 @@ "description": "Handles serializing and deserializing data structures, including object graphs, into array structures or other formats like XML and JSON.", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/serializer/tree/v6.4.10" + "source": "https://github.com/symfony/serializer/tree/v6.4.11" }, "funding": [ { @@ -25548,7 +25549,7 @@ "type": "tidelift" } ], - "time": "2024-07-26T13:13:26+00:00" + "time": "2024-08-17T07:51:47+00:00" }, { "name": "symfony/service-contracts", @@ -25635,16 +25636,16 @@ }, { "name": "symfony/string", - "version": "v6.4.10", + "version": "v6.4.11", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "ccf9b30251719567bfd46494138327522b9a9446" + "reference": "5bc3eb632cf9c8dbfd6529d89be9950d1518883b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/ccf9b30251719567bfd46494138327522b9a9446", - "reference": "ccf9b30251719567bfd46494138327522b9a9446", + "url": "https://api.github.com/repos/symfony/string/zipball/5bc3eb632cf9c8dbfd6529d89be9950d1518883b", + "reference": "5bc3eb632cf9c8dbfd6529d89be9950d1518883b", "shasum": "" }, "require": { @@ -25701,7 +25702,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v6.4.10" + "source": "https://github.com/symfony/string/tree/v6.4.11" }, "funding": [ { @@ -25717,7 +25718,7 @@ "type": "tidelift" } ], - "time": "2024-07-22T10:21:14+00:00" + "time": "2024-08-12T09:55:28+00:00" }, { "name": "symfony/translation-contracts", @@ -25908,16 +25909,16 @@ }, { "name": "symfony/validator", - "version": "v6.4.10", + "version": "v6.4.11", "source": { "type": "git", "url": "https://github.com/symfony/validator.git", - "reference": "bcf939a9d1acd7d2912e9474c0c3d7840a03cbcd" + "reference": "4ff41cf10af1de99ad92895411b55c9f309bc2d8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/validator/zipball/bcf939a9d1acd7d2912e9474c0c3d7840a03cbcd", - "reference": "bcf939a9d1acd7d2912e9474c0c3d7840a03cbcd", + "url": "https://api.github.com/repos/symfony/validator/zipball/4ff41cf10af1de99ad92895411b55c9f309bc2d8", + "reference": "4ff41cf10af1de99ad92895411b55c9f309bc2d8", "shasum": "" }, "require": { @@ -25985,7 +25986,7 @@ "description": "Provides tools to validate values", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/validator/tree/v6.4.10" + "source": "https://github.com/symfony/validator/tree/v6.4.11" }, "funding": [ { @@ -26001,20 +26002,20 @@ "type": "tidelift" } ], - "time": "2024-07-26T12:30:32+00:00" + "time": "2024-08-30T15:57:55+00:00" }, { "name": "symfony/var-dumper", - "version": "v6.4.10", + "version": "v6.4.11", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "a71cc3374f5fb9759da1961d28c452373b343dd4" + "reference": "ee14c8254a480913268b1e3b1cba8045ed122694" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/a71cc3374f5fb9759da1961d28c452373b343dd4", - "reference": "a71cc3374f5fb9759da1961d28c452373b343dd4", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/ee14c8254a480913268b1e3b1cba8045ed122694", + "reference": "ee14c8254a480913268b1e3b1cba8045ed122694", "shasum": "" }, "require": { @@ -26070,7 +26071,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v6.4.10" + "source": "https://github.com/symfony/var-dumper/tree/v6.4.11" }, "funding": [ { @@ -26086,7 +26087,7 @@ "type": "tidelift" } ], - "time": "2024-07-26T12:30:32+00:00" + "time": "2024-08-30T16:03:21+00:00" }, { "name": "symfony/var-exporter", @@ -26167,16 +26168,16 @@ }, { "name": "symfony/yaml", - "version": "v6.4.8", + "version": "v6.4.11", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "52903de178d542850f6f341ba92995d3d63e60c9" + "reference": "be37e7f13195e05ab84ca5269365591edd240335" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/52903de178d542850f6f341ba92995d3d63e60c9", - "reference": "52903de178d542850f6f341ba92995d3d63e60c9", + "url": "https://api.github.com/repos/symfony/yaml/zipball/be37e7f13195e05ab84ca5269365591edd240335", + "reference": "be37e7f13195e05ab84ca5269365591edd240335", "shasum": "" }, "require": { @@ -26219,7 +26220,7 @@ "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v6.4.8" + "source": "https://github.com/symfony/yaml/tree/v6.4.11" }, "funding": [ { @@ -26235,7 +26236,7 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:49:08+00:00" + "time": "2024-08-12T09:55:28+00:00" }, { "name": "theseer/tokenizer", From 0a8db56f6199707ff93d943b4f1e07102ff5c22b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 9 Sep 2024 08:33:39 -0700 Subject: [PATCH 08/86] Bump drupal/geofield_map from 11.0.0 to 11.0.1 (#19149) Bumps drupal/geofield_map from 11.0.0 to 11.0.1. --- updated-dependencies: - dependency-name: drupal/geofield_map dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Edmund Dunn <109987005+edmund-dunn@users.noreply.github.com> --- composer.lock | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/composer.lock b/composer.lock index 959f7c93d3..2b7ecf51b5 100644 --- a/composer.lock +++ b/composer.lock @@ -1762,16 +1762,16 @@ }, { "name": "doctrine/annotations", - "version": "1.14.3", + "version": "1.14.4", "source": { "type": "git", "url": "https://github.com/doctrine/annotations.git", - "reference": "fb0d71a7393298a7b232cbf4c8b1f73f3ec3d5af" + "reference": "253dca476f70808a5aeed3a47cc2cc88c5cab915" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/annotations/zipball/fb0d71a7393298a7b232cbf4c8b1f73f3ec3d5af", - "reference": "fb0d71a7393298a7b232cbf4c8b1f73f3ec3d5af", + "url": "https://api.github.com/repos/doctrine/annotations/zipball/253dca476f70808a5aeed3a47cc2cc88c5cab915", + "reference": "253dca476f70808a5aeed3a47cc2cc88c5cab915", "shasum": "" }, "require": { @@ -1782,11 +1782,11 @@ }, "require-dev": { "doctrine/cache": "^1.11 || ^2.0", - "doctrine/coding-standard": "^9 || ^10", - "phpstan/phpstan": "~1.4.10 || ^1.8.0", + "doctrine/coding-standard": "^9 || ^12", + "phpstan/phpstan": "~1.4.10 || ^1.10.28", "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", - "symfony/cache": "^4.4 || ^5.4 || ^6", - "vimeo/psalm": "^4.10" + "symfony/cache": "^4.4 || ^5.4 || ^6.4 || ^7", + "vimeo/psalm": "^4.30 || ^5.14" }, "suggest": { "php": "PHP 8.0 or higher comes with attributes, a native replacement for annotations" @@ -1832,9 +1832,9 @@ ], "support": { "issues": "https://github.com/doctrine/annotations/issues", - "source": "https://github.com/doctrine/annotations/tree/1.14.3" + "source": "https://github.com/doctrine/annotations/tree/1.14.4" }, - "time": "2023-02-01T09:20:38+00:00" + "time": "2024-09-05T10:15:52+00:00" }, { "name": "doctrine/collections", @@ -7258,17 +7258,17 @@ }, { "name": "drupal/geofield_map", - "version": "11.0.0", + "version": "11.0.1", "source": { "type": "git", "url": "https://git.drupalcode.org/project/geofield_map.git", - "reference": "11.0.0" + "reference": "11.0.1" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/geofield_map-11.0.0.zip", - "reference": "11.0.0", - "shasum": "838bfc35f4b750f129787f73b1fb5ba19d3a94c2" + "url": "https://ftp.drupal.org/files/projects/geofield_map-11.0.1.zip", + "reference": "11.0.1", + "shasum": "7146de7659d7e3bcc996ac221670f74cbd72a1c7" }, "require": { "drupal/core": "^10.2 || ^11", @@ -7277,8 +7277,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "11.0.0", - "datestamp": "1723496766", + "version": "11.0.1", + "datestamp": "1725636301", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" From 8e42f34b379744163f6415eba82a46c60c789762 Mon Sep 17 00:00:00 2001 From: Dave Pickett <51967950+davidmpickett@users.noreply.github.com> Date: Mon, 9 Sep 2024 11:29:02 -0500 Subject: [PATCH 09/86] VACMS-17477: Updated character counter on News Releases (#19126) * Updated character count to match guidance * Undeleted help text --- ...ore.entity_form_display.node.press_release.default.yml | 8 ++++---- .../field.field.node.press_release.field_intro_text.yml | 2 +- config/sync/node.type.press_release.yml | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/config/sync/core.entity_form_display.node.press_release.default.yml b/config/sync/core.entity_form_display.node.press_release.default.yml index 6802702d89..5a168c43d2 100644 --- a/config/sync/core.entity_form_display.node.press_release.default.yml +++ b/config/sync/core.entity_form_display.node.press_release.default.yml @@ -113,9 +113,9 @@ content: placeholder: '' maxlength: 300 counter_position: after - js_prevent_submit: false + js_prevent_submit: true count_html_characters: false - textcount_status_message: 'Characters Used: @current_length
Characters Remaining: @remaining_count' + textcount_status_message: '@remaining_count characters remaining' third_party_settings: { } field_last_saved_by_an_editor: type: datetime_timestamp @@ -189,9 +189,9 @@ content: use_field_maxlength: false maxlength: 150 counter_position: after - js_prevent_submit: false + js_prevent_submit: true count_html_characters: false - textcount_status_message: 'Characters Used: @current_length
Characters Remaining: @remaining_count' + textcount_status_message: '@remaining_count characters remaining' third_party_settings: { } url_redirects: weight: 7 diff --git a/config/sync/field.field.node.press_release.field_intro_text.yml b/config/sync/field.field.node.press_release.field_intro_text.yml index fb0030ed91..111cceca39 100644 --- a/config/sync/field.field.node.press_release.field_intro_text.yml +++ b/config/sync/field.field.node.press_release.field_intro_text.yml @@ -10,7 +10,7 @@ field_name: field_intro_text entity_type: node bundle: press_release label: Introduction -description: "

The first sentence (\"lede\") of the press release is displayed more prominently (see screenshot). It is also displayed in teaser lists of press releases.

\r\n\r\n

This should serve as a summary of the contents of the press release. Do not include the location or the em-dash – those are added automatically from the other fields.

\r\n

Maximum characters: 300

\r\n\r\n" +description: "

The first sentence (\"lede\") of the press release is displayed more prominently (see screenshot). It is also displayed in teaser lists of press releases.

\r\n\r\n

This should serve as a summary of the contents of the press release. Do not include the location or the em-dash – those are added automatically from the other fields.

" required: true translatable: false default_value: { } diff --git a/config/sync/node.type.press_release.yml b/config/sync/node.type.press_release.yml index 295ed8c178..1568006fa9 100644 --- a/config/sync/node.type.press_release.yml +++ b/config/sync/node.type.press_release.yml @@ -153,7 +153,7 @@ third_party_settings: - va-wilmington-health-care parent: 'pittsburgh-health-care:' node_title_help_text: - title_help: "The topic of this news release, in sentence case.
\r\nMaximum characters: 150" + title_help: "The topic of this news release, in sentence case.
" node_revision_delete: minimum_revisions_to_keep: 50 minimum_age_to_delete: 0 From a2c29f6ab8acda2efb90894e460f43b8b479e4dc Mon Sep 17 00:00:00 2001 From: Dave Pickett <51967950+davidmpickett@users.noreply.github.com> Date: Mon, 9 Sep 2024 12:59:36 -0500 Subject: [PATCH 10/86] VACMS-18953: Vet Center table of contents (#19130) * updated table of contents * removed stray line break * friendlier ids --- .../core.entity_form_display.node.vet_center.default.yml | 8 ++++---- ...ield.field.node.vet_center.field_table_of_contents.yml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/config/sync/core.entity_form_display.node.vet_center.default.yml b/config/sync/core.entity_form_display.node.vet_center.default.yml index 279a599fc7..84c8c561c9 100644 --- a/config/sync/core.entity_form_display.node.vet_center.default.yml +++ b/config/sync/core.entity_form_display.node.vet_center.default.yml @@ -177,7 +177,7 @@ third_party_settings: format_type: fieldset format_settings: classes: '' - id: featured-content + id: spotlight-content description: '' required_fields: true group_faqs: @@ -253,7 +253,7 @@ third_party_settings: format_settings: classes: '' show_empty_fields: true - id: '' + id: services open: true description: '' required_fields: false @@ -270,7 +270,7 @@ third_party_settings: tooltip_description: "Why can’t I edit this?\r\nVHA keeps this content standardized to provide consistent messaging for Vet Center sites nationwide." description: '' required_fields: '1' - id: '' + id: vet-center-services-overview classes: centralized show_empty_fields: 0 label_as_html: 0 @@ -290,7 +290,7 @@ third_party_settings: tooltip_description: "Why can’t I edit this?\r\nVHA keeps this content standardized to provide consistent messaging for Vet Center sites nationwide." description: '' required_fields: '1' - id: '' + id: vet-center-banner-image classes: centralized show_empty_fields: 0 label_as_html: 0 diff --git a/config/sync/field.field.node.vet_center.field_table_of_contents.yml b/config/sync/field.field.node.vet_center.field_table_of_contents.yml index 2753cb13b1..7c92b0db6e 100644 --- a/config/sync/field.field.node.vet_center.field_table_of_contents.yml +++ b/config/sync/field.field.node.vet_center.field_table_of_contents.yml @@ -25,6 +25,6 @@ default_value: default_value_callback: '' settings: markup: - value: "

Editing this content

\r\n\r\n

Provide Veterans with the basic information they need to plan a visit to a Vet Center facility. Some content won’t be editable because it comes from other sources. Learn more by hovering over the “?.”

\r\n\r\n

For full guidance, see How to edit Vet Center pages (opens in a new tab).

\r\n\r\n

Jump to edit...

\r\n\r\n

Operating status

\r\n\r\n

Top of page information

\r\n\r\n

Locations and contact information

\r\n\r\n

VBA database information

\r\n\r\n

Services

\r\n\r\n

Content

\r\n" + value: "

Editing this content

\r\n\r\n

Provide Veterans with the basic information they need to plan a visit to a Vet Center facility. Some content won’t be editable because it comes from other sources. Learn more by hovering over the “?.”

\r\n\r\n

For full guidance, see How to edit Vet Center pages (opens in a new tab).

\r\n\r\n

On this page

\r\n\r\n

Operating status

\r\n\r\n

Top of page information

\r\n\r\n

Vet Center banner image

\r\n\r\n

Vet Center services overview

\r\n\r\n

Locations and contact information

\r\n\r\n

Prepare for your visit

\r\n\r\n

Spotlight content

\r\n\r\n

Services

\r\n\r\n

How we’re different than a clinic

\r\n\r\n

Content

\r\n" format: rich_text field_type: markup From 9885fa8bcf240e54245385988be02b9bad994d7a Mon Sep 17 00:00:00 2001 From: Tim Cosgrove Date: Mon, 9 Sep 2024 11:05:05 -0700 Subject: [PATCH 11/86] Remove user information from monolog configuration. (#19157) This does not affect anything that is tested on Tugboat. Skipping Tugboat-based checks. --- docroot/sites/default/services/services.dev.yml | 1 - docroot/sites/default/services/services.monolog.yml | 1 - docroot/sites/default/services/services.prod.yml | 1 - docroot/sites/default/services/services.staging.yml | 1 - 4 files changed, 4 deletions(-) diff --git a/docroot/sites/default/services/services.dev.yml b/docroot/sites/default/services/services.dev.yml index 6072747ce1..cf22020a5d 100644 --- a/docroot/sites/default/services/services.dev.yml +++ b/docroot/sites/default/services/services.dev.yml @@ -10,7 +10,6 @@ parameters: - 'drupal.syslog' - 'error_log' monolog.processors: - - 'current_user' - 'filter_backtrace' - 'ip' - 'message_placeholder' diff --git a/docroot/sites/default/services/services.monolog.yml b/docroot/sites/default/services/services.monolog.yml index 35989710fb..ee1bd29afa 100644 --- a/docroot/sites/default/services/services.monolog.yml +++ b/docroot/sites/default/services/services.monolog.yml @@ -6,7 +6,6 @@ parameters: - 'drupal.dblog' - 'error_log' monolog.processors: - - 'current_user' - 'filter_backtrace' - 'ip' - 'message_placeholder' diff --git a/docroot/sites/default/services/services.prod.yml b/docroot/sites/default/services/services.prod.yml index 6072747ce1..cf22020a5d 100644 --- a/docroot/sites/default/services/services.prod.yml +++ b/docroot/sites/default/services/services.prod.yml @@ -10,7 +10,6 @@ parameters: - 'drupal.syslog' - 'error_log' monolog.processors: - - 'current_user' - 'filter_backtrace' - 'ip' - 'message_placeholder' diff --git a/docroot/sites/default/services/services.staging.yml b/docroot/sites/default/services/services.staging.yml index 6072747ce1..cf22020a5d 100644 --- a/docroot/sites/default/services/services.staging.yml +++ b/docroot/sites/default/services/services.staging.yml @@ -10,7 +10,6 @@ parameters: - 'drupal.syslog' - 'error_log' monolog.processors: - - 'current_user' - 'filter_backtrace' - 'ip' - 'message_placeholder' From 6a00ce409e9768f74f68d457fec92f9d1127af5c Mon Sep 17 00:00:00 2001 From: Tim Cosgrove Date: Tue, 10 Sep 2024 11:01:16 -0700 Subject: [PATCH 12/86] VACMS-19156: remove user info monolog fix test (#19160) * Remove user information from monolog configuration. * Update watchdoglog tests. * VACMS-19156: removed watchdog line * Revert "Remove user information from monolog configuration." This reverts commit 52177ff2f78f3c3ed183ee77ef5658e53954c93a. * Revert "Update watchdoglog tests." This reverts commit ac1d45230c763642a32d277d096fde78e879b05d. * VACMS-19156: removed watchdog line for creating nodes and media --------- Co-authored-by: Edmund Dunn <109987005+edmund-dunn@users.noreply.github.com> --- tests/cypress/integration/features/platform/permissions.feature | 1 - .../integration/step_definitions/common/i_create_a_media.js | 1 - .../integration/step_definitions/common/i_create_a_node.js | 2 -- 3 files changed, 4 deletions(-) diff --git a/tests/cypress/integration/features/platform/permissions.feature b/tests/cypress/integration/features/platform/permissions.feature index ff35372b23..79611409ba 100644 --- a/tests/cypress/integration/features/platform/permissions.feature +++ b/tests/cypress/integration/features/platform/permissions.feature @@ -21,7 +21,6 @@ Feature: Permissions Scenario: Content api consumer cannot alter existing menus Given I am logged in as a user with the "content_api_consumer" role And I should receive status code 403 when I request "/admin/structure/menu" - And the watchdog log should contain 1 new "Warning" messages Scenario: Content Admins should be able to browse sections from their profile even if none have been specifically assigned to them Given I am logged in as a user with the "content_admin" role diff --git a/tests/cypress/integration/step_definitions/common/i_create_a_media.js b/tests/cypress/integration/step_definitions/common/i_create_a_media.js index 1651687723..94069363dd 100644 --- a/tests/cypress/integration/step_definitions/common/i_create_a_media.js +++ b/tests/cypress/integration/step_definitions/common/i_create_a_media.js @@ -128,7 +128,6 @@ Given("I create a {string} media", (mediaType) => { .then(($element) => { cy.injectAxe(); cy.checkAccessibility(); - cy.drupalWatchdogHasNoNewErrors(); const mediaPath = $element.attr("href"); const pathComponents = mediaPath.split("/"); const mediaId = pathComponents.pop(); 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 c9d85fc0f4..dedbd2dc6d 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 @@ -435,7 +435,6 @@ Given("I create a {string} node", (contentType) => { ); cy.injectAxe(); cy.checkAccessibility(); - cy.drupalWatchdogHasNoNewErrors(); cy.getDrupalSettings().then((drupalSettings) => { const { currentPath } = drupalSettings.path; cy.wrap(currentPath.split("/").pop()).as("nodeId"); @@ -469,7 +468,6 @@ Given("I create a {string} node and continue", (contentType) => { ); cy.injectAxe(); cy.checkAccessibility(); - cy.drupalWatchdogHasNoNewErrors(); cy.getDrupalSettings().then((drupalSettings) => { const { currentPath } = drupalSettings.path; const pathComponents = currentPath.split("/"); From c36ae5759a5dd1f9965e4f9d891ec86ae77ee63f Mon Sep 17 00:00:00 2001 From: Christian Burk Date: Tue, 10 Sep 2024 15:21:17 -0500 Subject: [PATCH 13/86] VACMS-19086: Adds path to form (#19153) --- ...y_form_display.node.vet_center.default.yml | 30 +++++++++++-------- 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/config/sync/core.entity_form_display.node.vet_center.default.yml b/config/sync/core.entity_form_display.node.vet_center.default.yml index 84c8c561c9..84aefe3805 100644 --- a/config/sync/core.entity_form_display.node.vet_center.default.yml +++ b/config/sync/core.entity_form_display.node.vet_center.default.yml @@ -39,6 +39,7 @@ dependencies: - media_library - office_hours - paragraphs + - path - telephone - textfield_counter - tzfield @@ -52,7 +53,7 @@ third_party_settings: label: 'Operating status' region: content parent_name: '' - weight: 2 + weight: 1 format_type: fieldset format_settings: classes: '' @@ -94,7 +95,7 @@ third_party_settings: label: 'Direct line' region: content parent_name: '' - weight: 9 + weight: 8 format_type: fieldset format_settings: classes: '' @@ -109,7 +110,7 @@ third_party_settings: label: 'Top of page information' region: content parent_name: '' - weight: 3 + weight: 2 format_type: fieldset format_settings: classes: '' @@ -125,7 +126,7 @@ third_party_settings: label: 'Locations and contact information' region: content parent_name: '' - weight: 6 + weight: 5 format_type: fieldset format_settings: classes: '' @@ -159,7 +160,7 @@ third_party_settings: label: 'Prepare for your visit' region: content parent_name: '' - weight: 7 + weight: 6 format_type: fieldset format_settings: classes: '' @@ -173,7 +174,7 @@ third_party_settings: label: 'Spotlight content' region: content parent_name: '' - weight: 8 + weight: 7 format_type: fieldset format_settings: classes: '' @@ -186,7 +187,7 @@ third_party_settings: label: "How we're different than a clinic (FAQs)" region: content parent_name: '' - weight: 11 + weight: 10 format_type: tooltip format_settings: show_label: '0' @@ -248,7 +249,7 @@ third_party_settings: label: Services region: content parent_name: '' - weight: 10 + weight: 9 format_type: details format_settings: classes: '' @@ -263,7 +264,7 @@ third_party_settings: label: 'Vet Center services overview' region: content parent_name: '' - weight: 5 + weight: 4 format_type: tooltip format_settings: show_label: '0' @@ -283,7 +284,7 @@ third_party_settings: label: 'Vet Center banner image' region: content parent_name: '' - weight: 4 + weight: 3 format_type: tooltip format_settings: show_label: '0' @@ -464,7 +465,7 @@ content: limit_values: '0' field_table_of_contents: type: markup - weight: 1 + weight: 0 region: content settings: { } third_party_settings: { } @@ -513,6 +514,12 @@ content: region: content settings: { } third_party_settings: { } + path: + type: path + weight: 11 + region: content + settings: { } + third_party_settings: { } title: type: tooltip_textfield weight: 14 @@ -526,7 +533,6 @@ hidden: created: true field_health_services: true langcode: true - path: true promote: true status: true sticky: true From 0b5178ae5827cac7c58dee287c2dc05b42cf4f1a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 10 Sep 2024 18:13:08 -0700 Subject: [PATCH 14/86] Bump va-gov/content-build from 0.0.3585 to 0.0.3587 (#19180) Bumps [va-gov/content-build](https://github.com/department-of-veterans-affairs/content-build) from 0.0.3585 to 0.0.3587. - [Release notes](https://github.com/department-of-veterans-affairs/content-build/releases) - [Commits](https://github.com/department-of-veterans-affairs/content-build/compare/v0.0.3585...v0.0.3587) --- updated-dependencies: - dependency-name: va-gov/content-build dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- composer.json | 2 +- composer.lock | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/composer.json b/composer.json index 0eb4237c9b..bb80f64541 100644 --- a/composer.json +++ b/composer.json @@ -227,7 +227,7 @@ "symfony/phpunit-bridge": "^5.1", "symfony/process": "^6.3", "symfony/routing": "^6.3", - "va-gov/content-build": "^0.0.3585", + "va-gov/content-build": "^0.0.3587", "vlucas/phpdotenv": "^5.6", "webflo/drupal-finder": "1.2.2", "webmozart/path-util": "^2.3", diff --git a/composer.lock b/composer.lock index 2b7ecf51b5..0d2bf37be2 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": "b3ae5467d4b7cbfdbccb1248b808a15a", + "content-hash": "7d4a0993b89b146832c98d377b7d2056", "packages": [ { "name": "asm89/stack-cors", @@ -26433,7 +26433,7 @@ }, { "name": "va-gov/content-build", - "version": "v0.0.3585", + "version": "v0.0.3587", "source": { "type": "git", "url": "https://github.com/department-of-veterans-affairs/content-build.git", @@ -26469,7 +26469,7 @@ "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.3585" + "source": "https://github.com/department-of-veterans-affairs/content-build/tree/v0.0.3587" }, "time": "2024-09-06T14:57:42+00:00" }, From 56217b888c6cdd21e11066431b52e57553e99a1e Mon Sep 17 00:00:00 2001 From: Amanda Nantais-Austin Date: Wed, 11 Sep 2024 11:43:17 -0400 Subject: [PATCH 15/86] VACMS-18998: Update pathauto module. (#19178) --- composer.json | 2 +- composer.lock | 21 ++++++++++++--------- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/composer.json b/composer.json index bb80f64541..56515130cc 100644 --- a/composer.json +++ b/composer.json @@ -485,7 +485,7 @@ "2919186 - Remove button should not be shown on required field": "https://www.drupal.org/files/issues/2020-05-13/hide_field_required_paragraphs_remove_button_1.patch" }, "drupal/pathauto": { - "3204586 - Update URL Alias action is only available for nodes + users and does not work with views_bulk_operations": "https://www.drupal.org/files/issues/2022-10-28/pathauto-add_deriver_for_alias_update_action-3204586-28_0.patch", + "3204586 - Update URL Alias action is only available for nodes + users and does not work with views_bulk_operations": "https://www.drupal.org/files/issues/2024-09-05/pathauto-vbo-support-3204586-30.patch", "3214658 - Omit nolink items from url path args and add token that uses parent url": "https://www.drupal.org/files/issues/2022-05-08/remove-nolink-args-use-parent-entity-url-3214658-18.patch" }, "drupal/prometheus_exporter": { diff --git a/composer.lock b/composer.lock index 0d2bf37be2..af0922f428 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": "7d4a0993b89b146832c98d377b7d2056", + "content-hash": "53d9a291df0a6c07434ffee0532af0ea", "packages": [ { "name": "asm89/stack-cors", @@ -11750,31 +11750,34 @@ }, { "name": "drupal/pathauto", - "version": "1.12.0", + "version": "1.13.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/pathauto.git", - "reference": "8.x-1.12" + "reference": "8.x-1.13" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/pathauto-8.x-1.12.zip", - "reference": "8.x-1.12", - "shasum": "b7b6432e315e38e59a7c6cc117134326c580de4c" + "url": "https://ftp.drupal.org/files/projects/pathauto-8.x-1.13.zip", + "reference": "8.x-1.13", + "shasum": "e64b5a82cf1b8ab48bce400b21ae6fc99c8078fd" }, "require": { - "drupal/core": "^9.3 || ^10", + "drupal/core": "^9.4 || ^10 || ^11", "drupal/ctools": "*", "drupal/token": "*" }, + "require-dev": { + "drupal/forum": "*" + }, "suggest": { "drupal/redirect": "When installed Pathauto will provide a new \"Update Action\" in case your URLs change. This is the recommended update action and is considered the best practice for SEO and usability." }, "type": "drupal-module", "extra": { "drupal": { - "version": "8.x-1.12", - "datestamp": "1696776683", + "version": "8.x-1.13", + "datestamp": "1722507672", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" From 9b84782050434e5aec65fe3d6a851e9a1549b7e6 Mon Sep 17 00:00:00 2001 From: Dave Pickett <51967950+davidmpickett@users.noreply.github.com> Date: Wed, 11 Sep 2024 11:04:20 -0500 Subject: [PATCH 16/86] [docs] Update runbook-new-vamc-system.md added sitewide label --- .github/ISSUE_TEMPLATE/runbook-new-vamc-system.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/ISSUE_TEMPLATE/runbook-new-vamc-system.md b/.github/ISSUE_TEMPLATE/runbook-new-vamc-system.md index 993e6f2e1a..fe9f688727 100644 --- a/.github/ISSUE_TEMPLATE/runbook-new-vamc-system.md +++ b/.github/ISSUE_TEMPLATE/runbook-new-vamc-system.md @@ -2,7 +2,7 @@ name: Runbook - New VAMC system website about: Creating a new site for a VA healthcare system title: 'New VAMC System: ' -labels: Change request, Drupal engineering, Facilities, Flagged Facilities, User support, VAMC +labels: Change request, Drupal engineering, Facilities, Flagged Facilities, User support, VAMC, sitewide assignees: '' --- From 291f45034835d67f1cd60a50e7ec6a1b7f0bfd08 Mon Sep 17 00:00:00 2001 From: Edmund Dunn <109987005+edmund-dunn@users.noreply.github.com> Date: Wed, 11 Sep 2024 11:02:15 -0700 Subject: [PATCH 17/86] VACMS-19186: added pdf delete job to monthly cron (#19187) --- tasks-periodic.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/tasks-periodic.yml b/tasks-periodic.yml index 8424c2fd09..55c3b6959b 100644 --- a/tasks-periodic.yml +++ b/tasks-periodic.yml @@ -94,6 +94,7 @@ tasks: - drush php-eval "\Drupal::logger('va_gov_notifications')->alert('Monthly cron fired');" - drush php-eval "print_r(\Drupal::service('va_gov_notifications.outdated_content')->queueOutdatedContentNotifications('vamc', 'vamc_outdated_content'));" - drush php-eval "print_r(\Drupal::service('va_gov_notifications.outdated_content')->queueOutdatedContentNotifications('vet_center', 'vet_center_outdated_content'));" + - drush php-eval "print_r(\Drupal::service('va_gov_media.pdf_delete')->vamcPdfDelete());" va/background/daily/migrate_copy/va_forms_csv_source: desc: This is because we cannot access the server on the SOCKS proxy right now. From 1249b5a665e65a2a8d3bbf26f1090d5e3b26a333 Mon Sep 17 00:00:00 2001 From: Amanda Nantais-Austin Date: Wed, 11 Sep 2024 14:49:39 -0400 Subject: [PATCH 18/86] VACMS-18997: Update openapi jsonapi module. (#19158) --- composer.json | 3 +-- composer.lock | 22 +++++++++++----------- 2 files changed, 12 insertions(+), 13 deletions(-) diff --git a/composer.json b/composer.json index 56515130cc..e0e3280e5e 100644 --- a/composer.json +++ b/composer.json @@ -474,8 +474,7 @@ "drupal/openapi_jsonapi": { "3110109 - Support renamed resource types Part 1": "https://git.drupalcode.org/project/openapi_jsonapi/-/commit/17070f1ef70ff89f732619a11c29730107a2083e.patch", "3110109 - Support renamed resource types Part 2": "https://git.drupalcode.org/project/openapi_jsonapi/-/commit/9b02c70521c499152c915e481aaf4925992bc8f9.patch", - "3185778 - Fix TypeError: Cannot read property 'anyOf' of undefined": "https://www.drupal.org/files/issues/2020-12-21/add_required_keyword_8.x_2.x-3185778-5.patch", - "3462481 - Type of Drupal\\openapi_jsonapi\\Plugin\\openapi\\OpenApiGenerator\\JsonApiGenerator::$DEFINITION_SEPARATOR must be string": "https://www.drupal.org/files/issues/2024-07-20/openapi_jsonapi-3462481-4.patch" + "3185778 - Fix TypeError: Cannot read property 'anyOf' of undefined": "https://www.drupal.org/files/issues/2020-12-21/add_required_keyword_8.x_2.x-3185778-5.patch" }, "drupal/openapi_ui_swagger": { "3259746 - Add more UI config defaults": "https://www.drupal.org/files/issues/2023-12-13/add-more-config-defaults-3259746-3.patch" diff --git a/composer.lock b/composer.lock index af0922f428..0b4b1fb473 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": "53d9a291df0a6c07434ffee0532af0ea", + "content-hash": "0e9414029de1b61b559111d989be416a", "packages": [ { "name": "asm89/stack-cors", @@ -11074,29 +11074,29 @@ }, { "name": "drupal/openapi_jsonapi", - "version": "3.0.4", + "version": "3.0.5", "source": { "type": "git", "url": "https://git.drupalcode.org/project/openapi_jsonapi.git", - "reference": "3.0.4" + "reference": "3.0.5" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/openapi_jsonapi-3.0.4.zip", - "reference": "3.0.4", - "shasum": "439f3bb99281fd666e26732de9db55bf6846b6f7" + "url": "https://ftp.drupal.org/files/projects/openapi_jsonapi-3.0.5.zip", + "reference": "3.0.5", + "shasum": "6607a755f3b69257d8a32705043557d6d81127d7" }, "require": { - "drupal/core": "^9.1 || ^10", - "drupal/openapi": "^2", - "drupal/schemata": "^1", + "drupal/core": "^10 || ^11", + "drupal/openapi": "^2.2", + "drupal/schemata": "^1.0", "drupal/schemata_json_schema": "*" }, "type": "drupal-module", "extra": { "drupal": { - "version": "3.0.4", - "datestamp": "1670513664", + "version": "3.0.5", + "datestamp": "1722621497", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" From 874d3e9a6bc1f3fe6a248c3ac90e77d4f7cd4fe2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 11 Sep 2024 14:35:42 -0700 Subject: [PATCH 19/86] Bump drupal/components from 3.0.0-beta3 to 3.1.0 (#19170) Bumps drupal/components from 3.0.0-beta3 to 3.1.0. --- updated-dependencies: - dependency-name: drupal/components dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Edmund Dunn <109987005+edmund-dunn@users.noreply.github.com> --- composer.lock | 93 ++++++++++++++++++++++++--------------------------- 1 file changed, 44 insertions(+), 49 deletions(-) diff --git a/composer.lock b/composer.lock index 0b4b1fb473..4bde3167cd 100644 --- a/composer.lock +++ b/composer.lock @@ -3374,29 +3374,29 @@ }, { "name": "drupal/components", - "version": "3.0.0-beta3", + "version": "3.1.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/components.git", - "reference": "3.0.0-beta3" + "reference": "3.1.0" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/components-3.0.0-beta3.zip", - "reference": "3.0.0-beta3", - "shasum": "47ced4332f0a655ca38ae1b54e97a8e78d59f0bc" + "url": "https://ftp.drupal.org/files/projects/components-3.1.0.zip", + "reference": "3.1.0", + "shasum": "a9d9f7517f54038d0d6fa68185d80e26d2ad1d8d" }, "require": { - "drupal/core": "^9 || ^10" + "drupal/core": "^10.2 || ^11" }, "type": "drupal-module", "extra": { "drupal": { - "version": "3.0.0-beta3", - "datestamp": "1651759488", + "version": "3.1.0", + "datestamp": "1725921122", "security-coverage": { - "status": "not-covered", - "message": "Beta releases are not covered by Drupal security advisories." + "status": "covered", + "message": "Covered by Drupal's security advisory policy" } } }, @@ -3407,11 +3407,15 @@ "authors": [ { "name": "JohnAlbin", - "homepage": "https://www.drupal.org/user/32095", + "homepage": "https://www.drupal.org/user/1036766", "email": "virtually.johnalbin@gmail.com" }, { - "name": "RobLoach", + "name": "johnalbin", + "homepage": "https://www.drupal.org/user/32095" + }, + { + "name": "robloach", "homepage": "https://www.drupal.org/user/61114" } ], @@ -19453,16 +19457,16 @@ }, { "name": "phpstan/phpdoc-parser", - "version": "1.30.0", + "version": "1.30.1", "source": { "type": "git", "url": "https://github.com/phpstan/phpdoc-parser.git", - "reference": "5ceb0e384997db59f38774bf79c2a6134252c08f" + "reference": "51b95ec8670af41009e2b2b56873bad96682413e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/5ceb0e384997db59f38774bf79c2a6134252c08f", - "reference": "5ceb0e384997db59f38774bf79c2a6134252c08f", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/51b95ec8670af41009e2b2b56873bad96682413e", + "reference": "51b95ec8670af41009e2b2b56873bad96682413e", "shasum": "" }, "require": { @@ -19494,9 +19498,9 @@ "description": "PHPDoc parser with support for nullable, intersection and generic types", "support": { "issues": "https://github.com/phpstan/phpdoc-parser/issues", - "source": "https://github.com/phpstan/phpdoc-parser/tree/1.30.0" + "source": "https://github.com/phpstan/phpdoc-parser/tree/1.30.1" }, - "time": "2024-08-29T09:54:52+00:00" + "time": "2024-09-07T20:13:05+00:00" }, { "name": "phpstan/phpstan", @@ -24765,36 +24769,28 @@ }, { "name": "symfony/polyfill-php72", - "version": "v1.30.0", + "version": "v1.31.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php72.git", - "reference": "10112722600777e02d2745716b70c5db4ca70442" + "reference": "fa2ae56c44f03bed91a39bfc9822e31e7c5c38ce" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/10112722600777e02d2745716b70c5db4ca70442", - "reference": "10112722600777e02d2745716b70c5db4ca70442", + "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/fa2ae56c44f03bed91a39bfc9822e31e7c5c38ce", + "reference": "fa2ae56c44f03bed91a39bfc9822e31e7c5c38ce", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.2" }, - "type": "library", + "type": "metapackage", "extra": { "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" } }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Php72\\": "" - } - }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" @@ -24818,7 +24814,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php72/tree/v1.30.0" + "source": "https://github.com/symfony/polyfill-php72/tree/v1.31.0" }, "funding": [ { @@ -24834,24 +24830,24 @@ "type": "tidelift" } ], - "time": "2024-06-19T12:30:46+00:00" + "time": "2024-09-09T11:45:10+00:00" }, { "name": "symfony/polyfill-php80", - "version": "v1.30.0", + "version": "v1.31.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "77fa7995ac1b21ab60769b7323d600a991a90433" + "reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/77fa7995ac1b21ab60769b7323d600a991a90433", - "reference": "77fa7995ac1b21ab60769b7323d600a991a90433", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/60328e362d4c2c802a54fcbf04f9d3fb892b4cf8", + "reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.2" }, "type": "library", "extra": { @@ -24898,7 +24894,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.30.0" + "source": "https://github.com/symfony/polyfill-php80/tree/v1.31.0" }, "funding": [ { @@ -24914,24 +24910,24 @@ "type": "tidelift" } ], - "time": "2024-05-31T15:07:36+00:00" + "time": "2024-09-09T11:45:10+00:00" }, { "name": "symfony/polyfill-php81", - "version": "v1.30.0", + "version": "v1.31.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php81.git", - "reference": "3fb075789fb91f9ad9af537c4012d523085bd5af" + "reference": "4a4cfc2d253c21a5ad0e53071df248ed48c6ce5c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/3fb075789fb91f9ad9af537c4012d523085bd5af", - "reference": "3fb075789fb91f9ad9af537c4012d523085bd5af", + "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/4a4cfc2d253c21a5ad0e53071df248ed48c6ce5c", + "reference": "4a4cfc2d253c21a5ad0e53071df248ed48c6ce5c", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.2" }, "type": "library", "extra": { @@ -24974,7 +24970,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php81/tree/v1.30.0" + "source": "https://github.com/symfony/polyfill-php81/tree/v1.31.0" }, "funding": [ { @@ -24990,7 +24986,7 @@ "type": "tidelift" } ], - "time": "2024-06-19T12:30:46+00:00" + "time": "2024-09-09T11:45:10+00:00" }, { "name": "symfony/polyfill-php83", @@ -27451,7 +27447,6 @@ "drupal/change_labels": 20, "drupal/ckeditor_abbreviation": 15, "drupal/codit_menu_tools": 15, - "drupal/components": 10, "drupal/danse_content_moderation": 10, "drupal/entity_block": 10, "drupal/entity_clone": 15, From e75d3721a4b97b70a7b1304f5b34b04a3cac9a38 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 11 Sep 2024 18:53:20 -0700 Subject: [PATCH 20/86] Bump datadog/dd-trace from 1.3.0 to 1.3.1 (#19143) Bumps [datadog/dd-trace](https://github.com/DataDog/dd-trace-php) from 1.3.0 to 1.3.1. - [Release notes](https://github.com/DataDog/dd-trace-php/releases) - [Commits](https://github.com/DataDog/dd-trace-php/compare/1.3.0...1.3.1) --- updated-dependencies: - dependency-name: datadog/dd-trace dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- composer.lock | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/composer.lock b/composer.lock index 4bde3167cd..b79e170224 100644 --- a/composer.lock +++ b/composer.lock @@ -1328,16 +1328,16 @@ }, { "name": "datadog/dd-trace", - "version": "1.3.0", + "version": "1.3.1", "source": { "type": "git", "url": "https://github.com/DataDog/dd-trace-php.git", - "reference": "8b6e326eaa4f542a6076a44100993187b08fac7f" + "reference": "2b119262fb49fc9fafdea2828c1d8540e58feb9f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/DataDog/dd-trace-php/zipball/8b6e326eaa4f542a6076a44100993187b08fac7f", - "reference": "8b6e326eaa4f542a6076a44100993187b08fac7f", + "url": "https://api.github.com/repos/DataDog/dd-trace-php/zipball/2b119262fb49fc9fafdea2828c1d8540e58feb9f", + "reference": "2b119262fb49fc9fafdea2828c1d8540e58feb9f", "shasum": "" }, "require": { @@ -1431,9 +1431,9 @@ ], "support": { "issues": "https://github.com/DataDog/dd-trace-php/issues", - "source": "https://github.com/DataDog/dd-trace-php/tree/1.3.0" + "source": "https://github.com/DataDog/dd-trace-php/tree/1.3.1" }, - "time": "2024-08-30T12:05:47+00:00" + "time": "2024-09-06T14:43:40+00:00" }, { "name": "davedevelopment/stiphle", @@ -27447,6 +27447,7 @@ "drupal/change_labels": 20, "drupal/ckeditor_abbreviation": 15, "drupal/codit_menu_tools": 15, + "drupal/components": 10, "drupal/danse_content_moderation": 10, "drupal/entity_block": 10, "drupal/entity_clone": 15, From 7ad157fa34ec86d5a3a2424aa410ff025e2e8a4f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 12 Sep 2024 13:11:05 -0700 Subject: [PATCH 21/86] Bump va-gov/content-build from 0.0.3587 to 0.0.3588 (#19195) Bumps [va-gov/content-build](https://github.com/department-of-veterans-affairs/content-build) from 0.0.3587 to 0.0.3588. - [Release notes](https://github.com/department-of-veterans-affairs/content-build/releases) - [Commits](https://github.com/department-of-veterans-affairs/content-build/compare/v0.0.3587...v0.0.3588) --- updated-dependencies: - dependency-name: va-gov/content-build dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Edmund Dunn <109987005+edmund-dunn@users.noreply.github.com> --- composer.json | 2 +- composer.lock | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/composer.json b/composer.json index e0e3280e5e..129979b10d 100644 --- a/composer.json +++ b/composer.json @@ -227,7 +227,7 @@ "symfony/phpunit-bridge": "^5.1", "symfony/process": "^6.3", "symfony/routing": "^6.3", - "va-gov/content-build": "^0.0.3587", + "va-gov/content-build": "^0.0.3588", "vlucas/phpdotenv": "^5.6", "webflo/drupal-finder": "1.2.2", "webmozart/path-util": "^2.3", diff --git a/composer.lock b/composer.lock index b79e170224..a055fa4ea2 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": "0e9414029de1b61b559111d989be416a", + "content-hash": "14ac14378af302fa376f0dac13ef58b9", "packages": [ { "name": "asm89/stack-cors", @@ -26432,16 +26432,16 @@ }, { "name": "va-gov/content-build", - "version": "v0.0.3587", + "version": "v0.0.3588", "source": { "type": "git", "url": "https://github.com/department-of-veterans-affairs/content-build.git", - "reference": "9abb220fe8ce592fbfb669e796c4a3f9fd504110" + "reference": "9718327acf295a7c040e8cafb18802986721ff5c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/department-of-veterans-affairs/content-build/zipball/9abb220fe8ce592fbfb669e796c4a3f9fd504110", - "reference": "9abb220fe8ce592fbfb669e796c4a3f9fd504110", + "url": "https://api.github.com/repos/department-of-veterans-affairs/content-build/zipball/9718327acf295a7c040e8cafb18802986721ff5c", + "reference": "9718327acf295a7c040e8cafb18802986721ff5c", "shasum": "" }, "type": "node-project", @@ -26468,9 +26468,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.3587" + "source": "https://github.com/department-of-veterans-affairs/content-build/tree/v0.0.3588" }, - "time": "2024-09-06T14:57:42+00:00" + "time": "2024-09-10T19:25:13+00:00" }, { "name": "vlucas/phpdotenv", From ea5c3f3e2ac28f8428a711f2db98e0eb30213111 Mon Sep 17 00:00:00 2001 From: Tim Cosgrove Date: Thu, 12 Sep 2024 16:15:41 -0700 Subject: [PATCH 22/86] VACMS-18544: next build feature flags (#18937) * Add flags for all content types, set up Preview to read them correctly, and add next entities. * Further refinement of Preview event subscriber. * Additional comments to clarify different exclusion rules. * Add readme describing content entities and flags. * Update ExportFeature class to use FileSystemInterface type. --------- Co-authored-by: Timothy Cosgrove --- READMES/images/next-entity-type-config.png | Bin 0 -> 139927 bytes READMES/next-build.md | 25 ++++ config/sync/feature_toggle.features.yml | 55 +++++++- ...ext.next_entity_type_config.node.event.yml | 11 ++ ..._entity_type_config.node.event_listing.yml | 11 ++ ..._entity_type_config.node.press_release.yml | 11 ++ ...ype_config.node.press_releases_listing.yml | 11 ++ ...ext_entity_type_config.node.vet_center.yml | 11 ++ ...xt.next_site.next_build_preview_server.yml | 4 +- .../va_gov_flags/src/Export/ExportFeature.php | 12 +- .../PreviewEventSubscriber.php | 120 ++++++++++++------ .../va_gov_preview.services.yml | 3 +- 12 files changed, 227 insertions(+), 47 deletions(-) create mode 100644 READMES/images/next-entity-type-config.png create mode 100644 READMES/next-build.md create mode 100644 config/sync/next.next_entity_type_config.node.event.yml create mode 100644 config/sync/next.next_entity_type_config.node.event_listing.yml create mode 100644 config/sync/next.next_entity_type_config.node.press_release.yml create mode 100644 config/sync/next.next_entity_type_config.node.press_releases_listing.yml create mode 100644 config/sync/next.next_entity_type_config.node.vet_center.yml diff --git a/READMES/images/next-entity-type-config.png b/READMES/images/next-entity-type-config.png new file mode 100644 index 0000000000000000000000000000000000000000..6d1210df81a024a0dbab0e0df5af1e31aae68827 GIT binary patch literal 139927 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 z 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

7R^?ii2nHSVHghqN7ExWHJ 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%0AKeEs7SXUIu@n4N3#+*;Rc!5 zbFgGRotaw9HS@Av>-m>8yXM)MF)d{cY5>it%>&NEEfGDVnc(+Z#HKo@EVJ-0o*5jU zr4FHv#Z5k|rv`, one for each content type. If a flag doesn't exist for a given content type (i.e. if this is a new content type), the flag should be added via a config code change. + +**The flag for a given content type should only be activated in Production if you are ready for the content to be built by Next Build.** This feature flag controls whether that content type is active in the CMS and Next Build. At a minimum, you've defined the content entity as described above, and also a complete query and template has been implemented in Next Build and has been deployed to production. + + Activating the flag does the following: +- Enable Next Build preview for the content type. By default, content types will use Content Build preview. If the flag is active, and a Next.js content entity is created for the content type (see above), Preview will begin using Next Build. +- Tell Next Build that it is allowed to build that content type for that environment. Unless the flag is activated, Next Build will not build the content type. +- Enabling the flag may also deactivate the content type in Content Build, depending on the rollout strategy and choices made by the implementing engineers. \ No newline at end of file diff --git a/config/sync/feature_toggle.features.yml b/config/sync/feature_toggle.features.yml index 48dccf23f0..f8bedb77c0 100644 --- a/config/sync/feature_toggle.features.yml +++ b/config/sync/feature_toggle.features.yml @@ -5,4 +5,57 @@ features: feature_health_connect_number: FEATURE_HEALTH_CONNECT_NUMBER feature_next_story_preview: FEATURE_NEXT_STORY_PREVIEW feature_decision_review_rum: FEATURE_DECISION_REVIEW_RUM - feature_find_forms_modal: FEATURE_FIND_FORMS_MODAL \ No newline at end of file + feature_find_forms_modal: FEATURE_FIND_FORMS_MODAL + feature_next_build_content_page: FEATURE_NEXT_BUILD_CONTENT_PAGE + feature_next_build_content_landing_page: FEATURE_NEXT_BUILD_CONTENT_LANDING_PAGE + feature_next_build_content_campaign_landing_page: FEATURE_NEXT_BUILD_CONTENT_CAMPAIGN_LANDING_PAGE + feature_next_build_content_centralized_content: FEATURE_NEXT_BUILD_CONTENT_CENTRALIZED_CONTENT + feature_next_build_content_checklist: FEATURE_NEXT_BUILD_CONTENT_CHECKLIST + feature_next_build_content_documentation_page: FEATURE_NEXT_BUILD_CONTENT_DOCUMENTATION_PAGE + feature_next_build_content_event: FEATURE_NEXT_BUILD_CONTENT_EVENT + feature_next_build_content_event_listing: FEATURE_NEXT_BUILD_CONTENT_EVENT_LISTING + feature_next_build_content_faq_multiple_q_a: FEATURE_NEXT_BUILD_CONTENT_FAQ_MULTIPLE_Q_A + feature_next_build_content_banner: FEATURE_NEXT_BUILD_CONTENT_BANNER + feature_next_build_content_health_services_listing: FEATURE_NEXT_BUILD_CONTENT_HEALTH_SERVICES_LISTING + feature_next_build_content_media_list_images: FEATURE_NEXT_BUILD_CONTENT_MEDIA_LIST_IMAGES + feature_next_build_content_basic_landing_page: FEATURE_NEXT_BUILD_CONTENT_BASIC_LANDING_PAGE + feature_next_build_content_leadership_listing: FEATURE_NEXT_BUILD_LEADERSHIP_LISTING + feature_next_build_content_nca_facility: FEATURE_NEXT_BUILD_CONTENT_NCA_FACILITY + feature_next_build_content_press_release: FEATURE_NEXT_BUILD_CONTENT_PRESS_RELEASE + feature_next_build_content_press_releases_listing: FEATURE_NEXT_BUILD_CONTENT_PRESS_RELEASES_LISTING + feature_next_build_content_office: FEATURE_NEXT_BUILD_CONTENT_OFFICE + feature_next_build_content_promo_banner: FEATURE_NEXT_BUILD_CONTENT_PROMO_BANNER + feature_next_build_content_outreach_asset: FEATURE_NEXT_BUILD_CONTENT_OUTREACH_ASSET + feature_next_build_content_publication_listing: FEATURE_NEXT_BUILD_CONTENT_PUBLICATION_LISTING + feature_next_build_content_support_resources_detail_page: FEATURE_NEXT_BUILD_CONTENT_SUPPORT_RESOURCES_DETAIL_PAGE + feature_next_build_content_q_a: FEATURE_NEXT_BUILD_CONTENT_Q_A + feature_next_build_content_service_region: FEATURE_NEXT_BUILD_CONTENT_SERVICE_REGION + feature_next_build_content_person_profile: FEATURE_NEXT_BUILD_CONTENT_PERSON_PROFILE + feature_next_build_content_step_by_step: FEATURE_NEXT_BUILD_CONTENT_STEP_BY_STEP + feature_next_build_content_news_story: FEATURE_NEXT_BUILD_CONTENT_NEWS_STORY + feature_next_build_content_story_listing: FEATURE_NEXT_BUILD_CONTENT_STORY_LISTING + feature_next_build_content_support_service: FEATURE_NEXT_BUILD_CONTENT_SUPPORT_SERVICE + feature_next_build_content_va_form: FEATURE_NEXT_BUILD_CONTENT_VA_FORM + feature_next_build_content_health_care_region_detail_page: FEATURE_NEXT_BUILD_CONTENT_HEALTH_CARE_REGION_DETAIL_PAGE + feature_next_build_content_health_care_local_facility: FEATURE_NEXT_BUILD_CONTENT_HEALTH_CARE_LOCAL_FACILITY + feature_next_build_content_health_care_local_health_service: FEATURE_NEXT_BUILD_CONTENT_HEALTH_CARE_LOCAL_HEALTH_SERVICE + feature_next_build_content_health_care_region_page: FEATURE_NEXT_BUILD_CONTENT_HEALTH_CARE_REGION_PAGE + feature_next_build_content_full_width_banner_alert: FEATURE_NEXT_BUILD_CONTENT_FULL_WIDTH_BANNER_ALERT + feature_next_build_content_vamc_system_billing_insurance: FEATURE_NEXT_BUILD_CONTENT_VAMC_SYSTEM_BILLING_INSURANCE + feature_next_build_content_regional_health_care_service_des: FEATURE_NEXT_BUILD_CONTENT_REGIONAL_HEALTH_CARE_SERVICE_DES + feature_next_build_content_locations_listing: FEATURE_NEXT_BUILD_CONTENT_LOCATIONS_LISTING + feature_next_build_content_vamc_sytem_medical_records_offi: FEATURE_NEXT_BUILD_CONTENT_VAMC_SYSTEM_MEDICAL_RECORDS_OFFI + feature_next_build_content_vamc_operating_status_and_alerts: FEATURE_NEXT_BUILD_CONTENT_VAMC_OPERATING_STATUS_AND_ALERTS + feature_next_build_content_vamc_system_policies_page: FEATURE_NEXT_BUILD_CONTENT_VAMC_SYSTEM_POLICIES_PAGE + feature_next_build_content_vamc_system_register_for_care: FEATURE_NEXT_BUILD_CONTENT_VAMC_SYSTEM_REGISTER_FOR_CARE + feature_next_build_content_vamc_system_va_police: FEATURE_NEXT_BUILD_CONTENT_VAMC_SYSTEM_VA_POLICE + feature_next_build_content_vba_facility: FEATURE_NEXT_BUILD_CONTENT_VBA_FACILITY + feature_next_build_content_vba_facility_service: FEATURE_NEXT_BUILD_CONTENT_VBA_FACILITY_SERVICE + feature_next_build_content_vet_center: FEATURE_NEXT_BUILD_CONTENT_VET_CENTER + feature_next_build_content_vet_center_cap: FEATURE_NEXT_BUILD_CONTENT_VET_CENTER_CAP + feature_next_build_content_vet_center_facility_health_servi: FEATURE_NEXT_BUILD_CONTENT_VET_CENTER_FACILITY_HEALTH_SERVI + feature_next_build_content_vet_center_locations_list: FEATURE_NEXT_BUILD_CONTENT_VET_CENTER_LOCATIONS_LIST + feature_next_build_content_media_list_videos: FEATURE_NEXT_BUILD_CONTENT_MEDIA_LIST_VIDEOS + feature_next_build_content_vha_facility_nonclinical_service: FEATURE_NEXT_BUILD_CONTENT_VHA_FACILITY_NONCLINICAL_SERVICE + feature_next_build_content_vet_center_mobile_vet_center: FEATURE_NEXT_BUILD_CONTENT_VET_CENTER_MOBILE_VET_CENTER + feature_next_build_content_vet_center_outstation: FEATURE_NEXT_BUILD_CONTENT_VET_CENTER_OUTSTATION diff --git a/config/sync/next.next_entity_type_config.node.event.yml b/config/sync/next.next_entity_type_config.node.event.yml new file mode 100644 index 0000000000..a6ec4ac25a --- /dev/null +++ b/config/sync/next.next_entity_type_config.node.event.yml @@ -0,0 +1,11 @@ +uuid: 9ef16f07-fe2f-4055-b7cc-d4a8ccfe5482 +langcode: en +status: true +dependencies: { } +id: node.event +site_resolver: site_selector +configuration: + sites: + next_build_preview_server: next_build_preview_server +revalidator: '' +revalidator_configuration: { } diff --git a/config/sync/next.next_entity_type_config.node.event_listing.yml b/config/sync/next.next_entity_type_config.node.event_listing.yml new file mode 100644 index 0000000000..d15fa10bc8 --- /dev/null +++ b/config/sync/next.next_entity_type_config.node.event_listing.yml @@ -0,0 +1,11 @@ +uuid: 9d281c53-3779-4474-acac-14b10073e59b +langcode: en +status: true +dependencies: { } +id: node.event_listing +site_resolver: site_selector +configuration: + sites: + next_build_preview_server: next_build_preview_server +revalidator: '' +revalidator_configuration: { } diff --git a/config/sync/next.next_entity_type_config.node.press_release.yml b/config/sync/next.next_entity_type_config.node.press_release.yml new file mode 100644 index 0000000000..1cc7ab434b --- /dev/null +++ b/config/sync/next.next_entity_type_config.node.press_release.yml @@ -0,0 +1,11 @@ +uuid: c0f9fb45-692e-42f4-8ad0-daed0c6d25ea +langcode: en +status: true +dependencies: { } +id: node.press_release +site_resolver: site_selector +configuration: + sites: + next_build_preview_server: next_build_preview_server +revalidator: '' +revalidator_configuration: { } diff --git a/config/sync/next.next_entity_type_config.node.press_releases_listing.yml b/config/sync/next.next_entity_type_config.node.press_releases_listing.yml new file mode 100644 index 0000000000..86a9039229 --- /dev/null +++ b/config/sync/next.next_entity_type_config.node.press_releases_listing.yml @@ -0,0 +1,11 @@ +uuid: 4b77f503-e59c-4fef-90bf-13746ec1bdb2 +langcode: en +status: true +dependencies: { } +id: node.press_releases_listing +site_resolver: site_selector +configuration: + sites: + next_build_preview_server: next_build_preview_server +revalidator: '' +revalidator_configuration: { } diff --git a/config/sync/next.next_entity_type_config.node.vet_center.yml b/config/sync/next.next_entity_type_config.node.vet_center.yml new file mode 100644 index 0000000000..5a2b22c5be --- /dev/null +++ b/config/sync/next.next_entity_type_config.node.vet_center.yml @@ -0,0 +1,11 @@ +uuid: bfa1141c-3f84-4765-b291-d4a8e1fccca7 +langcode: en +status: true +dependencies: { } +id: node.vet_center +site_resolver: site_selector +configuration: + sites: + next_build_preview_server: next_build_preview_server +revalidator: '' +revalidator_configuration: { } diff --git a/config/sync/next.next_site.next_build_preview_server.yml b/config/sync/next.next_site.next_build_preview_server.yml index 3e3a99c8bb..caf6c88f5d 100644 --- a/config/sync/next.next_site.next_build_preview_server.yml +++ b/config/sync/next.next_site.next_build_preview_server.yml @@ -4,8 +4,8 @@ status: true dependencies: { } id: next_build_preview_server label: 'Next Build Preview Server' -base_url: 'http://localhost:3000' -preview_url: 'http://localhost:3000/api/preview' +base_url: 'http://localhost:3999' +preview_url: 'http://localhost:3999/api/preview' preview_secret: secret revalidate_url: '' revalidate_secret: '' diff --git a/docroot/modules/custom/va_gov_flags/src/Export/ExportFeature.php b/docroot/modules/custom/va_gov_flags/src/Export/ExportFeature.php index 4a76cb1ebd..5360f0f48b 100644 --- a/docroot/modules/custom/va_gov_flags/src/Export/ExportFeature.php +++ b/docroot/modules/custom/va_gov_flags/src/Export/ExportFeature.php @@ -3,7 +3,7 @@ namespace Drupal\va_gov_flags\Export; use Drupal\Component\Serialization\SerializationInterface; -use Drupal\Core\File\FileSystem; +use Drupal\Core\File\FileSystemInterface; use Drupal\Core\Site\Settings; use Drupal\va_gov_flags\FeatureFlagDataBuilderInterface; @@ -20,9 +20,9 @@ class ExportFeature implements ExportFeatureInterface { protected $featureFlagDataBuilder; /** - * FileSystem service. + * File systems should implement FileSystemInterface. * - * @var \Drupal\Core\File\FileSystem + * @var \Drupal\Core\File\FileSystemInterface */ protected $fileSystem; @@ -38,15 +38,15 @@ class ExportFeature implements ExportFeatureInterface { * * @param \Drupal\va_gov_flags\FeatureFlagDataBuilderInterface $featureFlagDataBuilder * THe feature data builder class. - * @param \Drupal\Core\File\FileSystem $fileSystem + * @param \Drupal\Core\File\FileSystemInterface $fileSystem * The file system class. * @param \Drupal\Component\Serialization\SerializationInterface $serializer * The serialization class to use. */ public function __construct( FeatureFlagDataBuilderInterface $featureFlagDataBuilder, - FileSystem $fileSystem, - SerializationInterface $serializer + FileSystemInterface $fileSystem, + SerializationInterface $serializer, ) { $this->featureFlagDataBuilder = $featureFlagDataBuilder; $this->fileSystem = $fileSystem; diff --git a/docroot/modules/custom/va_gov_preview/src/EventSubscriber/PreviewEventSubscriber.php b/docroot/modules/custom/va_gov_preview/src/EventSubscriber/PreviewEventSubscriber.php index 47e55c8118..0d4e9f61f7 100644 --- a/docroot/modules/custom/va_gov_preview/src/EventSubscriber/PreviewEventSubscriber.php +++ b/docroot/modules/custom/va_gov_preview/src/EventSubscriber/PreviewEventSubscriber.php @@ -3,6 +3,7 @@ namespace Drupal\va_gov_preview\EventSubscriber; use Drupal\Core\Datetime\DateFormatter; +use Drupal\Core\Entity\EntityTypeBundleInfo; use Drupal\Core\Entity\EntityTypeManager; use Drupal\Core\Language\LanguageManagerInterface; use Drupal\Core\Routing\RouteMatchInterface; @@ -24,11 +25,6 @@ class PreviewEventSubscriber implements EventSubscriberInterface { use StringTranslationTrait; - /** - * The Feature toggle name for outreach checkbox. - */ - const NEXT_PREVIEW_FEATURE_NAME = 'feature_next_story_preview'; - /** * The entity manager. * @@ -86,11 +82,19 @@ class PreviewEventSubscriber implements EventSubscriberInterface { protected NextSettingsManagerInterface $nextSettingsManager; /** - * TRUE if the next preview checkbox feature toggle is enabled. + * Service for retrieving feature toggle values. + * + * @var \Drupal\feature_toggle\FeatureStatus + */ + private FeatureStatus $featureStatus; + + + /** + * Service for getting entity bundle info. * - * @var bool + * @var \Drupal\Core\Entity\EntityTypeBundleInfo */ - private bool $nextPreviewEnabled; + private EntityTypeBundleInfo $bundleInfo; /** * Constructs the EventSubscriber object. @@ -112,7 +116,9 @@ class PreviewEventSubscriber implements EventSubscriberInterface { * @param \Drupal\next\NextSettingsManagerInterface $next_settings_manager * Interface for retrieving specific Next.js site settings. * @param \Drupal\feature_toggle\FeatureStatus $feature_status - * Interface for checking CMS feature flags. + * Service for checking CMS feature flags. + * @param \Drupal\Core\Entity\EntityTypeBundleInfo $bundle_info + * Service for retrieving entity bundle info. */ public function __construct( EntityTypeManager $entityTypeManager, @@ -124,6 +130,7 @@ public function __construct( NextEntityTypeManagerInterface $next_entity_type_manager, NextSettingsManagerInterface $next_settings_manager, FeatureStatus $feature_status, + EntityTypeBundleInfo $bundle_info, ) { $this->entityTypeManager = $entityTypeManager; $this->routeMatch = $route_match; @@ -133,7 +140,8 @@ public function __construct( $this->exclusionTypes = $exclusion_types; $this->nextEntityTypeManager = $next_entity_type_manager; $this->nextSettingsManager = $next_settings_manager; - $this->nextPreviewEnabled = $feature_status->getStatus(self::NEXT_PREVIEW_FEATURE_NAME); + $this->featureStatus = $feature_status; + $this->bundleInfo = $bundle_info; } /** @@ -181,18 +189,19 @@ public function preprocessPage(PagePreprocessEvent $event): void { * Node. */ protected function generatePreviewButton(NodeInterface $node): string|null { - // Needs to come first because listing types are allowed here. - if ($this->nextPreviewEnabled && $this->checkNextEnabledTypes($node->bundle())) { + // Check if this node is excluded for all preview. + if (!$this->isThisNodePreviewEnabled($node)) { + return NULL; + } + // Needs to come first because listing types are allowed here, and because + // we want Next preview to override legacy preview. + if ($this->isNodeNextPreviewEnabled($node)) { $url = $this->generateNextBuildPreviewLink($node); } // Otherwise return default preview experience. else { - if ($this->checkExcludedTypes($node)) { - return NULL; - } - // Make sure we aren't on /training-guide. - $current_uri = $this->requestStack->getCurrentRequest()->getRequestUri(); - if ($current_uri === '/training-guide') { + // Check if this is excluded in Content Build preview. + if (!$this->isNodeLegacyPreviewEnabled($node)) { return NULL; } @@ -206,32 +215,75 @@ protected function generatePreviewButton(NodeInterface $node): string|null { } /** - * Next-build enabled preview requires certain config entities to exist. + * Check if a node is generally preview-enabled. + * + * Prevent node preview in some cases. * - * @param string $type + * @param \Drupal\node\NodeInterface $node * The node type. * * @return bool - * TRUE if the node type has a corresponding next config entity. + * TRUE if the node type is enabled for preview. */ - protected function checkNextEnabledTypes(string $type): bool { - // @todo Replace this array with a proper config check. - $enabled_types = ['news_story', 'story_listing']; - return in_array($type, $enabled_types); + protected function isThisNodePreviewEnabled(NodeInterface $node): bool { + // There are content types that we will never want to preview + // because they are not URLs on the front-end. + // This is true for both Content Build and Next Build. + $exclusion_types = $this->exclusionTypes->getExcludedTypes(); + if (in_array($node->bundle(), $exclusion_types)) { + return FALSE; + } + + // Make sure we aren't an excluded path. + $excluded_uris = [ + '/training-guide', + ]; + $current_uri = $this->requestStack->getCurrentRequest()->getRequestUri(); + if (in_array($current_uri, $excluded_uris)) { + return FALSE; + } + + // Exclude staff pages without bios. + if ($node->bundle() === 'person_profile' && $node->get('field_complete_biography_create')->value === '0') { + return FALSE; + } + + // Otherwise, allow preview. + return TRUE; + } + + /** + * Check if a node is eligible for Next preview. + * + * @param \Drupal\node\NodeInterface $node + * The node type. + * + * @return bool + * TRUE if the node type is enabled for Next preview. + */ + protected function isNodeNextPreviewEnabled(NodeInterface $node): bool { + $type = $node->bundle(); + // Check the content type's Next content flag status. + $flag_name = "feature_next_build_content_$type"; + $next_content_flag_status = $this->featureStatus->getStatus($flag_name); + + // We also need to check that there's actually a Next-Drupal config item. + $next_config_exists = $this->nextEntityTypeManager->getConfigForEntityType('node', $type); + + return $next_content_flag_status && $next_config_exists; } /** - * Existing preview functionality has some conditions. + * Check if a node is eligible for legacy preview. * * @param \Drupal\node\NodeInterface $node * The node type. * * @return bool - * TRUE if the node type is excluded from preview. + * TRUE if the node type is enabled for legacy preview. */ - protected function checkExcludedTypes(NodeInterface $node): bool { - $exclusion_types_from_config = $this->exclusionTypes->getExcludedTypes(); - $list_types = [ + protected function isNodeLegacyPreviewEnabled(NodeInterface $node): bool { + $listing_types = [ // List pages don't play nicely with preview. 'event_listing', 'health_services_listing,', @@ -241,13 +293,7 @@ protected function checkExcludedTypes(NodeInterface $node): bool { 'publication_listing', 'story_listing', ]; - $exclusion_types = array_merge(array_values($exclusion_types_from_config), array_values($list_types)); - // Exclude staff pages without bios. - if ($node->bundle() === 'person_profile' && $node->get('field_complete_biography_create')->value === '0') { - $exclusion_types[] = 'person_profile'; - } - - return (in_array($node->bundle(), $exclusion_types)); + return !(in_array($node->bundle(), $listing_types)); } /** diff --git a/docroot/modules/custom/va_gov_preview/va_gov_preview.services.yml b/docroot/modules/custom/va_gov_preview/va_gov_preview.services.yml index 3487236e1d..e29ca69b21 100644 --- a/docroot/modules/custom/va_gov_preview/va_gov_preview.services.yml +++ b/docroot/modules/custom/va_gov_preview/va_gov_preview.services.yml @@ -16,7 +16,8 @@ services: '@va_gov_backend.exclusion_types', '@next.entity_type.manager', '@next.settings.manager', - '@feature_toggle.feature_status' + '@feature_toggle.feature_status', + '@entity_type.bundle.info' ] tags: - { name: event_subscriber } From 8ca868dc2f869f2e7bf3ebc16dfb6bb440c74f77 Mon Sep 17 00:00:00 2001 From: Dave Pickett <51967950+davidmpickett@users.noreply.github.com> Date: Fri, 13 Sep 2024 09:43:46 -0500 Subject: [PATCH 23/86] VACMS-19185: Adding Manila menu & enabling it on relevant content types (#19193) * initial config * format tweaks * menu settings * VACMS-19185: Adds Manila VA clinic * remove extraneous file change --------- Co-authored-by: Christian Burk --- config/sync/node.type.event.yml | 1 + config/sync/node.type.event_listing.yml | 1 + config/sync/node.type.health_care_local_facility.yml | 1 + config/sync/node.type.health_care_region_detail_page.yml | 1 + config/sync/node.type.health_care_region_page.yml | 1 + config/sync/node.type.health_services_listing.yml | 1 + config/sync/node.type.leadership_listing.yml | 1 + config/sync/node.type.locations_listing.yml | 1 + config/sync/node.type.news_story.yml | 1 + config/sync/node.type.person_profile.yml | 1 + config/sync/node.type.press_release.yml | 1 + config/sync/node.type.press_releases_listing.yml | 1 + config/sync/node.type.publication_listing.yml | 1 + config/sync/node.type.story_listing.yml | 1 + .../sync/node.type.vamc_operating_status_and_alerts.yml | 1 + config/sync/node.type.vamc_system_billing_insurance.yml | 1 + .../sync/node.type.vamc_system_medical_records_offi.yml | 1 + config/sync/node.type.vamc_system_policies_page.yml | 1 + config/sync/node.type.vamc_system_register_for_care.yml | 1 + config/sync/node.type.vamc_system_va_police.yml | 1 + config/sync/system.menu.manila-va-clinic.yml | 8 ++++++++ config/sync/views.view.vha_health_service_taxonomy.yml | 2 +- 22 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 config/sync/system.menu.manila-va-clinic.yml diff --git a/config/sync/node.type.event.yml b/config/sync/node.type.event.yml index 040e7a1dbd..e150d9aeff 100644 --- a/config/sync/node.type.event.yml +++ b/config/sync/node.type.event.yml @@ -11,6 +11,7 @@ third_party_settings: menu_ui: available_menus: - lovell-federal-health-care + - manila-va-clinic - va-alaska-health-care - va-albany-health-care - va-alexandria-health-care diff --git a/config/sync/node.type.event_listing.yml b/config/sync/node.type.event_listing.yml index b9281ad70e..40a60d0fcb 100644 --- a/config/sync/node.type.event_listing.yml +++ b/config/sync/node.type.event_listing.yml @@ -11,6 +11,7 @@ third_party_settings: menu_ui: available_menus: - lovell-federal-health-care + - manila-va-clinic - outreach-and-events - va-alaska-health-care - va-albany-health-care diff --git a/config/sync/node.type.health_care_local_facility.yml b/config/sync/node.type.health_care_local_facility.yml index cc736597e5..d25c4feeaf 100644 --- a/config/sync/node.type.health_care_local_facility.yml +++ b/config/sync/node.type.health_care_local_facility.yml @@ -11,6 +11,7 @@ third_party_settings: menu_ui: available_menus: - lovell-federal-health-care + - manila-va-clinic - va-alaska-health-care - va-albany-health-care - va-alexandria-health-care diff --git a/config/sync/node.type.health_care_region_detail_page.yml b/config/sync/node.type.health_care_region_detail_page.yml index 11b6846b56..2afaf8a138 100644 --- a/config/sync/node.type.health_care_region_detail_page.yml +++ b/config/sync/node.type.health_care_region_detail_page.yml @@ -11,6 +11,7 @@ third_party_settings: menu_ui: available_menus: - lovell-federal-health-care + - manila-va-clinic - outreach-and-events - va-alaska-health-care - va-albany-health-care diff --git a/config/sync/node.type.health_care_region_page.yml b/config/sync/node.type.health_care_region_page.yml index 33251f002f..bc6dac39ca 100644 --- a/config/sync/node.type.health_care_region_page.yml +++ b/config/sync/node.type.health_care_region_page.yml @@ -11,6 +11,7 @@ third_party_settings: menu_ui: available_menus: - lovell-federal-health-care + - manila-va-clinic - va-alaska-health-care - va-albany-health-care - va-alexandria-health-care diff --git a/config/sync/node.type.health_services_listing.yml b/config/sync/node.type.health_services_listing.yml index fa6e9a6c06..1c6d4fbe7e 100644 --- a/config/sync/node.type.health_services_listing.yml +++ b/config/sync/node.type.health_services_listing.yml @@ -11,6 +11,7 @@ third_party_settings: menu_ui: available_menus: - lovell-federal-health-care + - manila-va-clinic - outreach-and-events - va-alaska-health-care - va-albany-health-care diff --git a/config/sync/node.type.leadership_listing.yml b/config/sync/node.type.leadership_listing.yml index ecd3c17c0c..2b75eeb8c6 100644 --- a/config/sync/node.type.leadership_listing.yml +++ b/config/sync/node.type.leadership_listing.yml @@ -11,6 +11,7 @@ third_party_settings: menu_ui: available_menus: - lovell-federal-health-care + - manila-va-clinic - outreach-and-events - va-alaska-health-care - va-albany-health-care diff --git a/config/sync/node.type.locations_listing.yml b/config/sync/node.type.locations_listing.yml index cc3ad9ec27..a7ae2f6e6a 100644 --- a/config/sync/node.type.locations_listing.yml +++ b/config/sync/node.type.locations_listing.yml @@ -11,6 +11,7 @@ third_party_settings: menu_ui: available_menus: - lovell-federal-health-care + - manila-va-clinic - outreach-and-events - va-alaska-health-care - va-albany-health-care diff --git a/config/sync/node.type.news_story.yml b/config/sync/node.type.news_story.yml index ebc7a79759..804467d32b 100644 --- a/config/sync/node.type.news_story.yml +++ b/config/sync/node.type.news_story.yml @@ -11,6 +11,7 @@ third_party_settings: menu_ui: available_menus: - lovell-federal-health-care + - manila-va-clinic - va-alaska-health-care - va-albany-health-care - va-alexandria-health-care diff --git a/config/sync/node.type.person_profile.yml b/config/sync/node.type.person_profile.yml index 228c70a5c6..f6a17732f5 100644 --- a/config/sync/node.type.person_profile.yml +++ b/config/sync/node.type.person_profile.yml @@ -11,6 +11,7 @@ third_party_settings: menu_ui: available_menus: - lovell-federal-health-care + - manila-va-clinic - va-alaska-health-care - va-albany-health-care - va-alexandria-health-care diff --git a/config/sync/node.type.press_release.yml b/config/sync/node.type.press_release.yml index 1568006fa9..4fe5ee66e6 100644 --- a/config/sync/node.type.press_release.yml +++ b/config/sync/node.type.press_release.yml @@ -11,6 +11,7 @@ third_party_settings: menu_ui: available_menus: - lovell-federal-health-care + - manila-va-clinic - va-alaska-health-care - va-albany-health-care - va-alexandria-health-care diff --git a/config/sync/node.type.press_releases_listing.yml b/config/sync/node.type.press_releases_listing.yml index 0aa193ea2f..a080a91b56 100644 --- a/config/sync/node.type.press_releases_listing.yml +++ b/config/sync/node.type.press_releases_listing.yml @@ -11,6 +11,7 @@ third_party_settings: menu_ui: available_menus: - lovell-federal-health-care + - manila-va-clinic - outreach-and-events - va-alaska-health-care - va-albany-health-care diff --git a/config/sync/node.type.publication_listing.yml b/config/sync/node.type.publication_listing.yml index 9264c4a30b..3fe2f62e8e 100644 --- a/config/sync/node.type.publication_listing.yml +++ b/config/sync/node.type.publication_listing.yml @@ -11,6 +11,7 @@ third_party_settings: menu_ui: available_menus: - lovell-federal-health-care + - manila-va-clinic - outreach-and-events - va-alaska-health-care - va-albany-health-care diff --git a/config/sync/node.type.story_listing.yml b/config/sync/node.type.story_listing.yml index 89cbdb9862..c01d3d905c 100644 --- a/config/sync/node.type.story_listing.yml +++ b/config/sync/node.type.story_listing.yml @@ -11,6 +11,7 @@ third_party_settings: menu_ui: available_menus: - lovell-federal-health-care + - manila-va-clinic - outreach-and-events - va-alaska-health-care - va-albany-health-care diff --git a/config/sync/node.type.vamc_operating_status_and_alerts.yml b/config/sync/node.type.vamc_operating_status_and_alerts.yml index 4ad80506a9..563fae4944 100644 --- a/config/sync/node.type.vamc_operating_status_and_alerts.yml +++ b/config/sync/node.type.vamc_operating_status_and_alerts.yml @@ -11,6 +11,7 @@ third_party_settings: menu_ui: available_menus: - lovell-federal-health-care + - manila-va-clinic - va-alaska-health-care - va-albany-health-care - va-alexandria-health-care diff --git a/config/sync/node.type.vamc_system_billing_insurance.yml b/config/sync/node.type.vamc_system_billing_insurance.yml index 86b1b4f78b..eb803201b1 100644 --- a/config/sync/node.type.vamc_system_billing_insurance.yml +++ b/config/sync/node.type.vamc_system_billing_insurance.yml @@ -11,6 +11,7 @@ third_party_settings: available_menus: - lovell-federal-health-care - main + - manila-va-clinic - va-alaska-health-care - va-albany-health-care - va-alexandria-health-care diff --git a/config/sync/node.type.vamc_system_medical_records_offi.yml b/config/sync/node.type.vamc_system_medical_records_offi.yml index f04364366c..be58613459 100644 --- a/config/sync/node.type.vamc_system_medical_records_offi.yml +++ b/config/sync/node.type.vamc_system_medical_records_offi.yml @@ -11,6 +11,7 @@ third_party_settings: available_menus: - lovell-federal-health-care - main + - manila-va-clinic - va-alaska-health-care - va-albany-health-care - va-alexandria-health-care diff --git a/config/sync/node.type.vamc_system_policies_page.yml b/config/sync/node.type.vamc_system_policies_page.yml index 5e745a7b1b..664ac2c651 100644 --- a/config/sync/node.type.vamc_system_policies_page.yml +++ b/config/sync/node.type.vamc_system_policies_page.yml @@ -11,6 +11,7 @@ third_party_settings: menu_ui: available_menus: - lovell-federal-health-care + - manila-va-clinic - va-alaska-health-care - va-albany-health-care - va-alexandria-health-care diff --git a/config/sync/node.type.vamc_system_register_for_care.yml b/config/sync/node.type.vamc_system_register_for_care.yml index 77286f9716..66b8192f2f 100644 --- a/config/sync/node.type.vamc_system_register_for_care.yml +++ b/config/sync/node.type.vamc_system_register_for_care.yml @@ -11,6 +11,7 @@ third_party_settings: available_menus: - lovell-federal-health-care - main + - manila-va-clinic - va-alaska-health-care - va-albany-health-care - va-alexandria-health-care diff --git a/config/sync/node.type.vamc_system_va_police.yml b/config/sync/node.type.vamc_system_va_police.yml index 2496e101cf..e86cfe266d 100644 --- a/config/sync/node.type.vamc_system_va_police.yml +++ b/config/sync/node.type.vamc_system_va_police.yml @@ -10,6 +10,7 @@ dependencies: third_party_settings: menu_ui: available_menus: + - manila-va-clinic - va-alaska-health-care - va-albany-health-care - va-alexandria-health-care diff --git a/config/sync/system.menu.manila-va-clinic.yml b/config/sync/system.menu.manila-va-clinic.yml new file mode 100644 index 0000000000..b234e4cc62 --- /dev/null +++ b/config/sync/system.menu.manila-va-clinic.yml @@ -0,0 +1,8 @@ +uuid: c75e8ce8-7b31-4ef9-9b47-4f0ef8f17302 +langcode: en +status: true +dependencies: { } +id: manila-va-clinic +label: 'Manila VA Clinic' +description: 'VISN 21 | va.gov/manila-va-clinic' +locked: false diff --git a/config/sync/views.view.vha_health_service_taxonomy.yml b/config/sync/views.view.vha_health_service_taxonomy.yml index de8a6ec2dd..dc12219d02 100644 --- a/config/sync/views.view.vha_health_service_taxonomy.yml +++ b/config/sync/views.view.vha_health_service_taxonomy.yml @@ -3624,4 +3624,4 @@ display: - 'config:field.storage.taxonomy_term.field_vet_center_required_servic' - 'config:field.storage.taxonomy_term.field_vet_center_service_descrip' - 'config:field.storage.taxonomy_term.field_vet_center_type_of_care' - - 'config:field.storage.taxonomy_term.field_vha_healthservice_stopcode' + - 'config:field.storage.taxonomy_term.field_vha_healthservice_stopcode' \ No newline at end of file From 1a8025506b5dd067519601356e85973ff8d0bbbb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 13 Sep 2024 11:34:19 -0700 Subject: [PATCH 24/86] Bump va-gov/content-build from 0.0.3588 to 0.0.3589 (#19202) Bumps [va-gov/content-build](https://github.com/department-of-veterans-affairs/content-build) from 0.0.3588 to 0.0.3589. - [Release notes](https://github.com/department-of-veterans-affairs/content-build/releases) - [Commits](https://github.com/department-of-veterans-affairs/content-build/compare/v0.0.3588...v0.0.3589) --- updated-dependencies: - dependency-name: va-gov/content-build dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Edmund Dunn <109987005+edmund-dunn@users.noreply.github.com> --- composer.json | 2 +- composer.lock | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/composer.json b/composer.json index 129979b10d..bd54137885 100644 --- a/composer.json +++ b/composer.json @@ -227,7 +227,7 @@ "symfony/phpunit-bridge": "^5.1", "symfony/process": "^6.3", "symfony/routing": "^6.3", - "va-gov/content-build": "^0.0.3588", + "va-gov/content-build": "^0.0.3589", "vlucas/phpdotenv": "^5.6", "webflo/drupal-finder": "1.2.2", "webmozart/path-util": "^2.3", diff --git a/composer.lock b/composer.lock index a055fa4ea2..36c92493d9 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": "14ac14378af302fa376f0dac13ef58b9", + "content-hash": "1ce528faefe3c8fcd2d2f11c13a01224", "packages": [ { "name": "asm89/stack-cors", @@ -26432,16 +26432,16 @@ }, { "name": "va-gov/content-build", - "version": "v0.0.3588", + "version": "v0.0.3589", "source": { "type": "git", "url": "https://github.com/department-of-veterans-affairs/content-build.git", - "reference": "9718327acf295a7c040e8cafb18802986721ff5c" + "reference": "fbef2aa70845730cf1988a64d836f7263e0b89c9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/department-of-veterans-affairs/content-build/zipball/9718327acf295a7c040e8cafb18802986721ff5c", - "reference": "9718327acf295a7c040e8cafb18802986721ff5c", + "url": "https://api.github.com/repos/department-of-veterans-affairs/content-build/zipball/fbef2aa70845730cf1988a64d836f7263e0b89c9", + "reference": "fbef2aa70845730cf1988a64d836f7263e0b89c9", "shasum": "" }, "type": "node-project", @@ -26468,9 +26468,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.3588" + "source": "https://github.com/department-of-veterans-affairs/content-build/tree/v0.0.3589" }, - "time": "2024-09-10T19:25:13+00:00" + "time": "2024-09-11T18:19:12+00:00" }, { "name": "vlucas/phpdotenv", From 6a1b873fe2d46d40bd5dfd373722c40b047c228f Mon Sep 17 00:00:00 2001 From: Dave Pickett <51967950+davidmpickett@users.noreply.github.com> Date: Fri, 13 Sep 2024 18:05:09 -0500 Subject: [PATCH 25/86] Sort = true (#19174) Co-authored-by: Jill Adams <85581471+jilladams@users.noreply.github.com> --- config/sync/views.view.search.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/sync/views.view.search.yml b/config/sync/views.view.search.yml index d5cbf01c5b..69d3a832c6 100644 --- a/config/sync/views.view.search.yml +++ b/config/sync/views.view.search.yml @@ -1461,7 +1461,7 @@ display: type: plugin_id: default advanced: - sort_options: false + sort_options: true rewrite: filter_rewrite_values: '' collapsible: false From 8e63c02decc439fab807688a64918796b0fb5524 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 13 Sep 2024 18:50:53 -0700 Subject: [PATCH 26/86] Bump va-gov/content-build from 0.0.3589 to 0.0.3590 (#19215) Bumps [va-gov/content-build](https://github.com/department-of-veterans-affairs/content-build) from 0.0.3589 to 0.0.3590. - [Release notes](https://github.com/department-of-veterans-affairs/content-build/releases) - [Commits](https://github.com/department-of-veterans-affairs/content-build/compare/v0.0.3589...v0.0.3590) --- updated-dependencies: - dependency-name: va-gov/content-build dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- composer.json | 2 +- composer.lock | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/composer.json b/composer.json index bd54137885..e6c929e02e 100644 --- a/composer.json +++ b/composer.json @@ -227,7 +227,7 @@ "symfony/phpunit-bridge": "^5.1", "symfony/process": "^6.3", "symfony/routing": "^6.3", - "va-gov/content-build": "^0.0.3589", + "va-gov/content-build": "^0.0.3590", "vlucas/phpdotenv": "^5.6", "webflo/drupal-finder": "1.2.2", "webmozart/path-util": "^2.3", diff --git a/composer.lock b/composer.lock index 36c92493d9..37bc324c31 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": "1ce528faefe3c8fcd2d2f11c13a01224", + "content-hash": "b84d2a306fbde377cb48207c7017660a", "packages": [ { "name": "asm89/stack-cors", @@ -26432,16 +26432,16 @@ }, { "name": "va-gov/content-build", - "version": "v0.0.3589", + "version": "v0.0.3590", "source": { "type": "git", "url": "https://github.com/department-of-veterans-affairs/content-build.git", - "reference": "fbef2aa70845730cf1988a64d836f7263e0b89c9" + "reference": "7e5de71095c332b61afe85df3719853e2edd5666" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/department-of-veterans-affairs/content-build/zipball/fbef2aa70845730cf1988a64d836f7263e0b89c9", - "reference": "fbef2aa70845730cf1988a64d836f7263e0b89c9", + "url": "https://api.github.com/repos/department-of-veterans-affairs/content-build/zipball/7e5de71095c332b61afe85df3719853e2edd5666", + "reference": "7e5de71095c332b61afe85df3719853e2edd5666", "shasum": "" }, "type": "node-project", @@ -26468,9 +26468,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.3589" + "source": "https://github.com/department-of-veterans-affairs/content-build/tree/v0.0.3590" }, - "time": "2024-09-11T18:19:12+00:00" + "time": "2024-09-13T14:57:43+00:00" }, { "name": "vlucas/phpdotenv", From 6f5e5a39feffd9c413291e7e04cdc522ea3254af Mon Sep 17 00:00:00 2001 From: Dave Pickett <51967950+davidmpickett@users.noreply.github.com> Date: Mon, 16 Sep 2024 16:54:26 -0500 Subject: [PATCH 27/86] VACMS-17545: Update Service Taxonomy view (#19191) * initial config * format tweaks * resolved special character encoding quirk * Bump drupal/components from 3.0.0-beta3 to 3.1.0 (#19170) Bumps drupal/components from 3.0.0-beta3 to 3.1.0. --- updated-dependencies: - dependency-name: drupal/components dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Edmund Dunn <109987005+edmund-dunn@users.noreply.github.com> * Bump datadog/dd-trace from 1.3.0 to 1.3.1 (#19143) Bumps [datadog/dd-trace](https://github.com/DataDog/dd-trace-php) from 1.3.0 to 1.3.1. - [Release notes](https://github.com/DataDog/dd-trace-php/releases) - [Commits](https://github.com/DataDog/dd-trace-php/compare/1.3.0...1.3.1) --- updated-dependencies: - dependency-name: datadog/dd-trace dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump va-gov/content-build from 0.0.3587 to 0.0.3588 (#19195) Bumps [va-gov/content-build](https://github.com/department-of-veterans-affairs/content-build) from 0.0.3587 to 0.0.3588. - [Release notes](https://github.com/department-of-veterans-affairs/content-build/releases) - [Commits](https://github.com/department-of-veterans-affairs/content-build/compare/v0.0.3587...v0.0.3588) --- updated-dependencies: - dependency-name: va-gov/content-build dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Edmund Dunn <109987005+edmund-dunn@users.noreply.github.com> --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Edmund Dunn <109987005+edmund-dunn@users.noreply.github.com> Co-authored-by: Christian Burk --- ...views.view.vha_health_service_taxonomy.yml | 227 ++++++++++++------ 1 file changed, 153 insertions(+), 74 deletions(-) diff --git a/config/sync/views.view.vha_health_service_taxonomy.yml b/config/sync/views.view.vha_health_service_taxonomy.yml index dc12219d02..70ce413839 100644 --- a/config/sync/views.view.vha_health_service_taxonomy.yml +++ b/config/sync/views.view.vha_health_service_taxonomy.yml @@ -7,6 +7,8 @@ dependencies: - field.storage.taxonomy_term.field_commonly_treated_condition - field.storage.taxonomy_term.field_health_service_api_id - field.storage.taxonomy_term.field_service_type_of_care + - field.storage.taxonomy_term.field_vba_service_descrip + - field.storage.taxonomy_term.field_vba_type_of_care - field.storage.taxonomy_term.field_vet_center_com_conditions - field.storage.taxonomy_term.field_vet_center_friendly_name - field.storage.taxonomy_term.field_vet_center_required_servic @@ -14,6 +16,7 @@ dependencies: - field.storage.taxonomy_term.field_vet_center_type_of_care - field.storage.taxonomy_term.field_vha_healthservice_stopcode - node.type.regional_health_care_service_des + - node.type.vba_facility_service - node.type.vet_center_facility_health_servi - system.menu.admin - taxonomy.vocabulary.health_care_service_taxonomy @@ -1121,6 +1124,7 @@ display: operator: in value: regional_health_care_service_des: regional_health_care_service_des + vba_facility_service: vba_facility_service vet_center_facility_health_servi: vet_center_facility_health_servi group: 1 exposed: true @@ -1144,6 +1148,7 @@ display: content_creator_resources_and_support: '0' office_content_creator: '0' vamc_content_creator: '0' + content_creator_vba: '0' content_creator_vet_center: '0' content_editor: '0' content_reviewer: '0' @@ -1152,6 +1157,10 @@ display: redirect_administrator: '0' admnistrator_users: '0' administrator: '0' + homepage_manager: '0' + next_js: '0' + translation_manager: '0' + rates_editor: '0' reduce: true is_grouped: false group_info: @@ -1175,7 +1184,6 @@ display: name: name edit_taxonomy_term: edit_taxonomy_term field_health_service_api_id: field_health_service_api_id - field_vha_healthservice_stopcode: field_vha_healthservice_stopcode field_also_known_as: field_also_known_as field_commonly_treated_condition: field_commonly_treated_condition description__value: description__value @@ -1183,7 +1191,9 @@ display: field_vet_center_friendly_name: field_vet_center_friendly_name field_vet_center_com_conditions: field_vet_center_com_conditions field_vet_center_service_descrip: field_vet_center_service_descrip + field_vba_service_descrip: field_vba_service_descrip field_vet_center_type_of_care: field_vet_center_type_of_care + field_vba_type_of_care: field_vba_type_of_care nothing_1: nothing_1 nothing: nothing nothing_2: nothing_2 @@ -1213,13 +1223,6 @@ display: separator: '' empty_column: false responsive: '' - field_vha_healthservice_stopcode: - sortable: true - default_sort_order: asc - align: '' - separator: '' - empty_column: false - responsive: '' field_also_known_as: sortable: true default_sort_order: asc @@ -1267,6 +1270,13 @@ display: separator: '' empty_column: true responsive: '' + field_vba_service_descrip: + sortable: false + default_sort_order: asc + align: '' + separator: '' + empty_column: true + responsive: '' field_vet_center_type_of_care: sortable: true default_sort_order: asc @@ -1274,6 +1284,13 @@ display: separator: '' empty_column: true responsive: '' + field_vba_type_of_care: + sortable: false + default_sort_order: asc + align: '' + separator: '' + empty_column: false + responsive: '' nothing_1: align: '' separator: '' @@ -2691,16 +2708,16 @@ display: multi_type: separator separator: ', ' field_api_classes: false - field_vha_healthservice_stopcode: - id: field_vha_healthservice_stopcode - table: taxonomy_term__field_vha_healthservice_stopcode - field: field_vha_healthservice_stopcode + field_also_known_as: + id: field_also_known_as + table: taxonomy_term__field_also_known_as + field: field_also_known_as relationship: none group_type: group admin_label: '' plugin_id: field - label: 'Stop code' - exclude: false + label: 'VAMC Patient-friendly name' + exclude: true alter: alter_text: false text: '' @@ -2741,10 +2758,9 @@ display: empty_zero: false hide_alter_empty: true click_sort_column: value - type: number_integer + type: string settings: - thousand_separator: '' - prefix_suffix: true + link_to_entity: false group_column: value group_columns: { } group_rows: true @@ -2755,15 +2771,15 @@ display: multi_type: separator separator: ', ' field_api_classes: false - field_also_known_as: - id: field_also_known_as - table: taxonomy_term__field_also_known_as - field: field_also_known_as + field_commonly_treated_condition: + id: field_commonly_treated_condition + table: taxonomy_term__field_commonly_treated_condition + field: field_commonly_treated_condition relationship: none group_type: group admin_label: '' plugin_id: field - label: 'VAMC Patient-friendly name' + label: 'VAMC Common conditions' exclude: true alter: alter_text: false @@ -2818,15 +2834,17 @@ display: multi_type: separator separator: ', ' field_api_classes: false - field_commonly_treated_condition: - id: field_commonly_treated_condition - table: taxonomy_term__field_commonly_treated_condition - field: field_commonly_treated_condition + description__value: + id: description__value + table: taxonomy_term_field_data + field: description__value relationship: none group_type: group admin_label: '' + entity_type: taxonomy_term + entity_field: description plugin_id: field - label: 'VAMC Common conditions' + label: 'VAMC Description' exclude: true alter: alter_text: false @@ -2845,10 +2863,10 @@ display: suffix: '' target: '' nl2br: false - max_length: 0 + max_length: 100 word_boundary: true ellipsis: true - more_link: false + more_link: true more_link_text: '' more_link_path: '' strip_tags: false @@ -2868,9 +2886,8 @@ display: empty_zero: false hide_alter_empty: true click_sort_column: value - type: string - settings: - link_to_entity: false + type: text_default + settings: { } group_column: value group_columns: { } group_rows: true @@ -2881,17 +2898,15 @@ display: multi_type: separator separator: ', ' field_api_classes: false - description__value: - id: description__value - table: taxonomy_term_field_data - field: description__value + field_service_type_of_care: + id: field_service_type_of_care + table: taxonomy_term__field_service_type_of_care + field: field_service_type_of_care relationship: none group_type: group admin_label: '' - entity_type: taxonomy_term - entity_field: description plugin_id: field - label: 'VAMC Description' + label: 'VAMC Type of care' exclude: true alter: alter_text: false @@ -2910,10 +2925,10 @@ display: suffix: '' target: '' nl2br: false - max_length: 100 + max_length: 0 word_boundary: true ellipsis: true - more_link: true + more_link: false more_link_text: '' more_link_path: '' strip_tags: false @@ -2933,7 +2948,7 @@ display: empty_zero: false hide_alter_empty: true click_sort_column: value - type: text_default + type: list_default settings: { } group_column: value group_columns: { } @@ -2945,15 +2960,15 @@ display: multi_type: separator separator: ', ' field_api_classes: false - field_service_type_of_care: - id: field_service_type_of_care - table: taxonomy_term__field_service_type_of_care - field: field_service_type_of_care + field_vet_center_friendly_name: + id: field_vet_center_friendly_name + table: taxonomy_term__field_vet_center_friendly_name + field: field_vet_center_friendly_name relationship: none group_type: group admin_label: '' plugin_id: field - label: 'VAMC Type of care' + label: 'Vet Center Patient friendly name' exclude: true alter: alter_text: false @@ -2991,12 +3006,13 @@ display: element_wrapper_class: '' element_default_classes: true empty: '' - hide_empty: false + hide_empty: true empty_zero: false hide_alter_empty: true click_sort_column: value - type: list_default - settings: { } + type: string + settings: + link_to_entity: false group_column: value group_columns: { } group_rows: true @@ -3007,15 +3023,15 @@ display: multi_type: separator separator: ', ' field_api_classes: false - field_vet_center_friendly_name: - id: field_vet_center_friendly_name - table: taxonomy_term__field_vet_center_friendly_name - field: field_vet_center_friendly_name + field_vet_center_com_conditions: + id: field_vet_center_com_conditions + table: taxonomy_term__field_vet_center_com_conditions + field: field_vet_center_com_conditions relationship: none group_type: group admin_label: '' plugin_id: field - label: 'Vet Center Patient friendly name' + label: 'Vet Center Common conditions' exclude: true alter: alter_text: false @@ -3070,15 +3086,15 @@ display: multi_type: separator separator: ', ' field_api_classes: false - field_vet_center_com_conditions: - id: field_vet_center_com_conditions - table: taxonomy_term__field_vet_center_com_conditions - field: field_vet_center_com_conditions + field_vet_center_service_descrip: + id: field_vet_center_service_descrip + table: taxonomy_term__field_vet_center_service_descrip + field: field_vet_center_service_descrip relationship: none group_type: group admin_label: '' plugin_id: field - label: 'Vet Center Common conditions' + label: 'Vet Center Service description' exclude: true alter: alter_text: false @@ -3120,9 +3136,8 @@ display: empty_zero: false hide_alter_empty: true click_sort_column: value - type: string - settings: - link_to_entity: false + type: basic_string + settings: { } group_column: value group_columns: { } group_rows: true @@ -3133,15 +3148,15 @@ display: multi_type: separator separator: ', ' field_api_classes: false - field_vet_center_service_descrip: - id: field_vet_center_service_descrip - table: taxonomy_term__field_vet_center_service_descrip - field: field_vet_center_service_descrip + field_vba_service_descrip: + id: field_vba_service_descrip + table: taxonomy_term__field_vba_service_descrip + field: field_vba_service_descrip relationship: none group_type: group admin_label: '' plugin_id: field - label: 'Vet Center Service description' + label: 'VBA description' exclude: true alter: alter_text: false @@ -3179,7 +3194,7 @@ display: element_wrapper_class: '' element_default_classes: true empty: '' - hide_empty: true + hide_empty: false empty_zero: false hide_alter_empty: true click_sort_column: value @@ -3257,6 +3272,68 @@ display: multi_type: separator separator: ', ' field_api_classes: false + field_vba_type_of_care: + id: field_vba_type_of_care + table: taxonomy_term__field_vba_type_of_care + field: field_vba_type_of_care + relationship: none + group_type: group + admin_label: '' + plugin_id: field + label: 'VBA Type of care' + exclude: true + alter: + alter_text: false + text: '' + make_link: false + path: '' + absolute: false + external: false + replace_spaces: false + path_case: none + trim_whitespace: false + alt: '' + rel: '' + link_class: '' + prefix: '' + suffix: '' + target: '' + nl2br: false + max_length: 0 + word_boundary: true + ellipsis: true + more_link: false + more_link_text: '' + more_link_path: '' + strip_tags: false + trim: false + preserve_tags: '' + html: false + element_type: '' + element_class: '' + element_label_type: '' + element_label_class: '' + element_label_colon: true + element_wrapper_type: '' + element_wrapper_class: '' + element_default_classes: true + empty: '' + hide_empty: false + empty_zero: false + hide_alter_empty: true + click_sort_column: value + type: list_default + settings: { } + group_column: value + group_columns: { } + group_rows: true + delta_limit: 0 + delta_offset: 0 + delta_reversed: false + delta_first_last: false + multi_type: separator + separator: ', ' + field_api_classes: false nothing_1: id: nothing_1 table: views @@ -3269,7 +3346,7 @@ display: exclude: false alter: alter_text: true - text: "{% if field_also_known_as is not empty %}

VAMC Patient-friendly Name: {{ field_also_known_as }}

{% endif %}\r\n{% if field_vet_center_friendly_name is not empty %}

Vet Center Patient-friendly Name: {{ field_vet_center_friendly_name }}

{% endif %}" + text: "{% if field_also_known_as is not empty %}

VAMC: {{ field_also_known_as }}

{% endif %}\r\n{% if field_vet_center_friendly_name is not empty %}

Vet Center: {{ field_vet_center_friendly_name }}

{% endif %}" make_link: false path: '' absolute: false @@ -3318,7 +3395,7 @@ display: exclude: false alter: alter_text: true - text: "{% if description__value is not empty %}

VAMC Description: {{ description__value }}

{% endif %}\r\n{% if field_vet_center_service_descrip is not empty %}

Vet Center Description: {{ field_vet_center_service_descrip }}

{% endif %}" + text: "{% if description__value is not empty %}

VAMC: {{ description__value|striptags|raw }}

{% endif %}\r\n{% if field_vet_center_service_descrip is not empty %}

Vet Center: {{ field_vet_center_service_descrip }}

{% endif %}\r\n{% if field_vba_service_descrip is not empty %}

VBA: {{ field_vba_service_descrip }}

{% endif %}" make_link: false path: '' absolute: false @@ -3367,7 +3444,7 @@ display: exclude: false alter: alter_text: true - text: "{% if field_commonly_treated_condition is not empty %}

VAMC Common Conditions: {{ field_commonly_treated_condition }}

{% endif %}\r\n{% if field_vet_center_com_conditions is not empty %}

Vet Center Common Conditions:{{ field_vet_center_com_conditions }}

{% endif %}" + text: "{% if field_commonly_treated_condition is not empty %}

VAMC: {{ field_commonly_treated_condition }}

{% endif %}\r\n{% if field_vet_center_com_conditions is not empty %}

Vet Center:{{ field_vet_center_com_conditions }}

{% endif %}" make_link: false path: '' absolute: false @@ -3416,7 +3493,7 @@ display: exclude: false alter: alter_text: true - text: "{% if field_service_type_of_care is not empty %}

VAMC Type of Care: {{ field_service_type_of_care }}

{% endif %}\r\n{% if field_vet_center_type_of_care is not empty %}

Vet Center Type of Care:{{ field_vet_center_type_of_care }}

{% endif %}" + text: "{% if field_service_type_of_care is not empty %}

VAMC: {{ field_service_type_of_care }}

{% endif %}\r\n{% if field_vet_center_type_of_care is not empty %}

Vet Center: {{ field_vet_center_type_of_care }}

{% endif %}\r\n{% if field_vba_type_of_care is not empty %}

VBA: {{ field_vba_type_of_care }}

{% endif %}" make_link: false path: '' absolute: false @@ -3619,9 +3696,11 @@ display: - 'config:field.storage.taxonomy_term.field_commonly_treated_condition' - 'config:field.storage.taxonomy_term.field_health_service_api_id' - 'config:field.storage.taxonomy_term.field_service_type_of_care' + - 'config:field.storage.taxonomy_term.field_vba_service_descrip' + - 'config:field.storage.taxonomy_term.field_vba_type_of_care' - 'config:field.storage.taxonomy_term.field_vet_center_com_conditions' - 'config:field.storage.taxonomy_term.field_vet_center_friendly_name' - 'config:field.storage.taxonomy_term.field_vet_center_required_servic' - 'config:field.storage.taxonomy_term.field_vet_center_service_descrip' - 'config:field.storage.taxonomy_term.field_vet_center_type_of_care' - - 'config:field.storage.taxonomy_term.field_vha_healthservice_stopcode' \ No newline at end of file + - 'config:field.storage.taxonomy_term.field_vha_healthservice_stopcode' From ead7222c85548948c6fc57b26ecd996980113456 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 16 Sep 2024 18:17:08 -0700 Subject: [PATCH 28/86] Bump va-gov/content-build from 0.0.3590 to 0.0.3591 (#19224) Bumps [va-gov/content-build](https://github.com/department-of-veterans-affairs/content-build) from 0.0.3590 to 0.0.3591. - [Release notes](https://github.com/department-of-veterans-affairs/content-build/releases) - [Commits](https://github.com/department-of-veterans-affairs/content-build/compare/v0.0.3590...v0.0.3591) --- updated-dependencies: - dependency-name: va-gov/content-build dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- composer.json | 2 +- composer.lock | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/composer.json b/composer.json index e6c929e02e..0b6534d0f1 100644 --- a/composer.json +++ b/composer.json @@ -227,7 +227,7 @@ "symfony/phpunit-bridge": "^5.1", "symfony/process": "^6.3", "symfony/routing": "^6.3", - "va-gov/content-build": "^0.0.3590", + "va-gov/content-build": "^0.0.3591", "vlucas/phpdotenv": "^5.6", "webflo/drupal-finder": "1.2.2", "webmozart/path-util": "^2.3", diff --git a/composer.lock b/composer.lock index 37bc324c31..2caacaf4de 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": "b84d2a306fbde377cb48207c7017660a", + "content-hash": "caf71f211fa4378bfcfc571f517f14a1", "packages": [ { "name": "asm89/stack-cors", @@ -26432,16 +26432,16 @@ }, { "name": "va-gov/content-build", - "version": "v0.0.3590", + "version": "v0.0.3591", "source": { "type": "git", "url": "https://github.com/department-of-veterans-affairs/content-build.git", - "reference": "7e5de71095c332b61afe85df3719853e2edd5666" + "reference": "6ecc046ef31bf9883e7800c3ee423f98430d1eda" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/department-of-veterans-affairs/content-build/zipball/7e5de71095c332b61afe85df3719853e2edd5666", - "reference": "7e5de71095c332b61afe85df3719853e2edd5666", + "url": "https://api.github.com/repos/department-of-veterans-affairs/content-build/zipball/6ecc046ef31bf9883e7800c3ee423f98430d1eda", + "reference": "6ecc046ef31bf9883e7800c3ee423f98430d1eda", "shasum": "" }, "type": "node-project", @@ -26468,9 +26468,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.3590" + "source": "https://github.com/department-of-veterans-affairs/content-build/tree/v0.0.3591" }, - "time": "2024-09-13T14:57:43+00:00" + "time": "2024-09-13T19:43:15+00:00" }, { "name": "vlucas/phpdotenv", From c02660861d1044c8bd98bf3a9ca430e1263ac5cb Mon Sep 17 00:00:00 2001 From: Amanda Nantais-Austin Date: Tue, 17 Sep 2024 10:32:58 -0400 Subject: [PATCH 29/86] VACMS-19188: Update seckit.. (#19200) Co-authored-by: Edmund Dunn <109987005+edmund-dunn@users.noreply.github.com> --- composer.lock | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/composer.lock b/composer.lock index 2caacaf4de..655edda9fb 100644 --- a/composer.lock +++ b/composer.lock @@ -12823,17 +12823,17 @@ }, { "name": "drupal/seckit", - "version": "2.0.2", + "version": "2.0.3", "source": { "type": "git", "url": "https://git.drupalcode.org/project/seckit.git", - "reference": "2.0.2" + "reference": "2.0.3" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/seckit-2.0.2.zip", - "reference": "2.0.2", - "shasum": "19c421c0c5b966d20903024e6029599c33b4707d" + "url": "https://ftp.drupal.org/files/projects/seckit-2.0.3.zip", + "reference": "2.0.3", + "shasum": "34d38f2daaf99781ef6b7e7fbe2eeabc73a7ca16" }, "require": { "drupal/core": "^9.5 || ^10 || ^11" @@ -12841,8 +12841,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "2.0.2", - "datestamp": "1724766049", + "version": "2.0.3", + "datestamp": "1726075930", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" From f4d3ff173b7efcf231d42881bfd868f4d66650a1 Mon Sep 17 00:00:00 2001 From: Jake Bapple <166155028+JakeBapple@users.noreply.github.com> Date: Tue, 17 Sep 2024 10:13:14 -0500 Subject: [PATCH 30/86] VACMS-19071: Implement redesign for kb search results page. (#19120) * 19701-implement-redesign-for-kb-search-results-page: First commit for template and styles. * 19071-implement-redesign-for-kb-search-results-page: Template and style updates for knowledge base search results page. --- .../assets/scss/pages/_kb-pages.scss | 67 ++++++++++++++++++- .../page/page--help--search.html.twig | 65 ++++++++++-------- 2 files changed, 102 insertions(+), 30 deletions(-) diff --git a/docroot/themes/custom/vagovclaro/assets/scss/pages/_kb-pages.scss b/docroot/themes/custom/vagovclaro/assets/scss/pages/_kb-pages.scss index 0709fd253f..ea7df383e3 100644 --- a/docroot/themes/custom/vagovclaro/assets/scss/pages/_kb-pages.scss +++ b/docroot/themes/custom/vagovclaro/assets/scss/pages/_kb-pages.scss @@ -175,7 +175,7 @@ } } -// KB Landing page overrides +// KB landing and search results page overrides #kb-landing-page__container { // Special override from .vagovclaro .layout-container margin: 0 auto !important; @@ -185,6 +185,71 @@ .field--name-field-links { padding-left: 10px; } + + &.search-results__wrapper { + padding-bottom: 75px; + + .page-title { + margin-top: 12px; + } + } +} + +.search-results__header { + padding-bottom: 36px; +} + +.kb__search-result { + .kb__search-result__title { + font-size: 1.6rem; + margin-bottom: 20px; + } + + .kb__search-result__intro { + font-size: 1.1rem; + line-height: 1.1; + } + + .kb__search-result__excerpt { + display: block; + padding: 1em; + } +} + +main { + #block-knowledge-base-search-form { + background: none; + border: 0; + box-shadow: none; + margin: 30px 0 50px; + padding: 0; + + label { + font-family: var(--font-family-serif); + font-size: 20px; + margin-bottom: 20px; + } + + .form-item--keyword { + display: inline-block; + width: 400px; + + input { + background-image: url("/themes/custom/vagovclaro/images/icons/magnifying-glass-868686.svg"); + background-position-x: calc(100% - 10px); + background-position-y: center; + background-repeat: no-repeat; + background-size: 22px; + padding-right: 40px; + width: 100%; + } + } + + .form-actions { + display: inline-block; + margin: 0 0 0 20px; + } + } } .page-content { diff --git a/docroot/themes/custom/vagovclaro/templates/page/page--help--search.html.twig b/docroot/themes/custom/vagovclaro/templates/page/page--help--search.html.twig index 7f3de19c2c..4c70650587 100644 --- a/docroot/themes/custom/vagovclaro/templates/page/page--help--search.html.twig +++ b/docroot/themes/custom/vagovclaro/templates/page/page--help--search.html.twig @@ -44,48 +44,55 @@ #} {{ attach_library('vagovclaro/userguides') }} -
+
+
+ {{ page.header.vagovclaro_page_title }} + {{ page.header.vagovclaro_primary_local_tasks }} + {{ page.header.vagovclaro_sitealert }} +
+
-
- {{ page.header }} -
+
- {{ page.primary_menu }} - {{ page.secondary_menu }} +
- {{ page.breadcrumb }} + {{ page.breadcrumb }} - {{ page.highlighted }} + {{ page.header.vagovclaro_page_title }} - {{ page.help }} + {{ page.primary_menu }} + {{ page.secondary_menu }} + {{ page.highlighted }} + {{ page.help }} -
- {# link is in html.html.twig #} +
+ {# link is in html.html.twig #} -
- {{ page.content }} -
{# /.layout-content #} +
+ {{ page.content }} +
{# /.layout-content #} + {# Remove sidebars, at least for now.#} + {# {% if page.sidebar_first %}#} + {# #} + {# {% endif %}#} -{# Remove sidebars, at least for now.#} -{# {% if page.sidebar_first %}#} -{# #} -{# {% endif %}#} + {# {% if page.sidebar_second %}#} + {# #} + {# {% endif %}#} -{# {% if page.sidebar_second %}#} -{# #} -{# {% endif %}#} +
+
- - - {% if page.footer %} + {# Removing footer per updated designs #} + {# {% if page.footer %}
{{ page.footer }}
- {% endif %} + {% endif %} #}
{# /.layout-container #} From 9a6b18f75fdcd72cf7b12d28ed63a74cdafdd825 Mon Sep 17 00:00:00 2001 From: Daniel Sasser Date: Tue, 17 Sep 2024 08:13:43 -0700 Subject: [PATCH 31/86] VACMS-19052: Updates aging content fwb templates. (#19216) --- ...message.aging_content_warn_fwb.default.yml | 9 +++++++ ...message.aging_content_warn_fwb.default.yml | 3 +++ ...ssage.aging_content_warn_fwb.mail_body.yml | 3 +++ ...ge.aging_content_warn_fwb.mail_subject.yml | 3 +++ .../sync/eca.eca.aging_content_warn_fwb.yml | 2 +- ...ng_content_warn_fwb.field_expired_date.yml | 24 +++++++++++++++++++ ...age.template.aging_content_expired_fwb.yml | 4 ++-- ...essage.template.aging_content_warn_fwb.yml | 4 ++-- ...age.template.aging_content_expired_fwb.yml | 4 ++-- ...essage.template.aging_content_warn_fwb.yml | 4 ++-- 10 files changed, 51 insertions(+), 9 deletions(-) create mode 100644 config/sync/field.field.message.aging_content_warn_fwb.field_expired_date.yml diff --git a/config/sync/core.entity_form_display.message.aging_content_warn_fwb.default.yml b/config/sync/core.entity_form_display.message.aging_content_warn_fwb.default.yml index a5020d0078..01b5a8192e 100644 --- a/config/sync/core.entity_form_display.message.aging_content_warn_fwb.default.yml +++ b/config/sync/core.entity_form_display.message.aging_content_warn_fwb.default.yml @@ -3,6 +3,7 @@ langcode: en status: true dependencies: config: + - field.field.message.aging_content_warn_fwb.field_expired_date - field.field.message.aging_content_warn_fwb.field_target_node_title - field.field.message.aging_content_warn_fwb.field_warning_date - message.template.aging_content_warn_fwb @@ -17,6 +18,14 @@ content: region: content settings: { } third_party_settings: { } + field_expired_date: + type: string_textfield + weight: 12 + region: content + settings: + size: 60 + placeholder: '' + third_party_settings: { } field_target_node_title: type: string_textfield weight: 0 diff --git a/config/sync/core.entity_view_display.message.aging_content_warn_fwb.default.yml b/config/sync/core.entity_view_display.message.aging_content_warn_fwb.default.yml index defafa1100..6305cbd423 100644 --- a/config/sync/core.entity_view_display.message.aging_content_warn_fwb.default.yml +++ b/config/sync/core.entity_view_display.message.aging_content_warn_fwb.default.yml @@ -3,6 +3,7 @@ langcode: en status: true dependencies: config: + - field.field.message.aging_content_warn_fwb.field_expired_date - field.field.message.aging_content_warn_fwb.field_target_node_title - field.field.message.aging_content_warn_fwb.field_warning_date - message.template.aging_content_warn_fwb @@ -24,6 +25,8 @@ content: weight: 1 region: content hidden: + breadcrumbs: true + field_expired_date: true field_target_node_title: true field_warning_date: true search_api_excerpt: true diff --git a/config/sync/core.entity_view_display.message.aging_content_warn_fwb.mail_body.yml b/config/sync/core.entity_view_display.message.aging_content_warn_fwb.mail_body.yml index 18cafb5372..e7a0663645 100644 --- a/config/sync/core.entity_view_display.message.aging_content_warn_fwb.mail_body.yml +++ b/config/sync/core.entity_view_display.message.aging_content_warn_fwb.mail_body.yml @@ -4,6 +4,7 @@ status: true dependencies: config: - core.entity_view_mode.message.mail_body + - field.field.message.aging_content_warn_fwb.field_expired_date - field.field.message.aging_content_warn_fwb.field_target_node_title - field.field.message.aging_content_warn_fwb.field_warning_date - message.template.aging_content_warn_fwb @@ -23,6 +24,8 @@ content: weight: 0 region: content hidden: + breadcrumbs: true + field_expired_date: true field_target_node_title: true field_warning_date: true partial_0: true diff --git a/config/sync/core.entity_view_display.message.aging_content_warn_fwb.mail_subject.yml b/config/sync/core.entity_view_display.message.aging_content_warn_fwb.mail_subject.yml index e88f6a46de..d631516f27 100644 --- a/config/sync/core.entity_view_display.message.aging_content_warn_fwb.mail_subject.yml +++ b/config/sync/core.entity_view_display.message.aging_content_warn_fwb.mail_subject.yml @@ -4,6 +4,7 @@ status: true dependencies: config: - core.entity_view_mode.message.mail_subject + - field.field.message.aging_content_warn_fwb.field_expired_date - field.field.message.aging_content_warn_fwb.field_target_node_title - field.field.message.aging_content_warn_fwb.field_warning_date - message.template.aging_content_warn_fwb @@ -23,6 +24,8 @@ content: weight: 0 region: content hidden: + breadcrumbs: true + field_expired_date: true field_target_node_title: true field_warning_date: true partial_1: true diff --git a/config/sync/eca.eca.aging_content_warn_fwb.yml b/config/sync/eca.eca.aging_content_warn_fwb.yml index 285f27849e..ea981ca0a8 100644 --- a/config/sync/eca.eca.aging_content_warn_fwb.yml +++ b/config/sync/eca.eca.aging_content_warn_fwb.yml @@ -54,7 +54,7 @@ actions: configuration: token_name: job type: va_gov_aging_content_notification - payload: "template_values:\r\n uid: \"[node:revision_uid:target_id]\"\r\n template: aging_content_warn_fwb\r\nvalues:\r\n field_warning_date: \"[node:warning_date:date:html_date]\"\r\n field_target_node_title: \"[node:title]\"" + payload: "template_values:\r\n uid: \"[node:revision_uid:target_id]\"\r\n template: aging_content_warn_fwb\r\nvalues:\r\n field_warning_date: \"[node:warning_date:date:html_date]\"\r\n field_expired_date: \"[node:expiration_date:date:html_date]\"\r\n field_target_node_title: \"[node:title]\"\r\n" queue: aging_content successors: { } eca_trigger_content_entity_cus_1: diff --git a/config/sync/field.field.message.aging_content_warn_fwb.field_expired_date.yml b/config/sync/field.field.message.aging_content_warn_fwb.field_expired_date.yml new file mode 100644 index 0000000000..739eb1c60c --- /dev/null +++ b/config/sync/field.field.message.aging_content_warn_fwb.field_expired_date.yml @@ -0,0 +1,24 @@ +uuid: 04796eec-ab32-4c2a-a270-dc4a6dbf7aa7 +langcode: en +status: true +dependencies: + config: + - field.storage.message.field_expired_date + - message.template.aging_content_warn_fwb + module: + - tmgmt_content +third_party_settings: + tmgmt_content: + excluded: false +id: message.aging_content_warn_fwb.field_expired_date +field_name: field_expired_date +entity_type: message +bundle: aging_content_warn_fwb +label: 'Expired Date' +description: 'The date this content expired.' +required: false +translatable: false +default_value: { } +default_value_callback: '' +settings: { } +field_type: string diff --git a/config/sync/language/en/message.template.aging_content_expired_fwb.yml b/config/sync/language/en/message.template.aging_content_expired_fwb.yml index 1d9f8def9e..4c6a969696 100644 --- a/config/sync/language/en/message.template.aging_content_expired_fwb.yml +++ b/config/sync/language/en/message.template.aging_content_expired_fwb.yml @@ -1,7 +1,7 @@ text: - - value: '

Your Full-width banner has displayed for seven (7) days

' + value: '

Full-width Banner Alert content is now expired

' format: rich_text - - value: '

Your Full-width banner has displayed for seven days. In order to meet the purpose of this type of content, please plan to archive, or edit to extend display of, your published Full-width banner titled [message:field_target_node_title] by [message:field_expired_date].

As a reminder, Full-width banners are to be used for emergencies or actions a veteran needs to take and should display for 7-days, unless there’s a compelling reason to extend display of the content.

If you do need to extend the display of the banner, simply edit with a comment to that effect, and the 7-day countdown window will reset.


For more information, you can read this Knowledge Base article for tips and best practices to manage compliance.

Need help?

  • If you are a Vet Center Director or Outreach Specialist who needs assistance accessing Drupal CMS, please email the CMS Support Team at support@va-gov.atlassian.net.
  • If you want to refresh your skills, need ideas, or have questions about creating content for your webpages, you can find How to Guides and Training videos in the Drupal CMS Knowledge Base or drop in during office hours.
  • If you received this email and no longer have a role at a Vet Center, please inform us by emailing the CMS Support Team at support@va-gov.atlassian.net.

Coming Soon:

  • Banners will be permanently auto-archived at the end of Day 7, unless edited to reset the 7-day timeframe. We will give ample notice before this functionality is implemented.
  • Notifications and auto-archiving of Home Page Benefit Promo Blocks
  • Notifications and auto-archiving of Home Page News Spotlight Blocks
' + value: '

Your published Full-width Banner Alert titled ''[message:field_target_node_title]'' has displayed for seven (7) days. Please plan to replace the content of this published Full-width Banner Alert by EOD today.

If there is a compelling reason to continue this particular display, you can reset the 7-day countdown window by logging into Drupal, editing the banner, and resaving it with a comment to that effect.

For more information, you can read this Knowledge Base article for tips and best practices to manage compliance.

Need help?
Contact VA.gov Drupal CMS support at support@va-gov.atlassian.net

' format: rich_text diff --git a/config/sync/language/en/message.template.aging_content_warn_fwb.yml b/config/sync/language/en/message.template.aging_content_warn_fwb.yml index 1e1dfb5e2c..842c6f88b2 100644 --- a/config/sync/language/en/message.template.aging_content_warn_fwb.yml +++ b/config/sync/language/en/message.template.aging_content_warn_fwb.yml @@ -1,7 +1,7 @@ text: - - value: '

Please update or archive your Full-width banner by [message:field_warning_date]

' + value: '

Full-width Banner Alert content expiring soon

' format: rich_text - - value: '

Please plan to archive, or edit to extend display of, your published Full-width banner titled [message:field_target_node_title] by [message:field_warning_date].

As a reminder, Full-width banners are to be used for emergencies or actions a veteran needs to take and should display for 7-days, unless there’s a compelling reason to extend display of the content.

If you do need to extend the display of the banner, simply edit with a comment to that effect, and the 7-day countdown window will reset.

For more information, you can read this Knowledge Base article for tips and best practices to manage compliance.

Need help?

If you are a Vet Center Director or Outreach Specialist who needs assistance accessing Drupal CMS, please email the CMS Support Team at support@va-gov.atlassian.net.
If you want to refresh your skills, need ideas, or have questions about creating content for your webpages, you can find How to Guides and Training videos in the Drupal CMS Knowledge Base or drop in during office hours.
If you received this email and no longer have a role at a Vet Center, please inform us by emailing the CMS Support Team at support@va-gov.atlassian.net.
Coming Soon:

Banners will be permanently auto-archived at the end of Day 7, unless edited to reset the 7-day timeframe. We will give ample notice before this functionality is implemented.
Notifications and auto-archiving of Home Page Benefit Promo Blocks
Notifications and auto-archiving of Home Page News Spotlight Blocks

' + value: '

As a reminder, Full-width Banners Alerts should be used for emergency or urgent communications that prompt a Veteran or other user to take action. Unless there is a compelling reason, Full-width Banner Alerts should not promote the same content for longer than seven (7) days.

Your published Full-width Banner Alert titled ''[message:field_target_node_title]'' will soon expire. Please plan to refresh this content by [message:field_expired_date].

To extend the display of the content, log in to Drupal and edit the banner, resaving it with a comment to that effect. The 7-day countdown window will reset.

For more information, you can read this Knowledge Base article for tips and best practices to manage compliance.

Need help?
Contact VA.gov Drupal CMS support at support@va-gov.atlassian.net

' format: rich_text diff --git a/config/sync/message.template.aging_content_expired_fwb.yml b/config/sync/message.template.aging_content_expired_fwb.yml index 96aa8837f2..b932a38820 100644 --- a/config/sync/message.template.aging_content_expired_fwb.yml +++ b/config/sync/message.template.aging_content_expired_fwb.yml @@ -9,10 +9,10 @@ label: 'Aging Content: Expired Full Width Alerts' description: 'Messages for expired Full Width Alert nodes (aka Full Width Banner/FWB)' text: - - value: '

Your Full-width banner has displayed for seven (7) days

' + value: '

Full-width Banner Alert content is now expired

' format: rich_text - - value: '

Your Full-width banner has displayed for seven days. In order to meet the purpose of this type of content, please plan to archive, or edit to extend display of, your published Full-width banner titled [message:field_target_node_title] by [message:field_expired_date].

As a reminder, Full-width banners are to be used for emergencies or actions a veteran needs to take and should display for 7-days, unless there’s a compelling reason to extend display of the content.

If you do need to extend the display of the banner, simply edit with a comment to that effect, and the 7-day countdown window will reset.


For more information, you can read this Knowledge Base article for tips and best practices to manage compliance.

Need help?

  • If you are a Vet Center Director or Outreach Specialist who needs assistance accessing Drupal CMS, please email the CMS Support Team at support@va-gov.atlassian.net.
  • If you want to refresh your skills, need ideas, or have questions about creating content for your webpages, you can find How to Guides and Training videos in the Drupal CMS Knowledge Base or drop in during office hours.
  • If you received this email and no longer have a role at a Vet Center, please inform us by emailing the CMS Support Team at support@va-gov.atlassian.net.

Coming Soon:

  • Banners will be permanently auto-archived at the end of Day 7, unless edited to reset the 7-day timeframe. We will give ample notice before this functionality is implemented.
  • Notifications and auto-archiving of Home Page Benefit Promo Blocks
  • Notifications and auto-archiving of Home Page News Spotlight Blocks
' + value: '

Your published Full-width Banner Alert titled ''[message:field_target_node_title]'' has displayed for seven (7) days. Please plan to replace the content of this published Full-width Banner Alert by EOD today.

If there is a compelling reason to continue this particular display, you can reset the 7-day countdown window by logging into Drupal, editing the banner, and resaving it with a comment to that effect.

For more information, you can read this Knowledge Base article for tips and best practices to manage compliance.

Need help?
Contact VA.gov Drupal CMS support at support@va-gov.atlassian.net

' format: rich_text settings: 'token options': diff --git a/config/sync/message.template.aging_content_warn_fwb.yml b/config/sync/message.template.aging_content_warn_fwb.yml index 8f3e44d32f..a3b98a5ce2 100644 --- a/config/sync/message.template.aging_content_warn_fwb.yml +++ b/config/sync/message.template.aging_content_warn_fwb.yml @@ -9,10 +9,10 @@ label: 'Aging Content: Warn Full Width Alerts' description: 'Messages for warning Full Width Alert nodes (aka Full Width Banner/FWB)' text: - - value: '

Please update or archive your Full-width banner by [message:field_warning_date]

' + value: '

Full-width Banner Alert content expiring soon

' format: rich_text - - value: '

Please plan to archive, or edit to extend display of, your published Full-width banner titled [message:field_target_node_title] by [message:field_warning_date].

As a reminder, Full-width banners are to be used for emergencies or actions a veteran needs to take and should display for 7-days, unless there’s a compelling reason to extend display of the content.

If you do need to extend the display of the banner, simply edit with a comment to that effect, and the 7-day countdown window will reset.

For more information, you can read this Knowledge Base article for tips and best practices to manage compliance.

Need help?

If you are a Vet Center Director or Outreach Specialist who needs assistance accessing Drupal CMS, please email the CMS Support Team at support@va-gov.atlassian.net.
If you want to refresh your skills, need ideas, or have questions about creating content for your webpages, you can find How to Guides and Training videos in the Drupal CMS Knowledge Base or drop in during office hours.
If you received this email and no longer have a role at a Vet Center, please inform us by emailing the CMS Support Team at support@va-gov.atlassian.net.
Coming Soon:

Banners will be permanently auto-archived at the end of Day 7, unless edited to reset the 7-day timeframe. We will give ample notice before this functionality is implemented.
Notifications and auto-archiving of Home Page Benefit Promo Blocks
Notifications and auto-archiving of Home Page News Spotlight Blocks

' + value: '

As a reminder, Full-width Banners Alerts should be used for emergency or urgent communications that prompt a Veteran or other user to take action. Unless there is a compelling reason, Full-width Banner Alerts should not promote the same content for longer than seven (7) days.

Your published Full-width Banner Alert titled ''[message:field_target_node_title]'' will soon expire. Please plan to refresh this content by [message:field_expired_date].

To extend the display of the content, log in to Drupal and edit the banner, resaving it with a comment to that effect. The 7-day countdown window will reset.

For more information, you can read this Knowledge Base article for tips and best practices to manage compliance.

Need help?
Contact VA.gov Drupal CMS support at support@va-gov.atlassian.net

' format: rich_text settings: 'token options': From be15ead1ef881887efa50191b813c2109ef590aa Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 17 Sep 2024 09:12:21 -0700 Subject: [PATCH 32/86] Bump phpstan/phpstan-deprecation-rules from 1.2.0 to 1.2.1 (#19194) Bumps [phpstan/phpstan-deprecation-rules](https://github.com/phpstan/phpstan-deprecation-rules) from 1.2.0 to 1.2.1. - [Release notes](https://github.com/phpstan/phpstan-deprecation-rules/releases) - [Commits](https://github.com/phpstan/phpstan-deprecation-rules/compare/1.2.0...1.2.1) --- updated-dependencies: - dependency-name: phpstan/phpstan-deprecation-rules dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Edmund Dunn <109987005+edmund-dunn@users.noreply.github.com> --- composer.lock | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/composer.lock b/composer.lock index 655edda9fb..22ebc6ad8b 100644 --- a/composer.lock +++ b/composer.lock @@ -19504,16 +19504,16 @@ }, { "name": "phpstan/phpstan", - "version": "1.11.11", + "version": "1.12.3", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "707c2aed5d8d0075666e673a5e71440c1d01a5a3" + "reference": "0fcbf194ab63d8159bb70d9aa3e1350051632009" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/707c2aed5d8d0075666e673a5e71440c1d01a5a3", - "reference": "707c2aed5d8d0075666e673a5e71440c1d01a5a3", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/0fcbf194ab63d8159bb70d9aa3e1350051632009", + "reference": "0fcbf194ab63d8159bb70d9aa3e1350051632009", "shasum": "" }, "require": { @@ -19558,25 +19558,25 @@ "type": "github" } ], - "time": "2024-08-19T14:37:29+00:00" + "time": "2024-09-09T08:10:35+00:00" }, { "name": "phpstan/phpstan-deprecation-rules", - "version": "1.2.0", + "version": "1.2.1", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan-deprecation-rules.git", - "reference": "fa8cce7720fa782899a0aa97b6a41225d1bb7b26" + "reference": "f94d246cc143ec5a23da868f8f7e1393b50eaa82" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan-deprecation-rules/zipball/fa8cce7720fa782899a0aa97b6a41225d1bb7b26", - "reference": "fa8cce7720fa782899a0aa97b6a41225d1bb7b26", + "url": "https://api.github.com/repos/phpstan/phpstan-deprecation-rules/zipball/f94d246cc143ec5a23da868f8f7e1393b50eaa82", + "reference": "f94d246cc143ec5a23da868f8f7e1393b50eaa82", "shasum": "" }, "require": { "php": "^7.2 || ^8.0", - "phpstan/phpstan": "^1.11" + "phpstan/phpstan": "^1.12" }, "require-dev": { "php-parallel-lint/php-parallel-lint": "^1.2", @@ -19603,9 +19603,9 @@ "description": "PHPStan rules for detecting usage of deprecated classes, methods, properties, constants and traits.", "support": { "issues": "https://github.com/phpstan/phpstan-deprecation-rules/issues", - "source": "https://github.com/phpstan/phpstan-deprecation-rules/tree/1.2.0" + "source": "https://github.com/phpstan/phpstan-deprecation-rules/tree/1.2.1" }, - "time": "2024-04-20T06:39:48+00:00" + "time": "2024-09-11T15:52:35+00:00" }, { "name": "phpunit/php-code-coverage", From eacc90e981b5b023b07052e52c853276327ba14d Mon Sep 17 00:00:00 2001 From: Christian Burk Date: Tue, 17 Sep 2024 09:52:05 -0700 Subject: [PATCH 33/86] VACMS-19013: Adding Vet Center services (#19014) * VACMS-19013: Adding Vet Center services * Update views.view.facility_services.yml --------- Co-authored-by: Tim Cosgrove --- config/sync/views.view.facility_services.yml | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/config/sync/views.view.facility_services.yml b/config/sync/views.view.facility_services.yml index 63db5a0933..6035b3507b 100644 --- a/config/sync/views.view.facility_services.yml +++ b/config/sync/views.view.facility_services.yml @@ -608,6 +608,7 @@ display: type: full options: offset: 0 + pagination_heading_level: h4 items_per_page: 100 total_pages: null id: 0 @@ -642,7 +643,7 @@ display: content_admin: content_admin administrator: administrator cache: - type: tag + type: none empty: area_text_custom: id: area_text_custom @@ -9208,6 +9209,7 @@ display: health_care_local_health_service: health_care_local_health_service vha_facility_nonclinical_service: vha_facility_nonclinical_service vba_facility_service: vba_facility_service + vet_center_facility_health_servi: vet_center_facility_health_servi group: 1 exposed: false expose: @@ -9241,7 +9243,7 @@ display: id: title_1 table: node_field_data field: title - relationship: field_facility_location + relationship: none group_type: group admin_label: '' entity_type: node @@ -9271,6 +9273,7 @@ display: content_creator_resources_and_support: '0' office_content_creator: '0' vamc_content_creator: '0' + content_creator_vba: '0' content_creator_vet_center: '0' content_editor: '0' content_reviewer: '0' @@ -9279,6 +9282,10 @@ display: redirect_administrator: '0' admnistrator_users: '0' administrator: '0' + homepage_manager: '0' + next_js: '0' + translation_manager: '0' + rates_editor: '0' placeholder: '' is_grouped: false group_info: @@ -9308,6 +9315,7 @@ display: health_care_local_health_service: health_care_local_health_service vha_facility_nonclinical_service: vha_facility_nonclinical_service vba_facility_service: vba_facility_service + vet_center_facility_health_servi: vet_center_facility_health_servi group: 1 exposed: true expose: @@ -9342,6 +9350,7 @@ display: homepage_manager: '0' next_js: '0' translation_manager: '0' + rates_editor: '0' reduce: true is_grouped: false group_info: @@ -14171,7 +14180,8 @@ display: id: field_media_target_id table: node__field_media field: field_media_target_id - plugin_id: numeric + plugin_id: entity_target_id + target_entity_type_id: media filters: type: id: type From cc68f4c69faa8367ae37d206b5d5c68d4f56b52e Mon Sep 17 00:00:00 2001 From: Dave Pickett <51967950+davidmpickett@users.noreply.github.com> Date: Tue, 17 Sep 2024 15:43:06 -0500 Subject: [PATCH 34/86] [docs] Updated VAMC system runbook with menu steps --- .../ISSUE_TEMPLATE/runbook-new-vamc-system.md | 36 ++++++++++++++----- 1 file changed, 27 insertions(+), 9 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/runbook-new-vamc-system.md b/.github/ISSUE_TEMPLATE/runbook-new-vamc-system.md index fe9f688727..17567bc417 100644 --- a/.github/ISSUE_TEMPLATE/runbook-new-vamc-system.md +++ b/.github/ISSUE_TEMPLATE/runbook-new-vamc-system.md @@ -13,20 +13,38 @@ assignees: '' - [ ] The plain language name for the VAMC system. This should follow [the pattern](https://github.com/department-of-veterans-affairs/va.gov-team/tree/master/products/facilities/naming-schema): VA [region name] health care - [ ] Which VISN is this system in? +### Create a new menu through config PR [Drupal Engineer] +- [ ] [Add a new Menu](https://staging.cms.va.gov/admin/structure/menu/add) in a non-prod environment + - [ ] Title = VAMC system plain language name + - [ ] Administrative summary = VISN ## | va.gov/plain-language-name +- [ ] Enable the new menu in the Menu Settings for these Content types + - [ ] event + - [ ] event_listing + - [ ] health service listing + - [ ] leadership listing + - [ ] locations listing + - [ ] news release + - [ ] news release listing + - [ ] publication listing + - [ ] staff profile + - [ ] story + - [ ] story listing + - [ ] VAMC operating status + - [ ] VAMC billing and insurance + - [ ] VAMC facility + - [ ] VAMC system + - [ ] VAMC medical records office + - [ ] VAMC system policies page + - [ ] VAMC register for care + - [ ] VAMC VA police + - [ ] VAMC detail page +- [ ] Export the config file and create a PR to merge it into the va.gov-cms repo + ### Create initial VAMC System Drupal entities [CMS helpdesk or Sitewide team] - [ ] Add a new Term in the [Sections taxonomy](https://prod.cms.va.gov/admin/structure/taxonomy/manage/administration/overview) - [ ] Nest the term under VHA > VAMC Facilities > VISN ## - [ ] Name = VAMC system plain language name - [ ] As you create all the subsequent Drupal entities, assign them to this Section -- [ ] [Add a new Menu](https://prod.cms.va.gov/admin/structure/menu/add) - - [ ] Title = VAMC system plain language name - - [ ] Administrative summary = VISN ## | va.gov/plain-language-name - - [ ] Add 3 menu link items - - [ ] SERVICES AND LOCATIONS - - [ ] NEWS AND EVENTS - - [ ] ABOUT VA [REGION NAME] - - [ ] Link = `` - - [ ] Parent link = `` - [ ] [Add a VAMC System](https://prod.cms.va.gov/node/add/health_care_region_page) - [ ] Fill out all required fields - [ ] Meta description = placeholder? From 5140bd8be425d83ff4b39b939efc9c701b13885c Mon Sep 17 00:00:00 2001 From: Edmund Dunn <109987005+edmund-dunn@users.noreply.github.com> Date: Tue, 17 Sep 2024 14:58:26 -0700 Subject: [PATCH 35/86] VACMS-19177: remove pii from cms logging (#19230) * VACMS-19177: update notifications log messages * VACMS-19177: turned off logging for alt text errors * VACMS-19177: patches for user and externalauth modules * VACMS-19177: update composer.lock * VACMS-19177: uncomment alt text error logging --------- Co-authored-by: Tim Cosgrove --- composer.json | 6 +- composer.lock | 2 +- .../JobType/OutdatedContentNotification.php | 4 +- .../src/Service/OutdatedContent.php | 7 +- ...177-patch_for_user_module_to_log_uid.patch | 80 +++++++++++++++++++ ...ername_from_logging_for_externalauth.patch | 31 +++++++ 6 files changed, 123 insertions(+), 7 deletions(-) create mode 100644 patches/VACMS-19177-patch_for_user_module_to_log_uid.patch create mode 100644 patches/VACMS-19177-removing_username_from_logging_for_externalauth.patch diff --git a/composer.json b/composer.json index 0b6534d0f1..ea6cc6dd49 100644 --- a/composer.json +++ b/composer.json @@ -400,7 +400,8 @@ "3382759 - Add multiple workflow content moderation filter to Views.": "https://www.drupal.org/files/issues/2023-08-24/3382759-8.patch", "3241295 - CKEditor 5 isn't respecting field widgets row settings": "https://www.drupal.org/files/issues/2023-11-14/3241295-d10.1.6-114.patch", "3376267 - [upstream] Add style to anchor leads to unusable behavior": "https://www.drupal.org/files/issues/2023-08-09/fix_anchor_scheme_to_not_copy_on_enter-3376167-11.patch", - "3285657 - The content has either been modified by another user, or you have already submitted modifications error": "https://www.drupal.org/files/issues/2022-06-14/core9.2-node-lock-translations-2744851.patch" + "3285657 - The content has either been modified by another user, or you have already submitted modifications error": "https://www.drupal.org/files/issues/2022-06-14/core9.2-node-lock-translations-2744851.patch", + "VACMS-19177 remove username form logging in user module": "patches/VACMS-19177-patch_for_user_module_to_log_uid.patch" }, "drupal/danse": { "3364925 - added explicit access check": "https://www.drupal.org/files/issues/2023-06-05/3364925-added-explicit-access-check.patch" @@ -439,6 +440,9 @@ "drupal/environment_indicator": { "3463388 - fgColor not being picked up.": "https://www.drupal.org/files/issues/2024-07-23/3463201-fix-for-change-in-class-for-toolbar_0.patch" }, + "drupal/externalauth": { + "VACMS-19177 remove usernmae from logging": "patches/VACMS-19177-removing_username_from_logging_for_externalauth.patch" + }, "drupal/field_group": { "2787179 - Visibility of invalid fields": "https://www.drupal.org/files/issues/2021-01-05/2787179-highlight-html5-validation-59.patch", "3053242 - Undefined index #description_display when adding a description to fieldset group type": "https://www.drupal.org/files/issues/2022-07-04/field_group-undefined-index-description-display-3053242-11.patch" diff --git a/composer.lock b/composer.lock index 22ebc6ad8b..387dc6a923 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": "caf71f211fa4378bfcfc571f517f14a1", + "content-hash": "96f061829c73e0b896f9ae536dabd590", "packages": [ { "name": "asm89/stack-cors", diff --git a/docroot/modules/custom/va_gov_notifications/src/Plugin/AdvancedQueue/JobType/OutdatedContentNotification.php b/docroot/modules/custom/va_gov_notifications/src/Plugin/AdvancedQueue/JobType/OutdatedContentNotification.php index de5b3c8710..777c00f026 100644 --- a/docroot/modules/custom/va_gov_notifications/src/Plugin/AdvancedQueue/JobType/OutdatedContentNotification.php +++ b/docroot/modules/custom/va_gov_notifications/src/Plugin/AdvancedQueue/JobType/OutdatedContentNotification.php @@ -91,11 +91,11 @@ public function process(Job $job) { } $status = $this->messageNotifier->send($notification); if (!$status) { - $message = "Failed to send message {$notification->id()} to {$payload['values']['field_editor_username']}."; + $message = "Failed to send message {$notification->id()} to user: {$payload['values']['uid']}."; $this->logger->error($message); return JobResult::failure($message); } - $message = "Message {$notification->id()} sent successfully to {$payload['values']['field_editor_username']}."; + $message = "Message {$notification->id()} sent successfully to user: {$payload['values']['uid']}."; $this->logger->info($message); return JobResult::success($message); } diff --git a/docroot/modules/custom/va_gov_notifications/src/Service/OutdatedContent.php b/docroot/modules/custom/va_gov_notifications/src/Service/OutdatedContent.php index 66530b3a68..7b325239ed 100644 --- a/docroot/modules/custom/va_gov_notifications/src/Service/OutdatedContent.php +++ b/docroot/modules/custom/va_gov_notifications/src/Service/OutdatedContent.php @@ -175,11 +175,11 @@ public function queueOutdatedContentNotifications(string $product_name, string $ $exempt_types = $this->getExcludedContentTypes($product_name); $outdated_content = $this->getOutdatedContentForSection($section, $exempt_types); if (!empty($outdated_content) && $product === $product_id) { - $editorName = $editor->getAccountName(); + $editorId = $editor->id(); $sectionName = $this->getSectionName($section); $this->vaGovNotificationsLogger ->info('Outdated content found for @sectionName editor: @editor', - ['@editor' => $editorName, '@sectionName' => $sectionName]); + ['@editor' => $editorId, '@sectionName' => $sectionName]); $this->queueNotification($editor, $product_name, $template_name, $template_name); $have_outdated_content[] = [ 'editor' => $editorName, @@ -251,7 +251,7 @@ protected function getSectionName(string $section): string { * The template to use. * * @throws \Drupal\Component\Plugin\Exception\InvalidPluginDefinitionException - * @throws \Drupal\Component\Plugin\Exception\PluginNotFoundException + * @throws \Drupal\Component\Plugin\Exception\PluginNotFoundException|\Drupal\advancedqueue\Exception\DuplicateJobException */ protected function queueNotification(AccountInterface $editor, string $product_name, string $queue, string $template): void { // Get the queue. @@ -265,6 +265,7 @@ protected function queueNotification(AccountInterface $editor, string $product_n $editor_username = $editor->getAccountName(); $template_values = compact('template', 'uid'); $values = [ + 'uid' => $uid, 'field_editor_username' => $editor_username, 'field_subject' => $this->getSubject($product_name), 'field_webhost' => Settings::get('webhost', 'https://prod.cms.va.gov'), diff --git a/patches/VACMS-19177-patch_for_user_module_to_log_uid.patch b/patches/VACMS-19177-patch_for_user_module_to_log_uid.patch new file mode 100644 index 0000000000..184e6f5186 --- /dev/null +++ b/patches/VACMS-19177-patch_for_user_module_to_log_uid.patch @@ -0,0 +1,80 @@ +Subject: [PATCH] patch for user module to log uid +--- +Index: modules/user/user.module +IDEA additional info: +Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP +<+>UTF-8 +=================================================================== +diff --git a/modules/user/user.module b/modules/user/user.module +--- a/modules/user/user.module (revision 65b03ce802b202577c4074fb78196b93d9fcaa40) ++++ b/modules/user/user.module (date 1726256604320) +@@ -450,7 +450,7 @@ + */ + function user_login_finalize(UserInterface $account) { + \Drupal::currentUser()->setAccount($account); +- \Drupal::logger('user')->info('Session opened for %name.', ['%name' => $account->getAccountName()]); ++ \Drupal::logger('user')->info('Session opened for %id.', ['%id' => $account->id()]); + // Update the user table timestamp noting user has logged in. + // This is also used to invalidate one-time login links. + $account->setLastLoginTime(\Drupal::time()->getRequestTime()); +@@ -673,7 +673,7 @@ + $account->block(); + $account->save(); + \Drupal::messenger()->addStatus(t('Account %name has been disabled.', ['%name' => $account->getDisplayName()])); +- $logger->notice('Blocked user: %name %email.', ['%name' => $account->getAccountName(), '%email' => '<' . $account->getEmail() . '>']); ++ $logger->notice('Blocked user: %id.', ['%id' => $account->id()]); + break; + + case 'user_cancel_reassign': +@@ -684,7 +684,7 @@ + } + $account->delete(); + \Drupal::messenger()->addStatus(t('Account %name has been deleted.', ['%name' => $account->getDisplayName()])); +- $logger->notice('Deleted user: %name %email.', ['%name' => $account->getAccountName(), '%email' => '<' . $account->getEmail() . '>']); ++ $logger->notice('Deleted user: %id.', ['%id' => $account->id()]); + break; + } + +@@ -1218,7 +1218,7 @@ + function user_logout() { + $user = \Drupal::currentUser(); + +- \Drupal::logger('user')->info('Session closed for %name.', ['%name' => $user->getAccountName()]); ++ \Drupal::logger('user')->info('Session closed for %id.', ['%id' => $user->id()]); + + \Drupal::moduleHandler()->invokeAll('user_logout', [$user]); + +Index: modules/user/src/RegisterForm.php +IDEA additional info: +Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP +<+>UTF-8 +=================================================================== +diff --git a/modules/user/src/RegisterForm.php b/modules/user/src/RegisterForm.php +--- a/modules/user/src/RegisterForm.php (revision 65b03ce802b202577c4074fb78196b93d9fcaa40) ++++ b/modules/user/src/RegisterForm.php (date 1726256203028) +@@ -102,7 +102,7 @@ + $form_state->set('user', $account); + $form_state->setValue('uid', $account->id()); + +- $this->logger('user')->info('New user: %name %email.', ['%name' => $form_state->getValue('name'), '%email' => '<' . $form_state->getValue('mail') . '>', 'type' => $account->toLink($this->t('Edit'), 'edit-form')->toString()]); ++ $this->logger('user')->info('New user: %id.', ['%id' => $account->id(), 'type' => $account->toLink($this->t('Edit'), 'edit-form')->toString()]); + + // Add plain text password into user account to generate mail tokens. + $account->password = $pass; +Index: modules/user/src/Form/UserLoginForm.php +IDEA additional info: +Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP +<+>UTF-8 +=================================================================== +diff --git a/modules/user/src/Form/UserLoginForm.php b/modules/user/src/Form/UserLoginForm.php +--- a/modules/user/src/Form/UserLoginForm.php (revision 65b03ce802b202577c4074fb78196b93d9fcaa40) ++++ b/modules/user/src/Form/UserLoginForm.php (date 1726263720339) +@@ -258,7 +258,7 @@ + $form_state->setErrorByName('name', $this->t('Unrecognized username or password. Forgot your password?', [':password' => Url::fromRoute('user.pass', [], ['query' => $query])->toString()])); + $accounts = $this->userStorage->loadByProperties(['name' => $form_state->getValue('name')]); + if (!empty($accounts)) { +- $this->logger('user')->notice('Login attempt failed for %user.', ['%user' => $form_state->getValue('name')]); ++ $this->logger('user')->notice('Login attempt failed for %id.', ['%id' => array_values($accounts)[0]->id()]); + } + else { + // If the username entered is not a valid user, diff --git a/patches/VACMS-19177-removing_username_from_logging_for_externalauth.patch b/patches/VACMS-19177-removing_username_from_logging_for_externalauth.patch new file mode 100644 index 0000000000..d80425278c --- /dev/null +++ b/patches/VACMS-19177-removing_username_from_logging_for_externalauth.patch @@ -0,0 +1,31 @@ +Subject: [PATCH] removing username from logging for externalauth +--- +Index: src/ExternalAuth.php +IDEA additional info: +Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP +<+>UTF-8 +=================================================================== +diff --git a/src/ExternalAuth.php b/src/ExternalAuth.php +--- a/src/ExternalAuth.php (revision 48ceae4411968ed2d5e4651262e55caf0d6541fc) ++++ b/src/ExternalAuth.php (date 1726587932975) +@@ -151,7 +151,7 @@ + */ + public function userLoginFinalize(UserInterface $account, string $authname, string $provider): UserInterface { + user_login_finalize($account); +- $this->logger->notice('External login of user %name', ['%name' => $account->getAccountName()]); ++ $this->logger->notice('External login of user %id', ['%id' => $account->id()]); + $this->eventDispatcher->dispatch(new ExternalAuthLoginEvent($account, $provider, $authname), ExternalAuthEvents::LOGIN); + return $account; + } +@@ -169,10 +169,9 @@ + + // If we update the authmap entry, let's log the change. + if (!empty($current_authname)) { +- $this->logger->debug('Authmap change (%old => %new) for user %name with uid %uid from provider %provider', [ ++ $this->logger->debug('Authmap change (%old => %new) for user with uid %uid from provider %provider', [ + '%old' => $current_authname, + '%new' => $authname, +- '%name' => $account->getAccountName(), + '%uid' => $account->id(), + '%provider' => $provider, + ]); From b0a5c32f587aac25f8d69cb13ac97b6bc36011f8 Mon Sep 17 00:00:00 2001 From: Dave Pickett <51967950+davidmpickett@users.noreply.github.com> Date: Tue, 17 Sep 2024 18:05:51 -0500 Subject: [PATCH 36/86] VACMS-18954: CLP node view should match node edit TAKE 2 (#19218) * VACMS-18954: CLP node view should match node edit * dont add a blank line --- ...lay.node.campaign_landing_page.default.yml | 2 +- ...lay.node.campaign_landing_page.default.yml | 33 +++++++++---------- .../custom/va_gov_clp/va_gov_clp.module | 26 --------------- 3 files changed, 16 insertions(+), 45 deletions(-) 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 8d29e4cc58..dbad92c959 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 @@ -114,7 +114,7 @@ third_party_settings: - field_clp_why_this_matters - field_clp_audience - field_secondary_call_to_action - label: 'Why this matters' + label: 'Why this matters to you' region: content parent_name: '' weight: 1 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 0dc2e5b421..ca0c8b01f6 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 @@ -105,7 +105,7 @@ third_party_settings: - field_hero_blurb - field_primary_call_to_action - field_hero_image - label: 'Hero Banner' + label: 'Hero banner' parent_name: '' region: content weight: 0 @@ -120,7 +120,7 @@ third_party_settings: - field_clp_why_this_matters - field_clp_audience - field_secondary_call_to_action - label: 'Why this matters' + label: 'Why this matters to you' parent_name: '' region: content weight: 1 @@ -135,7 +135,7 @@ third_party_settings: - field_clp_what_you_can_do_header - field_clp_what_you_can_do_intro - field_clp_what_you_can_do_promos - label: 'What can you do' + label: 'What you can do' parent_name: '' region: content weight: 2 @@ -149,10 +149,10 @@ third_party_settings: children: - field_benefit_categories label: 'VA Benefits' - parent_name: group_connect_with_us + parent_name: '' region: content weight: 10 - format_type: fieldset + format_type: details format_settings: classes: '' id: '' @@ -167,7 +167,7 @@ third_party_settings: label: 'Downloadable resources' parent_name: '' region: content - weight: 7 + weight: 6 format_type: details format_settings: classes: '' @@ -181,7 +181,7 @@ third_party_settings: label: Events parent_name: '' region: content - weight: 6 + weight: 7 format_type: details format_settings: classes: '' @@ -191,8 +191,9 @@ third_party_settings: group_q_a: children: - field_clp_faq_paragraphs + - field_clp_reusable_q_a - field_clp_faq_cta - label: 'Q&As' + label: 'FAQs' parent_name: '' region: content weight: 8 @@ -204,7 +205,6 @@ third_party_settings: description: '' group_connect_with_us: children: - - group_va_benefits - field_related_office label: 'Connect with us' parent_name: '' @@ -225,7 +225,7 @@ content: type: entity_reference_label label: above settings: - link: false + link: true third_party_settings: { } weight: 7 region: content @@ -262,11 +262,11 @@ content: view_mode: default link: '' third_party_settings: { } - weight: 20 + weight: 21 region: content field_clp_faq_paragraphs: type: entity_reference_revisions_entity_view - label: hidden + label: above settings: view_mode: default link: '' @@ -443,12 +443,9 @@ content: weight: 4 region: content field_hero_blurb: - type: plain_string_formatter + type: basic_string label: hidden - settings: - link_to_entity: false - wrap_tag: h2 - wrap_class: '' + settings: { } third_party_settings: { } weight: 3 region: content @@ -510,4 +507,4 @@ hidden: field_last_saved_by_an_editor: true langcode: true links: true - search_api_excerpt: true + search_api_excerpt: true \ No newline at end of file diff --git a/docroot/modules/custom/va_gov_clp/va_gov_clp.module b/docroot/modules/custom/va_gov_clp/va_gov_clp.module index bd165d07f6..041d8144ce 100644 --- a/docroot/modules/custom/va_gov_clp/va_gov_clp.module +++ b/docroot/modules/custom/va_gov_clp/va_gov_clp.module @@ -23,29 +23,3 @@ function va_gov_clp_help($route_name, RouteMatchInterface $route_match) { } } -/** - * Prevent outputting empty fieldgroups on clp. - * - * @param array $variables - * The entity renderable items array. - */ -function va_gov_clp_field_group_build_pre_render_alter(array &$variables) { - if (empty($variables['field_clip_spotlight_panel'])) { - $variables['group_spotlight']['#access'] = FALSE; - } - if (empty($variables['field_clip_events_panel'])) { - $variables['group_events']['#access'] = FALSE; - } - if (empty($variables['field_clip_faq_panel'])) { - $variables['group_faq']['#access'] = FALSE; - } - if (empty($variables['field_clip_stories_panel'])) { - $variables['group_stories']['#access'] = FALSE; - } - if (empty($variables['field_clip_video_panel'])) { - $variables['group_video']['#access'] = FALSE; - } - if (empty($variables['field_clip_resources_panel'])) { - $variables['group_resources']['#access'] = FALSE; - } -} From 9ca5b946d1f4403ed280c54b096a70c9a2129efa Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 17 Sep 2024 18:38:44 -0700 Subject: [PATCH 37/86] Bump va-gov/content-build from 0.0.3591 to 0.0.3593 (#19235) Bumps [va-gov/content-build](https://github.com/department-of-veterans-affairs/content-build) from 0.0.3591 to 0.0.3593. - [Release notes](https://github.com/department-of-veterans-affairs/content-build/releases) - [Commits](https://github.com/department-of-veterans-affairs/content-build/compare/v0.0.3591...v0.0.3593) --- updated-dependencies: - dependency-name: va-gov/content-build dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- composer.json | 2 +- composer.lock | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/composer.json b/composer.json index ea6cc6dd49..35f1b35d36 100644 --- a/composer.json +++ b/composer.json @@ -227,7 +227,7 @@ "symfony/phpunit-bridge": "^5.1", "symfony/process": "^6.3", "symfony/routing": "^6.3", - "va-gov/content-build": "^0.0.3591", + "va-gov/content-build": "^0.0.3593", "vlucas/phpdotenv": "^5.6", "webflo/drupal-finder": "1.2.2", "webmozart/path-util": "^2.3", diff --git a/composer.lock b/composer.lock index 387dc6a923..5109a98350 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": "96f061829c73e0b896f9ae536dabd590", + "content-hash": "743ee977d13fa045912d4a6f3cb0b1d9", "packages": [ { "name": "asm89/stack-cors", @@ -26432,16 +26432,16 @@ }, { "name": "va-gov/content-build", - "version": "v0.0.3591", + "version": "v0.0.3593", "source": { "type": "git", "url": "https://github.com/department-of-veterans-affairs/content-build.git", - "reference": "6ecc046ef31bf9883e7800c3ee423f98430d1eda" + "reference": "fe16835490cae88acb25ffb171a742f69ba2c129" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/department-of-veterans-affairs/content-build/zipball/6ecc046ef31bf9883e7800c3ee423f98430d1eda", - "reference": "6ecc046ef31bf9883e7800c3ee423f98430d1eda", + "url": "https://api.github.com/repos/department-of-veterans-affairs/content-build/zipball/fe16835490cae88acb25ffb171a742f69ba2c129", + "reference": "fe16835490cae88acb25ffb171a742f69ba2c129", "shasum": "" }, "type": "node-project", @@ -26468,9 +26468,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.3591" + "source": "https://github.com/department-of-veterans-affairs/content-build/tree/v0.0.3593" }, - "time": "2024-09-13T19:43:15+00:00" + "time": "2024-09-16T19:40:19+00:00" }, { "name": "vlucas/phpdotenv", From ccba2ae787e47cd5280dd273e01b228f16b11d4d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 18 Sep 2024 10:50:10 -0700 Subject: [PATCH 38/86] Bump drupal/message_subscribe from 1.3.0 to 2.0.0 (#19236) Bumps drupal/message_subscribe from 1.3.0 to 2.0.0. --- updated-dependencies: - dependency-name: drupal/message_subscribe dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- composer.json | 2 +- composer.lock | 76 +++++++++++++++++++++++++-------------------------- 2 files changed, 38 insertions(+), 40 deletions(-) diff --git a/composer.json b/composer.json index 35f1b35d36..15306c6f08 100644 --- a/composer.json +++ b/composer.json @@ -128,7 +128,7 @@ "drupal/menu_normalizer": "^2.0", "drupal/message": "^1.2", "drupal/message_notify": "^1.2", - "drupal/message_subscribe": "^1.1", + "drupal/message_subscribe": "^2.0", "drupal/message_ui": "^1.0@beta", "drupal/metatag": "^2.0", "drupal/migrate_plus": "^6.0", diff --git a/composer.lock b/composer.lock index 5109a98350..a239254f31 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": "743ee977d13fa045912d4a6f3cb0b1d9", + "content-hash": "5f8b9dd4ec94fb64569d7c13887182c2", "packages": [ { "name": "asm89/stack-cors", @@ -9887,17 +9887,17 @@ }, { "name": "drupal/message", - "version": "1.5.0", + "version": "1.6.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/message.git", - "reference": "8.x-1.5" + "reference": "8.x-1.6" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/message-8.x-1.5.zip", - "reference": "8.x-1.5", - "shasum": "e2da6ff2f098fbb9ff9b2faf7a576d5e421db172" + "url": "https://ftp.drupal.org/files/projects/message-8.x-1.6.zip", + "reference": "8.x-1.6", + "shasum": "242c86fd0fc31c5e7b0983fb88272191924d2d6f" }, "require": { "drupal/core": "^9.2 || ^10 || ^11" @@ -9908,8 +9908,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "8.x-1.5", - "datestamp": "1710105159", + "version": "8.x-1.6", + "datestamp": "1726668059", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -9950,20 +9950,20 @@ }, { "name": "drupal/message_notify", - "version": "1.3.0", + "version": "1.4.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/message_notify.git", - "reference": "8.x-1.3" + "reference": "8.x-1.4" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/message_notify-8.x-1.3.zip", - "reference": "8.x-1.3", - "shasum": "f7ce3a6989a45f4c23173cef7596891d24d2652c" + "url": "https://ftp.drupal.org/files/projects/message_notify-8.x-1.4.zip", + "reference": "8.x-1.4", + "shasum": "e26a36ed2cb84be6ef1825a392d85429a45a0de1" }, "require": { - "drupal/core": "^9 || ^10", + "drupal/core": "^9 || ^10 || ^11", "drupal/message": "^1.0" }, "require-dev": { @@ -9973,8 +9973,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "8.x-1.3", - "datestamp": "1667430680", + "version": "8.x-1.4", + "datestamp": "1725912818", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -10013,20 +10013,20 @@ }, { "name": "drupal/message_subscribe", - "version": "1.3.0", + "version": "2.0.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/message_subscribe.git", - "reference": "8.x-1.3" + "reference": "2.0.0" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/message_subscribe-8.x-1.3.zip", - "reference": "8.x-1.3", - "shasum": "2101dc65ce4b826e6f093b6c7f7ec25963582b17" + "url": "https://ftp.drupal.org/files/projects/message_subscribe-2.0.0.zip", + "reference": "2.0.0", + "shasum": "bd76d5ad06b44d99b8d1dfb4d94926ee02c9432b" }, "require": { - "drupal/core": "^9 || ^10", + "drupal/core": ">=10.2", "drupal/flag": "^4.0", "drupal/message": "^1.0", "drupal/message_notify": "^1.0" @@ -10038,14 +10038,13 @@ "drupal/message_notify_ui": "*", "drupal/message_subscribe_ui": "*", "drupal/message_ui": "*", - "drupal/og": "^1.0", "drupal/token": "*" }, "type": "drupal-module", "extra": { "drupal": { - "version": "8.x-1.3", - "datestamp": "1704559138", + "version": "2.0.0", + "datestamp": "1726591794", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -10082,8 +10081,7 @@ "homepage": "https://drupal.org/project/message_subscribe", "support": { "source": "https://cgit.drupalcode.org/message_subscribe", - "issues": "https://drupal.org/project/issues/message_subscribe", - "irc": "irc://irc.freenode.org/drupal" + "issues": "https://drupal.org/project/issues/message_subscribe" } }, { @@ -17696,16 +17694,16 @@ }, { "name": "nikic/php-parser", - "version": "v5.1.0", + "version": "v5.2.0", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "683130c2ff8c2739f4822ff7ac5c873ec529abd1" + "reference": "23c79fbbfb725fb92af9bcf41065c8e9a0d49ddb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/683130c2ff8c2739f4822ff7ac5c873ec529abd1", - "reference": "683130c2ff8c2739f4822ff7ac5c873ec529abd1", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/23c79fbbfb725fb92af9bcf41065c8e9a0d49ddb", + "reference": "23c79fbbfb725fb92af9bcf41065c8e9a0d49ddb", "shasum": "" }, "require": { @@ -17748,9 +17746,9 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v5.1.0" + "source": "https://github.com/nikic/PHP-Parser/tree/v5.2.0" }, - "time": "2024-07-01T20:03:41+00:00" + "time": "2024-09-15T16:40:33+00:00" }, { "name": "npm-asset/dropzone", @@ -20477,16 +20475,16 @@ }, { "name": "psr/log", - "version": "3.0.1", + "version": "3.0.2", "source": { "type": "git", "url": "https://github.com/php-fig/log.git", - "reference": "79dff0b268932c640297f5208d6298f71855c03e" + "reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/79dff0b268932c640297f5208d6298f71855c03e", - "reference": "79dff0b268932c640297f5208d6298f71855c03e", + "url": "https://api.github.com/repos/php-fig/log/zipball/f16e1d5863e37f8d8c2a01719f5b34baa2b714d3", + "reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3", "shasum": "" }, "require": { @@ -20521,9 +20519,9 @@ "psr-3" ], "support": { - "source": "https://github.com/php-fig/log/tree/3.0.1" + "source": "https://github.com/php-fig/log/tree/3.0.2" }, - "time": "2024-08-21T13:31:24+00:00" + "time": "2024-09-11T13:17:53+00:00" }, { "name": "psy/psysh", From a93d0ce7e87cc0b81720fe221f17e7fee306f587 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 18 Sep 2024 11:28:10 -0700 Subject: [PATCH 39/86] Bump drupal/message_ui from 1.2.0 to 1.3.0 (#19223) Bumps drupal/message_ui from 1.2.0 to 1.3.0. --- updated-dependencies: - dependency-name: drupal/message_ui dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Edmund Dunn <109987005+edmund-dunn@users.noreply.github.com> --- composer.lock | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/composer.lock b/composer.lock index a239254f31..b71c14e6c9 100644 --- a/composer.lock +++ b/composer.lock @@ -10086,20 +10086,20 @@ }, { "name": "drupal/message_ui", - "version": "1.2.0", + "version": "1.3.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/message_ui.git", - "reference": "8.x-1.2" + "reference": "8.x-1.3" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/message_ui-8.x-1.2.zip", - "reference": "8.x-1.2", - "shasum": "9c1e4f4ba48b65a01b38684d7c06144b51bd19a7" + "url": "https://ftp.drupal.org/files/projects/message_ui-8.x-1.3.zip", + "reference": "8.x-1.3", + "shasum": "e49de5508e96d64346889276b9064cbd0315c5d3" }, "require": { - "drupal/core": "^9 || ^10", + "drupal/core": "^9 || ^10 || ^11", "drupal/message": "^1" }, "require-dev": { @@ -10109,8 +10109,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "8.x-1.2", - "datestamp": "1706548354", + "version": "8.x-1.3", + "datestamp": "1726519224", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -27465,7 +27465,6 @@ "drupal/linkit": 5, "drupal/linky": 10, "drupal/menu_breadcrumb": 15, - "drupal/message_ui": 10, "drupal/mimemail": 15, "drupal/no_table_drag": 15, "drupal/openapi": 5, From 541d7c406698bbc10d30b7c8c5fcd51296121a45 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 18 Sep 2024 15:02:28 -0700 Subject: [PATCH 40/86] Bump drupal/role_delegation from 1.2.0 to 1.3.0 (#19214) Bumps drupal/role_delegation from 1.2.0 to 1.3.0. --- updated-dependencies: - dependency-name: drupal/role_delegation dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- composer.json | 2 +- composer.lock | 28 ++++++++++++++++++---------- 2 files changed, 19 insertions(+), 11 deletions(-) diff --git a/composer.json b/composer.json index 15306c6f08..fd264d4e01 100644 --- a/composer.json +++ b/composer.json @@ -166,7 +166,7 @@ "drupal/redirect": "^1.3", "drupal/redirect_options": "^2.1", "drupal/restui": "^1.16", - "drupal/role_delegation": "1.2.0", + "drupal/role_delegation": "1.3.0", "drupal/s3fs": "^3.6", "drupal/samlauth": "^3.9", "drupal/schemata": "^1.0@beta", diff --git a/composer.lock b/composer.lock index b71c14e6c9..0194370cc0 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": "5f8b9dd4ec94fb64569d7c13887182c2", + "content-hash": "7adfe14577d2f55b28d577fbec528930", "packages": [ { "name": "asm89/stack-cors", @@ -12388,26 +12388,29 @@ }, { "name": "drupal/role_delegation", - "version": "1.2.0", + "version": "1.3.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/role_delegation.git", - "reference": "8.x-1.2" + "reference": "8.x-1.3" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/role_delegation-8.x-1.2.zip", - "reference": "8.x-1.2", - "shasum": "08095bada0f492e70d32fcf357a8c01825ca81fc" + "url": "https://ftp.drupal.org/files/projects/role_delegation-8.x-1.3.zip", + "reference": "8.x-1.3", + "shasum": "e03d9c82d509a2630750e50a3452bd70ca1c55a6" }, "require": { - "drupal/core": "^9.2 || ^10" + "drupal/core": "^10.3 || ^11" + }, + "require-dev": { + "drupal/action": "^0.2" }, "type": "drupal-module", "extra": { "drupal": { - "version": "8.x-1.2", - "datestamp": "1644487627", + "version": "8.x-1.3", + "datestamp": "1726236826", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -12425,7 +12428,11 @@ "role": "Maintainer" }, { - "name": "JeroenT", + "name": "benjy", + "homepage": "https://www.drupal.org/user/1852732" + }, + { + "name": "jeroent", "homepage": "https://www.drupal.org/user/2228934" } ], @@ -27465,6 +27472,7 @@ "drupal/linkit": 5, "drupal/linky": 10, "drupal/menu_breadcrumb": 15, + "drupal/message_ui": 10, "drupal/mimemail": 15, "drupal/no_table_drag": 15, "drupal/openapi": 5, From 0e0856eabeb17e224aa3a69dd7c01b5fff388e30 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 18 Sep 2024 18:07:57 -0700 Subject: [PATCH 41/86] Bump va-gov/content-build from 0.0.3593 to 0.0.3594 (#19263) Bumps [va-gov/content-build](https://github.com/department-of-veterans-affairs/content-build) from 0.0.3593 to 0.0.3594. - [Release notes](https://github.com/department-of-veterans-affairs/content-build/releases) - [Commits](https://github.com/department-of-veterans-affairs/content-build/compare/v0.0.3593...v0.0.3594) --- updated-dependencies: - dependency-name: va-gov/content-build dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- composer.json | 2 +- composer.lock | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/composer.json b/composer.json index fd264d4e01..9669587a3f 100644 --- a/composer.json +++ b/composer.json @@ -227,7 +227,7 @@ "symfony/phpunit-bridge": "^5.1", "symfony/process": "^6.3", "symfony/routing": "^6.3", - "va-gov/content-build": "^0.0.3593", + "va-gov/content-build": "^0.0.3594", "vlucas/phpdotenv": "^5.6", "webflo/drupal-finder": "1.2.2", "webmozart/path-util": "^2.3", diff --git a/composer.lock b/composer.lock index 0194370cc0..71a9cf3dba 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": "7adfe14577d2f55b28d577fbec528930", + "content-hash": "f38bb829259b1c78269255d38c144f95", "packages": [ { "name": "asm89/stack-cors", @@ -26437,16 +26437,16 @@ }, { "name": "va-gov/content-build", - "version": "v0.0.3593", + "version": "v0.0.3594", "source": { "type": "git", "url": "https://github.com/department-of-veterans-affairs/content-build.git", - "reference": "fe16835490cae88acb25ffb171a742f69ba2c129" + "reference": "9d4593ba7c204b375295a3dae40de7ee50905865" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/department-of-veterans-affairs/content-build/zipball/fe16835490cae88acb25ffb171a742f69ba2c129", - "reference": "fe16835490cae88acb25ffb171a742f69ba2c129", + "url": "https://api.github.com/repos/department-of-veterans-affairs/content-build/zipball/9d4593ba7c204b375295a3dae40de7ee50905865", + "reference": "9d4593ba7c204b375295a3dae40de7ee50905865", "shasum": "" }, "type": "node-project", @@ -26473,9 +26473,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.3593" + "source": "https://github.com/department-of-veterans-affairs/content-build/tree/v0.0.3594" }, - "time": "2024-09-16T19:40:19+00:00" + "time": "2024-09-18T12:58:24+00:00" }, { "name": "vlucas/phpdotenv", From 87f2a9aa82aede84a2d5bdf5cd80c421bcd0446a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 19 Sep 2024 07:36:02 -0700 Subject: [PATCH 42/86] Bump squizlabs/php_codesniffer from 3.10.2 to 3.10.3 (#19261) Bumps [squizlabs/php_codesniffer](https://github.com/PHPCSStandards/PHP_CodeSniffer) from 3.10.2 to 3.10.3. - [Release notes](https://github.com/PHPCSStandards/PHP_CodeSniffer/releases) - [Changelog](https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/CHANGELOG.md) - [Commits](https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/3.10.2...3.10.3) --- updated-dependencies: - dependency-name: squizlabs/php_codesniffer dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Edmund Dunn <109987005+edmund-dunn@users.noreply.github.com> --- composer.lock | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/composer.lock b/composer.lock index 71a9cf3dba..3e13dfedd8 100644 --- a/composer.lock +++ b/composer.lock @@ -22300,16 +22300,16 @@ }, { "name": "squizlabs/php_codesniffer", - "version": "3.10.2", + "version": "3.10.3", "source": { "type": "git", "url": "https://github.com/PHPCSStandards/PHP_CodeSniffer.git", - "reference": "86e5f5dd9a840c46810ebe5ff1885581c42a3017" + "reference": "62d32998e820bddc40f99f8251958aed187a5c9c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/86e5f5dd9a840c46810ebe5ff1885581c42a3017", - "reference": "86e5f5dd9a840c46810ebe5ff1885581c42a3017", + "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/62d32998e820bddc40f99f8251958aed187a5c9c", + "reference": "62d32998e820bddc40f99f8251958aed187a5c9c", "shasum": "" }, "require": { @@ -22376,7 +22376,7 @@ "type": "open_collective" } ], - "time": "2024-07-21T23:26:44+00:00" + "time": "2024-09-18T10:38:58+00:00" }, { "name": "steverhoades/oauth2-openid-connect-server", From 1c6480241248e0584174a8272dc6011a91ab79aa Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 19 Sep 2024 08:36:40 -0700 Subject: [PATCH 43/86] Bump drupal/message_notify from 1.3.0 to 1.4.0 (#19169) Bumps drupal/message_notify from 1.3.0 to 1.4.0. --- updated-dependencies: - dependency-name: drupal/message_notify dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Edmund Dunn <109987005+edmund-dunn@users.noreply.github.com> From a454edbeb149b03b6cf2cea4e3813786f907a0d8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 19 Sep 2024 09:13:33 -0700 Subject: [PATCH 44/86] Bump drupal/embed from 1.7.0 to 1.9.0 (#19150) Bumps drupal/embed from 1.7.0 to 1.9.0. --- updated-dependencies: - dependency-name: drupal/embed dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Edmund Dunn <109987005+edmund-dunn@users.noreply.github.com> --- composer.lock | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/composer.lock b/composer.lock index 3e13dfedd8..3fc1f1999c 100644 --- a/composer.lock +++ b/composer.lock @@ -5498,29 +5498,29 @@ }, { "name": "drupal/embed", - "version": "1.7.0", + "version": "1.9.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/embed.git", - "reference": "8.x-1.7" + "reference": "8.x-1.9" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/embed-8.x-1.7.zip", - "reference": "8.x-1.7", - "shasum": "b7ca4264be51038f947d26b6725fc0446b224f60" + "url": "https://ftp.drupal.org/files/projects/embed-8.x-1.9.zip", + "reference": "8.x-1.9", + "shasum": "e6b4875e2b245ddf1a68a8615cbb4c5a378a0e9f" }, "require": { - "drupal/core": "^9.3 | ^10" + "drupal/core": "^9.5 | ^10" }, "require-dev": { - "drupal/ckeditor": "*" + "drupal/ckeditor": "^1.0" }, "type": "drupal-module", "extra": { "drupal": { - "version": "8.x-1.7", - "datestamp": "1697642867", + "version": "8.x-1.9", + "datestamp": "1723283819", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -5537,7 +5537,7 @@ "homepage": "https://www.drupal.org/user/2828287" }, { - "name": "Dave Reid", + "name": "dave reid", "homepage": "https://www.drupal.org/user/53892" }, { From f35fda0b2b28d3aa38aabad50f93250856f52d2a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 19 Sep 2024 13:52:26 -0700 Subject: [PATCH 45/86] Bump drupal/smart_date from 4.1.5 to 4.1.6 (#19148) Bumps drupal/smart_date from 4.1.5 to 4.1.6. --- updated-dependencies: - dependency-name: drupal/smart_date dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Edmund Dunn <109987005+edmund-dunn@users.noreply.github.com> --- composer.lock | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/composer.lock b/composer.lock index 3fc1f1999c..feef4023f3 100644 --- a/composer.lock +++ b/composer.lock @@ -13145,17 +13145,17 @@ }, { "name": "drupal/smart_date", - "version": "4.1.5", + "version": "4.1.6", "source": { "type": "git", "url": "https://git.drupalcode.org/project/smart_date.git", - "reference": "4.1.5" + "reference": "4.1.6" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/smart_date-4.1.5.zip", - "reference": "4.1.5", - "shasum": "2d88f1804bd76ea7fa2f32b1b61fbcd7b40b5f66" + "url": "https://ftp.drupal.org/files/projects/smart_date-4.1.6.zip", + "reference": "4.1.6", + "shasum": "930c2dadc2ff9f798bb165125c7f18f63869ad6e" }, "require": { "drupal/core": "^9 || ^10 || ^11", @@ -13171,8 +13171,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "4.1.5", - "datestamp": "1723711336", + "version": "4.1.6", + "datestamp": "1725628698", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" From 03007c37659acb275b93adbcff6c53258c94d411 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 19 Sep 2024 14:27:48 -0700 Subject: [PATCH 46/86] Bump phpstan/phpstan from 1.12.3 to 1.12.4 (#19268) Bumps [phpstan/phpstan](https://github.com/phpstan/phpstan) from 1.12.3 to 1.12.4. - [Release notes](https://github.com/phpstan/phpstan/releases) - [Changelog](https://github.com/phpstan/phpstan/blob/2.0.x/CHANGELOG.md) - [Commits](https://github.com/phpstan/phpstan/compare/1.12.3...1.12.4) --- updated-dependencies: - dependency-name: phpstan/phpstan dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- composer.lock | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/composer.lock b/composer.lock index feef4023f3..36bac34b80 100644 --- a/composer.lock +++ b/composer.lock @@ -19509,16 +19509,16 @@ }, { "name": "phpstan/phpstan", - "version": "1.12.3", + "version": "1.12.4", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "0fcbf194ab63d8159bb70d9aa3e1350051632009" + "reference": "ffa517cb918591b93acc9b95c0bebdcd0e4538bd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/0fcbf194ab63d8159bb70d9aa3e1350051632009", - "reference": "0fcbf194ab63d8159bb70d9aa3e1350051632009", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/ffa517cb918591b93acc9b95c0bebdcd0e4538bd", + "reference": "ffa517cb918591b93acc9b95c0bebdcd0e4538bd", "shasum": "" }, "require": { @@ -19563,7 +19563,7 @@ "type": "github" } ], - "time": "2024-09-09T08:10:35+00:00" + "time": "2024-09-19T07:58:01+00:00" }, { "name": "phpstan/phpstan-deprecation-rules", From 2b59d5639cec425bbf387fd0de22fc84b1bf8335 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 20 Sep 2024 07:48:12 -0700 Subject: [PATCH 47/86] Bump va-gov/content-build from 0.0.3594 to 0.0.3595 (#19275) Bumps [va-gov/content-build](https://github.com/department-of-veterans-affairs/content-build) from 0.0.3594 to 0.0.3595. - [Release notes](https://github.com/department-of-veterans-affairs/content-build/releases) - [Commits](https://github.com/department-of-veterans-affairs/content-build/compare/v0.0.3594...v0.0.3595) --- updated-dependencies: - dependency-name: va-gov/content-build dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- composer.json | 2 +- composer.lock | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/composer.json b/composer.json index 9669587a3f..e2eb8d1b99 100644 --- a/composer.json +++ b/composer.json @@ -227,7 +227,7 @@ "symfony/phpunit-bridge": "^5.1", "symfony/process": "^6.3", "symfony/routing": "^6.3", - "va-gov/content-build": "^0.0.3594", + "va-gov/content-build": "^0.0.3595", "vlucas/phpdotenv": "^5.6", "webflo/drupal-finder": "1.2.2", "webmozart/path-util": "^2.3", diff --git a/composer.lock b/composer.lock index 36bac34b80..9526f8dabd 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": "f38bb829259b1c78269255d38c144f95", + "content-hash": "d278cc70318739745aba710777f50fe3", "packages": [ { "name": "asm89/stack-cors", @@ -26437,16 +26437,16 @@ }, { "name": "va-gov/content-build", - "version": "v0.0.3594", + "version": "v0.0.3595", "source": { "type": "git", "url": "https://github.com/department-of-veterans-affairs/content-build.git", - "reference": "9d4593ba7c204b375295a3dae40de7ee50905865" + "reference": "3d562809c22f06049063eee22259c9d074fdf312" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/department-of-veterans-affairs/content-build/zipball/9d4593ba7c204b375295a3dae40de7ee50905865", - "reference": "9d4593ba7c204b375295a3dae40de7ee50905865", + "url": "https://api.github.com/repos/department-of-veterans-affairs/content-build/zipball/3d562809c22f06049063eee22259c9d074fdf312", + "reference": "3d562809c22f06049063eee22259c9d074fdf312", "shasum": "" }, "type": "node-project", @@ -26473,9 +26473,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.3594" + "source": "https://github.com/department-of-veterans-affairs/content-build/tree/v0.0.3595" }, - "time": "2024-09-18T12:58:24+00:00" + "time": "2024-09-19T14:22:21+00:00" }, { "name": "vlucas/phpdotenv", From 1883014de6ede4ee1d918ac2d534240b2af17586 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 20 Sep 2024 08:28:21 -0700 Subject: [PATCH 48/86] Bump drupal/office_hours from 1.17.0 to 1.19.0 (#19274) Bumps drupal/office_hours from 1.17.0 to 1.19.0. --- updated-dependencies: - dependency-name: drupal/office_hours dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Edmund Dunn <109987005+edmund-dunn@users.noreply.github.com> --- composer.lock | 46 +++++++++++++++++++++++----------------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/composer.lock b/composer.lock index 9526f8dabd..11afd812f9 100644 --- a/composer.lock +++ b/composer.lock @@ -683,24 +683,24 @@ }, { "name": "composer/semver", - "version": "3.4.2", + "version": "3.4.3", "source": { "type": "git", "url": "https://github.com/composer/semver.git", - "reference": "c51258e759afdb17f1fd1fe83bc12baaef6309d6" + "reference": "4313d26ada5e0c4edfbd1dc481a92ff7bff91f12" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/semver/zipball/c51258e759afdb17f1fd1fe83bc12baaef6309d6", - "reference": "c51258e759afdb17f1fd1fe83bc12baaef6309d6", + "url": "https://api.github.com/repos/composer/semver/zipball/4313d26ada5e0c4edfbd1dc481a92ff7bff91f12", + "reference": "4313d26ada5e0c4edfbd1dc481a92ff7bff91f12", "shasum": "" }, "require": { "php": "^5.3.2 || ^7.0 || ^8.0" }, "require-dev": { - "phpstan/phpstan": "^1.4", - "symfony/phpunit-bridge": "^4.2 || ^5" + "phpstan/phpstan": "^1.11", + "symfony/phpunit-bridge": "^3 || ^7" }, "type": "library", "extra": { @@ -744,7 +744,7 @@ "support": { "irc": "ircs://irc.libera.chat:6697/composer", "issues": "https://github.com/composer/semver/issues", - "source": "https://github.com/composer/semver/tree/3.4.2" + "source": "https://github.com/composer/semver/tree/3.4.3" }, "funding": [ { @@ -760,7 +760,7 @@ "type": "tidelift" } ], - "time": "2024-07-12T11:35:52+00:00" + "time": "2024-09-19T14:15:21+00:00" }, { "name": "consolidation/annotated-command", @@ -10942,26 +10942,26 @@ }, { "name": "drupal/office_hours", - "version": "1.17.0", + "version": "1.19.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/office_hours.git", - "reference": "8.x-1.17" + "reference": "8.x-1.19" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/office_hours-8.x-1.17.zip", - "reference": "8.x-1.17", - "shasum": "f689fc5c558bc00c01df650025793a678eba1fa2" + "url": "https://ftp.drupal.org/files/projects/office_hours-8.x-1.19.zip", + "reference": "8.x-1.19", + "shasum": "12dbf37d3208daea08f149e5dd54f620ec3edfd5" }, "require": { - "drupal/core": "^8 || ^9 || ^10" + "drupal/core": "^8 || ^9 || ^10 || ^11" }, "type": "drupal-module", "extra": { "drupal": { - "version": "8.x-1.17", - "datestamp": "1709818119", + "version": "8.x-1.19", + "datestamp": "1726747364", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -19933,16 +19933,16 @@ }, { "name": "phpunit/phpunit", - "version": "9.6.20", + "version": "9.6.21", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "49d7820565836236411f5dc002d16dd689cde42f" + "reference": "de6abf3b6f8dd955fac3caad3af7a9504e8c2ffa" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/49d7820565836236411f5dc002d16dd689cde42f", - "reference": "49d7820565836236411f5dc002d16dd689cde42f", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/de6abf3b6f8dd955fac3caad3af7a9504e8c2ffa", + "reference": "de6abf3b6f8dd955fac3caad3af7a9504e8c2ffa", "shasum": "" }, "require": { @@ -19957,7 +19957,7 @@ "phar-io/manifest": "^2.0.4", "phar-io/version": "^3.2.1", "php": ">=7.3", - "phpunit/php-code-coverage": "^9.2.31", + "phpunit/php-code-coverage": "^9.2.32", "phpunit/php-file-iterator": "^3.0.6", "phpunit/php-invoker": "^3.1.1", "phpunit/php-text-template": "^2.0.4", @@ -20016,7 +20016,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.20" + "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.21" }, "funding": [ { @@ -20032,7 +20032,7 @@ "type": "tidelift" } ], - "time": "2024-07-10T11:45:39+00:00" + "time": "2024-09-19T10:50:18+00:00" }, { "name": "politsin/jquery-ui-touch-punch", From 0cf09f5ce8a1b8a1d6a57039150ee400c538fb58 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 20 Sep 2024 09:09:45 -0700 Subject: [PATCH 49/86] Bump drupal/libraries from 4.0.4 to 4.0.5 (#19092) Bumps drupal/libraries from 4.0.4 to 4.0.5. --- updated-dependencies: - dependency-name: drupal/libraries dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Edmund Dunn <109987005+edmund-dunn@users.noreply.github.com> Co-authored-by: Tim Cosgrove --- composer.lock | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/composer.lock b/composer.lock index 11afd812f9..a55b42f28e 100644 --- a/composer.lock +++ b/composer.lock @@ -8800,26 +8800,26 @@ }, { "name": "drupal/libraries", - "version": "4.0.4", + "version": "4.0.5", "source": { "type": "git", "url": "https://git.drupalcode.org/project/libraries.git", - "reference": "4.0.4" + "reference": "4.0.5" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/libraries-4.0.4.zip", - "reference": "4.0.4", - "shasum": "45848ac6ebdfb77755305ece4c6cae436ca1b0cc" + "url": "https://ftp.drupal.org/files/projects/libraries-4.0.5.zip", + "reference": "4.0.5", + "shasum": "24da67bb58b9e4b1ae28cdfdc4f6152587d17baf" }, "require": { - "drupal/core": "^9.4 || ^10" + "drupal/core": "^9.5 || ^10 || ^11" }, "type": "drupal-module", "extra": { "drupal": { - "version": "4.0.4", - "datestamp": "1687020889", + "version": "4.0.5", + "datestamp": "1725052147", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" From 692fba70b2f42b7515f1d03fa2d91b7f7e3be96e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 20 Sep 2024 09:58:25 -0700 Subject: [PATCH 50/86] Bump drupal/limited_field_widgets from 2.1.0-beta3 to 3.0.1 (#19145) Bumps drupal/limited_field_widgets from 2.1.0-beta3 to 3.0.1. --- updated-dependencies: - dependency-name: drupal/limited_field_widgets dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- composer.json | 2 +- composer.lock | 27 +++++++++++++++------------ 2 files changed, 16 insertions(+), 13 deletions(-) diff --git a/composer.json b/composer.json index e2eb8d1b99..b973af9ed9 100644 --- a/composer.json +++ b/composer.json @@ -111,7 +111,7 @@ "drupal/jsonapi_resources": "^1.0@beta", "drupal/jsonapi_views": "^1.0", "drupal/libraries": "^4.0", - "drupal/limited_field_widgets": "^2.1@alpha", + "drupal/limited_field_widgets": "^3.0@alpha", "drupal/linkit": "^6.0@RC", "drupal/linky": "^2.0@beta", "drupal/linkychecker": "^2.2", diff --git a/composer.lock b/composer.lock index a55b42f28e..e5f5ff0e89 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": "d278cc70318739745aba710777f50fe3", + "content-hash": "19812c49347c3069cafe215548ce1dec", "packages": [ { "name": "asm89/stack-cors", @@ -8866,29 +8866,29 @@ }, { "name": "drupal/limited_field_widgets", - "version": "2.1.0-beta3", + "version": "3.0.1", "source": { "type": "git", "url": "https://git.drupalcode.org/project/limited_field_widgets.git", - "reference": "2.1.0-beta3" + "reference": "3.0.1" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/limited_field_widgets-2.1.0-beta3.zip", - "reference": "2.1.0-beta3", - "shasum": "eb30c4d5d03742137d4a4ec1714636e7a83361d5" + "url": "https://ftp.drupal.org/files/projects/limited_field_widgets-3.0.1.zip", + "reference": "3.0.1", + "shasum": "8a768ecf50b8a6f5689a32f5bd378d8e93fae6f1" }, "require": { - "drupal/core": ">=9.2" + "drupal/core": "^10.3 || ^11" }, "type": "drupal-module", "extra": { "drupal": { - "version": "2.1.0-beta3", - "datestamp": "1705262437", + "version": "3.0.1", + "datestamp": "1725626123", "security-coverage": { - "status": "not-covered", - "message": "Beta releases are not covered by Drupal security advisories." + "status": "covered", + "message": "Covered by Drupal's security advisory policy" } } }, @@ -8897,6 +8897,10 @@ "GPL-2.0+" ], "authors": [ + { + "name": "smustgrave", + "homepage": "https://www.drupal.org/user/3252890" + }, { "name": "stomusic", "homepage": "https://www.drupal.org/user/3405436" @@ -27468,7 +27472,6 @@ "drupal/graphql_menu": 15, "drupal/image_style_warmer": 5, "drupal/jsonapi_resources": 10, - "drupal/limited_field_widgets": 15, "drupal/linkit": 5, "drupal/linky": 10, "drupal/menu_breadcrumb": 15, From 6abe54557a19292cc48c7c008210a6b4d0b3c050 Mon Sep 17 00:00:00 2001 From: Ryan Koch <6863534+ryguyk@users.noreply.github.com> Date: Fri, 20 Sep 2024 13:39:45 -0500 Subject: [PATCH 51/86] VAGOV-TEAM-87958: Integration branch for Form Engine POC (#18811) * VATEAM-87711: Add Digital Form content type (#18717) * Add Digital Form content type * Update Digital Form description --------- Co-authored-by: Derek Houck * Add chapters field to Digital Form * Add screenshot of name and dob pattern * VATEAM-88658: Script to add Digital Forms test data (#19025) * WIP: Create digital form script * Add steps * Rename exit_if_wrong_env --------- Co-authored-by: Derek Houck Co-authored-by: Derek Houck Co-authored-by: Derek Houck Co-authored-by: Tim Cosgrove --- ...eld_override.node.digital_form.promote.yml | 22 +++ ...field_override.node.digital_form.title.yml | 18 ++ ...form_display.node.digital_form.default.yml | 132 ++++++++++++++ ...gital_form_name_and_date_of_bi.default.yml | 40 +++++ ...view_display.node.digital_form.default.yml | 54 ++++++ ...lay.node.digital_form.external_content.yml | 59 ++++++ ..._view_display.node.digital_form.teaser.yml | 52 ++++++ ...gital_form_name_and_date_of_bi.default.yml | 33 ++++ ...l_form_name_and_date_of_bi.user_guides.yml | 25 +++ ...node.digital_form.field_administration.yml | 43 +++++ ...field.node.digital_form.field_chapters.yml | 170 ++++++++++++++++++ ...tal_form.field_last_saved_by_an_editor.yml | 26 +++ ...ield.node.digital_form.field_meta_tags.yml | 25 +++ ...eld.node.digital_form.field_omb_number.yml | 24 +++ ...node.digital_form.field_va_form_number.yml | 24 +++ ...date_of_bi.field_include_date_of_birth.yml | 28 +++ ...l_form_name_and_date_of_bi.field_title.yml | 26 +++ .../field.storage.node.field_chapters.yml | 21 +++ .../field.storage.node.field_omb_number.yml | 21 +++ ....paragraph.field_include_date_of_birth.yml | 18 ++ ...age.content_settings.node.digital_form.yml | 11 ++ config/sync/node.type.digital_form.yml | 30 ++++ ..._type.digital_form_name_and_date_of_bi.yml | 17 ++ ....paragraphs_browser_type.digital_forms.yml | 13 ++ config/sync/prometheus_exporter.settings.yml | 1 + config/sync/workflows.workflow.editorial.yml | 2 + .../src/Entity/DigitalForm.php | 10 ++ .../va_gov_content_types.module | 2 + .../images/screenshots/name-and-dob.png | Bin 0 -> 104589 bytes scripts/content/digital-forms.php | 68 +++++++ scripts/content/script-library.php | 15 +- .../VACMS-17969-vba-test-data-processor.php | 5 +- .../functional/Entity/DigitalFormTest.php | 40 +++++ 33 files changed, 1070 insertions(+), 5 deletions(-) create mode 100644 config/sync/core.base_field_override.node.digital_form.promote.yml create mode 100644 config/sync/core.base_field_override.node.digital_form.title.yml create mode 100644 config/sync/core.entity_form_display.node.digital_form.default.yml create mode 100644 config/sync/core.entity_form_display.paragraph.digital_form_name_and_date_of_bi.default.yml create mode 100644 config/sync/core.entity_view_display.node.digital_form.default.yml create mode 100644 config/sync/core.entity_view_display.node.digital_form.external_content.yml create mode 100644 config/sync/core.entity_view_display.node.digital_form.teaser.yml create mode 100644 config/sync/core.entity_view_display.paragraph.digital_form_name_and_date_of_bi.default.yml create mode 100644 config/sync/core.entity_view_display.paragraph.digital_form_name_and_date_of_bi.user_guides.yml create mode 100644 config/sync/field.field.node.digital_form.field_administration.yml create mode 100644 config/sync/field.field.node.digital_form.field_chapters.yml create mode 100644 config/sync/field.field.node.digital_form.field_last_saved_by_an_editor.yml create mode 100644 config/sync/field.field.node.digital_form.field_meta_tags.yml create mode 100644 config/sync/field.field.node.digital_form.field_omb_number.yml create mode 100644 config/sync/field.field.node.digital_form.field_va_form_number.yml create mode 100644 config/sync/field.field.paragraph.digital_form_name_and_date_of_bi.field_include_date_of_birth.yml create mode 100644 config/sync/field.field.paragraph.digital_form_name_and_date_of_bi.field_title.yml create mode 100644 config/sync/field.storage.node.field_chapters.yml create mode 100644 config/sync/field.storage.node.field_omb_number.yml create mode 100644 config/sync/field.storage.paragraph.field_include_date_of_birth.yml create mode 100644 config/sync/language.content_settings.node.digital_form.yml create mode 100644 config/sync/node.type.digital_form.yml create mode 100644 config/sync/paragraphs.paragraphs_type.digital_form_name_and_date_of_bi.yml create mode 100644 config/sync/paragraphs_browser.paragraphs_browser_type.digital_forms.yml create mode 100644 docroot/modules/custom/va_gov_content_types/src/Entity/DigitalForm.php create mode 100644 docroot/themes/custom/vagovclaro/images/screenshots/name-and-dob.png create mode 100644 scripts/content/digital-forms.php create mode 100644 tests/phpunit/va_gov_content_types/functional/Entity/DigitalFormTest.php diff --git a/config/sync/core.base_field_override.node.digital_form.promote.yml b/config/sync/core.base_field_override.node.digital_form.promote.yml new file mode 100644 index 0000000000..761d74473c --- /dev/null +++ b/config/sync/core.base_field_override.node.digital_form.promote.yml @@ -0,0 +1,22 @@ +uuid: ac87a752-cc60-4bde-bd33-18098f65e851 +langcode: en +status: true +dependencies: + config: + - node.type.digital_form +id: node.digital_form.promote +field_name: promote +entity_type: node +bundle: digital_form +label: 'Promoted to front page' +description: '' +required: false +translatable: true +default_value: + - + value: 0 +default_value_callback: '' +settings: + on_label: 'On' + off_label: 'Off' +field_type: boolean diff --git a/config/sync/core.base_field_override.node.digital_form.title.yml b/config/sync/core.base_field_override.node.digital_form.title.yml new file mode 100644 index 0000000000..49e546e2e1 --- /dev/null +++ b/config/sync/core.base_field_override.node.digital_form.title.yml @@ -0,0 +1,18 @@ +uuid: 2449594d-1ce2-4f60-aab4-1da1b27f5864 +langcode: en +status: true +dependencies: + config: + - node.type.digital_form +id: node.digital_form.title +field_name: title +entity_type: node +bundle: digital_form +label: 'Form Name' +description: '' +required: true +translatable: true +default_value: { } +default_value_callback: '' +settings: { } +field_type: string diff --git a/config/sync/core.entity_form_display.node.digital_form.default.yml b/config/sync/core.entity_form_display.node.digital_form.default.yml new file mode 100644 index 0000000000..c4f6558f42 --- /dev/null +++ b/config/sync/core.entity_form_display.node.digital_form.default.yml @@ -0,0 +1,132 @@ +uuid: 18ba1fa4-f0d9-45f4-9547-0c55f1868ba2 +langcode: en +status: true +dependencies: + config: + - field.field.node.digital_form.field_administration + - field.field.node.digital_form.field_chapters + - field.field.node.digital_form.field_last_saved_by_an_editor + - field.field.node.digital_form.field_meta_tags + - field.field.node.digital_form.field_omb_number + - field.field.node.digital_form.field_va_form_number + - node.type.digital_form + - workflows.workflow.editorial + module: + - change_labels + - content_moderation + - field_group + - limited_field_widgets + - no_table_drag + - paragraphs_browser + - paragraphs_features + - path +third_party_settings: + field_group: + group_editorial_workflow: + children: + - moderation_state + - revision_log + label: 'Editorial Workflow' + region: content + parent_name: '' + weight: 6 + format_type: fieldset + format_settings: + classes: '' + show_empty_fields: false + id: '' + description: '' + required_fields: true + description_display: after +id: node.digital_form.default +targetEntityType: node +bundle: digital_form +mode: default +content: + field_chapters: + type: paragraphs_browser + weight: 5 + region: content + settings: + title: Step + title_plural: Steps + edit_mode: open + closed_mode: summary + autocollapse: none + closed_mode_threshold: '0' + add_mode: paragraphs_browser + form_display_mode: default + default_paragraph_type: _none + features: + duplicate: duplicate + collapse_edit_all: collapse_edit_all + add_above: 0 + convert: 0 + paragraphs_browser: digital_forms + modal_width: 80% + modal_height: auto + third_party_settings: + paragraphs_features: + add_in_between: false + add_in_between_link_count: 3 + delete_confirmation: false + show_drag_and_drop: true + show_collapse_all: true + limited_field_widgets: + limit_values: '0' + change_labels: + add_another: '' + no_table_drag: + no_table_drag: false + field_last_saved_by_an_editor: + type: datetime_timestamp + weight: 2 + region: content + settings: { } + third_party_settings: { } + field_omb_number: + type: string_textfield + weight: 4 + region: content + settings: + size: 9 + placeholder: XXXX-XXXX + third_party_settings: { } + field_va_form_number: + type: string_textfield + weight: 1 + region: content + settings: + size: 60 + placeholder: '' + third_party_settings: { } + moderation_state: + type: moderation_state_default + weight: 12 + region: content + settings: { } + third_party_settings: { } + path: + type: path + weight: 3 + region: content + settings: { } + third_party_settings: { } + title: + type: string_textfield + weight: 0 + region: content + settings: + size: 60 + placeholder: '' + third_party_settings: { } +hidden: + created: true + field_administration: true + field_meta_tags: true + langcode: true + promote: true + status: true + sticky: true + uid: true + url_redirects: true diff --git a/config/sync/core.entity_form_display.paragraph.digital_form_name_and_date_of_bi.default.yml b/config/sync/core.entity_form_display.paragraph.digital_form_name_and_date_of_bi.default.yml new file mode 100644 index 0000000000..0e6ef595b9 --- /dev/null +++ b/config/sync/core.entity_form_display.paragraph.digital_form_name_and_date_of_bi.default.yml @@ -0,0 +1,40 @@ +uuid: 7a85e837-9879-4f7f-9e0b-ebad0066e521 +langcode: en +status: true +dependencies: + config: + - field.field.paragraph.digital_form_name_and_date_of_bi.field_include_date_of_birth + - field.field.paragraph.digital_form_name_and_date_of_bi.field_title + - paragraphs.paragraphs_type.digital_form_name_and_date_of_bi + module: + - textfield_counter +id: paragraph.digital_form_name_and_date_of_bi.default +targetEntityType: paragraph +bundle: digital_form_name_and_date_of_bi +mode: default +content: + field_include_date_of_birth: + type: boolean_checkbox + weight: 1 + region: content + settings: + display_label: true + third_party_settings: { } + field_title: + type: string_textfield_with_counter + weight: 0 + region: content + settings: + size: 60 + placeholder: '' + use_field_maxlength: false + 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: { } +hidden: + created: true + status: true diff --git a/config/sync/core.entity_view_display.node.digital_form.default.yml b/config/sync/core.entity_view_display.node.digital_form.default.yml new file mode 100644 index 0000000000..e94f3f02b4 --- /dev/null +++ b/config/sync/core.entity_view_display.node.digital_form.default.yml @@ -0,0 +1,54 @@ +uuid: 73414b44-8d43-4231-9695-b8092f02e821 +langcode: en +status: true +dependencies: + config: + - field.field.node.digital_form.field_administration + - field.field.node.digital_form.field_chapters + - field.field.node.digital_form.field_last_saved_by_an_editor + - field.field.node.digital_form.field_meta_tags + - field.field.node.digital_form.field_omb_number + - field.field.node.digital_form.field_va_form_number + - node.type.digital_form + module: + - entity_reference_revisions + - user +id: node.digital_form.default +targetEntityType: node +bundle: digital_form +mode: default +content: + field_chapters: + type: entity_reference_revisions_entity_view + label: above + settings: + view_mode: default + link: '' + third_party_settings: { } + weight: 2 + region: content + field_omb_number: + type: string + label: above + settings: + link_to_entity: false + third_party_settings: { } + weight: 1 + region: content + field_va_form_number: + type: string + label: above + settings: + link_to_entity: false + third_party_settings: { } + weight: 0 + region: content +hidden: + breadcrumbs: true + content_moderation_control: true + field_administration: true + field_last_saved_by_an_editor: true + field_meta_tags: true + langcode: true + links: true + search_api_excerpt: true diff --git a/config/sync/core.entity_view_display.node.digital_form.external_content.yml b/config/sync/core.entity_view_display.node.digital_form.external_content.yml new file mode 100644 index 0000000000..fd586c5932 --- /dev/null +++ b/config/sync/core.entity_view_display.node.digital_form.external_content.yml @@ -0,0 +1,59 @@ +uuid: bae3d4cd-0dd9-4a17-972b-ff3ef6bf7ba5 +langcode: en +status: true +dependencies: + config: + - core.entity_view_mode.node.external_content + - field.field.node.digital_form.field_administration + - field.field.node.digital_form.field_chapters + - field.field.node.digital_form.field_last_saved_by_an_editor + - field.field.node.digital_form.field_meta_tags + - field.field.node.digital_form.field_omb_number + - field.field.node.digital_form.field_va_form_number + - node.type.digital_form + module: + - link + - user +id: node.digital_form.external_content +targetEntityType: node +bundle: digital_form +mode: external_content +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 + content_moderation_control: + settings: { } + third_party_settings: { } + weight: -20 + region: content + field_va_form_number: + type: string + label: above + settings: + link_to_entity: false + third_party_settings: { } + weight: 1 + region: content + links: + settings: { } + third_party_settings: { } + weight: 100 + region: content +hidden: + field_administration: true + field_chapters: true + field_last_saved_by_an_editor: true + field_meta_tags: true + field_omb_number: true + langcode: true + search_api_excerpt: true diff --git a/config/sync/core.entity_view_display.node.digital_form.teaser.yml b/config/sync/core.entity_view_display.node.digital_form.teaser.yml new file mode 100644 index 0000000000..0788c646f4 --- /dev/null +++ b/config/sync/core.entity_view_display.node.digital_form.teaser.yml @@ -0,0 +1,52 @@ +uuid: acbd9ba8-c64b-4b82-a7dd-11f8fe57a9ff +langcode: en +status: true +dependencies: + config: + - core.entity_view_mode.node.teaser + - field.field.node.digital_form.field_administration + - field.field.node.digital_form.field_chapters + - field.field.node.digital_form.field_last_saved_by_an_editor + - field.field.node.digital_form.field_meta_tags + - field.field.node.digital_form.field_omb_number + - field.field.node.digital_form.field_va_form_number + - node.type.digital_form + module: + - link + - user +id: node.digital_form.teaser +targetEntityType: node +bundle: digital_form +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 + content_moderation_control: + settings: { } + third_party_settings: { } + weight: -20 + region: content + links: + settings: { } + third_party_settings: { } + weight: 100 + region: content +hidden: + field_administration: true + field_chapters: true + field_last_saved_by_an_editor: true + field_meta_tags: true + field_omb_number: true + field_va_form_number: true + langcode: true + search_api_excerpt: true diff --git a/config/sync/core.entity_view_display.paragraph.digital_form_name_and_date_of_bi.default.yml b/config/sync/core.entity_view_display.paragraph.digital_form_name_and_date_of_bi.default.yml new file mode 100644 index 0000000000..2ab04745a8 --- /dev/null +++ b/config/sync/core.entity_view_display.paragraph.digital_form_name_and_date_of_bi.default.yml @@ -0,0 +1,33 @@ +uuid: 6ace573b-80bd-4b83-af01-3de996a1423c +langcode: en +status: true +dependencies: + config: + - field.field.paragraph.digital_form_name_and_date_of_bi.field_include_date_of_birth + - field.field.paragraph.digital_form_name_and_date_of_bi.field_title + - paragraphs.paragraphs_type.digital_form_name_and_date_of_bi +id: paragraph.digital_form_name_and_date_of_bi.default +targetEntityType: paragraph +bundle: digital_form_name_and_date_of_bi +mode: default +content: + field_include_date_of_birth: + type: boolean + label: above + settings: + format: default + format_custom_false: '' + format_custom_true: '' + third_party_settings: { } + weight: 1 + region: content + field_title: + type: string + label: hidden + settings: + link_to_entity: false + third_party_settings: { } + weight: 0 + region: content +hidden: + search_api_excerpt: true diff --git a/config/sync/core.entity_view_display.paragraph.digital_form_name_and_date_of_bi.user_guides.yml b/config/sync/core.entity_view_display.paragraph.digital_form_name_and_date_of_bi.user_guides.yml new file mode 100644 index 0000000000..46b3f8ecae --- /dev/null +++ b/config/sync/core.entity_view_display.paragraph.digital_form_name_and_date_of_bi.user_guides.yml @@ -0,0 +1,25 @@ +uuid: d6ba2e46-9d71-4886-8f0f-f9f644273720 +langcode: en +status: true +dependencies: + config: + - core.entity_view_mode.paragraph.user_guides + - field.field.paragraph.digital_form_name_and_date_of_bi.field_include_date_of_birth + - field.field.paragraph.digital_form_name_and_date_of_bi.field_title + - paragraphs.paragraphs_type.digital_form_name_and_date_of_bi +id: paragraph.digital_form_name_and_date_of_bi.user_guides +targetEntityType: paragraph +bundle: digital_form_name_and_date_of_bi +mode: user_guides +content: + field_title: + type: string + label: hidden + settings: + link_to_entity: false + third_party_settings: { } + weight: 0 + region: content +hidden: + field_include_date_of_birth: true + search_api_excerpt: true diff --git a/config/sync/field.field.node.digital_form.field_administration.yml b/config/sync/field.field.node.digital_form.field_administration.yml new file mode 100644 index 0000000000..bf6a122430 --- /dev/null +++ b/config/sync/field.field.node.digital_form.field_administration.yml @@ -0,0 +1,43 @@ +uuid: d49d4508-3a4d-4b12-a8d9-51b44eb854ca +langcode: en +status: true +dependencies: + config: + - field.storage.node.field_administration + - node.type.digital_form + - taxonomy.vocabulary.administration + content: + - 'taxonomy_term:administration:867e4dcf-2f99-401a-977a-adb441d53350' + module: + - entity_reference_validators + - tmgmt_content +third_party_settings: + entity_reference_validators: + circular_reference: false + circular_reference_deep: false + duplicate_reference: false + tmgmt_content: + excluded: false +id: node.digital_form.field_administration +field_name: field_administration +entity_type: node +bundle: digital_form +label: Section +description: '' +required: true +translatable: false +default_value: + - + target_uuid: 867e4dcf-2f99-401a-977a-adb441d53350 +default_value_callback: '' +settings: + handler: 'default:taxonomy_term' + handler_settings: + target_bundles: + administration: administration + sort: + field: name + direction: asc + auto_create: false + auto_create_bundle: '' +field_type: entity_reference diff --git a/config/sync/field.field.node.digital_form.field_chapters.yml b/config/sync/field.field.node.digital_form.field_chapters.yml new file mode 100644 index 0000000000..337ee74e17 --- /dev/null +++ b/config/sync/field.field.node.digital_form.field_chapters.yml @@ -0,0 +1,170 @@ +uuid: 333163fe-7e54-44b6-b5af-5cff8c8742ec +langcode: en +status: true +dependencies: + config: + - field.storage.node.field_chapters + - node.type.digital_form + - paragraphs.paragraphs_type.digital_form_name_and_date_of_bi + module: + - entity_reference_revisions + - tmgmt_content +third_party_settings: + tmgmt_content: + excluded: false +id: node.digital_form.field_chapters +field_name: field_chapters +entity_type: node +bundle: digital_form +label: Steps +description: '' +required: true +translatable: false +default_value: { } +default_value_callback: '' +settings: + handler: 'default:paragraph' + handler_settings: + target_bundles: + digital_form_name_and_date_of_bi: digital_form_name_and_date_of_bi + negate: 0 + target_bundles_drag_drop: + address: + weight: -95 + enabled: false + alert: + weight: -94 + enabled: false + alert_single: + weight: -93 + enabled: false + audience_topics: + weight: -92 + enabled: false + basic_accordion: + weight: -91 + enabled: false + button: + weight: -90 + enabled: false + centralized_content_descriptor: + weight: -89 + enabled: false + checklist: + weight: -88 + enabled: false + checklist_item: + weight: -87 + enabled: false + collapsible_panel: + weight: -86 + enabled: false + collapsible_panel_item: + weight: -85 + enabled: false + contact_information: + weight: -84 + enabled: false + digital_form_name_and_date_of_bi: + weight: -82 + enabled: true + downloadable_file: + weight: -81 + enabled: false + email_contact: + weight: -80 + enabled: false + embedded_video: + weight: -79 + enabled: false + expandable_text: + weight: -78 + enabled: false + featured_content: + weight: -77 + enabled: false + health_care_local_facility_servi: + weight: -76 + enabled: false + link_teaser: + weight: -75 + enabled: false + link_teaser_with_image: + weight: -74 + enabled: false + list_of_link_teasers: + weight: -71 + enabled: false + list_of_links: + weight: -72 + enabled: false + lists_of_links: + weight: -73 + enabled: false + magichead_group: + weight: -70 + enabled: false + media: + weight: -69 + enabled: false + media_list_images: + weight: -68 + enabled: false + media_list_videos: + weight: -67 + enabled: false + non_reusable_alert: + weight: -66 + enabled: false + number_callout: + weight: -65 + enabled: false + phone_number: + weight: -64 + enabled: false + process: + weight: -63 + enabled: false + q_a: + weight: -62 + enabled: false + q_a_group: + weight: -61 + enabled: false + q_a_section: + weight: -60 + enabled: false + react_widget: + weight: -59 + enabled: false + rich_text_char_limit_1000: + weight: -58 + enabled: false + service_location: + weight: -57 + enabled: false + service_location_address: + weight: -56 + enabled: false + situation_update: + weight: -55 + enabled: false + spanish_translation_summary: + weight: -54 + enabled: false + staff_profile: + weight: -53 + enabled: false + step: + weight: -52 + enabled: false + step_by_step: + weight: -51 + enabled: false + table: + weight: -50 + enabled: false + wysiwyg: + weight: -49 + enabled: false +field_type: entity_reference_revisions diff --git a/config/sync/field.field.node.digital_form.field_last_saved_by_an_editor.yml b/config/sync/field.field.node.digital_form.field_last_saved_by_an_editor.yml new file mode 100644 index 0000000000..f9c9cdde26 --- /dev/null +++ b/config/sync/field.field.node.digital_form.field_last_saved_by_an_editor.yml @@ -0,0 +1,26 @@ +uuid: e173d8c9-2458-49d9-8406-7654da2c8882 +langcode: en +status: true +dependencies: + config: + - field.storage.node.field_last_saved_by_an_editor + - node.type.digital_form + module: + - tmgmt_content +third_party_settings: + tmgmt_content: + excluded: false +id: node.digital_form.field_last_saved_by_an_editor +field_name: field_last_saved_by_an_editor +entity_type: node +bundle: digital_form +label: 'Last Saved by an Editor' +description: 'This is the last time an editor interacted with this content. This field is populated automatically when you click Save.' +required: false +translatable: false +default_value: + - + value: 1721337765 +default_value_callback: '' +settings: { } +field_type: timestamp diff --git a/config/sync/field.field.node.digital_form.field_meta_tags.yml b/config/sync/field.field.node.digital_form.field_meta_tags.yml new file mode 100644 index 0000000000..cf4e584858 --- /dev/null +++ b/config/sync/field.field.node.digital_form.field_meta_tags.yml @@ -0,0 +1,25 @@ +uuid: 065acdc6-1465-452e-8a8e-53c6ff7e37ca +langcode: en +status: true +dependencies: + config: + - field.storage.node.field_meta_tags + - node.type.digital_form + module: + - metatag + - tmgmt_content +third_party_settings: + tmgmt_content: + excluded: false +id: node.digital_form.field_meta_tags +field_name: field_meta_tags +entity_type: node +bundle: digital_form +label: 'Meta tags' +description: '' +required: false +translatable: false +default_value: { } +default_value_callback: '' +settings: { } +field_type: metatag diff --git a/config/sync/field.field.node.digital_form.field_omb_number.yml b/config/sync/field.field.node.digital_form.field_omb_number.yml new file mode 100644 index 0000000000..a15aa6e557 --- /dev/null +++ b/config/sync/field.field.node.digital_form.field_omb_number.yml @@ -0,0 +1,24 @@ +uuid: a74fa585-127b-49f9-9533-de900988e8b1 +langcode: en +status: true +dependencies: + config: + - field.storage.node.field_omb_number + - node.type.digital_form + module: + - tmgmt_content +third_party_settings: + tmgmt_content: + excluded: false +id: node.digital_form.field_omb_number +field_name: field_omb_number +entity_type: node +bundle: digital_form +label: 'OMB Number' +description: 'Format: XXXX-XXXX' +required: false +translatable: false +default_value: { } +default_value_callback: '' +settings: { } +field_type: string diff --git a/config/sync/field.field.node.digital_form.field_va_form_number.yml b/config/sync/field.field.node.digital_form.field_va_form_number.yml new file mode 100644 index 0000000000..aef7e36562 --- /dev/null +++ b/config/sync/field.field.node.digital_form.field_va_form_number.yml @@ -0,0 +1,24 @@ +uuid: fe73b81a-1e77-4f4b-83de-adad0de61a6d +langcode: en +status: true +dependencies: + config: + - field.storage.node.field_va_form_number + - node.type.digital_form + module: + - tmgmt_content +third_party_settings: + tmgmt_content: + excluded: false +id: node.digital_form.field_va_form_number +field_name: field_va_form_number +entity_type: node +bundle: digital_form +label: 'Form number' +description: '' +required: true +translatable: false +default_value: { } +default_value_callback: '' +settings: { } +field_type: string diff --git a/config/sync/field.field.paragraph.digital_form_name_and_date_of_bi.field_include_date_of_birth.yml b/config/sync/field.field.paragraph.digital_form_name_and_date_of_bi.field_include_date_of_birth.yml new file mode 100644 index 0000000000..9ef7328d3b --- /dev/null +++ b/config/sync/field.field.paragraph.digital_form_name_and_date_of_bi.field_include_date_of_birth.yml @@ -0,0 +1,28 @@ +uuid: 69f76794-509f-4325-bf51-1591dbb95b54 +langcode: en +status: true +dependencies: + config: + - field.storage.paragraph.field_include_date_of_birth + - paragraphs.paragraphs_type.digital_form_name_and_date_of_bi + module: + - tmgmt_content +third_party_settings: + tmgmt_content: + excluded: false +id: paragraph.digital_form_name_and_date_of_bi.field_include_date_of_birth +field_name: field_include_date_of_birth +entity_type: paragraph +bundle: digital_form_name_and_date_of_bi +label: 'Include date of birth?' +description: '' +required: false +translatable: false +default_value: + - + value: 1 +default_value_callback: '' +settings: + on_label: 'Yes' + off_label: 'No' +field_type: boolean diff --git a/config/sync/field.field.paragraph.digital_form_name_and_date_of_bi.field_title.yml b/config/sync/field.field.paragraph.digital_form_name_and_date_of_bi.field_title.yml new file mode 100644 index 0000000000..112e78f264 --- /dev/null +++ b/config/sync/field.field.paragraph.digital_form_name_and_date_of_bi.field_title.yml @@ -0,0 +1,26 @@ +uuid: d2538ca0-918e-4e49-8d45-96bde9aca1b7 +langcode: en +status: true +dependencies: + config: + - field.storage.paragraph.field_title + - paragraphs.paragraphs_type.digital_form_name_and_date_of_bi + module: + - tmgmt_content +third_party_settings: + tmgmt_content: + excluded: false +id: paragraph.digital_form_name_and_date_of_bi.field_title +field_name: field_title +entity_type: paragraph +bundle: digital_form_name_and_date_of_bi +label: Title +description: '' +required: true +translatable: false +default_value: + - + value: 'Name and Date of Birth' +default_value_callback: '' +settings: { } +field_type: string diff --git a/config/sync/field.storage.node.field_chapters.yml b/config/sync/field.storage.node.field_chapters.yml new file mode 100644 index 0000000000..58027ea5ec --- /dev/null +++ b/config/sync/field.storage.node.field_chapters.yml @@ -0,0 +1,21 @@ +uuid: 2ddc6fd6-3ed5-49a4-b7e3-29573744ef2b +langcode: en +status: true +dependencies: + module: + - entity_reference_revisions + - node + - paragraphs +id: node.field_chapters +field_name: field_chapters +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_omb_number.yml b/config/sync/field.storage.node.field_omb_number.yml new file mode 100644 index 0000000000..ec0823677a --- /dev/null +++ b/config/sync/field.storage.node.field_omb_number.yml @@ -0,0 +1,21 @@ +uuid: d58c3f28-790b-431a-aca4-bc19375656b5 +langcode: en +status: true +dependencies: + module: + - node +id: node.field_omb_number +field_name: field_omb_number +entity_type: node +type: string +settings: + max_length: 9 + case_sensitive: false + is_ascii: false +module: core +locked: false +cardinality: 1 +translatable: true +indexes: { } +persist_with_no_fields: false +custom_storage: false diff --git a/config/sync/field.storage.paragraph.field_include_date_of_birth.yml b/config/sync/field.storage.paragraph.field_include_date_of_birth.yml new file mode 100644 index 0000000000..e6db63bd83 --- /dev/null +++ b/config/sync/field.storage.paragraph.field_include_date_of_birth.yml @@ -0,0 +1,18 @@ +uuid: 377d46ea-d362-47c9-9f6e-436e21b4d638 +langcode: en +status: true +dependencies: + module: + - paragraphs +id: paragraph.field_include_date_of_birth +field_name: field_include_date_of_birth +entity_type: paragraph +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.content_settings.node.digital_form.yml b/config/sync/language.content_settings.node.digital_form.yml new file mode 100644 index 0000000000..371b1ba68c --- /dev/null +++ b/config/sync/language.content_settings.node.digital_form.yml @@ -0,0 +1,11 @@ +uuid: 86037389-4200-4677-ab95-7bdbe1df3d2b +langcode: en +status: true +dependencies: + config: + - node.type.digital_form +id: node.digital_form +target_entity_type_id: node +target_bundle: digital_form +default_langcode: site_default +language_alterable: false diff --git a/config/sync/node.type.digital_form.yml b/config/sync/node.type.digital_form.yml new file mode 100644 index 0000000000..8851740176 --- /dev/null +++ b/config/sync/node.type.digital_form.yml @@ -0,0 +1,30 @@ +uuid: 6f1de8af-5d0a-4775-9ca1-95a35c6ae032 +langcode: en +status: true +dependencies: + module: + - menu_force + - menu_ui + - node_revision_delete + - node_title_help_text +third_party_settings: + menu_ui: + available_menus: + - main + parent: 'main:' + node_title_help_text: + title_help: '' + menu_force: + menu_force: false + menu_force_parent: false + node_revision_delete: + minimum_revisions_to_keep: 50 + minimum_age_to_delete: 0 + when_to_delete: 0 +name: 'Digital Form' +type: digital_form +description: 'Configuration for an online form presented to Veterans.' +help: '' +new_revision: true +preview_mode: 0 +display_submitted: false diff --git a/config/sync/paragraphs.paragraphs_type.digital_form_name_and_date_of_bi.yml b/config/sync/paragraphs.paragraphs_type.digital_form_name_and_date_of_bi.yml new file mode 100644 index 0000000000..a9085a9a11 --- /dev/null +++ b/config/sync/paragraphs.paragraphs_type.digital_form_name_and_date_of_bi.yml @@ -0,0 +1,17 @@ +uuid: b13f4f29-83bc-456a-9c13-59e2d5f42294 +langcode: en +status: true +dependencies: + content: + - 'file:file:bf614684-8419-43da-b028-d179b527e015' + module: + - paragraphs_browser +third_party_settings: + paragraphs_browser: + image_path: themes/custom/vagovclaro/images/screenshots/name-and-dob.png +id: digital_form_name_and_date_of_bi +label: 'Name and Date of Birth' +icon_uuid: bf614684-8419-43da-b028-d179b527e015 +icon_default: 'data:image/png;base64,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' +description: "Follow this pattern whenever you need to ask for a person's name and (optionally) date of birth for an application." +behavior_plugins: { } diff --git a/config/sync/paragraphs_browser.paragraphs_browser_type.digital_forms.yml b/config/sync/paragraphs_browser.paragraphs_browser_type.digital_forms.yml new file mode 100644 index 0000000000..746c7fdd5a --- /dev/null +++ b/config/sync/paragraphs_browser.paragraphs_browser_type.digital_forms.yml @@ -0,0 +1,13 @@ +uuid: 1c8bc453-7d6c-4b2a-ac2a-148fb47e5522 +langcode: en +status: true +dependencies: { } +id: digital_forms +label: 'Digital Forms' +groups: + patterns: + label: Patterns + id: patterns + weight: '0' +map: + digital_form_name_and_date_of_bi: patterns diff --git a/config/sync/prometheus_exporter.settings.yml b/config/sync/prometheus_exporter.settings.yml index 0bf274533d..b81670bf1e 100644 --- a/config/sync/prometheus_exporter.settings.yml +++ b/config/sync/prometheus_exporter.settings.yml @@ -14,6 +14,7 @@ collectors: campaign_landing_page: campaign_landing_page centralized_content: centralized_content checklist: checklist + digital_form: digital_form documentation_page: documentation_page event: event event_listing: event_listing diff --git a/config/sync/workflows.workflow.editorial.yml b/config/sync/workflows.workflow.editorial.yml index 8f2215978c..ec9dacdbd8 100644 --- a/config/sync/workflows.workflow.editorial.yml +++ b/config/sync/workflows.workflow.editorial.yml @@ -13,6 +13,7 @@ dependencies: - node.type.campaign_landing_page - node.type.centralized_content - node.type.checklist + - node.type.digital_form - node.type.documentation_page - node.type.event - node.type.event_listing @@ -146,6 +147,7 @@ type_settings: - campaign_landing_page - centralized_content - checklist + - digital_form - documentation_page - event - event_listing diff --git a/docroot/modules/custom/va_gov_content_types/src/Entity/DigitalForm.php b/docroot/modules/custom/va_gov_content_types/src/Entity/DigitalForm.php new file mode 100644 index 0000000000..ded9b62280 --- /dev/null +++ b/docroot/modules/custom/va_gov_content_types/src/Entity/DigitalForm.php @@ -0,0 +1,10 @@ + DigitalForm::class, 'health_care_local_facility' => HealthCareLocalFacility::class, 'event' => Event::class, ]; diff --git a/docroot/themes/custom/vagovclaro/images/screenshots/name-and-dob.png b/docroot/themes/custom/vagovclaro/images/screenshots/name-and-dob.png new file mode 100644 index 0000000000000000000000000000000000000000..a482dbcc411f43d55d639a5dcc3c868d3817bf46 GIT binary patch literal 104589 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%0A&l7GDx`rJQ}z>Tv2z*wnjkxS=qtYXjt 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 literal 0 HcmV?d00001 diff --git a/scripts/content/digital-forms.php b/scripts/content/digital-forms.php new file mode 100644 index 0000000000..cc22b4f1ed --- /dev/null +++ b/scripts/content/digital-forms.php @@ -0,0 +1,68 @@ + 'digital_form', + 'title' => 'Script Generated Digital Form', + 'field_va_form_number' => '123456789', + 'field_omb_number' => '1234-5678', + 'moderation_state' => 'published', + ]); + $digital_form->field_chapters->appendItem(create_step()); + $digital_form + ->field_chapters + ->appendItem(create_step('Step without Date of Birth', FALSE)); + save_node_revision($digital_form, 'Created by the content script', TRUE); +} + +/** + * Creates a Digital Form Step. + * + * For now, this only creates the Name and Date of Birth step. + * That will change as more patterns are added. + * + * @param string $title + * The step title. + * @param bool $includeDob + * Should the step include the date of birth field? + * + * @return \Drupal\paragraphs\Entity\Paragraph + * The created Step. + */ +function create_step( + string $title = 'Script Generated Step', + bool $includeDob = TRUE, +): Paragraph { + return Paragraph::create([ + 'type' => 'digital_form_name_and_date_of_bi', + 'field_title' => $title, + 'field_include_date_of_birth' => $includeDob, + ]); +} diff --git a/scripts/content/script-library.php b/scripts/content/script-library.php index e7d55cca42..a19bedfd1f 100644 --- a/scripts/content/script-library.php +++ b/scripts/content/script-library.php @@ -19,7 +19,7 @@ use Drupal\user\UserStorageInterface; use Psr\Log\LogLevel; -const CMS_MIGRATOR_ID = 1317; +const CMS_MIGRATOR_ID = 1317; // phpcs:ignore /** * Log a message to stdout. @@ -46,6 +46,19 @@ function entity_type_manager(): EntityTypeManagerInterface { return $entity_type_manager; } +/** + * Exit if script is run in an environment other than local or tugboat. + * + * @param string $env + * The CMS environment. + */ +function exit_if_not_local_or_tugboat(string $env) { + if ($env !== 'local' && $env !== 'tugboat') { + echo "This script can only be run on local or Tugboat environments.\n"; + exit(); + } +} + /** * Get the node storage. * diff --git a/scripts/content/vacms-17969/VACMS-17969-vba-test-data-processor.php b/scripts/content/vacms-17969/VACMS-17969-vba-test-data-processor.php index 6e57b04f8a..e4393eb5cc 100644 --- a/scripts/content/vacms-17969/VACMS-17969-vba-test-data-processor.php +++ b/scripts/content/vacms-17969/VACMS-17969-vba-test-data-processor.php @@ -20,10 +20,7 @@ */ function run() { $env = getenv('CMS_ENVIRONMENT_TYPE') ?: 'ci'; - if ($env !== 'local' && $env !== 'tugboat') { - echo "This script can only be run on local or Tugboat environments.\n"; - exit(); - } + exit_if_not_local_or_tugboat($env); process_csv_file(__DIR__ . '/VACMS-17969-vba-test-data-source-services.csv', 'create_vba_facility_service_node'); process_csv_file(__DIR__ . '/VACMS-17969-vba-test-data-source-facilities.csv', diff --git a/tests/phpunit/va_gov_content_types/functional/Entity/DigitalFormTest.php b/tests/phpunit/va_gov_content_types/functional/Entity/DigitalFormTest.php new file mode 100644 index 0000000000..c4c3b4f7c5 --- /dev/null +++ b/tests/phpunit/va_gov_content_types/functional/Entity/DigitalFormTest.php @@ -0,0 +1,40 @@ + '12345', + 'field_omb_number' => '1234-5678', + 'title' => 'Test Digital Form', + 'type' => 'digital_form', + ]; + + $node = $this->createNode($digital_form_attrs); + $this->assertEquals(DigitalForm::class, get_class($node)); + $this->assertEquals($node->getTitle(), $digital_form_attrs['title']); + $this->assertEquals( + $node->get('field_va_form_number')->getString(), + $digital_form_attrs['field_va_form_number'] + ); + $this->assertEquals( + $node->get('field_omb_number')->getString(), + $digital_form_attrs['field_omb_number'] + ); + } + +} From 1dc9eb191d4fd1b1ec6022f1739e3e31f5614432 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 20 Sep 2024 12:25:00 -0700 Subject: [PATCH 52/86] Bump drupal/menu_item_extras from 3.0.2 to 3.1.0 (#19107) Bumps drupal/menu_item_extras from 3.0.2 to 3.1.0. --- updated-dependencies: - dependency-name: drupal/menu_item_extras dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Edmund Dunn <109987005+edmund-dunn@users.noreply.github.com> --- composer.lock | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/composer.lock b/composer.lock index e5f5ff0e89..54ddcd580c 100644 --- a/composer.lock +++ b/composer.lock @@ -9664,26 +9664,26 @@ }, { "name": "drupal/menu_item_extras", - "version": "3.0.2", + "version": "3.1.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/menu_item_extras.git", - "reference": "3.0.2" + "reference": "3.1.0" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/menu_item_extras-3.0.2.zip", - "reference": "3.0.2", - "shasum": "e9a86d3e703f480f93992237c5cc6e5a88671106" + "url": "https://ftp.drupal.org/files/projects/menu_item_extras-3.1.0.zip", + "reference": "3.1.0", + "shasum": "39abc5557333e71b1f0b26f069e7367f921bdbab" }, "require": { - "drupal/core": "^9.4 || ^10" + "drupal/core": "^10.3 || ^11" }, "type": "drupal-module", "extra": { "drupal": { - "version": "3.0.2", - "datestamp": "1685006505", + "version": "3.1.0", + "datestamp": "1725022060", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -9691,7 +9691,7 @@ }, "drush": { "services": { - "drush.services.yml": "^9 || ^10 || ^11" + "drush.services.yml": ">=12" } } }, @@ -27472,6 +27472,7 @@ "drupal/graphql_menu": 15, "drupal/image_style_warmer": 5, "drupal/jsonapi_resources": 10, + "drupal/limited_field_widgets": 15, "drupal/linkit": 5, "drupal/linky": 10, "drupal/menu_breadcrumb": 15, From b807fc881f23dd1bd96859aba6dd314a3c382be2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 20 Sep 2024 13:05:46 -0700 Subject: [PATCH 53/86] Bump drupal/menu_link_attributes from 1.4.0 to 1.5.0 (#19144) Bumps drupal/menu_link_attributes from 1.4.0 to 1.5.0. --- updated-dependencies: - dependency-name: drupal/menu_link_attributes dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Edmund Dunn <109987005+edmund-dunn@users.noreply.github.com> --- composer.lock | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/composer.lock b/composer.lock index 54ddcd580c..544a48e5a6 100644 --- a/composer.lock +++ b/composer.lock @@ -9734,17 +9734,17 @@ }, { "name": "drupal/menu_link_attributes", - "version": "1.4.0", + "version": "1.5.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/menu_link_attributes.git", - "reference": "8.x-1.4" + "reference": "8.x-1.5" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/menu_link_attributes-8.x-1.4.zip", - "reference": "8.x-1.4", - "shasum": "a679a5c53c94e3c992483ce3ea782950f4f7e5b3" + "url": "https://ftp.drupal.org/files/projects/menu_link_attributes-8.x-1.5.zip", + "reference": "8.x-1.5", + "shasum": "ad1db596ad8a76ba95fbf2d0a42d4777056587d5" }, "require": { "drupal/core": "^8 || ^9 || ^10 || ^11" @@ -9752,8 +9752,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "8.x-1.4", - "datestamp": "1724060900", + "version": "8.x-1.5", + "datestamp": "1724848806", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -9766,7 +9766,7 @@ ], "authors": [ { - "name": "Anybody", + "name": "anybody", "homepage": "https://www.drupal.org/user/291091" }, { From 1117e28c2a4f8a7f143d56acdab63e06d5578b7f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 20 Sep 2024 13:48:09 -0700 Subject: [PATCH 54/86] Bump drupal/views_bulk_edit from 2.9.0 to 3.0.0 (#19106) Bumps drupal/views_bulk_edit from 2.9.0 to 3.0.0. --- updated-dependencies: - dependency-name: drupal/views_bulk_edit dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- composer.json | 2 +- composer.lock | 29 +++++++++++++++++++---------- 2 files changed, 20 insertions(+), 11 deletions(-) diff --git a/composer.json b/composer.json index b973af9ed9..b63b51f5be 100644 --- a/composer.json +++ b/composer.json @@ -191,7 +191,7 @@ "drupal/user_history": "^1.0@alpha", "drupal/video_embed_media": "^2.2", "drupal/viewfield": "^3.0@beta", - "drupal/views_bulk_edit": "^2.3", + "drupal/views_bulk_edit": "^3.0", "drupal/views_bulk_operations": "^4.2", "drupal/views_conditional": "^1.4", "drupal/views_data_export": "^1.4", diff --git a/composer.lock b/composer.lock index 544a48e5a6..4fe65c866f 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": "19812c49347c3069cafe215548ce1dec", + "content-hash": "330dbceb39e44446ac6c2d30c5b22d29", "packages": [ { "name": "asm89/stack-cors", @@ -14306,20 +14306,21 @@ }, { "name": "drupal/views_bulk_edit", - "version": "2.9.0", + "version": "3.0.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/views_bulk_edit.git", - "reference": "8.x-2.9" + "reference": "3.0.0" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/views_bulk_edit-8.x-2.9.zip", - "reference": "8.x-2.9", - "shasum": "db45a8cc9ac629859374b24974eafcef257e4387" + "url": "https://ftp.drupal.org/files/projects/views_bulk_edit-3.0.0.zip", + "reference": "3.0.0", + "shasum": "3b16079aa95fb4834561fcfd1197cce73b7f4b88" }, "require": { - "drupal/core": "^9.4 || ^10" + "drupal/core": "^9.4 || ^10 || ^11", + "php": ">=8.1" }, "require-dev": { "drupal/views_bulk_operations": "~4.2.4" @@ -14330,8 +14331,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "8.x-2.9", - "datestamp": "1690222256", + "version": "3.0.0", + "datestamp": "1725358398", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -14348,9 +14349,17 @@ "homepage": "https://www.drupal.org/u/graber" }, { - "name": "Graber", + "name": "benjy", + "homepage": "https://www.drupal.org/user/1852732" + }, + { + "name": "graber", "homepage": "https://www.drupal.org/user/1599440" }, + { + "name": "grevil", + "homepage": "https://www.drupal.org/user/3668491" + }, { "name": "joseph.olstad", "homepage": "https://www.drupal.org/user/1321830" From dd132cc94759ba4430b294bb93aa23bfaf79c014 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 23 Sep 2024 10:10:41 -0700 Subject: [PATCH 55/86] Bump va-gov/content-build from 0.0.3595 to 0.0.3596 (#19287) Bumps [va-gov/content-build](https://github.com/department-of-veterans-affairs/content-build) from 0.0.3595 to 0.0.3596. - [Release notes](https://github.com/department-of-veterans-affairs/content-build/releases) - [Commits](https://github.com/department-of-veterans-affairs/content-build/compare/v0.0.3595...v0.0.3596) --- updated-dependencies: - dependency-name: va-gov/content-build dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- composer.json | 2 +- composer.lock | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/composer.json b/composer.json index b63b51f5be..8d390b73c8 100644 --- a/composer.json +++ b/composer.json @@ -227,7 +227,7 @@ "symfony/phpunit-bridge": "^5.1", "symfony/process": "^6.3", "symfony/routing": "^6.3", - "va-gov/content-build": "^0.0.3595", + "va-gov/content-build": "^0.0.3596", "vlucas/phpdotenv": "^5.6", "webflo/drupal-finder": "1.2.2", "webmozart/path-util": "^2.3", diff --git a/composer.lock b/composer.lock index 4fe65c866f..59142d152e 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": "330dbceb39e44446ac6c2d30c5b22d29", + "content-hash": "7c4eec300b7ef9b7950352f421f0d1df", "packages": [ { "name": "asm89/stack-cors", @@ -26450,16 +26450,16 @@ }, { "name": "va-gov/content-build", - "version": "v0.0.3595", + "version": "v0.0.3596", "source": { "type": "git", "url": "https://github.com/department-of-veterans-affairs/content-build.git", - "reference": "3d562809c22f06049063eee22259c9d074fdf312" + "reference": "7ec9ef882eaa7d166ba5c346d24d1eb960dfc001" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/department-of-veterans-affairs/content-build/zipball/3d562809c22f06049063eee22259c9d074fdf312", - "reference": "3d562809c22f06049063eee22259c9d074fdf312", + "url": "https://api.github.com/repos/department-of-veterans-affairs/content-build/zipball/7ec9ef882eaa7d166ba5c346d24d1eb960dfc001", + "reference": "7ec9ef882eaa7d166ba5c346d24d1eb960dfc001", "shasum": "" }, "type": "node-project", @@ -26486,9 +26486,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.3595" + "source": "https://github.com/department-of-veterans-affairs/content-build/tree/v0.0.3596" }, - "time": "2024-09-19T14:22:21+00:00" + "time": "2024-09-20T04:20:43+00:00" }, { "name": "vlucas/phpdotenv", From 345f3151c20746a6a01386450272205ad9e3b979 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 23 Sep 2024 12:43:04 -0700 Subject: [PATCH 56/86] Bump actions/setup-node from 4.0.2 to 4.0.4 (#19291) Bumps [actions/setup-node](https://github.com/actions/setup-node) from 4.0.2 to 4.0.4. - [Release notes](https://github.com/actions/setup-node/releases) - [Commits](https://github.com/actions/setup-node/compare/60edb5dd545a775178f52524783378180af0d1f8...0a44ba7841725637a19e28fa30b79a866c81b0a6) --- updated-dependencies: - dependency-name: actions/setup-node dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Edmund Dunn <109987005+edmund-dunn@users.noreply.github.com> --- .github/workflows/cypress.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/cypress.yml b/.github/workflows/cypress.yml index 17b8a5c86f..dc7117cafb 100644 --- a/.github/workflows/cypress.yml +++ b/.github/workflows/cypress.yml @@ -37,7 +37,7 @@ jobs: ref: ${{ inputs.commit_sha }} - name: Setup the Node environment - uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2 + uses: actions/setup-node@0a44ba7841725637a19e28fa30b79a866c81b0a6 # v4.0.4 with: node-version: '18.13' From 88f01d5be03e75ff2ac23d73292108bcc7b0bce5 Mon Sep 17 00:00:00 2001 From: Amanda Nantais-Austin Date: Mon, 23 Sep 2024 16:48:13 -0400 Subject: [PATCH 57/86] VACMS-18996: Update drupal admin toolbar. (#19293) --- composer.json | 3 --- composer.lock | 24 ++++++++++++++---------- 2 files changed, 14 insertions(+), 13 deletions(-) diff --git a/composer.json b/composer.json index 8d390b73c8..c0a885152d 100644 --- a/composer.json +++ b/composer.json @@ -365,9 +365,6 @@ "composer-exit-on-patch-failure": true, "patches-ignore": {}, "patches": { - "drupal/admin_toolbar": { - "3338408 - Resolve access check errors for D10 compatibility": "https://www.drupal.org/files/issues/2023-05-30/3338408-fix-access-check-error.patch" - }, "drupal/cer": { "3200122 - Remove delete hook": "https://www.drupal.org/files/issues/2021-02-24/delete-hook-added-in-dev-causes-test-failures.patch", "3254663 - Notice: Undefined index: target_bundles on Drupal\\cer\\Entity\\CorrespondingReference->synchronizeCorrespondingField()": "https://www.drupal.org/files/issues/2022-02-14/prevent-undefined-index-3254663-6.patch" diff --git a/composer.lock b/composer.lock index 59142d152e..99899bc4f9 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": "7c4eec300b7ef9b7950352f421f0d1df", + "content-hash": "9e3616abfab6680aa31c567ce53f1d04", "packages": [ { "name": "asm89/stack-cors", @@ -2578,20 +2578,20 @@ }, { "name": "drupal/admin_toolbar", - "version": "3.4.2", + "version": "3.5.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/admin_toolbar.git", - "reference": "3.4.2" + "reference": "3.5.0" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/admin_toolbar-3.4.2.zip", - "reference": "3.4.2", - "shasum": "f5a008e5c73f5a11c6c8067c0ea6ebb76aa33854" + "url": "https://ftp.drupal.org/files/projects/admin_toolbar-3.5.0.zip", + "reference": "3.5.0", + "shasum": "099e8d4dc98e1d551b4f9cffdc39599eb8ad04e8" }, "require": { - "drupal/core": "^9.2 || ^10" + "drupal/core": "^9.5 || ^10 || ^11" }, "require-dev": { "drupal/admin_toolbar_tools": "*" @@ -2599,8 +2599,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "3.4.2", - "datestamp": "1696006195", + "version": "3.5.0", + "datestamp": "1722639094", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -2633,12 +2633,16 @@ "homepage": "https://www.drupal.org/u/matio89", "role": "Maintainer" }, + { + "name": "japerry", + "homepage": "https://www.drupal.org/user/45640" + }, { "name": "matio89", "homepage": "https://www.drupal.org/user/2320090" }, { - "name": "Musa.thomas", + "name": "musa.thomas", "homepage": "https://www.drupal.org/user/1213824" }, { From d459bd65113da9174beb8d0492661f10bd818ceb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 23 Sep 2024 13:56:27 -0700 Subject: [PATCH 58/86] Bump reviewdog/action-eslint from 1.31.0 to 1.32.0 (#19290) Bumps [reviewdog/action-eslint](https://github.com/reviewdog/action-eslint) from 1.31.0 to 1.32.0. - [Release notes](https://github.com/reviewdog/action-eslint/releases) - [Commits](https://github.com/reviewdog/action-eslint/compare/beb7a743eeb10db90a8529b5bc4031be52e90868...9a6606695f1ef9709cce821919ca3b2a6d5e6bb5) --- updated-dependencies: - dependency-name: reviewdog/action-eslint dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Edmund Dunn <109987005+edmund-dunn@users.noreply.github.com> --- .github/workflows/continuous_integration.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/continuous_integration.yml b/.github/workflows/continuous_integration.yml index 2fb3f78aa6..6e709fb632 100644 --- a/.github/workflows/continuous_integration.yml +++ b/.github/workflows/continuous_integration.yml @@ -43,7 +43,7 @@ jobs: uses: ./.github/actions/post-checkout - name: ReviewDog # See also `composer va:test:eslint` in composer.json - uses: reviewdog/action-eslint@beb7a743eeb10db90a8529b5bc4031be52e90868 # v1.31.0 + uses: reviewdog/action-eslint@9a6606695f1ef9709cce821919ca3b2a6d5e6bb5 # v1.32.0 with: reporter: github-pr-review eslint_flags: '--max-warnings 0 -c .eslintrc.json --no-eslintrc docroot/modules/custom/**/*.es6.js docroot/themes/custom/**/*.es6.js tests/cypress/**/*.js' From 486278420041081020215a7bf875ea9e6dc97f38 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 24 Sep 2024 08:28:40 -0700 Subject: [PATCH 59/86] Bump reviewdog/action-stylelint from 1.28.0 to 1.29.0 (#19289) Bumps [reviewdog/action-stylelint](https://github.com/reviewdog/action-stylelint) from 1.28.0 to 1.29.0. - [Release notes](https://github.com/reviewdog/action-stylelint/releases) - [Commits](https://github.com/reviewdog/action-stylelint/compare/9e1a9917f7d97c360463cd5d922385f84b9cc3a0...c1da6e75d890eba79f82a4294e867cbd720b52d9) --- updated-dependencies: - dependency-name: reviewdog/action-stylelint dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/continuous_integration.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/continuous_integration.yml b/.github/workflows/continuous_integration.yml index 6e709fb632..b1ee86d82d 100644 --- a/.github/workflows/continuous_integration.yml +++ b/.github/workflows/continuous_integration.yml @@ -139,7 +139,7 @@ jobs: uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 - name: Stylelint modules # See also `composer va:test:stylelint-modules` in composer.json - uses: reviewdog/action-stylelint@9e1a9917f7d97c360463cd5d922385f84b9cc3a0 # v1.28.0 + uses: reviewdog/action-stylelint@c1da6e75d890eba79f82a4294e867cbd720b52d9 # v1.29.0 with: fail_on_error: true github_token: ${{ secrets.github_token }} @@ -149,7 +149,7 @@ jobs: stylelint_input: 'docroot/modules/custom/**/*.css' - name: Stylelint themes # See also `composer va:test:stylelint-themes` in composer.json - uses: reviewdog/action-stylelint@9e1a9917f7d97c360463cd5d922385f84b9cc3a0 # v1.28.0 + uses: reviewdog/action-stylelint@c1da6e75d890eba79f82a4294e867cbd720b52d9 # v1.29.0 with: fail_on_error: true github_token: ${{ secrets.github_token }} From a63da67e6f1773b2d7be701a822a4a12cc018e16 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 24 Sep 2024 09:07:21 -0700 Subject: [PATCH 60/86] Bump va-gov/content-build from 0.0.3596 to 0.0.3598 (#19305) Bumps [va-gov/content-build](https://github.com/department-of-veterans-affairs/content-build) from 0.0.3596 to 0.0.3598. - [Release notes](https://github.com/department-of-veterans-affairs/content-build/releases) - [Commits](https://github.com/department-of-veterans-affairs/content-build/compare/v0.0.3596...v0.0.3598) --- updated-dependencies: - dependency-name: va-gov/content-build dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Edmund Dunn <109987005+edmund-dunn@users.noreply.github.com> --- composer.json | 2 +- composer.lock | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/composer.json b/composer.json index c0a885152d..c3b8359d2a 100644 --- a/composer.json +++ b/composer.json @@ -227,7 +227,7 @@ "symfony/phpunit-bridge": "^5.1", "symfony/process": "^6.3", "symfony/routing": "^6.3", - "va-gov/content-build": "^0.0.3596", + "va-gov/content-build": "^0.0.3598", "vlucas/phpdotenv": "^5.6", "webflo/drupal-finder": "1.2.2", "webmozart/path-util": "^2.3", diff --git a/composer.lock b/composer.lock index 99899bc4f9..21adacbde0 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": "9e3616abfab6680aa31c567ce53f1d04", + "content-hash": "2161fe66c7fbe34eb37dc36d39034918", "packages": [ { "name": "asm89/stack-cors", @@ -26454,16 +26454,16 @@ }, { "name": "va-gov/content-build", - "version": "v0.0.3596", + "version": "v0.0.3598", "source": { "type": "git", "url": "https://github.com/department-of-veterans-affairs/content-build.git", - "reference": "7ec9ef882eaa7d166ba5c346d24d1eb960dfc001" + "reference": "aafb25480fdff2a78baddaf385b428a5f3de3b1a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/department-of-veterans-affairs/content-build/zipball/7ec9ef882eaa7d166ba5c346d24d1eb960dfc001", - "reference": "7ec9ef882eaa7d166ba5c346d24d1eb960dfc001", + "url": "https://api.github.com/repos/department-of-veterans-affairs/content-build/zipball/aafb25480fdff2a78baddaf385b428a5f3de3b1a", + "reference": "aafb25480fdff2a78baddaf385b428a5f3de3b1a", "shasum": "" }, "type": "node-project", @@ -26490,9 +26490,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.3596" + "source": "https://github.com/department-of-veterans-affairs/content-build/tree/v0.0.3598" }, - "time": "2024-09-20T04:20:43+00:00" + "time": "2024-09-23T21:19:32+00:00" }, { "name": "vlucas/phpdotenv", From 9cd40fd986362176980002b17db56cf325969b21 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 24 Sep 2024 09:08:46 -0700 Subject: [PATCH 61/86] Bump int128/datadog-actions-metrics from 1.95.0 to 1.97.0 (#19299) Bumps [int128/datadog-actions-metrics](https://github.com/int128/datadog-actions-metrics) from 1.95.0 to 1.97.0. - [Release notes](https://github.com/int128/datadog-actions-metrics/releases) - [Commits](https://github.com/int128/datadog-actions-metrics/compare/5dbc8b81eb6d1b3cbd24099ff83373df472e0e36...b55864e8d4ccab2d30f33e9eabc6e02031894555) --- updated-dependencies: - dependency-name: int128/datadog-actions-metrics dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/actions-metrics.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/actions-metrics.yml b/.github/workflows/actions-metrics.yml index 0f93c82119..4f804e9b5e 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@5dbc8b81eb6d1b3cbd24099ff83373df472e0e36 # v1.95.0 + uses: int128/datadog-actions-metrics@b55864e8d4ccab2d30f33e9eabc6e02031894555 # v1.97.0 with: datadog-api-key: ${{ secrets.DATADOG_API_KEY }} collect-job-metrics: true From b649bd9c69677e150749ba5e7d4e1c8237d5d717 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 24 Sep 2024 10:02:45 -0700 Subject: [PATCH 62/86] Bump drupal/hook_event_dispatcher from 4.0.3 to 4.2.0 (#19306) Bumps drupal/hook_event_dispatcher from 4.0.3 to 4.2.0. --- updated-dependencies: - dependency-name: drupal/hook_event_dispatcher dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- composer.json | 2 +- composer.lock | 198 +++++++++++++++++++++++++------------------------- 2 files changed, 100 insertions(+), 100 deletions(-) diff --git a/composer.json b/composer.json index c3b8359d2a..5cb56a4882 100644 --- a/composer.json +++ b/composer.json @@ -100,7 +100,7 @@ "drupal/health_check_url": "^3.0", "drupal/hierarchy_manager": "^3.0", "drupal/hms_field": "^2.0", - "drupal/hook_event_dispatcher": "4.0.3", + "drupal/hook_event_dispatcher": "4.2.0", "drupal/ief_table_view_mode": "^3.0", "drupal/image_style_warmer": "^1.2@RC", "drupal/image_widget_crop": "^2.2", diff --git a/composer.lock b/composer.lock index 21adacbde0..f3c31a7437 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": "2161fe66c7fbe34eb37dc36d39034918", + "content-hash": "2b5ba1ac698adc2555b066504775d2af", "packages": [ { "name": "asm89/stack-cors", @@ -7824,20 +7824,20 @@ }, { "name": "drupal/hook_event_dispatcher", - "version": "4.0.3", + "version": "4.2.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/hook_event_dispatcher.git", - "reference": "4.0.3" + "reference": "4.2.0" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/hook_event_dispatcher-4.0.3.zip", - "reference": "4.0.3", - "shasum": "e97591b7be0f4961b7cdf9db18c65979f352adba" + "url": "https://ftp.drupal.org/files/projects/hook_event_dispatcher-4.2.0.zip", + "reference": "4.2.0", + "shasum": "8a3c2278778150bd2c61c15b1676a67d4fbc2a5b" }, "require": { - "drupal/core": "^10.2", + "drupal/core": "^10.2 || ^11.0", "php": ">=8.1.0" }, "require-dev": { @@ -7856,8 +7856,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "4.0.3", - "datestamp": "1720437069", + "version": "4.2.0", + "datestamp": "1727021695", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -19479,16 +19479,16 @@ }, { "name": "phpstan/phpdoc-parser", - "version": "1.30.1", + "version": "1.31.0", "source": { "type": "git", "url": "https://github.com/phpstan/phpdoc-parser.git", - "reference": "51b95ec8670af41009e2b2b56873bad96682413e" + "reference": "249f15fb843bf240cf058372dad29e100cee6c17" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/51b95ec8670af41009e2b2b56873bad96682413e", - "reference": "51b95ec8670af41009e2b2b56873bad96682413e", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/249f15fb843bf240cf058372dad29e100cee6c17", + "reference": "249f15fb843bf240cf058372dad29e100cee6c17", "shasum": "" }, "require": { @@ -19520,9 +19520,9 @@ "description": "PHPDoc parser with support for nullable, intersection and generic types", "support": { "issues": "https://github.com/phpstan/phpdoc-parser/issues", - "source": "https://github.com/phpstan/phpdoc-parser/tree/1.30.1" + "source": "https://github.com/phpstan/phpdoc-parser/tree/1.31.0" }, - "time": "2024-09-07T20:13:05+00:00" + "time": "2024-09-22T11:32:18+00:00" }, { "name": "phpstan/phpstan", @@ -22818,16 +22818,16 @@ }, { "name": "symfony/console", - "version": "v6.4.11", + "version": "v6.4.12", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "42686880adaacdad1835ee8fc2a9ec5b7bd63998" + "reference": "72d080eb9edf80e36c19be61f72c98ed8273b765" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/42686880adaacdad1835ee8fc2a9ec5b7bd63998", - "reference": "42686880adaacdad1835ee8fc2a9ec5b7bd63998", + "url": "https://api.github.com/repos/symfony/console/zipball/72d080eb9edf80e36c19be61f72c98ed8273b765", + "reference": "72d080eb9edf80e36c19be61f72c98ed8273b765", "shasum": "" }, "require": { @@ -22892,7 +22892,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v6.4.11" + "source": "https://github.com/symfony/console/tree/v6.4.12" }, "funding": [ { @@ -22908,20 +22908,20 @@ "type": "tidelift" } ], - "time": "2024-08-15T22:48:29+00:00" + "time": "2024-09-20T08:15:52+00:00" }, { "name": "symfony/dependency-injection", - "version": "v6.4.11", + "version": "v6.4.12", "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "e93c8368dc9915c2fe12018ff22fcbbdd32c9a9e" + "reference": "cfb9d34a1cdd4911bc737a5358fd1cf8ebfb536e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/e93c8368dc9915c2fe12018ff22fcbbdd32c9a9e", - "reference": "e93c8368dc9915c2fe12018ff22fcbbdd32c9a9e", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/cfb9d34a1cdd4911bc737a5358fd1cf8ebfb536e", + "reference": "cfb9d34a1cdd4911bc737a5358fd1cf8ebfb536e", "shasum": "" }, "require": { @@ -22973,7 +22973,7 @@ "description": "Allows you to standardize and centralize the way objects are constructed in your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/dependency-injection/tree/v6.4.11" + "source": "https://github.com/symfony/dependency-injection/tree/v6.4.12" }, "funding": [ { @@ -22989,7 +22989,7 @@ "type": "tidelift" } ], - "time": "2024-08-29T08:15:38+00:00" + "time": "2024-09-20T08:18:25+00:00" }, { "name": "symfony/deprecation-contracts", @@ -23060,16 +23060,16 @@ }, { "name": "symfony/dom-crawler", - "version": "v6.4.8", + "version": "v6.4.12", "source": { "type": "git", "url": "https://github.com/symfony/dom-crawler.git", - "reference": "105b56a0305d219349edeb60a800082eca864e4b" + "reference": "9d307ecbcb917001692be333cdc58f474fdb37f0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/105b56a0305d219349edeb60a800082eca864e4b", - "reference": "105b56a0305d219349edeb60a800082eca864e4b", + "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/9d307ecbcb917001692be333cdc58f474fdb37f0", + "reference": "9d307ecbcb917001692be333cdc58f474fdb37f0", "shasum": "" }, "require": { @@ -23107,7 +23107,7 @@ "description": "Eases DOM navigation for HTML and XML documents", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/dom-crawler/tree/v6.4.8" + "source": "https://github.com/symfony/dom-crawler/tree/v6.4.12" }, "funding": [ { @@ -23123,7 +23123,7 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:49:08+00:00" + "time": "2024-09-15T06:35:36+00:00" }, { "name": "symfony/error-handler", @@ -23358,16 +23358,16 @@ }, { "name": "symfony/filesystem", - "version": "v6.4.9", + "version": "v6.4.12", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "b51ef8059159330b74a4d52f68e671033c0fe463" + "reference": "f810e3cbdf7fdc35983968523d09f349fa9ada12" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/b51ef8059159330b74a4d52f68e671033c0fe463", - "reference": "b51ef8059159330b74a4d52f68e671033c0fe463", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/f810e3cbdf7fdc35983968523d09f349fa9ada12", + "reference": "f810e3cbdf7fdc35983968523d09f349fa9ada12", "shasum": "" }, "require": { @@ -23404,7 +23404,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/filesystem/tree/v6.4.9" + "source": "https://github.com/symfony/filesystem/tree/v6.4.12" }, "funding": [ { @@ -23420,7 +23420,7 @@ "type": "tidelift" } ], - "time": "2024-06-28T09:49:33+00:00" + "time": "2024-09-16T16:01:33+00:00" }, { "name": "symfony/finder", @@ -23636,16 +23636,16 @@ }, { "name": "symfony/http-foundation", - "version": "v6.4.10", + "version": "v6.4.12", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "117f1f20a7ade7bcea28b861fb79160a21a1e37b" + "reference": "133ac043875f59c26c55e79cf074562127cce4d2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/117f1f20a7ade7bcea28b861fb79160a21a1e37b", - "reference": "117f1f20a7ade7bcea28b861fb79160a21a1e37b", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/133ac043875f59c26c55e79cf074562127cce4d2", + "reference": "133ac043875f59c26c55e79cf074562127cce4d2", "shasum": "" }, "require": { @@ -23693,7 +23693,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v6.4.10" + "source": "https://github.com/symfony/http-foundation/tree/v6.4.12" }, "funding": [ { @@ -23709,20 +23709,20 @@ "type": "tidelift" } ], - "time": "2024-07-26T12:36:27+00:00" + "time": "2024-09-20T08:18:25+00:00" }, { "name": "symfony/http-kernel", - "version": "v6.4.11", + "version": "v6.4.12", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "1ba6b89d781cb47448155cc70dd2e0f1b0584c79" + "reference": "96df83d51b5f78804f70c093b97310794fd6257b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/1ba6b89d781cb47448155cc70dd2e0f1b0584c79", - "reference": "1ba6b89d781cb47448155cc70dd2e0f1b0584c79", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/96df83d51b5f78804f70c093b97310794fd6257b", + "reference": "96df83d51b5f78804f70c093b97310794fd6257b", "shasum": "" }, "require": { @@ -23807,7 +23807,7 @@ "description": "Provides a structured process for converting a Request into a Response", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-kernel/tree/v6.4.11" + "source": "https://github.com/symfony/http-kernel/tree/v6.4.12" }, "funding": [ { @@ -23823,7 +23823,7 @@ "type": "tidelift" } ], - "time": "2024-08-30T16:57:20+00:00" + "time": "2024-09-21T06:02:57+00:00" }, { "name": "symfony/intl", @@ -23909,16 +23909,16 @@ }, { "name": "symfony/mailer", - "version": "v6.4.9", + "version": "v6.4.12", "source": { "type": "git", "url": "https://github.com/symfony/mailer.git", - "reference": "e2d56f180f5b8c5e7c0fbea872bb1f529b6d6d45" + "reference": "b6a25408c569ae2366b3f663a4edad19420a9c26" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mailer/zipball/e2d56f180f5b8c5e7c0fbea872bb1f529b6d6d45", - "reference": "e2d56f180f5b8c5e7c0fbea872bb1f529b6d6d45", + "url": "https://api.github.com/repos/symfony/mailer/zipball/b6a25408c569ae2366b3f663a4edad19420a9c26", + "reference": "b6a25408c569ae2366b3f663a4edad19420a9c26", "shasum": "" }, "require": { @@ -23969,7 +23969,7 @@ "description": "Helps sending emails", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/mailer/tree/v6.4.9" + "source": "https://github.com/symfony/mailer/tree/v6.4.12" }, "funding": [ { @@ -23985,20 +23985,20 @@ "type": "tidelift" } ], - "time": "2024-06-28T07:59:05+00:00" + "time": "2024-09-08T12:30:05+00:00" }, { "name": "symfony/mime", - "version": "v6.4.11", + "version": "v6.4.12", "source": { "type": "git", "url": "https://github.com/symfony/mime.git", - "reference": "dba5d5f6073baf7a3576b580cc4a208b4ca00553" + "reference": "abe16ee7790b16aa525877419deb0f113953f0e1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/dba5d5f6073baf7a3576b580cc4a208b4ca00553", - "reference": "dba5d5f6073baf7a3576b580cc4a208b4ca00553", + "url": "https://api.github.com/repos/symfony/mime/zipball/abe16ee7790b16aa525877419deb0f113953f0e1", + "reference": "abe16ee7790b16aa525877419deb0f113953f0e1", "shasum": "" }, "require": { @@ -24054,7 +24054,7 @@ "mime-type" ], "support": { - "source": "https://github.com/symfony/mime/tree/v6.4.11" + "source": "https://github.com/symfony/mime/tree/v6.4.12" }, "funding": [ { @@ -24070,7 +24070,7 @@ "type": "tidelift" } ], - "time": "2024-08-13T12:15:02+00:00" + "time": "2024-09-20T08:18:25+00:00" }, { "name": "symfony/options-resolver", @@ -25089,16 +25089,16 @@ }, { "name": "symfony/process", - "version": "v6.4.8", + "version": "v6.4.12", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "8d92dd79149f29e89ee0f480254db595f6a6a2c5" + "reference": "3f94e5f13ff58df371a7ead461b6e8068900fbb3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/8d92dd79149f29e89ee0f480254db595f6a6a2c5", - "reference": "8d92dd79149f29e89ee0f480254db595f6a6a2c5", + "url": "https://api.github.com/repos/symfony/process/zipball/3f94e5f13ff58df371a7ead461b6e8068900fbb3", + "reference": "3f94e5f13ff58df371a7ead461b6e8068900fbb3", "shasum": "" }, "require": { @@ -25130,7 +25130,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v6.4.8" + "source": "https://github.com/symfony/process/tree/v6.4.12" }, "funding": [ { @@ -25146,7 +25146,7 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:49:08+00:00" + "time": "2024-09-17T12:47:12+00:00" }, { "name": "symfony/property-access", @@ -25393,16 +25393,16 @@ }, { "name": "symfony/routing", - "version": "v6.4.11", + "version": "v6.4.12", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "8ee0c24c1bf61c263a26f1b9b6d19e83b1121f2a" + "reference": "a7c8036bd159486228dc9be3e846a00a0dda9f9f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/8ee0c24c1bf61c263a26f1b9b6d19e83b1121f2a", - "reference": "8ee0c24c1bf61c263a26f1b9b6d19e83b1121f2a", + "url": "https://api.github.com/repos/symfony/routing/zipball/a7c8036bd159486228dc9be3e846a00a0dda9f9f", + "reference": "a7c8036bd159486228dc9be3e846a00a0dda9f9f", "shasum": "" }, "require": { @@ -25456,7 +25456,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v6.4.11" + "source": "https://github.com/symfony/routing/tree/v6.4.12" }, "funding": [ { @@ -25472,20 +25472,20 @@ "type": "tidelift" } ], - "time": "2024-08-29T08:15:38+00:00" + "time": "2024-09-20T08:32:26+00:00" }, { "name": "symfony/serializer", - "version": "v6.4.11", + "version": "v6.4.12", "source": { "type": "git", "url": "https://github.com/symfony/serializer.git", - "reference": "a75d03d7720417f8a654e73e8f02acdea8779cd0" + "reference": "10ae9c1b90f4809ccb7277cc8fe8d80b3af4412c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/serializer/zipball/a75d03d7720417f8a654e73e8f02acdea8779cd0", - "reference": "a75d03d7720417f8a654e73e8f02acdea8779cd0", + "url": "https://api.github.com/repos/symfony/serializer/zipball/10ae9c1b90f4809ccb7277cc8fe8d80b3af4412c", + "reference": "10ae9c1b90f4809ccb7277cc8fe8d80b3af4412c", "shasum": "" }, "require": { @@ -25554,7 +25554,7 @@ "description": "Handles serializing and deserializing data structures, including object graphs, into array structures or other formats like XML and JSON.", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/serializer/tree/v6.4.11" + "source": "https://github.com/symfony/serializer/tree/v6.4.12" }, "funding": [ { @@ -25570,7 +25570,7 @@ "type": "tidelift" } ], - "time": "2024-08-17T07:51:47+00:00" + "time": "2024-09-20T08:15:52+00:00" }, { "name": "symfony/service-contracts", @@ -25657,16 +25657,16 @@ }, { "name": "symfony/string", - "version": "v6.4.11", + "version": "v6.4.12", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "5bc3eb632cf9c8dbfd6529d89be9950d1518883b" + "reference": "f8a1ccebd0997e16112dfecfd74220b78e5b284b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/5bc3eb632cf9c8dbfd6529d89be9950d1518883b", - "reference": "5bc3eb632cf9c8dbfd6529d89be9950d1518883b", + "url": "https://api.github.com/repos/symfony/string/zipball/f8a1ccebd0997e16112dfecfd74220b78e5b284b", + "reference": "f8a1ccebd0997e16112dfecfd74220b78e5b284b", "shasum": "" }, "require": { @@ -25723,7 +25723,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v6.4.11" + "source": "https://github.com/symfony/string/tree/v6.4.12" }, "funding": [ { @@ -25739,7 +25739,7 @@ "type": "tidelift" } ], - "time": "2024-08-12T09:55:28+00:00" + "time": "2024-09-20T08:15:52+00:00" }, { "name": "symfony/translation-contracts", @@ -25930,16 +25930,16 @@ }, { "name": "symfony/validator", - "version": "v6.4.11", + "version": "v6.4.12", "source": { "type": "git", "url": "https://github.com/symfony/validator.git", - "reference": "4ff41cf10af1de99ad92895411b55c9f309bc2d8" + "reference": "6da1f0a1ee73d060a411d832cbe0539cfe9bbaa0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/validator/zipball/4ff41cf10af1de99ad92895411b55c9f309bc2d8", - "reference": "4ff41cf10af1de99ad92895411b55c9f309bc2d8", + "url": "https://api.github.com/repos/symfony/validator/zipball/6da1f0a1ee73d060a411d832cbe0539cfe9bbaa0", + "reference": "6da1f0a1ee73d060a411d832cbe0539cfe9bbaa0", "shasum": "" }, "require": { @@ -26007,7 +26007,7 @@ "description": "Provides tools to validate values", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/validator/tree/v6.4.11" + "source": "https://github.com/symfony/validator/tree/v6.4.12" }, "funding": [ { @@ -26023,7 +26023,7 @@ "type": "tidelift" } ], - "time": "2024-08-30T15:57:55+00:00" + "time": "2024-09-20T08:18:25+00:00" }, { "name": "symfony/var-dumper", @@ -26189,16 +26189,16 @@ }, { "name": "symfony/yaml", - "version": "v6.4.11", + "version": "v6.4.12", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "be37e7f13195e05ab84ca5269365591edd240335" + "reference": "762ee56b2649659380e0ef4d592d807bc17b7971" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/be37e7f13195e05ab84ca5269365591edd240335", - "reference": "be37e7f13195e05ab84ca5269365591edd240335", + "url": "https://api.github.com/repos/symfony/yaml/zipball/762ee56b2649659380e0ef4d592d807bc17b7971", + "reference": "762ee56b2649659380e0ef4d592d807bc17b7971", "shasum": "" }, "require": { @@ -26241,7 +26241,7 @@ "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v6.4.11" + "source": "https://github.com/symfony/yaml/tree/v6.4.12" }, "funding": [ { @@ -26257,7 +26257,7 @@ "type": "tidelift" } ], - "time": "2024-08-12T09:55:28+00:00" + "time": "2024-09-17T12:47:12+00:00" }, { "name": "theseer/tokenizer", From f20197112c491b9a2b3066067f18879082c2d383 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 24 Sep 2024 10:40:06 -0700 Subject: [PATCH 63/86] Bump knplabs/github-api from 3.14.1 to 3.15.0 (#19307) Bumps [knplabs/github-api](https://github.com/KnpLabs/php-github-api) from 3.14.1 to 3.15.0. - [Release notes](https://github.com/KnpLabs/php-github-api/releases) - [Changelog](https://github.com/KnpLabs/php-github-api/blob/master/CHANGELOG-3.X.md) - [Commits](https://github.com/KnpLabs/php-github-api/compare/v3.14.1...v3.15.0) --- updated-dependencies: - dependency-name: knplabs/github-api dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Edmund Dunn <109987005+edmund-dunn@users.noreply.github.com> --- composer.lock | 65 ++++++++++++++++++++++++++------------------------- 1 file changed, 33 insertions(+), 32 deletions(-) diff --git a/composer.lock b/composer.lock index f3c31a7437..54cbb15eb6 100644 --- a/composer.lock +++ b/composer.lock @@ -16305,16 +16305,16 @@ }, { "name": "knplabs/github-api", - "version": "v3.14.1", + "version": "v3.15.0", "source": { "type": "git", "url": "https://github.com/KnpLabs/php-github-api.git", - "reference": "71fec50e228737ec23c0b69801b85bf596fbdaca" + "reference": "d4b7a1c00e22c1ca32408ecdd4e33c674196b1bc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/KnpLabs/php-github-api/zipball/71fec50e228737ec23c0b69801b85bf596fbdaca", - "reference": "71fec50e228737ec23c0b69801b85bf596fbdaca", + "url": "https://api.github.com/repos/KnpLabs/php-github-api/zipball/d4b7a1c00e22c1ca32408ecdd4e33c674196b1bc", + "reference": "d4b7a1c00e22c1ca32408ecdd4e33c674196b1bc", "shasum": "" }, "require": { @@ -16334,7 +16334,7 @@ }, "require-dev": { "guzzlehttp/guzzle": "^7.2", - "guzzlehttp/psr7": "^1.7", + "guzzlehttp/psr7": "^2.7", "http-interop/http-factory-guzzle": "^1.0", "php-http/mock-client": "^1.4.1", "phpstan/extension-installer": "^1.0.5", @@ -16381,7 +16381,7 @@ ], "support": { "issues": "https://github.com/KnpLabs/php-github-api/issues", - "source": "https://github.com/KnpLabs/php-github-api/tree/v3.14.1" + "source": "https://github.com/KnpLabs/php-github-api/tree/v3.15.0" }, "funding": [ { @@ -16389,7 +16389,7 @@ "type": "github" } ], - "time": "2024-03-24T18:21:15+00:00" + "time": "2024-09-23T19:00:43+00:00" }, { "name": "lcobucci/clock", @@ -18601,16 +18601,16 @@ }, { "name": "php-http/discovery", - "version": "1.19.2", + "version": "1.19.4", "source": { "type": "git", "url": "https://github.com/php-http/discovery.git", - "reference": "61e1a1eb69c92741f5896d9e05fb8e9d7e8bb0cb" + "reference": "0700efda8d7526335132360167315fdab3aeb599" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-http/discovery/zipball/61e1a1eb69c92741f5896d9e05fb8e9d7e8bb0cb", - "reference": "61e1a1eb69c92741f5896d9e05fb8e9d7e8bb0cb", + "url": "https://api.github.com/repos/php-http/discovery/zipball/0700efda8d7526335132360167315fdab3aeb599", + "reference": "0700efda8d7526335132360167315fdab3aeb599", "shasum": "" }, "require": { @@ -18634,7 +18634,8 @@ "php-http/httplug": "^1.0 || ^2.0", "php-http/message-factory": "^1.0", "phpspec/phpspec": "^5.1 || ^6.1 || ^7.3", - "symfony/phpunit-bridge": "^6.2" + "sebastian/comparator": "^3.0.5 || ^4.0.8", + "symfony/phpunit-bridge": "^6.4.4 || ^7.0.1" }, "type": "composer-plugin", "extra": { @@ -18673,9 +18674,9 @@ ], "support": { "issues": "https://github.com/php-http/discovery/issues", - "source": "https://github.com/php-http/discovery/tree/1.19.2" + "source": "https://github.com/php-http/discovery/tree/1.19.4" }, - "time": "2023-11-30T16:49:05+00:00" + "time": "2024-03-29T13:00:05+00:00" }, { "name": "php-http/guzzle7-adapter", @@ -18741,16 +18742,16 @@ }, { "name": "php-http/httplug", - "version": "2.4.0", + "version": "2.4.1", "source": { "type": "git", "url": "https://github.com/php-http/httplug.git", - "reference": "625ad742c360c8ac580fcc647a1541d29e257f67" + "reference": "5cad731844891a4c282f3f3e1b582c46839d22f4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-http/httplug/zipball/625ad742c360c8ac580fcc647a1541d29e257f67", - "reference": "625ad742c360c8ac580fcc647a1541d29e257f67", + "url": "https://api.github.com/repos/php-http/httplug/zipball/5cad731844891a4c282f3f3e1b582c46839d22f4", + "reference": "5cad731844891a4c282f3f3e1b582c46839d22f4", "shasum": "" }, "require": { @@ -18792,9 +18793,9 @@ ], "support": { "issues": "https://github.com/php-http/httplug/issues", - "source": "https://github.com/php-http/httplug/tree/2.4.0" + "source": "https://github.com/php-http/httplug/tree/2.4.1" }, - "time": "2023-04-14T15:10:03+00:00" + "time": "2024-09-23T11:39:58+00:00" }, { "name": "php-http/message", @@ -18867,16 +18868,16 @@ }, { "name": "php-http/multipart-stream-builder", - "version": "1.3.0", + "version": "1.4.2", "source": { "type": "git", "url": "https://github.com/php-http/multipart-stream-builder.git", - "reference": "f5938fd135d9fa442cc297dc98481805acfe2b6a" + "reference": "10086e6de6f53489cca5ecc45b6f468604d3460e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-http/multipart-stream-builder/zipball/f5938fd135d9fa442cc297dc98481805acfe2b6a", - "reference": "f5938fd135d9fa442cc297dc98481805acfe2b6a", + "url": "https://api.github.com/repos/php-http/multipart-stream-builder/zipball/10086e6de6f53489cca5ecc45b6f468604d3460e", + "reference": "10086e6de6f53489cca5ecc45b6f468604d3460e", "shasum": "" }, "require": { @@ -18917,9 +18918,9 @@ ], "support": { "issues": "https://github.com/php-http/multipart-stream-builder/issues", - "source": "https://github.com/php-http/multipart-stream-builder/tree/1.3.0" + "source": "https://github.com/php-http/multipart-stream-builder/tree/1.4.2" }, - "time": "2023-04-28T14:10:22+00:00" + "time": "2024-09-04T13:22:54+00:00" }, { "name": "php-http/promise", @@ -24074,16 +24075,16 @@ }, { "name": "symfony/options-resolver", - "version": "v6.4.7", + "version": "v6.4.8", "source": { "type": "git", "url": "https://github.com/symfony/options-resolver.git", - "reference": "9a3c92b490716ba6771f5beced13c6eda7183eed" + "reference": "22ab9e9101ab18de37839074f8a1197f55590c1b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/options-resolver/zipball/9a3c92b490716ba6771f5beced13c6eda7183eed", - "reference": "9a3c92b490716ba6771f5beced13c6eda7183eed", + "url": "https://api.github.com/repos/symfony/options-resolver/zipball/22ab9e9101ab18de37839074f8a1197f55590c1b", + "reference": "22ab9e9101ab18de37839074f8a1197f55590c1b", "shasum": "" }, "require": { @@ -24121,7 +24122,7 @@ "options" ], "support": { - "source": "https://github.com/symfony/options-resolver/tree/v6.4.7" + "source": "https://github.com/symfony/options-resolver/tree/v6.4.8" }, "funding": [ { @@ -24137,7 +24138,7 @@ "type": "tidelift" } ], - "time": "2024-04-18T09:22:46+00:00" + "time": "2024-05-31T14:49:08+00:00" }, { "name": "symfony/phpunit-bridge", From 18a83e0f06d3edc93a5fc1d53e1647e7a8521ccc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 24 Sep 2024 12:44:12 -0700 Subject: [PATCH 64/86] Bump drupal/taxonomy_entity_index from 1.17.0 to 1.18.0 (#19286) Bumps drupal/taxonomy_entity_index from 1.17.0 to 1.18.0. --- updated-dependencies: - dependency-name: drupal/taxonomy_entity_index dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Edmund Dunn <109987005+edmund-dunn@users.noreply.github.com> --- composer.lock | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/composer.lock b/composer.lock index 54cbb15eb6..174f74046c 100644 --- a/composer.lock +++ b/composer.lock @@ -13535,17 +13535,17 @@ }, { "name": "drupal/taxonomy_entity_index", - "version": "1.17.0", + "version": "1.18.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/taxonomy_entity_index.git", - "reference": "8.x-1.17" + "reference": "8.x-1.18" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/taxonomy_entity_index-8.x-1.17.zip", - "reference": "8.x-1.17", - "shasum": "cc8f89b56914431776f70c23243ef77effb74848" + "url": "https://ftp.drupal.org/files/projects/taxonomy_entity_index-8.x-1.18.zip", + "reference": "8.x-1.18", + "shasum": "11dde4c5c2784210ea668dcece6f4d962d6d3159" }, "require": { "drupal/core": "^8 || ^9 || ^10 || ^11" @@ -13557,8 +13557,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "8.x-1.17", - "datestamp": "1721256115", + "version": "8.x-1.18", + "datestamp": "1726873141", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -13580,7 +13580,7 @@ "homepage": "https://www.drupal.org/user/1765640" }, { - "name": "Dave Reid", + "name": "dave reid", "homepage": "https://www.drupal.org/user/53892" }, { From 7ea583a312a51f62bb7a28c743e6333c649dcbd8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 25 Sep 2024 07:50:09 -0700 Subject: [PATCH 65/86] Bump va-gov/content-build from 0.0.3598 to 0.0.3599 (#19325) Bumps [va-gov/content-build](https://github.com/department-of-veterans-affairs/content-build) from 0.0.3598 to 0.0.3599. - [Release notes](https://github.com/department-of-veterans-affairs/content-build/releases) - [Commits](https://github.com/department-of-veterans-affairs/content-build/compare/v0.0.3598...v0.0.3599) --- updated-dependencies: - dependency-name: va-gov/content-build dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- composer.json | 2 +- composer.lock | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/composer.json b/composer.json index 5cb56a4882..be84bf7091 100644 --- a/composer.json +++ b/composer.json @@ -227,7 +227,7 @@ "symfony/phpunit-bridge": "^5.1", "symfony/process": "^6.3", "symfony/routing": "^6.3", - "va-gov/content-build": "^0.0.3598", + "va-gov/content-build": "^0.0.3599", "vlucas/phpdotenv": "^5.6", "webflo/drupal-finder": "1.2.2", "webmozart/path-util": "^2.3", diff --git a/composer.lock b/composer.lock index 174f74046c..c9b486a4ed 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": "2b5ba1ac698adc2555b066504775d2af", + "content-hash": "a046012c921d063c90b7e37774be81f2", "packages": [ { "name": "asm89/stack-cors", @@ -26455,7 +26455,7 @@ }, { "name": "va-gov/content-build", - "version": "v0.0.3598", + "version": "v0.0.3599", "source": { "type": "git", "url": "https://github.com/department-of-veterans-affairs/content-build.git", @@ -26491,7 +26491,7 @@ "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.3598" + "source": "https://github.com/department-of-veterans-affairs/content-build/tree/v0.0.3599" }, "time": "2024-09-23T21:19:32+00:00" }, From 54e48aaca6b2ba874f8d3be8f58e846ddc3be924 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 25 Sep 2024 09:07:13 -0700 Subject: [PATCH 66/86] Bump drupal/jsonapi_image_styles from 3.0.1 to 3.0.2 (#19324) Bumps drupal/jsonapi_image_styles from 3.0.1 to 3.0.2. --- updated-dependencies: - dependency-name: drupal/jsonapi_image_styles dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Edmund Dunn <109987005+edmund-dunn@users.noreply.github.com> --- composer.lock | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/composer.lock b/composer.lock index c9b486a4ed..bce968ce8f 100644 --- a/composer.lock +++ b/composer.lock @@ -8560,17 +8560,17 @@ }, { "name": "drupal/jsonapi_image_styles", - "version": "3.0.1", + "version": "3.0.2", "source": { "type": "git", "url": "https://git.drupalcode.org/project/jsonapi_image_styles.git", - "reference": "3.0.1" + "reference": "3.0.2" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/jsonapi_image_styles-3.0.1.zip", - "reference": "3.0.1", - "shasum": "abf894873e4ae448771908a5c3db269a66b41573" + "url": "https://ftp.drupal.org/files/projects/jsonapi_image_styles-3.0.2.zip", + "reference": "3.0.2", + "shasum": "63d52eb96eb4b8df241ca9b1e1fbb06707ba8a6c" }, "require": { "drupal/core": "^9 || ^10 || ^11" @@ -8582,8 +8582,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "3.0.1", - "datestamp": "1723311931", + "version": "3.0.2", + "datestamp": "1727189318", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" From 6c025c1c23d8c69260a2002805e57fed2b97d2db Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 25 Sep 2024 18:15:21 -0700 Subject: [PATCH 67/86] Bump va-gov/content-build from 0.0.3599 to 0.0.3600 (#19333) Bumps [va-gov/content-build](https://github.com/department-of-veterans-affairs/content-build) from 0.0.3599 to 0.0.3600. - [Release notes](https://github.com/department-of-veterans-affairs/content-build/releases) - [Commits](https://github.com/department-of-veterans-affairs/content-build/compare/v0.0.3599...v0.0.3600) --- updated-dependencies: - dependency-name: va-gov/content-build dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- composer.json | 2 +- composer.lock | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/composer.json b/composer.json index be84bf7091..58c3db9ef6 100644 --- a/composer.json +++ b/composer.json @@ -227,7 +227,7 @@ "symfony/phpunit-bridge": "^5.1", "symfony/process": "^6.3", "symfony/routing": "^6.3", - "va-gov/content-build": "^0.0.3599", + "va-gov/content-build": "^0.0.3600", "vlucas/phpdotenv": "^5.6", "webflo/drupal-finder": "1.2.2", "webmozart/path-util": "^2.3", diff --git a/composer.lock b/composer.lock index bce968ce8f..720e802765 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": "a046012c921d063c90b7e37774be81f2", + "content-hash": "1a9c30f34ac91e8fcec06d618f62cf74", "packages": [ { "name": "asm89/stack-cors", @@ -26455,16 +26455,16 @@ }, { "name": "va-gov/content-build", - "version": "v0.0.3599", + "version": "v0.0.3600", "source": { "type": "git", "url": "https://github.com/department-of-veterans-affairs/content-build.git", - "reference": "aafb25480fdff2a78baddaf385b428a5f3de3b1a" + "reference": "1a911f06c744a269d851e5028c0bddf5120fca3c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/department-of-veterans-affairs/content-build/zipball/aafb25480fdff2a78baddaf385b428a5f3de3b1a", - "reference": "aafb25480fdff2a78baddaf385b428a5f3de3b1a", + "url": "https://api.github.com/repos/department-of-veterans-affairs/content-build/zipball/1a911f06c744a269d851e5028c0bddf5120fca3c", + "reference": "1a911f06c744a269d851e5028c0bddf5120fca3c", "shasum": "" }, "type": "node-project", @@ -26491,9 +26491,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.3599" + "source": "https://github.com/department-of-veterans-affairs/content-build/tree/v0.0.3600" }, - "time": "2024-09-23T21:19:32+00:00" + "time": "2024-09-24T21:57:16+00:00" }, { "name": "vlucas/phpdotenv", From c165ff18af86ddd1a76f6b6f32e24acfd2ee5552 Mon Sep 17 00:00:00 2001 From: Amanda Nantais-Austin Date: Thu, 26 Sep 2024 11:33:32 -0400 Subject: [PATCH 68/86] Create custom-drush-commands.md A comprehensive list of all active custom drush commands as of September 2024. --- READMES/custom-drush-commands.md | 72 ++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 READMES/custom-drush-commands.md diff --git a/READMES/custom-drush-commands.md b/READMES/custom-drush-commands.md new file mode 100644 index 0000000000..261eb3d084 --- /dev/null +++ b/READMES/custom-drush-commands.md @@ -0,0 +1,72 @@ +This list represents all custom drush commands currently active as of September 2024. Please feel free to add or remove commands as needed or to add notes for existing commands. + +### Site Status commands + +See [SiteStatusCommands.php](../docroot/modules/custom/va_gov_build_trigger/src/Commands/SiteStatusCommands.php). + +- `va-gov:disable-deploy-mode` -- Sets the Deploy Mode flag to FALSE. It is not normally necessary to perform this operation manually. +- `va-gov:enable-deploy-mode` -- Sets the Deploy Mode flag to TRUE. It is not normally necessary to perform this operation manually. +- `va-gov:get-deploy-mode` -- Indicates whether the CMS is currently in Deploy Mode, which is a precautionary measure used to prevent content changes while content is being deployed. +- + +### Content release commands + +The current system's commands mostly relate to continuous builds and management of the content release state machine: + +See [ContentReleaseCommands.php](../docroot/modules/custom/va_gov_build_trigger/src/Commands/ContentReleaseCommands.php). + +- `va-gov:content-release:advance-state` -- Advance the state like an external system would do through HTTP. +- `va-gov:content-release:check-scheduled` -- Make sure builds are going out at least hourly during business hours. +- `va-gov:content-release:check-stale` -- If the state is stale, reset the state. +- `va-gov:content-release:get-state` -- Get the current release state. +- `va-gov:content-release:is-continuous-release-enabled` -- Check continuous release state. +- `va-gov:content-release:reset-state` -- Reset the content release state. +- `va-gov:content-release:toggle-continuous` -- Toggle continuous release (enabled vs disabled states) + +See [RequestCommands.php](../docroot/modules/custom/va_gov_content_release/src/Commands/RequestCommands.php). + +- `va-gov-content-release:request:submit` -- Request a frontend build (but do not initiate it). + +See [FrontendVersionCommands.php](../docroot/modules/custom/va_gov_content_release/src/Commands/FrontendVersionCommands.php). + +- `va-gov-content-release:frontend-version:get` -- Get the currently selected version of the selected frontend (defaults to `content_build`). +- `va-gov-content-release:frontend-version:reset` -- Reset (to default, or `main`) the currently selected version of the selected frontend (defaults to `content_build`). +- `va-gov-content-release:frontend-version:set` -- Set the currently selected version of the selected frontend (defaults to `content_build`). + + +### Repository commands + +See [RepositorySettingsCommands.php](docroot/modules/custom/va_gov_git/src/Commands/RepositorySettingsCommands.php). +`va-gov-git:repository-settings:get-names` -- Display the current repositories. +`va-gov-git:repository-settings:get-path` -- add repository name to end (i.e. va.gov-cms) -- Get the path for the given repository. +`va-gov-git:repository-settings:get-path-key` -- add repository name to end (i.e. va.gov-cms) -- Get the path key for the given repository. +`va-gov-git:repository-settings:list` -- List the available repositories and their corresponding paths. + +See [RepositoryCommands.php](docroot/modules/custom/va_gov_git/src/Commands/RepositoryCommands.php). +`va-gov-git:repository:get-last-commit-hash` -- add repository name to end (i.e. va.gov-cms) -- Display the last commit hash for the current branch. +`va-gov-git:repository:list-remote-branches` -- add repository name to end (i.e. va.gov-cms) -- List remote branches. +`va-gov-git:repository:search-remote-branches` -- add repository name to end (i.e. va.gov-cms) and search string/term (i.e. discovery) -- List remote branches containing the specified string. + + +### API commands + +See [ApiClientCommands.php](docroot/modules/custom/va_gov_github/src/Commands/ApiClientCommands.php). +`va-gov-github:api-client:repository-dispatch` -- Send a repository dispatch event. +`va-gov-github:api-client:search-issues` -- Search issues for a repository. +`va-gov-github:api-client:search-pull-requests` (alias va-gov-github-api-client-search-prs) -- Search pull requests for a repository. +`va-gov-github:api-client:workflow-dispatch` -- Send a workflow dispatch event. +`va-gov-github:api-client:workflow-runs` -- List workflow runs for a repository and workflow. + +See [RawApiClientCommands.php](docroot/modules/custom/va_gov_github/src/Commands/RawApiClientCommands.php). +`va-gov-github:raw-api-client:current-user:organizations` -- List organizational memberships of the current user. +`va-gov-github:raw-api-client:current-user:repositories` -- List repositories accessible by the current user. +`va-gov-github:raw-api-client:request:get` (alias va-gov-github:raw-api-client:request) -- Request any route. + + +### Migration commands + +See [Commands.php](docroot/modules/custom/va_gov_live_field_migration/src/Commands/Commands.php). +`va-gov-live-field-migration:find` -- add $entityType and $bundle as params -- Find fields that haven't been migrated yet. +`va-gov-live-field-migration:migrate-field` -- add $entityType and $bundle and $fieldName as params -- Migrate a specific field on a specific content type. +`va-gov-live-field-migration:rollback-field` -- add $entityType and $bundle and $fieldName as params -- Rollback a specific field on a specific content type. +`va-gov-live-field-migration:verify` -- add $entityType and $bundle and $fieldName as params From 1d629b895662b35df0b9e78ee0223b28ac15e751 Mon Sep 17 00:00:00 2001 From: Amanda Nantais-Austin Date: Thu, 26 Sep 2024 11:35:21 -0400 Subject: [PATCH 69/86] Update custom-drush-commands.md --- READMES/custom-drush-commands.md | 38 ++++++++++++++++---------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/READMES/custom-drush-commands.md b/READMES/custom-drush-commands.md index 261eb3d084..37f1136ab5 100644 --- a/READMES/custom-drush-commands.md +++ b/READMES/custom-drush-commands.md @@ -37,36 +37,36 @@ See [FrontendVersionCommands.php](../docroot/modules/custom/va_gov_content_relea ### Repository commands See [RepositorySettingsCommands.php](docroot/modules/custom/va_gov_git/src/Commands/RepositorySettingsCommands.php). -`va-gov-git:repository-settings:get-names` -- Display the current repositories. -`va-gov-git:repository-settings:get-path` -- add repository name to end (i.e. va.gov-cms) -- Get the path for the given repository. -`va-gov-git:repository-settings:get-path-key` -- add repository name to end (i.e. va.gov-cms) -- Get the path key for the given repository. -`va-gov-git:repository-settings:list` -- List the available repositories and their corresponding paths. +- `va-gov-git:repository-settings:get-names` -- Display the current repositories. +- `va-gov-git:repository-settings:get-path` -- add repository name to end (i.e. va.gov-cms) -- Get the path for the given repository. +- `va-gov-git:repository-settings:get-path-key` -- add repository name to end (i.e. va.gov-cms) -- Get the path key for the given repository. +- `va-gov-git:repository-settings:list` -- List the available repositories and their corresponding paths. See [RepositoryCommands.php](docroot/modules/custom/va_gov_git/src/Commands/RepositoryCommands.php). -`va-gov-git:repository:get-last-commit-hash` -- add repository name to end (i.e. va.gov-cms) -- Display the last commit hash for the current branch. -`va-gov-git:repository:list-remote-branches` -- add repository name to end (i.e. va.gov-cms) -- List remote branches. -`va-gov-git:repository:search-remote-branches` -- add repository name to end (i.e. va.gov-cms) and search string/term (i.e. discovery) -- List remote branches containing the specified string. +- `va-gov-git:repository:get-last-commit-hash` -- add repository name to end (i.e. va.gov-cms) -- Display the last commit hash for the current branch. +- `va-gov-git:repository:list-remote-branches` -- add repository name to end (i.e. va.gov-cms) -- List remote branches. +- `va-gov-git:repository:search-remote-branches` -- add repository name to end (i.e. va.gov-cms) and search string/term (i.e. discovery) -- List remote branches containing the specified string. ### API commands See [ApiClientCommands.php](docroot/modules/custom/va_gov_github/src/Commands/ApiClientCommands.php). -`va-gov-github:api-client:repository-dispatch` -- Send a repository dispatch event. -`va-gov-github:api-client:search-issues` -- Search issues for a repository. -`va-gov-github:api-client:search-pull-requests` (alias va-gov-github-api-client-search-prs) -- Search pull requests for a repository. -`va-gov-github:api-client:workflow-dispatch` -- Send a workflow dispatch event. -`va-gov-github:api-client:workflow-runs` -- List workflow runs for a repository and workflow. +- `va-gov-github:api-client:repository-dispatch` -- Send a repository dispatch event. +- `va-gov-github:api-client:search-issues` -- Search issues for a repository. +- `va-gov-github:api-client:search-pull-requests` (alias va-gov-github-api-client-search-prs) -- Search pull requests for a repository. +- `va-gov-github:api-client:workflow-dispatch` -- Send a workflow dispatch event. +- `va-gov-github:api-client:workflow-runs` -- List workflow runs for a repository and workflow. See [RawApiClientCommands.php](docroot/modules/custom/va_gov_github/src/Commands/RawApiClientCommands.php). -`va-gov-github:raw-api-client:current-user:organizations` -- List organizational memberships of the current user. -`va-gov-github:raw-api-client:current-user:repositories` -- List repositories accessible by the current user. -`va-gov-github:raw-api-client:request:get` (alias va-gov-github:raw-api-client:request) -- Request any route. +- `va-gov-github:raw-api-client:current-user:organizations` -- List organizational memberships of the current user. +- `va-gov-github:raw-api-client:current-user:repositories` -- List repositories accessible by the current user. +- `va-gov-github:raw-api-client:request:get` (alias va-gov-github:raw-api-client:request) -- Request any route. ### Migration commands See [Commands.php](docroot/modules/custom/va_gov_live_field_migration/src/Commands/Commands.php). -`va-gov-live-field-migration:find` -- add $entityType and $bundle as params -- Find fields that haven't been migrated yet. -`va-gov-live-field-migration:migrate-field` -- add $entityType and $bundle and $fieldName as params -- Migrate a specific field on a specific content type. -`va-gov-live-field-migration:rollback-field` -- add $entityType and $bundle and $fieldName as params -- Rollback a specific field on a specific content type. -`va-gov-live-field-migration:verify` -- add $entityType and $bundle and $fieldName as params +- `va-gov-live-field-migration:find` -- add $entityType and $bundle as params -- Find fields that haven't been migrated yet. +- `va-gov-live-field-migration:migrate-field` -- add $entityType and $bundle and $fieldName as params -- Migrate a specific field on a specific content type. +- `va-gov-live-field-migration:rollback-field` -- add $entityType and $bundle and $fieldName as params -- Rollback a specific field on a specific content type. +- `va-gov-live-field-migration:verify` -- add $entityType and $bundle and $fieldName as params From 6312719f6e6544feef8eb05a77c7c0c43ce39625 Mon Sep 17 00:00:00 2001 From: Amanda Nantais-Austin Date: Thu, 26 Sep 2024 11:58:45 -0400 Subject: [PATCH 70/86] Update custom-drush-commands.md --- READMES/custom-drush-commands.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/READMES/custom-drush-commands.md b/READMES/custom-drush-commands.md index 37f1136ab5..e057ec4b64 100644 --- a/READMES/custom-drush-commands.md +++ b/READMES/custom-drush-commands.md @@ -70,3 +70,10 @@ See [Commands.php](docroot/modules/custom/va_gov_live_field_migration/src/Comman - `va-gov-live-field-migration:migrate-field` -- add $entityType and $bundle and $fieldName as params -- Migrate a specific field on a specific content type. - `va-gov-live-field-migration:rollback-field` -- add $entityType and $bundle and $fieldName as params -- Rollback a specific field on a specific content type. - `va-gov-live-field-migration:verify` -- add $entityType and $bundle and $fieldName as params + + +### Global commands + +See [Commands.php](docroot/modules/custom/va_gov_live_field_migration/src/Commands/Commands.php). +- `va:gov-clean-revs` (vg-cr) -- Clean up bad node revisions. +- `va_gov_migrate:flag-missing-facilities` -- (alias va-gov-flag-missing-facilities) -- Flag any facilities that no longer exist in Facilty API. From 5190a087abc74463958757c7fef16951ec4bbb30 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 26 Sep 2024 12:05:07 -0700 Subject: [PATCH 71/86] Bump drupal/clientside_validation from 4.0.3 to 4.1.0 (#19334) Bumps drupal/clientside_validation from 4.0.3 to 4.1.0. --- updated-dependencies: - dependency-name: drupal/clientside_validation dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Edmund Dunn <109987005+edmund-dunn@users.noreply.github.com> --- composer.lock | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/composer.lock b/composer.lock index 720e802765..9356a1c74f 100644 --- a/composer.lock +++ b/composer.lock @@ -3221,20 +3221,20 @@ }, { "name": "drupal/clientside_validation", - "version": "4.0.3", + "version": "4.1.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/clientside_validation.git", - "reference": "4.0.3" + "reference": "4.1.0" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/clientside_validation-4.0.3.zip", - "reference": "4.0.3", - "shasum": "6b5117d96d6bf7cb6477b7b5fb68ca3094ad970e" + "url": "https://ftp.drupal.org/files/projects/clientside_validation-4.1.0.zip", + "reference": "4.1.0", + "shasum": "87b30542be1f7f92a9bee1cfab7bfeecd00e59b9" }, "require": { - "drupal/core": "^9.4 || ^10.0", + "drupal/core": "^9.4 || ^10.0 || ^11.0", "php": ">=7.4.0" }, "require-dev": { @@ -3244,8 +3244,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "4.0.3", - "datestamp": "1719601027", + "version": "4.1.0", + "datestamp": "1727266055", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -3262,7 +3262,7 @@ "homepage": "https://www.drupal.org/user/105002" }, { - "name": "Jelle_S", + "name": "jelle_s", "homepage": "https://www.drupal.org/user/829198" }, { From cc54684bbb62907be4794c4c9eb832f08853869c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 26 Sep 2024 18:36:19 -0700 Subject: [PATCH 72/86] Bump datadog/dd-trace from 1.3.1 to 1.3.2 (#19342) Bumps [datadog/dd-trace](https://github.com/DataDog/dd-trace-php) from 1.3.1 to 1.3.2. - [Release notes](https://github.com/DataDog/dd-trace-php/releases) - [Commits](https://github.com/DataDog/dd-trace-php/compare/1.3.1...1.3.2) --- updated-dependencies: - dependency-name: datadog/dd-trace dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- composer.lock | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/composer.lock b/composer.lock index 9356a1c74f..7ea850eb9b 100644 --- a/composer.lock +++ b/composer.lock @@ -1328,16 +1328,16 @@ }, { "name": "datadog/dd-trace", - "version": "1.3.1", + "version": "1.3.2", "source": { "type": "git", "url": "https://github.com/DataDog/dd-trace-php.git", - "reference": "2b119262fb49fc9fafdea2828c1d8540e58feb9f" + "reference": "a5e07d73a5f25f54dbc4ff2146e4dceeca0dcae3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/DataDog/dd-trace-php/zipball/2b119262fb49fc9fafdea2828c1d8540e58feb9f", - "reference": "2b119262fb49fc9fafdea2828c1d8540e58feb9f", + "url": "https://api.github.com/repos/DataDog/dd-trace-php/zipball/a5e07d73a5f25f54dbc4ff2146e4dceeca0dcae3", + "reference": "a5e07d73a5f25f54dbc4ff2146e4dceeca0dcae3", "shasum": "" }, "require": { @@ -1431,9 +1431,9 @@ ], "support": { "issues": "https://github.com/DataDog/dd-trace-php/issues", - "source": "https://github.com/DataDog/dd-trace-php/tree/1.3.1" + "source": "https://github.com/DataDog/dd-trace-php/tree/1.3.2" }, - "time": "2024-09-06T14:43:40+00:00" + "time": "2024-09-26T12:10:32+00:00" }, { "name": "davedevelopment/stiphle", From a7e9d9d9e213531a757aa7422e31d20a8e03fb0e Mon Sep 17 00:00:00 2001 From: Edmund Dunn <109987005+edmund-dunn@users.noreply.github.com> Date: Fri, 27 Sep 2024 07:50:51 -0700 Subject: [PATCH 73/86] VACMS-19175: new monolog current user processor (#19338) --- .../VaGovUserCurrentUserProcessor.php | 46 +++++++++++++++++++ .../va_gov_user/va_gov_user.services.yml | 3 ++ .../sites/default/services/services.dev.yml | 1 + .../default/services/services.monolog.yml | 1 + .../sites/default/services/services.prod.yml | 1 + .../default/services/services.staging.yml | 1 + 6 files changed, 53 insertions(+) create mode 100644 docroot/modules/custom/va_gov_user/src/Logger/Processor/VaGovUserCurrentUserProcessor.php diff --git a/docroot/modules/custom/va_gov_user/src/Logger/Processor/VaGovUserCurrentUserProcessor.php b/docroot/modules/custom/va_gov_user/src/Logger/Processor/VaGovUserCurrentUserProcessor.php new file mode 100644 index 0000000000..19c278bb3d --- /dev/null +++ b/docroot/modules/custom/va_gov_user/src/Logger/Processor/VaGovUserCurrentUserProcessor.php @@ -0,0 +1,46 @@ +accountProxy = $account_proxy; + } + + /** + * {@inheritdoc} + */ + public function __invoke(LogRecord $record): LogRecord { + $record->extra = \array_merge( + $record->extra, + [ + 'uid' => $this->accountProxy->id(), + 'user' => $this->accountProxy->id(), + ], + ); + + return $record; + } + +} diff --git a/docroot/modules/custom/va_gov_user/va_gov_user.services.yml b/docroot/modules/custom/va_gov_user/va_gov_user.services.yml index 8ec46a31bd..22e4fa1c34 100644 --- a/docroot/modules/custom/va_gov_user/va_gov_user.services.yml +++ b/docroot/modules/custom/va_gov_user/va_gov_user.services.yml @@ -18,3 +18,6 @@ services: va_gov_user.user_perms: class: Drupal\va_gov_user\Service\UserPermsService arguments: ['@current_user', '@entity_type.manager', '@database'] + monolog.processor.va_gov_current_user: + class: Drupal\va_gov_user\Logger\Processor\VaGovUserCurrentUserProcessor + arguments: ['@current_user'] diff --git a/docroot/sites/default/services/services.dev.yml b/docroot/sites/default/services/services.dev.yml index cf22020a5d..a38187d035 100644 --- a/docroot/sites/default/services/services.dev.yml +++ b/docroot/sites/default/services/services.dev.yml @@ -10,6 +10,7 @@ parameters: - 'drupal.syslog' - 'error_log' monolog.processors: + - 'va_gov_current_user' - 'filter_backtrace' - 'ip' - 'message_placeholder' diff --git a/docroot/sites/default/services/services.monolog.yml b/docroot/sites/default/services/services.monolog.yml index ee1bd29afa..0c565f23a0 100644 --- a/docroot/sites/default/services/services.monolog.yml +++ b/docroot/sites/default/services/services.monolog.yml @@ -6,6 +6,7 @@ parameters: - 'drupal.dblog' - 'error_log' monolog.processors: + - 'va_gov_current_user' - 'filter_backtrace' - 'ip' - 'message_placeholder' diff --git a/docroot/sites/default/services/services.prod.yml b/docroot/sites/default/services/services.prod.yml index cf22020a5d..a38187d035 100644 --- a/docroot/sites/default/services/services.prod.yml +++ b/docroot/sites/default/services/services.prod.yml @@ -10,6 +10,7 @@ parameters: - 'drupal.syslog' - 'error_log' monolog.processors: + - 'va_gov_current_user' - 'filter_backtrace' - 'ip' - 'message_placeholder' diff --git a/docroot/sites/default/services/services.staging.yml b/docroot/sites/default/services/services.staging.yml index cf22020a5d..a38187d035 100644 --- a/docroot/sites/default/services/services.staging.yml +++ b/docroot/sites/default/services/services.staging.yml @@ -10,6 +10,7 @@ parameters: - 'drupal.syslog' - 'error_log' monolog.processors: + - 'va_gov_current_user' - 'filter_backtrace' - 'ip' - 'message_placeholder' From ad4406e29981befa58593b74e8ab473e8e61e120 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 27 Sep 2024 08:29:43 -0700 Subject: [PATCH 74/86] Bump va-gov/content-build from 0.0.3600 to 0.0.3601 (#19344) Bumps [va-gov/content-build](https://github.com/department-of-veterans-affairs/content-build) from 0.0.3600 to 0.0.3601. - [Release notes](https://github.com/department-of-veterans-affairs/content-build/releases) - [Commits](https://github.com/department-of-veterans-affairs/content-build/compare/v0.0.3600...v0.0.3601) --- updated-dependencies: - dependency-name: va-gov/content-build dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Edmund Dunn <109987005+edmund-dunn@users.noreply.github.com> --- composer.json | 2 +- composer.lock | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/composer.json b/composer.json index 58c3db9ef6..1f1d8b536a 100644 --- a/composer.json +++ b/composer.json @@ -227,7 +227,7 @@ "symfony/phpunit-bridge": "^5.1", "symfony/process": "^6.3", "symfony/routing": "^6.3", - "va-gov/content-build": "^0.0.3600", + "va-gov/content-build": "^0.0.3601", "vlucas/phpdotenv": "^5.6", "webflo/drupal-finder": "1.2.2", "webmozart/path-util": "^2.3", diff --git a/composer.lock b/composer.lock index 7ea850eb9b..4842fa381a 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": "1a9c30f34ac91e8fcec06d618f62cf74", + "content-hash": "d41534f779d850032afd0515d5f4146c", "packages": [ { "name": "asm89/stack-cors", @@ -26455,7 +26455,7 @@ }, { "name": "va-gov/content-build", - "version": "v0.0.3600", + "version": "v0.0.3601", "source": { "type": "git", "url": "https://github.com/department-of-veterans-affairs/content-build.git", @@ -26491,7 +26491,7 @@ "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.3600" + "source": "https://github.com/department-of-veterans-affairs/content-build/tree/v0.0.3601" }, "time": "2024-09-24T21:57:16+00:00" }, From b5dbfb1723b5cca0c6c443b187b94b53dc410254 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 27 Sep 2024 18:56:43 -0700 Subject: [PATCH 75/86] Bump va-gov/content-build from 0.0.3601 to 0.0.3603 (#19350) Bumps [va-gov/content-build](https://github.com/department-of-veterans-affairs/content-build) from 0.0.3601 to 0.0.3603. - [Release notes](https://github.com/department-of-veterans-affairs/content-build/releases) - [Commits](https://github.com/department-of-veterans-affairs/content-build/compare/v0.0.3601...v0.0.3603) --- updated-dependencies: - dependency-name: va-gov/content-build dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- composer.json | 2 +- composer.lock | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/composer.json b/composer.json index 1f1d8b536a..74ea6d3b04 100644 --- a/composer.json +++ b/composer.json @@ -227,7 +227,7 @@ "symfony/phpunit-bridge": "^5.1", "symfony/process": "^6.3", "symfony/routing": "^6.3", - "va-gov/content-build": "^0.0.3601", + "va-gov/content-build": "^0.0.3603", "vlucas/phpdotenv": "^5.6", "webflo/drupal-finder": "1.2.2", "webmozart/path-util": "^2.3", diff --git a/composer.lock b/composer.lock index 4842fa381a..0954935dc9 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": "d41534f779d850032afd0515d5f4146c", + "content-hash": "6533ad420f1b9dfc65a3e5843ec07145", "packages": [ { "name": "asm89/stack-cors", @@ -26455,16 +26455,16 @@ }, { "name": "va-gov/content-build", - "version": "v0.0.3601", + "version": "v0.0.3603", "source": { "type": "git", "url": "https://github.com/department-of-veterans-affairs/content-build.git", - "reference": "1a911f06c744a269d851e5028c0bddf5120fca3c" + "reference": "82c44cadde7312b2467621526ccd25ab3794b140" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/department-of-veterans-affairs/content-build/zipball/1a911f06c744a269d851e5028c0bddf5120fca3c", - "reference": "1a911f06c744a269d851e5028c0bddf5120fca3c", + "url": "https://api.github.com/repos/department-of-veterans-affairs/content-build/zipball/82c44cadde7312b2467621526ccd25ab3794b140", + "reference": "82c44cadde7312b2467621526ccd25ab3794b140", "shasum": "" }, "type": "node-project", @@ -26491,9 +26491,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.3601" + "source": "https://github.com/department-of-veterans-affairs/content-build/tree/v0.0.3603" }, - "time": "2024-09-24T21:57:16+00:00" + "time": "2024-09-27T19:42:28+00:00" }, { "name": "vlucas/phpdotenv", From 3c472f0027c1f5564bd583bcf8ec78b3c79780b0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 30 Sep 2024 09:16:29 -0700 Subject: [PATCH 76/86] Bump phpstan/phpstan from 1.12.4 to 1.12.5 (#19343) Bumps [phpstan/phpstan](https://github.com/phpstan/phpstan) from 1.12.4 to 1.12.5. - [Release notes](https://github.com/phpstan/phpstan/releases) - [Changelog](https://github.com/phpstan/phpstan/blob/2.0.x/CHANGELOG.md) - [Commits](https://github.com/phpstan/phpstan/compare/1.12.4...1.12.5) --- updated-dependencies: - dependency-name: phpstan/phpstan dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Edmund Dunn <109987005+edmund-dunn@users.noreply.github.com> --- composer.lock | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/composer.lock b/composer.lock index 0954935dc9..57d804bfb4 100644 --- a/composer.lock +++ b/composer.lock @@ -19527,16 +19527,16 @@ }, { "name": "phpstan/phpstan", - "version": "1.12.4", + "version": "1.12.5", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "ffa517cb918591b93acc9b95c0bebdcd0e4538bd" + "reference": "7e6c6cb7cecb0a6254009a1a8a7d54ec99812b17" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/ffa517cb918591b93acc9b95c0bebdcd0e4538bd", - "reference": "ffa517cb918591b93acc9b95c0bebdcd0e4538bd", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/7e6c6cb7cecb0a6254009a1a8a7d54ec99812b17", + "reference": "7e6c6cb7cecb0a6254009a1a8a7d54ec99812b17", "shasum": "" }, "require": { @@ -19581,7 +19581,7 @@ "type": "github" } ], - "time": "2024-09-19T07:58:01+00:00" + "time": "2024-09-26T12:45:22+00:00" }, { "name": "phpstan/phpstan-deprecation-rules", From d32bfa134ecfc401fb70459fb6d84be04829d5d9 Mon Sep 17 00:00:00 2001 From: Dave Pickett <51967950+davidmpickett@users.noreply.github.com> Date: Mon, 30 Sep 2024 14:34:23 -0500 Subject: [PATCH 77/86] hide order fields and update helptext (#19356) --- .../sync/core.entity_form_display.node.event.default.yml | 8 +------- .../core.entity_form_display.node.news_story.default.yml | 8 +------- .../sync/core.entity_view_display.node.event.default.yml | 9 +-------- .../sync/field.field.node.news_story.field_featured.yml | 2 +- 4 files changed, 4 insertions(+), 23 deletions(-) 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 31abd78ffe..4545a57d0f 100644 --- a/config/sync/core.entity_form_display.node.event.default.yml +++ b/config/sync/core.entity_form_display.node.event.default.yml @@ -132,7 +132,6 @@ third_party_settings: group_feature_this_content: children: - field_featured - - field_order label: 'Feature This Content' region: content parent_name: '' @@ -393,12 +392,6 @@ content: settings: media_types: { } third_party_settings: { } - field_order: - type: options_select - weight: 16 - region: content - settings: { } - third_party_settings: { } field_publish_to_outreach_cal: type: boolean_checkbox weight: 3 @@ -455,6 +448,7 @@ hidden: field_additional_listings: true field_event_cost: true field_meta_tags: true + field_order: true langcode: true promote: true status: true diff --git a/config/sync/core.entity_form_display.node.news_story.default.yml b/config/sync/core.entity_form_display.node.news_story.default.yml index a95f652040..7b8499b7d8 100644 --- a/config/sync/core.entity_form_display.node.news_story.default.yml +++ b/config/sync/core.entity_form_display.node.news_story.default.yml @@ -56,7 +56,6 @@ third_party_settings: group_feature_this_story: children: - field_featured - - field_order label: 'Feature this story' region: content parent_name: '' @@ -191,12 +190,6 @@ content: settings: media_types: { } third_party_settings: { } - field_order: - type: options_select - weight: 22 - region: content - settings: { } - third_party_settings: { } moderation_state: type: moderation_state_default weight: 22 @@ -231,6 +224,7 @@ content: hidden: created: true field_meta_tags: true + field_order: true langcode: true promote: true status: 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 3568f9c2f8..d8cdc6baf9 100644 --- a/config/sync/core.entity_view_display.node.event.default.yml +++ b/config/sync/core.entity_view_display.node.event.default.yml @@ -106,7 +106,6 @@ third_party_settings: group_curation: children: - field_featured - - field_order label: Curation parent_name: '' region: content @@ -293,13 +292,6 @@ content: third_party_settings: { } weight: 4 region: content - field_order: - type: list_default - label: above - settings: { } - third_party_settings: { } - weight: 31 - region: content field_url_of_an_online_event: type: link label: above @@ -318,6 +310,7 @@ hidden: field_administration: true field_last_saved_by_an_editor: true field_meta_tags: true + field_order: true field_publish_to_outreach_cal: true langcode: true links: true diff --git a/config/sync/field.field.node.news_story.field_featured.yml b/config/sync/field.field.node.news_story.field_featured.yml index 79326c04bf..deb1d3233c 100644 --- a/config/sync/field.field.node.news_story.field_featured.yml +++ b/config/sync/field.field.node.news_story.field_featured.yml @@ -10,7 +10,7 @@ field_name: field_featured entity_type: node bundle: news_story label: Featured -description: 'Featured stories appear in the "featured" section of a VA product page, such as an Office or VAMC home page. You can feature up to 2.' +description: 'Select to feature this story on your VAMC system home page. Only 1 story can be featured per VAMC system. All other stories in your system will be set as "Not featured" if you feature this one.' required: false translatable: false default_value: From 2493be3cce33ac3d9e203dd8c5c84f41e9bdf282 Mon Sep 17 00:00:00 2001 From: Dave Pickett <51967950+davidmpickett@users.noreply.github.com> Date: Mon, 30 Sep 2024 16:29:58 -0500 Subject: [PATCH 78/86] [docs] Update runbook-new-vamc-system.md --- .../ISSUE_TEMPLATE/runbook-new-vamc-system.md | 26 ++++++++----------- 1 file changed, 11 insertions(+), 15 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/runbook-new-vamc-system.md b/.github/ISSUE_TEMPLATE/runbook-new-vamc-system.md index 17567bc417..b806f0b7b2 100644 --- a/.github/ISSUE_TEMPLATE/runbook-new-vamc-system.md +++ b/.github/ISSUE_TEMPLATE/runbook-new-vamc-system.md @@ -38,6 +38,7 @@ assignees: '' - [ ] VAMC register for care - [ ] VAMC VA police - [ ] VAMC detail page +- [ ] Enable the menu in Menu Breadcrumbs module - [ ] Export the config file and create a PR to merge it into the va.gov-cms repo ### Create initial VAMC System Drupal entities [CMS helpdesk or Sitewide team] @@ -60,23 +61,25 @@ assignees: '' - [ ] VAMC System Medical Records Office - [ ] VAMC System Operating Status - [ ] VAMC System Register for Care - - [ ] Parent link = SERVICES AND LOCATIONS - [ ] Health Services List - [ ] VAMC System Locations List - - [ ] Parent link = NEWS AND EVENTS - [ ] Events List - [ ] News Releases List - [ ] Stories List - - [ ] Parent link = ABOUT VA [REGION NAME] - [ ] Leadership List (will need to be moved later) - [ ] VAMC System Policies Page - [ ] VAMC System VA Police page -### Clone (from where?) these semi-hardened VAMC detail pages [CMS helpdesk or Sitewide team] +### Clone these semi-hardened VAMC detail pages [CMS helpdesk or Sitewide team] - [ ] Parent link = `` - [ ] Make an appointment - [ ] Pharmacy -- [ ] Parent link = SERVICES AND LOCATIONS / Health Services List + - [ ] About us + - [ ] Programs + - [ ] Research + - [ ] Work with us + - [ ] Contact us +- [ ] Parent link = Health Services List - [ ] Caregiver support - [ ] Homeless Veteran care - [ ] LGBT Veteran care @@ -86,17 +89,11 @@ assignees: '' - [ ] Returning service members - [ ] Suicide prevention - [ ] Women Veteran care -- [ ] Parent link = ABOUT VA [REGION NAME] - - [ ] About us - - [ ] Programs - - [ ] Research - - [ ] Work with us - - [ ] Contact us -- [ ] Parent link = ABOUT VA [REGION NAME] / About us +- [ ] Parent link = About us - [ ] Mission and vision - [ ] History - [ ] Performance -- [ ] Parent link = ABOUT VA [REGION NAME] / Work with us +- [ ] Parent link = Work with us - [ ] Jobs and careers - [ ] Internships and fellowships - [ ] Volunteer or donate @@ -104,7 +101,7 @@ assignees: '' ### Find any existing VAMC facilities that belong to this system [CMS helpdesk or Sitewide team] - [ ] Set them to the appropriate Section -- [ ] Set their Parent link settings to SERVICES AND LOCATIONS / Locations +- [ ] Set their Parent link settings to Locations ### Menu configuration and clean up [CMS helpdesk or Sitewide team] - [ ] Go to [Content / Menus](https://prod.cms.va.gov/admin/structure/menu) @@ -112,7 +109,6 @@ assignees: '' - [ ] Ensure all menu links are nested in the proper place - [ ] Set some menu links to disabled - [ ] Consult [VAMC sitemap in sharepoint](https://dvagov.sharepoint.com/:x:/s/SitewideContract/EblgAS21OUtHloKK3a8ZvNIBHzV1S6uO2l4hj4dqYG0avQ?e=J8UVZh) for menu settings -- [ ] Enable the menu in Menu Breadcrumbs module - [ ] Update CONTENT BUILD FILE with the menu ### User set up [CMS helpdesk] From fe7aad307fbfffdf06f46c48c6d90725164df411 Mon Sep 17 00:00:00 2001 From: Dave Pickett <51967950+davidmpickett@users.noreply.github.com> Date: Mon, 30 Sep 2024 17:00:09 -0500 Subject: [PATCH 79/86] [docs] Update runbook-new-vamc-system.md --- .../ISSUE_TEMPLATE/runbook-new-vamc-system.md | 21 ++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/runbook-new-vamc-system.md b/.github/ISSUE_TEMPLATE/runbook-new-vamc-system.md index b806f0b7b2..d840940e95 100644 --- a/.github/ISSUE_TEMPLATE/runbook-new-vamc-system.md +++ b/.github/ISSUE_TEMPLATE/runbook-new-vamc-system.md @@ -41,6 +41,9 @@ assignees: '' - [ ] Enable the menu in Menu Breadcrumbs module - [ ] Export the config file and create a PR to merge it into the va.gov-cms repo +### Enable menu in Content Build / Next Build [FE Engineer] +- [ ] Update CONTENT BUILD FILE with the menu + ### Create initial VAMC System Drupal entities [CMS helpdesk or Sitewide team] - [ ] Add a new Term in the [Sections taxonomy](https://prod.cms.va.gov/admin/structure/taxonomy/manage/administration/overview) - [ ] Nest the term under VHA > VAMC Facilities > VISN ## @@ -48,9 +51,9 @@ assignees: '' - [ ] As you create all the subsequent Drupal entities, assign them to this Section - [ ] [Add a VAMC System](https://prod.cms.va.gov/node/add/health_care_region_page) - [ ] Fill out all required fields - - [ ] Meta description = placeholder? - - [ ] Banner image = placeholder? - - [ ] GovDelivery ID(s) = placeholder? + - [ ] Meta description + - [ ] Banner image + - [ ] GovDelivery ID(s) - [ ] Menu settings > Menu link title = VAMC system plain language name - [ ] Menu settings > Parent link = `` - [ ] System menu = VAMC system plain language name @@ -66,11 +69,13 @@ assignees: '' - [ ] Events List - [ ] News Releases List - [ ] Stories List - - [ ] Leadership List (will need to be moved later) + - [ ] Leadership List - [ ] VAMC System Policies Page - [ ] VAMC System VA Police page ### Clone these semi-hardened VAMC detail pages [CMS helpdesk or Sitewide team] +- [ ] Find an existing VAMC in the same VISN as the new system and clone from there +- [ ] You will need to edit the cloned pages to update any references to the VAMC system, and fix links to other pages. - [ ] Parent link = `` - [ ] Make an appointment - [ ] Pharmacy @@ -108,8 +113,11 @@ assignees: '' - [ ] Find the relevant menu and select edit menu - [ ] Ensure all menu links are nested in the proper place - [ ] Set some menu links to disabled -- [ ] Consult [VAMC sitemap in sharepoint](https://dvagov.sharepoint.com/:x:/s/SitewideContract/EblgAS21OUtHloKK3a8ZvNIBHzV1S6uO2l4hj4dqYG0avQ?e=J8UVZh) for menu settings -- [ ] Update CONTENT BUILD FILE with the menu +- [ ] Consult [VAMC sitemap in sharepoint](https://dvagov.sharepoint.com/:x:/s/SitewideContract/EblgAS21OUtHloKK3a8ZvNIBHzV1S6uO2l4hj4dqYG0avQ?e=J8UVZh) for menu settings + +### URL alias configuration [CMS helpdesk or Sitewide team] +- [ ] Check that each page has the correct URL alias matching the [VAMC sitemap in sharepoint](https://dvagov.sharepoint.com/:x:/s/SitewideContract/EblgAS21OUtHloKK3a8ZvNIBHzV1S6uO2l4hj4dqYG0avQ?e=J8UVZh) +- [ ] If pages dont have the correct URL Alias, change them from Auto to Manual and input the correct URL alias ### User set up [CMS helpdesk] - [ ] Create users if need / assign users to the appropriate section [link to KB article] @@ -117,7 +125,6 @@ assignees: '' ### VAMC editor tasks - [ ] Complete training if they haven't already - [ ] Do all the things listed [here](https://prod.cms.va.gov/help/vamc) -- [ ] Do we have a checklist like we do for VBA? - [ ] Confirm when ready to publish ### Launch tasks From ce10cfb559d6fbc13d72d146c0691ad3b7c620b5 Mon Sep 17 00:00:00 2001 From: Dave Pickett <51967950+davidmpickett@users.noreply.github.com> Date: Mon, 30 Sep 2024 17:19:20 -0500 Subject: [PATCH 80/86] [docs] Update runbook-new-vamc-system.md --- .github/ISSUE_TEMPLATE/runbook-new-vamc-system.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/runbook-new-vamc-system.md b/.github/ISSUE_TEMPLATE/runbook-new-vamc-system.md index d840940e95..209031254c 100644 --- a/.github/ISSUE_TEMPLATE/runbook-new-vamc-system.md +++ b/.github/ISSUE_TEMPLATE/runbook-new-vamc-system.md @@ -42,7 +42,7 @@ assignees: '' - [ ] Export the config file and create a PR to merge it into the va.gov-cms repo ### Enable menu in Content Build / Next Build [FE Engineer] -- [ ] Update CONTENT BUILD FILE with the menu +- [ ] Update [facilitySidebar.nav.graphql.js](https://github.com/department-of-veterans-affairs/content-build/blob/main/src/site/stages/build/drupal/graphql/navigation-fragments/facilitySidebar.nav.graphql.js) with the machine name of the menu under FACILITY_MENU_NAMES and in the appropriate VISN ### Create initial VAMC System Drupal entities [CMS helpdesk or Sitewide team] - [ ] Add a new Term in the [Sections taxonomy](https://prod.cms.va.gov/admin/structure/taxonomy/manage/administration/overview) @@ -120,11 +120,13 @@ assignees: '' - [ ] If pages dont have the correct URL Alias, change them from Auto to Manual and input the correct URL alias ### User set up [CMS helpdesk] -- [ ] Create users if need / assign users to the appropriate section [link to KB article] +- [ ] Create users if needed +- [ ] Assign users to the appropriate section +- [ ] Follow guidance in [CMS User Administration documentation](https://github.com/department-of-veterans-affairs/va.gov-team/tree/master/platform/cms/user-administration) ### VAMC editor tasks - [ ] Complete training if they haven't already -- [ ] Do all the things listed [here](https://prod.cms.va.gov/help/vamc) +- [ ] Follow the instructions in [VAMC editor guide](https://prod.cms.va.gov/help/vamc) - [ ] Confirm when ready to publish ### Launch tasks From f47def68f68fe3b69aa0575d7eb23f7f37986e7a Mon Sep 17 00:00:00 2001 From: Dave Pickett <51967950+davidmpickett@users.noreply.github.com> Date: Mon, 30 Sep 2024 17:34:23 -0500 Subject: [PATCH 81/86] [docs]Update runbook-new-vamc-system.md --- .github/ISSUE_TEMPLATE/runbook-new-vamc-system.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/ISSUE_TEMPLATE/runbook-new-vamc-system.md b/.github/ISSUE_TEMPLATE/runbook-new-vamc-system.md index 209031254c..3c87668967 100644 --- a/.github/ISSUE_TEMPLATE/runbook-new-vamc-system.md +++ b/.github/ISSUE_TEMPLATE/runbook-new-vamc-system.md @@ -113,7 +113,7 @@ assignees: '' - [ ] Find the relevant menu and select edit menu - [ ] Ensure all menu links are nested in the proper place - [ ] Set some menu links to disabled -- [ ] Consult [VAMC sitemap in sharepoint](https://dvagov.sharepoint.com/:x:/s/SitewideContract/EblgAS21OUtHloKK3a8ZvNIBHzV1S6uO2l4hj4dqYG0avQ?e=J8UVZh) for menu settings +- [ ] Consult [VAMC sitemap in sharepoint](https://dvagov.sharepoint.com/:x:/s/SitewideContract/EblgAS21OUtHloKK3a8ZvNIBHzV1S6uO2l4hj4dqYG0avQ?e=J8UVZh) for menu settings (Here's a [backup static copy](https://github.com/department-of-veterans-affairs/va.gov-team/blob/1b010e72b992dbefa7305764b0058841131733bc/products/facilities/medical-centers/VAMC-Sitemap.xlsx) in case of access issues in the future) ### URL alias configuration [CMS helpdesk or Sitewide team] - [ ] Check that each page has the correct URL alias matching the [VAMC sitemap in sharepoint](https://dvagov.sharepoint.com/:x:/s/SitewideContract/EblgAS21OUtHloKK3a8ZvNIBHzV1S6uO2l4hj4dqYG0avQ?e=J8UVZh) From 59cbcd584247c586db8b990c0e8084033ffd022f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 30 Sep 2024 17:47:56 -0700 Subject: [PATCH 82/86] Bump va-gov/content-build from 0.0.3603 to 0.0.3604 (#19358) Bumps [va-gov/content-build](https://github.com/department-of-veterans-affairs/content-build) from 0.0.3603 to 0.0.3604. - [Release notes](https://github.com/department-of-veterans-affairs/content-build/releases) - [Commits](https://github.com/department-of-veterans-affairs/content-build/compare/v0.0.3603...v0.0.3604) --- updated-dependencies: - dependency-name: va-gov/content-build dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- composer.json | 2 +- composer.lock | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/composer.json b/composer.json index 74ea6d3b04..841d436a75 100644 --- a/composer.json +++ b/composer.json @@ -227,7 +227,7 @@ "symfony/phpunit-bridge": "^5.1", "symfony/process": "^6.3", "symfony/routing": "^6.3", - "va-gov/content-build": "^0.0.3603", + "va-gov/content-build": "^0.0.3604", "vlucas/phpdotenv": "^5.6", "webflo/drupal-finder": "1.2.2", "webmozart/path-util": "^2.3", diff --git a/composer.lock b/composer.lock index 57d804bfb4..581ce1347b 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": "6533ad420f1b9dfc65a3e5843ec07145", + "content-hash": "2fc824b50acb01ef4f513d45defc0716", "packages": [ { "name": "asm89/stack-cors", @@ -26455,7 +26455,7 @@ }, { "name": "va-gov/content-build", - "version": "v0.0.3603", + "version": "v0.0.3604", "source": { "type": "git", "url": "https://github.com/department-of-veterans-affairs/content-build.git", @@ -26491,7 +26491,7 @@ "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.3603" + "source": "https://github.com/department-of-veterans-affairs/content-build/tree/v0.0.3604" }, "time": "2024-09-27T19:42:28+00:00" }, From 09c6776c5c212ab0fa36b42fae8c1d360c31d377 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 1 Oct 2024 08:03:21 -0700 Subject: [PATCH 83/86] Bump actions/checkout from 4.1.7 to 4.2.0 (#19351) Bumps [actions/checkout](https://github.com/actions/checkout) from 4.1.7 to 4.2.0. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/692973e3d937129bcbf40652eb9f2f61becf3332...d632683dd7b4114ad314bca15554477dd762a938) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Edmund Dunn <109987005+edmund-dunn@users.noreply.github.com> --- .github/workflows/contextual-advice.yml | 2 +- .github/workflows/continuous_integration.yml | 18 +++++++++--------- .github/workflows/cypress.yml | 2 +- .../default-branch-datadog-metrics.yml | 6 +++--- .github/workflows/dependabot-auto-merge.yml | 2 +- .github/workflows/pull-request-labels.yml | 2 +- .../workflows/set-tugboat-tests-pending.yml | 2 +- 7 files changed, 17 insertions(+), 17 deletions(-) diff --git a/.github/workflows/contextual-advice.yml b/.github/workflows/contextual-advice.yml index a28638e431..503a941669 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@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 + - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 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 b1ee86d82d..dcd7934a90 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@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 + uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 - 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@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 + uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 - name: Composer Validate run: composer validate @@ -38,7 +38,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 + uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 - 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@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 + uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 - 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@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 + uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 - 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@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 + uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 - 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@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 + uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 - 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@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 + uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 - name: Stylelint modules # See also `composer va:test:stylelint-modules` in composer.json uses: reviewdog/action-stylelint@c1da6e75d890eba79f82a4294e867cbd720b52d9 # v1.29.0 @@ -164,7 +164,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 + uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 with: fetch-depth: 0 - name: Delete any existing comment. diff --git a/.github/workflows/cypress.yml b/.github/workflows/cypress.yml index dc7117cafb..484a4263f5 100644 --- a/.github/workflows/cypress.yml +++ b/.github/workflows/cypress.yml @@ -30,7 +30,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 + uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 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 ce3a2cc8af..98a8ccced0 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@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 + uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 - 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@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 + uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 - 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@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 + uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 - 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 6c7ddcc2a1..bda7341747 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@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 + uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 # 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 07a706792c..fdf711f2f3 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@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 + uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 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 597922f8db..ea8f7b6b0d 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@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 + uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 - name: Set status for Tugboat tasks. run: | test_names=( From bd28f7d211105d957fc8141451fcf00c2d3cace3 Mon Sep 17 00:00:00 2001 From: Steve Rancour Date: Tue, 1 Oct 2024 16:41:03 -0400 Subject: [PATCH 84/86] [DOCS] Add 508 Audit Templates Adding 508 Audit Epic and Defect templates --- .../508-accessibility-audit-defect.md | 32 +++++++++++++++++++ .../508-accessibility-audit-epic.md | 31 ++++++++++++++++++ .github/ISSUE_TEMPLATE/__cms-task.md | 2 +- .github/ISSUE_TEMPLATE/ap-defect.md | 4 +-- .github/ISSUE_TEMPLATE/ap-epic.md | 5 +-- .github/ISSUE_TEMPLATE/ap-sprint-overview.md | 6 ++-- .github/ISSUE_TEMPLATE/ap-task.md | 7 ++-- .../cms-collaboration-cycle-feedback.md | 6 ++-- .../cms-design-system-dev-implementation.md | 4 +-- .../cms-design-system-documentation.md | 6 ++-- ...gn-system-experimental-addition-request.md | 9 +++--- .../cms-design-system-update-or-addition.md | 6 ++-- .github/ISSUE_TEMPLATE/cms-section-request.md | 2 +- .github/ISSUE_TEMPLATE/content-audit.md | 4 +-- .github/ISSUE_TEMPLATE/content_model_spec.md | 9 +++--- .../cross-team-intake-request.md | 2 +- .github/ISSUE_TEMPLATE/dark-launch.md | 11 ++++--- .github/ISSUE_TEMPLATE/devops-task.md | 4 +-- .github/ISSUE_TEMPLATE/enhancement.md | 2 +- .../ISSUE_TEMPLATE/knowledge-base-article.md | 3 +- .../ISSUE_TEMPLATE/linky-update-request.md | 4 +-- .../octode-project-board-epic.md | 5 +-- .github/ISSUE_TEMPLATE/pw-clp-request.md | 7 ++-- .../pw-forms-bad-pdf-link-pw.md | 2 +- .../pw-injected-header-publish.md | 4 +-- .github/ISSUE_TEMPLATE/pw-injected-header.md | 2 +- .github/ISSUE_TEMPLATE/qa-incidental.md | 1 - .../ISSUE_TEMPLATE/research-collab-cycle.md | 2 +- .../research-conversation-guide.md | 2 +- .github/ISSUE_TEMPLATE/research-discovery.md | 3 +- .github/ISSUE_TEMPLATE/research-plan.md | 7 ++-- .github/ISSUE_TEMPLATE/research-prep.md | 7 ++-- .../research-readout-and-post-tasks.md | 3 +- .github/ISSUE_TEMPLATE/research-sessions.md | 4 +-- .../research-synthesis-and-reporting.md | 2 +- .../ISSUE_TEMPLATE/runbook---ux-research.md | 2 +- .../runbook-facility-url-change.md | 5 +-- .../runbook-nca-facility-closed.md | 3 +- .../runbook-nca-facility-name-change.md | 3 +- .../runbook-nca-facility-new.md | 3 +- .../ISSUE_TEMPLATE/runbook-new-vamc-system.md | 3 +- .../runbook-vamc-facility-closed.md | 3 +- ...mc-facility-duplicate-or-section-change.md | 3 +- .../runbook-vamc-facility-name-change.md | 3 +- .../runbook-vamc-facility-new.md | 3 +- .../runbook-vamc-system-name-change.md | 3 +- .../runbook-vba-facility-closed.md | 3 +- .../runbook-vba-facility-launch.md | 2 +- .../runbook-vba-facility-name-change.md | 3 +- .../runbook-vba-facility-new.md | 3 +- .../runbook-vet-center-cap-to-outstation.md | 3 +- .../runbook-vet-center-closed.md | 3 +- .../runbook-vet-center-name-change.md | 4 ++- .../ISSUE_TEMPLATE/runbook-vet-center-new.md | 3 +- ...ook-vet-center-outstation-to-vet-center.md | 4 ++- .../sitewide-crew-member-onboarding.md | 2 +- .github/ISSUE_TEMPLATE/sitewide-qa-plan.md | 2 +- .../tier-1-or-2-ongoing-work.md | 2 +- .github/ISSUE_TEMPLATE/ux-writing.md | 2 +- 59 files changed, 183 insertions(+), 97 deletions(-) create mode 100644 .github/ISSUE_TEMPLATE/508-accessibility-audit-defect.md create mode 100644 .github/ISSUE_TEMPLATE/508-accessibility-audit-epic.md diff --git a/.github/ISSUE_TEMPLATE/508-accessibility-audit-defect.md b/.github/ISSUE_TEMPLATE/508-accessibility-audit-defect.md new file mode 100644 index 0000000000..30f1063c51 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/508-accessibility-audit-defect.md @@ -0,0 +1,32 @@ +--- +name: 508 Accessibility Audit Defect +about: Capture defects from 508 office audit +title: Defect +labels: 508-audit, accessibility, Needs refining +assignees: '' + +--- + +## Description or Additional Context +Description from 508 office + +## Example +Example and any screenshots + +### Code snippet + + +### Steps to reproduce + + +## Recommended resolution + + +## Defect Criterion +[Defect number and name](urlToGuideline) - Defect description + +### Users affected +- List user types (e.g. keyboard only, screen reader, etc.) + +## Teams that this affects: +- [x] Team name diff --git a/.github/ISSUE_TEMPLATE/508-accessibility-audit-epic.md b/.github/ISSUE_TEMPLATE/508-accessibility-audit-epic.md new file mode 100644 index 0000000000..8e8caa1d18 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/508-accessibility-audit-epic.md @@ -0,0 +1,31 @@ +--- +name: 508 Accessibility Audit Epic +about: Epic for 508 office audit +title: "[Epic} 508 Audit " +labels: 508-audit, accessibility, Epic, Needs refining +assignees: '' + +--- + +## Audit Document + +## Severity Matrix + +- A product with no defects has a score of 100 +- Each open 'Critical' defect lowers the score by 15 +- Each open 'High' defect lowers the score by 5 +- Each open 'Medium' defect lowers the score by 2.5 +- Each open 'Low' defect lowers the score by 1 +- Accessibility defects have no effect on the score. + +| Severity | Number | +|----------|--------| +| Critical | x | +| High | x | +| Medium | x | +| Low | x | +| TOTAL | x | +| Score | x | + +## Timeline +This was completed on and the 508 office is planning on doing an audit of issues every 6 months for all projects. This should try to be addressed by . diff --git a/.github/ISSUE_TEMPLATE/__cms-task.md b/.github/ISSUE_TEMPLATE/__cms-task.md index c108dadc1a..2d91657e5f 100644 --- a/.github/ISSUE_TEMPLATE/__cms-task.md +++ b/.github/ISSUE_TEMPLATE/__cms-task.md @@ -2,7 +2,7 @@ name: Task about: A task for the CMS team. title: "" -labels: Needs refining +labels: Needs refining, UX writing assignees: '' --- diff --git a/.github/ISSUE_TEMPLATE/ap-defect.md b/.github/ISSUE_TEMPLATE/ap-defect.md index f9d3c39fa8..1f75fd1a01 100644 --- a/.github/ISSUE_TEMPLATE/ap-defect.md +++ b/.github/ISSUE_TEMPLATE/ap-defect.md @@ -1,8 +1,9 @@ --- -name: (AP) Defect +name: "(AP) Defect" about: Work to fix a problem with existing functionality title: "" labels: Accelerated Publishing, Defect +assignees: '' --- @@ -43,4 +44,3 @@ Log messages here - diff --git a/.github/ISSUE_TEMPLATE/ap-epic.md b/.github/ISSUE_TEMPLATE/ap-epic.md index 28d1e553ab..0290fc4077 100644 --- a/.github/ISSUE_TEMPLATE/ap-epic.md +++ b/.github/ISSUE_TEMPLATE/ap-epic.md @@ -1,8 +1,9 @@ --- -name: (AP) Epic +name: "(AP) Epic" about: A collection of work towards a defined goal title: "[Epic][AP] " -labels: Needs refining, Accelerated Publishing, Epic +labels: Accelerated Publishing, Epic, Needs refining +assignees: '' --- diff --git a/.github/ISSUE_TEMPLATE/ap-sprint-overview.md b/.github/ISSUE_TEMPLATE/ap-sprint-overview.md index 01f974d158..511fc6289a 100644 --- a/.github/ISSUE_TEMPLATE/ap-sprint-overview.md +++ b/.github/ISSUE_TEMPLATE/ap-sprint-overview.md @@ -1,8 +1,9 @@ --- -name: (AP) Sprint Overview +name: "(AP) Sprint Overview" about: High priority goals and tickets grouped by focus area title: "[AP] Sprint ##" -labels: Needs refining, Accelerated Publishing +labels: Accelerated Publishing, Needs refining +assignees: '' --- @@ -38,4 +39,3 @@ labels: Needs refining, Accelerated Publishing ## Focus area 5 - [ ] Add issues ``` - diff --git a/.github/ISSUE_TEMPLATE/ap-task.md b/.github/ISSUE_TEMPLATE/ap-task.md index 567dc08385..88399312cc 100644 --- a/.github/ISSUE_TEMPLATE/ap-task.md +++ b/.github/ISSUE_TEMPLATE/ap-task.md @@ -1,10 +1,12 @@ --- -name: (AP) Feature +name: "(AP) Feature" about: New or work or enhancements title: "" -labels: Needs refining, Accelerated Publishing +labels: Accelerated Publishing, Needs refining +assignees: '' --- + ## Requirements @@ -17,4 +19,3 @@ labels: Needs refining, Accelerated Publishing ## Background & implementation details - diff --git a/.github/ISSUE_TEMPLATE/cms-collaboration-cycle-feedback.md b/.github/ISSUE_TEMPLATE/cms-collaboration-cycle-feedback.md index 6b24ec47ce..67d85b1ff4 100644 --- a/.github/ISSUE_TEMPLATE/cms-collaboration-cycle-feedback.md +++ b/.github/ISSUE_TEMPLATE/cms-collaboration-cycle-feedback.md @@ -1,8 +1,10 @@ --- name: CMS Collaboration Cycle Feedback -about: Use this template for CMS Team practice areas to provide feedback to teams going through the CMS Collaboration Cycle. -title: 'Name of Collab Touchpoint - Practice Area Feedback - Name of Project' +about: Use this template for CMS Team practice areas to provide feedback to teams + going through the CMS Collaboration Cycle. +title: Name of Collab Touchpoint - Practice Area Feedback - Name of Project labels: CMS Team, CMS-Collab-Cycle, collab-cycle-feedback +assignees: '' --- diff --git a/.github/ISSUE_TEMPLATE/cms-design-system-dev-implementation.md b/.github/ISSUE_TEMPLATE/cms-design-system-dev-implementation.md index d25acc7c6f..7ec1f56f11 100644 --- a/.github/ISSUE_TEMPLATE/cms-design-system-dev-implementation.md +++ b/.github/ISSUE_TEMPLATE/cms-design-system-dev-implementation.md @@ -1,9 +1,9 @@ --- name: CMS Design System Dev Implementation about: Use this template for Developers to implement CMS design system updates. -title: 'Implement from the design system.' +title: Implement from the design system. labels: CMS design system, CMS Team, Drupal engineering, Needs refining -assignees: edmund-dunn, tonytaylor +assignees: edmund-dunn --- diff --git a/.github/ISSUE_TEMPLATE/cms-design-system-documentation.md b/.github/ISSUE_TEMPLATE/cms-design-system-documentation.md index 7a8f5b7834..a47d4c3d0d 100644 --- a/.github/ISSUE_TEMPLATE/cms-design-system-documentation.md +++ b/.github/ISSUE_TEMPLATE/cms-design-system-documentation.md @@ -1,9 +1,9 @@ --- name: CMS Design System Documentation about: Use this template for a designer to update the CMS design system documentation. -title: 'Update/add in the design system documentation.' -labels: CMS design system, CMS design, CMS Team, Needs refining -assignees: BlakeOrgan +title: Update/add in the design system documentation. +labels: CMS design system, CMS Team, Needs refining +assignees: '' --- diff --git a/.github/ISSUE_TEMPLATE/cms-design-system-experimental-addition-request.md b/.github/ISSUE_TEMPLATE/cms-design-system-experimental-addition-request.md index 601623c028..a0efd81287 100644 --- a/.github/ISSUE_TEMPLATE/cms-design-system-experimental-addition-request.md +++ b/.github/ISSUE_TEMPLATE/cms-design-system-experimental-addition-request.md @@ -1,9 +1,10 @@ --- name: CMS Design System Experimental Addition Request -about: Use this template for designers outside of the CMS team to request a component or pattern be added to the CMS Design System. -title: 'Experimental Design for [component or pattern name]' -labels: CMS design system, CMS design, CMS Team, Needs refining -assignees: BlakeOrgan +about: Use this template for designers outside of the CMS team to request a component + or pattern be added to the CMS Design System. +title: Experimental Design for [component or pattern name] +labels: CMS design system, CMS Team, Needs refining +assignees: '' --- diff --git a/.github/ISSUE_TEMPLATE/cms-design-system-update-or-addition.md b/.github/ISSUE_TEMPLATE/cms-design-system-update-or-addition.md index 99ffd6d681..d0d0bebb39 100644 --- a/.github/ISSUE_TEMPLATE/cms-design-system-update-or-addition.md +++ b/.github/ISSUE_TEMPLATE/cms-design-system-update-or-addition.md @@ -1,9 +1,9 @@ --- name: CMS Design System Update or Addition about: Use this template for a designer to update the CMS design system. -title: 'Update/add in the design system.' -labels: CMS design system, CMS design, CMS Team, Needs refining -assignees: BlakeOrgan +title: Update/add in the design system. +labels: CMS design system, CMS Team, Needs refining +assignees: '' --- diff --git a/.github/ISSUE_TEMPLATE/cms-section-request.md b/.github/ISSUE_TEMPLATE/cms-section-request.md index 394b0fd2e0..8784dcc37e 100644 --- a/.github/ISSUE_TEMPLATE/cms-section-request.md +++ b/.github/ISSUE_TEMPLATE/cms-section-request.md @@ -2,7 +2,7 @@ name: CMS section request about: Requests a change to the Sections hierarchy title: '' -labels: Content governance, CMS Team +labels: CMS Team, Content governance assignees: '' --- diff --git a/.github/ISSUE_TEMPLATE/content-audit.md b/.github/ISSUE_TEMPLATE/content-audit.md index f4e106cc80..a6e472ab15 100644 --- a/.github/ISSUE_TEMPLATE/content-audit.md +++ b/.github/ISSUE_TEMPLATE/content-audit.md @@ -2,8 +2,8 @@ name: Content Audit about: Submit a request to perform a content audit across VA.gov. title: 'Content Audit: ' -labels: Content audit, CMS Team -assignees: dawnpruitt, EWashb +labels: CMS Team, Content audit +assignees: EWashb --- diff --git a/.github/ISSUE_TEMPLATE/content_model_spec.md b/.github/ISSUE_TEMPLATE/content_model_spec.md index 977ae04a07..94948bc60c 100644 --- a/.github/ISSUE_TEMPLATE/content_model_spec.md +++ b/.github/ISSUE_TEMPLATE/content_model_spec.md @@ -1,8 +1,9 @@ --- name: Content Model Specification -about: Use this template when you are specifying proposed changes to the CMS Content Model -title: "Content model specification for [PRODUCT/FEATURE]" -labels: Content Model +about: Use this template when you are specifying proposed changes to the CMS Content + Model +title: Content model specification for [PRODUCT/FEATURE] +labels: '' assignees: '' --- @@ -22,4 +23,4 @@ SO THAT I can implement it in Drupal ## Acceptance Criteria - [ ] Proposed entities, fields, and field properties are documented using the [content model spec template](https://github.com/department-of-veterans-affairs/va.gov-team/blob/master/platform/cms/content-model/drupal_content_model_spec_template.xlsx) - [ ] Reviewed with engineering & product -- [ ] Send to CMS Collab Cycle \ No newline at end of file +- [ ] Send to CMS Collab Cycle diff --git a/.github/ISSUE_TEMPLATE/cross-team-intake-request.md b/.github/ISSUE_TEMPLATE/cross-team-intake-request.md index e2cc086a7f..bbe5783d7b 100644 --- a/.github/ISSUE_TEMPLATE/cross-team-intake-request.md +++ b/.github/ISSUE_TEMPLATE/cross-team-intake-request.md @@ -31,4 +31,4 @@ Please provide: ## Acceptance Criteria - [ ] The Product Manager for the recommended intake team is pinged through Slack about the issue - [ ] The Product Manager has discussed with the respective Product Owner to determine prioritization -- [ ] Any decisions made on prioritization or implementation are communicated back to the originating team \ No newline at end of file +- [ ] Any decisions made on prioritization or implementation are communicated back to the originating team diff --git a/.github/ISSUE_TEMPLATE/dark-launch.md b/.github/ISSUE_TEMPLATE/dark-launch.md index e89a437c4b..e0bd30a8db 100644 --- a/.github/ISSUE_TEMPLATE/dark-launch.md +++ b/.github/ISSUE_TEMPLATE/dark-launch.md @@ -1,9 +1,10 @@ --- -name: "Dark launch request" -about: Request to dark launch CMS content that includes React widget, owned by CMS team +name: Dark launch request +about: Request to dark launch CMS content that includes React widget, owned by CMS + team title: 'CMS/React content dark launch request: ' -labels: Drupal engineering, Needs analysis, CMS Team -assignees: BerniXiongA6 +labels: CMS Team, Drupal engineering +assignees: '' --- @@ -39,4 +40,4 @@ Please tick the boxes for completed steps as we go, for cross-team visibility. ## Acceptance Criteria - [ ] Page is verified: Live on Staging - [ ] Page is **not** live on Prod -- [ ] Ticket is cut for production launch planning, e.g. #10627 +- [ ] Ticket is cut for production launch planning, e.g. #10627 diff --git a/.github/ISSUE_TEMPLATE/devops-task.md b/.github/ISSUE_TEMPLATE/devops-task.md index 19be21cac6..22d4762211 100644 --- a/.github/ISSUE_TEMPLATE/devops-task.md +++ b/.github/ISSUE_TEMPLATE/devops-task.md @@ -2,10 +2,10 @@ name: DevOps task about: A task for the CMS DevOps team. title: "" -labels: DevOps, Needs refining, CMS Team +labels: CMS Team, DevOps, Needs refining assignees: '' --- ### Tasks: -- [ ] Task 1... \ No newline at end of file +- [ ] Task 1... diff --git a/.github/ISSUE_TEMPLATE/enhancement.md b/.github/ISSUE_TEMPLATE/enhancement.md index d745c364aa..94f3ba48a5 100644 --- a/.github/ISSUE_TEMPLATE/enhancement.md +++ b/.github/ISSUE_TEMPLATE/enhancement.md @@ -40,4 +40,4 @@ Editor-centered - [ ] `Efficient`: Remove distractions and create clear, straightforward paths to get the job done. - [ ] `Approachable`: Offer friendly guidance over authoritative instruction. - [ ] `Consistent`: Reduce user’s mental load by allowing them to fall back on pattern recognition to complete tasks. -- [ ] `Empowering`: Provide clear information to help editors make decisions about their work. \ No newline at end of file +- [ ] `Empowering`: Provide clear information to help editors make decisions about their work. diff --git a/.github/ISSUE_TEMPLATE/knowledge-base-article.md b/.github/ISSUE_TEMPLATE/knowledge-base-article.md index e2e0a022d0..75c6e336ea 100644 --- a/.github/ISSUE_TEMPLATE/knowledge-base-article.md +++ b/.github/ISSUE_TEMPLATE/knowledge-base-article.md @@ -1,6 +1,7 @@ --- name: Knowledge Base article - Create or update -about: Use this template for new CMS Knowledge Base articles that need to be written or for updates to existing KB articles. +about: Use this template for new CMS Knowledge Base articles that need to be written + or for updates to existing KB articles. title: 'Create new KB article or update existing article : ' labels: Knowledge Base, Needs refining assignees: '' diff --git a/.github/ISSUE_TEMPLATE/linky-update-request.md b/.github/ISSUE_TEMPLATE/linky-update-request.md index 422b40e447..283672ca02 100644 --- a/.github/ISSUE_TEMPLATE/linky-update-request.md +++ b/.github/ISSUE_TEMPLATE/linky-update-request.md @@ -1,8 +1,8 @@ --- name: Linky Reference Update Request about: Submit a request to update a Linky Reference -title: 'Linky Reference Update Request' -labels: "User Support" +title: Linky Reference Update Request +labels: '' assignees: '' --- diff --git a/.github/ISSUE_TEMPLATE/octode-project-board-epic.md b/.github/ISSUE_TEMPLATE/octode-project-board-epic.md index adf6ebf126..c2ac5523c4 100644 --- a/.github/ISSUE_TEMPLATE/octode-project-board-epic.md +++ b/.github/ISSUE_TEMPLATE/octode-project-board-epic.md @@ -1,7 +1,8 @@ --- name: Sitewide Epic - Web Governance Board -about: Epic template for Sitewide projects that need to be publicized in the Web Governance Board project view, for Public Websites and Facilities teams. -title: "" +about: Epic template for Sitewide projects that need to be publicized in the Web Governance + Board project view, for Public Websites and Facilities teams. +title: '' labels: Epic, sitewide assignees: '' diff --git a/.github/ISSUE_TEMPLATE/pw-clp-request.md b/.github/ISSUE_TEMPLATE/pw-clp-request.md index 364f3933ec..58760cf7d7 100644 --- a/.github/ISSUE_TEMPLATE/pw-clp-request.md +++ b/.github/ISSUE_TEMPLATE/pw-clp-request.md @@ -1,10 +1,9 @@ --- name: "(Sitewide) Campaign Landing Page request" -about: Request a new Campaign Landing Page, owned by Public - Websites team +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, sitewide -assignees: jilladams, FranECross +labels: Needs refining, Public Websites, sitewide, User support, VA.gov frontend +assignees: FranECross, jilladams --- 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 bc3fe3dcaa..1bffb2d38c 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, sitewide -assignees: jilladams, FranECross +assignees: FranECross, jilladams --- diff --git a/.github/ISSUE_TEMPLATE/pw-injected-header-publish.md b/.github/ISSUE_TEMPLATE/pw-injected-header-publish.md index d71563ff36..bde8a369ee 100644 --- a/.github/ISSUE_TEMPLATE/pw-injected-header-publish.md +++ b/.github/ISSUE_TEMPLATE/pw-injected-header-publish.md @@ -2,7 +2,7 @@ name: "(PW) Injected Header/Footer - publish to prod" about: Submit a request to publish the injected header/footer to prod. title: 'Injected header/footer: Publish to prod: ' -labels: Injected header, Needs refining, Public Websites, VA.gov frontend, sitewide +labels: Injected header, Needs refining, Public Websites, sitewide, VA.gov frontend assignees: jilladams --- @@ -19,4 +19,4 @@ This ticket adds new domain(s) to allowlists that gate the injected header. When ## Acceptance Criteria - [ ] Devops PRs to add www & non-www domain(s) have merged - [ ] Requesting team has signed off that they're ready to publish -- [ ] On requested domain(s) the global header is injected on page load, with no cookie updates required \ No newline at end of file +- [ ] On requested domain(s) the global header is injected on page load, with no cookie updates required diff --git a/.github/ISSUE_TEMPLATE/pw-injected-header.md b/.github/ISSUE_TEMPLATE/pw-injected-header.md index b2d72b516f..dff6abc3ec 100644 --- a/.github/ISSUE_TEMPLATE/pw-injected-header.md +++ b/.github/ISSUE_TEMPLATE/pw-injected-header.md @@ -2,7 +2,7 @@ name: "(PW) Injected Header/Footer - prep for testing" about: Submit a request to add the injected header/footer an existing site. title: 'Injected header/footer: ' -labels: Injected header, Needs refining, Public Websites, VA.gov frontend, sitewide +labels: Injected header, Needs refining, Public Websites, sitewide, VA.gov frontend assignees: jilladams --- diff --git a/.github/ISSUE_TEMPLATE/qa-incidental.md b/.github/ISSUE_TEMPLATE/qa-incidental.md index 2d648c1364..68de1f55a6 100644 --- a/.github/ISSUE_TEMPLATE/qa-incidental.md +++ b/.github/ISSUE_TEMPLATE/qa-incidental.md @@ -20,4 +20,3 @@ _Semi-frequently (at least a few times per sprint), read through the production | Date | Issue(s) | | ---- | -------- | | | | - diff --git a/.github/ISSUE_TEMPLATE/research-collab-cycle.md b/.github/ISSUE_TEMPLATE/research-collab-cycle.md index 6afdf6da88..7b21b7d47d 100644 --- a/.github/ISSUE_TEMPLATE/research-collab-cycle.md +++ b/.github/ISSUE_TEMPLATE/research-collab-cycle.md @@ -3,7 +3,7 @@ name: Collaboration Cycle Research touchpoint(s) for [PRODUCT/INITIATIVE] about: Use this template when you have a research plan & conversation guide ready for review by other teams title: Get through Collaboration Cycle before user research starts -labels: UX, Research +labels: Research, UX assignees: '' --- diff --git a/.github/ISSUE_TEMPLATE/research-conversation-guide.md b/.github/ISSUE_TEMPLATE/research-conversation-guide.md index 379a0a4411..01ed29c1e9 100644 --- a/.github/ISSUE_TEMPLATE/research-conversation-guide.md +++ b/.github/ISSUE_TEMPLATE/research-conversation-guide.md @@ -2,7 +2,7 @@ name: Research Conversation Guide about: Use this template when you are drafting a conversation guide title: Draft [PRODUCT/INITIATIVE] conversation guide -labels: UX, Research +labels: Research, UX assignees: '' --- diff --git a/.github/ISSUE_TEMPLATE/research-discovery.md b/.github/ISSUE_TEMPLATE/research-discovery.md index 0f591b1754..4b39cd9238 100644 --- a/.github/ISSUE_TEMPLATE/research-discovery.md +++ b/.github/ISSUE_TEMPLATE/research-discovery.md @@ -2,7 +2,7 @@ name: Research Discovery about: Use this template when exploring if research is needed/viable title: Discovery for [PRODUCT/INITIATIVE] research -labels: UX, Research +labels: Research, UX assignees: '' --- @@ -35,4 +35,3 @@ Research Discovery is a time to establish the fundamental approach for a researc - [ ] Findings from research review are documented and shared with Sitewide UX Lead, Product Manager, and Product Owner - [ ] High-level scope of research is drafted and agreed upon - [ ] Subsequent tickets are created - diff --git a/.github/ISSUE_TEMPLATE/research-plan.md b/.github/ISSUE_TEMPLATE/research-plan.md index 36a18dc3e4..a6a04c24e0 100644 --- a/.github/ISSUE_TEMPLATE/research-plan.md +++ b/.github/ISSUE_TEMPLATE/research-plan.md @@ -1,8 +1,8 @@ --- name: Research Plan -about: Use this template when you are drafting a research plan +about: Use this template when you are drafting a research plan title: Draft [PRODUCT/INITIATIVE] research plan -labels: UX, Research +labels: Research, UX assignees: '' --- @@ -35,6 +35,3 @@ Use the appropriate template for the group you're conducting research with: - [ ] Feedback incorporated from PM and/or other team members - [ ] Research plan posted on github in project research folder - [ ] Final approval obtained from Sitewide UX Lead and documented at the bottom of the file in preparation for Research Review cycle - - - diff --git a/.github/ISSUE_TEMPLATE/research-prep.md b/.github/ISSUE_TEMPLATE/research-prep.md index 8f9bbd86d4..3f32c7dca2 100644 --- a/.github/ISSUE_TEMPLATE/research-prep.md +++ b/.github/ISSUE_TEMPLATE/research-prep.md @@ -1,8 +1,9 @@ --- name: Research Prep Tasks -about: Use this template when preparing for a research study after the research plan and conversation guide have been drafted +about: Use this template when preparing for a research study after the research plan + and conversation guide have been drafted title: Prep for [PRODUCT/INITIATIVE] research -labels: UX, Research +labels: Research, UX assignees: '' --- @@ -95,5 +96,3 @@ These types of studies have additional logistical considerations - [ ] The moderator(s), notetaker(s), and observer(s) have been invited to research sessions and daily debriefs - [ ] Pilot session(s) have been conducted - [ ] All preparation done before the first day of research sessions - - diff --git a/.github/ISSUE_TEMPLATE/research-readout-and-post-tasks.md b/.github/ISSUE_TEMPLATE/research-readout-and-post-tasks.md index 701f7479b6..231318d62b 100644 --- a/.github/ISSUE_TEMPLATE/research-readout-and-post-tasks.md +++ b/.github/ISSUE_TEMPLATE/research-readout-and-post-tasks.md @@ -1,6 +1,7 @@ --- name: Research Readout and Post-Research tasks -about: Use this template when sharing your research via readouts and doing final clean-up tasks. +about: Use this template when sharing your research via readouts and doing final clean-up + tasks. title: Conduct [PRODUCT/INITIATIVE] research readout and complete post-research tasks labels: Research, UX assignees: '' diff --git a/.github/ISSUE_TEMPLATE/research-sessions.md b/.github/ISSUE_TEMPLATE/research-sessions.md index 29d437f62a..fb771dad67 100644 --- a/.github/ISSUE_TEMPLATE/research-sessions.md +++ b/.github/ISSUE_TEMPLATE/research-sessions.md @@ -2,7 +2,7 @@ name: Research Sessions about: Use this template when you are conducting research session title: Conduct [PRODUCT/INITIATIVE] research sessions -labels: UX, Research +labels: Research, UX assignees: '' --- @@ -58,4 +58,4 @@ assignees: '' - [ ] Final participant list downloaded from Perigean - [ ] Display name of Perigean Zoom account changed back to what it was - [ ] Recruitment tracker updated with participant demographics - - [ ] For no-show participants, data entered as "N"'s \ No newline at end of file + - [ ] For no-show participants, data entered as "N"'s diff --git a/.github/ISSUE_TEMPLATE/research-synthesis-and-reporting.md b/.github/ISSUE_TEMPLATE/research-synthesis-and-reporting.md index 6e7e1562bd..9e14da24ca 100644 --- a/.github/ISSUE_TEMPLATE/research-synthesis-and-reporting.md +++ b/.github/ISSUE_TEMPLATE/research-synthesis-and-reporting.md @@ -34,4 +34,4 @@ assignees: '' - [ ] Some initial findings and potential recommendations shared (in Mural?) with Sitewide UX Lead and/or team members. What's important and what we might do next have been discussed. - [ ] Research report feedback requested from Sitewide UX Lead and other team members. - [ ] Sitewide UX Lead requested feedback from VA PO and shared with researcher -- [ ] All feedback on research report incorporated +- [ ] All feedback on research report incorporated diff --git a/.github/ISSUE_TEMPLATE/runbook---ux-research.md b/.github/ISSUE_TEMPLATE/runbook---ux-research.md index 0b5ad6ff3f..7be78ffe85 100644 --- a/.github/ISSUE_TEMPLATE/runbook---ux-research.md +++ b/.github/ISSUE_TEMPLATE/runbook---ux-research.md @@ -3,7 +3,7 @@ name: Runbook - UX Research about: Use this template when starting a new UX research process. This will create a high-level checklist to guide you through building tickets for upcoming sprints. title: "[PRODUCT/INITIATIVE] Research Runbook" -labels: UX, Research +labels: Research, UX assignees: '' --- diff --git a/.github/ISSUE_TEMPLATE/runbook-facility-url-change.md b/.github/ISSUE_TEMPLATE/runbook-facility-url-change.md index d273beb305..6959a440d4 100644 --- a/.github/ISSUE_TEMPLATE/runbook-facility-url-change.md +++ b/.github/ISSUE_TEMPLATE/runbook-facility-url-change.md @@ -2,10 +2,12 @@ name: Runbook - Facility URL Change about: Submit a request to change the URL of a facility title: 'URL Change for: ' -labels: Facilities, Drupal engineering, Flagged Facilities, Redirect request, URL Change, User support +labels: Drupal engineering, Facilities, Flagged Facilities, Redirect request, User + support assignees: '' --- + Parent ticket: #number-of-GH-ticket ### Implementation date @@ -61,4 +63,3 @@ When does this request need to be live: | Facility API ID | Full VA.gov URL | | --- | --- | | vha_691GM | https://www.va.gov/greater-los-angeles-health-care/locations/oxnard-va-clinic | - diff --git a/.github/ISSUE_TEMPLATE/runbook-nca-facility-closed.md b/.github/ISSUE_TEMPLATE/runbook-nca-facility-closed.md index e52edff157..6850f49ad2 100644 --- a/.github/ISSUE_TEMPLATE/runbook-nca-facility-closed.md +++ b/.github/ISSUE_TEMPLATE/runbook-nca-facility-closed.md @@ -2,7 +2,8 @@ name: Runbook - NCA Facility closed about: Steps for archiving a NCA facility in VA.gov CMS. title: 'NCA Facility closed: ' -labels: Change request, Drupal engineering, Facilities, User support, Flagged Facilities, NCA +labels: Change request, Drupal engineering, Facilities, Flagged Facilities, NCA, User + support assignees: '' --- diff --git a/.github/ISSUE_TEMPLATE/runbook-nca-facility-name-change.md b/.github/ISSUE_TEMPLATE/runbook-nca-facility-name-change.md index 2d527717a0..f09e666d85 100644 --- a/.github/ISSUE_TEMPLATE/runbook-nca-facility-name-change.md +++ b/.github/ISSUE_TEMPLATE/runbook-nca-facility-name-change.md @@ -2,7 +2,8 @@ name: Runbook - NCA Facility name change about: Steps for updating names and URLs title: 'NCA Facility name change: ' -labels: Change request, Drupal engineering, Facilities, Flagged Facilities, User support, NCA +labels: Change request, Drupal engineering, Facilities, Flagged Facilities, NCA, User + support assignees: '' --- diff --git a/.github/ISSUE_TEMPLATE/runbook-nca-facility-new.md b/.github/ISSUE_TEMPLATE/runbook-nca-facility-new.md index 99d54df0b1..4813cefcf3 100644 --- a/.github/ISSUE_TEMPLATE/runbook-nca-facility-new.md +++ b/.github/ISSUE_TEMPLATE/runbook-nca-facility-new.md @@ -2,7 +2,8 @@ name: Runbook - New NCA Facility about: changing facility information in the CMS for NCA facilities title: 'New NCA Facility: ' -labels: Change request, Drupal engineering, Facilities, Flagged Facilities, User support, VBA +labels: Change request, Drupal engineering, Facilities, Flagged Facilities, User support, + VBA assignees: '' --- diff --git a/.github/ISSUE_TEMPLATE/runbook-new-vamc-system.md b/.github/ISSUE_TEMPLATE/runbook-new-vamc-system.md index 3c87668967..59651b7150 100644 --- a/.github/ISSUE_TEMPLATE/runbook-new-vamc-system.md +++ b/.github/ISSUE_TEMPLATE/runbook-new-vamc-system.md @@ -2,7 +2,8 @@ name: Runbook - New VAMC system website about: Creating a new site for a VA healthcare system title: 'New VAMC System: ' -labels: Change request, Drupal engineering, Facilities, Flagged Facilities, User support, VAMC, sitewide +labels: Change request, Drupal engineering, Facilities, Flagged Facilities, sitewide, + User support, VAMC assignees: '' --- diff --git a/.github/ISSUE_TEMPLATE/runbook-vamc-facility-closed.md b/.github/ISSUE_TEMPLATE/runbook-vamc-facility-closed.md index c46e422579..fce32ff0ac 100644 --- a/.github/ISSUE_TEMPLATE/runbook-vamc-facility-closed.md +++ b/.github/ISSUE_TEMPLATE/runbook-vamc-facility-closed.md @@ -2,7 +2,8 @@ name: Runbook - VAMC Facility closed about: Steps for archiving a VAMC facility in VA.gov CMS. title: 'VAMC Facility closed: ' -labels: Change request, Drupal engineering, Facilities, Flagged Facilities, User support, VAMC +labels: Change request, Drupal engineering, Facilities, Flagged Facilities, User support, + VAMC assignees: '' --- diff --git a/.github/ISSUE_TEMPLATE/runbook-vamc-facility-duplicate-or-section-change.md b/.github/ISSUE_TEMPLATE/runbook-vamc-facility-duplicate-or-section-change.md index 7ee7e6eca5..6a6d257033 100644 --- a/.github/ISSUE_TEMPLATE/runbook-vamc-facility-duplicate-or-section-change.md +++ b/.github/ISSUE_TEMPLATE/runbook-vamc-facility-duplicate-or-section-change.md @@ -2,7 +2,8 @@ name: Runbook - VAMC facility duplicate record or section change about: How to update the section of a VAMC. title: 'VAMC Facility duplicate record or section change: ' -labels: Change request, Drupal engineering, Facilities, Flagged Facilities, User support, VAMC +labels: Change request, Drupal engineering, Facilities, Flagged Facilities, User support, + VAMC assignees: '' --- diff --git a/.github/ISSUE_TEMPLATE/runbook-vamc-facility-name-change.md b/.github/ISSUE_TEMPLATE/runbook-vamc-facility-name-change.md index 58f1abdec5..3756b99de6 100644 --- a/.github/ISSUE_TEMPLATE/runbook-vamc-facility-name-change.md +++ b/.github/ISSUE_TEMPLATE/runbook-vamc-facility-name-change.md @@ -2,7 +2,8 @@ name: Runbook - VAMC Facility name change about: Steps for updating names and URLs title: 'VAMC Facility name change: ' -labels: Change request, Drupal engineering, Facilities, Flagged Facilities, User support, VAMC +labels: Change request, Drupal engineering, Facilities, Flagged Facilities, User support, + VAMC assignees: '' --- diff --git a/.github/ISSUE_TEMPLATE/runbook-vamc-facility-new.md b/.github/ISSUE_TEMPLATE/runbook-vamc-facility-new.md index 216a0f72b0..5221c0a1ef 100644 --- a/.github/ISSUE_TEMPLATE/runbook-vamc-facility-new.md +++ b/.github/ISSUE_TEMPLATE/runbook-vamc-facility-new.md @@ -2,7 +2,8 @@ name: Runbook - New VAMC Facility about: changing facility information in the CMS for VAMC facilities title: 'New VAMC Facility: ' -labels: Change request, Drupal engineering, Facilities, Flagged Facilities, User support, VAMC +labels: Change request, Drupal engineering, Facilities, Flagged Facilities, User support, + VAMC assignees: '' --- diff --git a/.github/ISSUE_TEMPLATE/runbook-vamc-system-name-change.md b/.github/ISSUE_TEMPLATE/runbook-vamc-system-name-change.md index aad2a5d5e6..27ec9359ca 100644 --- a/.github/ISSUE_TEMPLATE/runbook-vamc-system-name-change.md +++ b/.github/ISSUE_TEMPLATE/runbook-vamc-system-name-change.md @@ -2,7 +2,8 @@ name: Runbook - VAMC system name change about: How to update the name of a VAMC. title: 'VAMC system name change: ' -labels: Change request, Drupal engineering, Facilities, Flagged Facilities, User support, VAMC +labels: Change request, Drupal engineering, Facilities, Flagged Facilities, User support, + VAMC assignees: '' --- diff --git a/.github/ISSUE_TEMPLATE/runbook-vba-facility-closed.md b/.github/ISSUE_TEMPLATE/runbook-vba-facility-closed.md index 4cfba6d07e..74a54869f5 100644 --- a/.github/ISSUE_TEMPLATE/runbook-vba-facility-closed.md +++ b/.github/ISSUE_TEMPLATE/runbook-vba-facility-closed.md @@ -2,7 +2,8 @@ name: Runbook - VBA Facility closed about: Steps for archiving a VBA facility in VA.gov CMS. title: 'VBA Facility closed: ' -labels: Change request, Drupal engineering, Facilities, Flagged Facilities, User support, VBA +labels: Change request, Drupal engineering, Facilities, Flagged Facilities, User support, + VBA assignees: '' --- diff --git a/.github/ISSUE_TEMPLATE/runbook-vba-facility-launch.md b/.github/ISSUE_TEMPLATE/runbook-vba-facility-launch.md index 8855b512e8..cf28237921 100644 --- a/.github/ISSUE_TEMPLATE/runbook-vba-facility-launch.md +++ b/.github/ISSUE_TEMPLATE/runbook-vba-facility-launch.md @@ -2,7 +2,7 @@ name: Runbook - Launching an approved VBA Facility about: Initial publishing of a VBA Facility title: 'Launching VBA Facility: ' -labels: Drupal engineering, Facilities, sitewide, User support, VBA, Flagged facilties +labels: Drupal engineering, Facilities, sitewide, User support, VBA assignees: '' --- diff --git a/.github/ISSUE_TEMPLATE/runbook-vba-facility-name-change.md b/.github/ISSUE_TEMPLATE/runbook-vba-facility-name-change.md index b61ea5bc6c..55fbb0c115 100644 --- a/.github/ISSUE_TEMPLATE/runbook-vba-facility-name-change.md +++ b/.github/ISSUE_TEMPLATE/runbook-vba-facility-name-change.md @@ -2,7 +2,8 @@ name: Runbook - VBA Facility name change about: Steps for updating names and URLs title: 'VBA Facility name change: ' -labels: Change request, Drupal engineering, Facilities, Flagged Facilities, User support, VBA +labels: Change request, Drupal engineering, Facilities, Flagged Facilities, User support, + VBA assignees: '' --- diff --git a/.github/ISSUE_TEMPLATE/runbook-vba-facility-new.md b/.github/ISSUE_TEMPLATE/runbook-vba-facility-new.md index 2e4d314944..1c29c185bb 100644 --- a/.github/ISSUE_TEMPLATE/runbook-vba-facility-new.md +++ b/.github/ISSUE_TEMPLATE/runbook-vba-facility-new.md @@ -2,7 +2,8 @@ name: Runbook - New VBA Facility about: changing facility information in the CMS for VBA facilities title: 'New VBA Facility: ' -labels: Change request, Drupal engineering, Facilities, Flagged Facilities, User support, VBA +labels: Change request, Drupal engineering, Facilities, Flagged Facilities, User support, + VBA assignees: '' --- diff --git a/.github/ISSUE_TEMPLATE/runbook-vet-center-cap-to-outstation.md b/.github/ISSUE_TEMPLATE/runbook-vet-center-cap-to-outstation.md index 8cd5f00f33..f3998b848d 100644 --- a/.github/ISSUE_TEMPLATE/runbook-vet-center-cap-to-outstation.md +++ b/.github/ISSUE_TEMPLATE/runbook-vet-center-cap-to-outstation.md @@ -2,7 +2,8 @@ name: Runbook - Vet Center CAP becomes an Outstation about: Steps for upgrading a CAP to an Outstation title: 'Vet Center CAP becomes an Outstation: ' -labels: Change request, Drupal engineering, Facilities, Flagged Facilities, User support, Vet Center +labels: Change request, Drupal engineering, Facilities, Flagged Facilities, User support, + Vet Center assignees: '' --- diff --git a/.github/ISSUE_TEMPLATE/runbook-vet-center-closed.md b/.github/ISSUE_TEMPLATE/runbook-vet-center-closed.md index 1c5f8ead59..af1f286b02 100644 --- a/.github/ISSUE_TEMPLATE/runbook-vet-center-closed.md +++ b/.github/ISSUE_TEMPLATE/runbook-vet-center-closed.md @@ -2,7 +2,8 @@ name: Runbook - Vet Center, Outstation, Mobile Vet Center Facility closed about: Steps for archiving a Vet Center facility in VA.gov CMS. title: 'Vet Center Facility closed: ' -labels: Change request, Drupal engineering, Facilities, Flagged Facilities, User support, Vet Center +labels: Change request, Drupal engineering, Facilities, Flagged Facilities, User support, + Vet Center assignees: '' --- diff --git a/.github/ISSUE_TEMPLATE/runbook-vet-center-name-change.md b/.github/ISSUE_TEMPLATE/runbook-vet-center-name-change.md index 03a6e68fd1..4e6a4ba750 100644 --- a/.github/ISSUE_TEMPLATE/runbook-vet-center-name-change.md +++ b/.github/ISSUE_TEMPLATE/runbook-vet-center-name-change.md @@ -2,10 +2,12 @@ name: Runbook - Vet Center, Outstation, Mobile Vet Center name change about: Steps for updating names and URLs title: 'Vet Center name change: ' -labels: Change request, Drupal engineering, Facilities, Flagged Facilities, User support, Vet Center +labels: Change request, Drupal engineering, Facilities, Flagged Facilities, User support, + Vet Center assignees: '' --- + ## Vet Center, Outstation, Mobile Vet Center facility name change - Description Vet Centers, Mobile Vet Centers, and Vet Center Oustations may all be subject to name changes in VAST. Not all steps apply to each type of facility -- please pay attention and make sure you've done the relevant steps based on facility type. diff --git a/.github/ISSUE_TEMPLATE/runbook-vet-center-new.md b/.github/ISSUE_TEMPLATE/runbook-vet-center-new.md index ccf5c93b6b..71e7e0a0f5 100644 --- a/.github/ISSUE_TEMPLATE/runbook-vet-center-new.md +++ b/.github/ISSUE_TEMPLATE/runbook-vet-center-new.md @@ -2,7 +2,8 @@ name: Runbook - New Vet Center Facility about: changing facility information in the CMS for Vet Center facilities title: 'New Vet Center Facility: ' -labels: Change request, Vet Center, Facilities, Flagged Facilities, User support, Drupal engineering +labels: Change request, Drupal engineering, Facilities, Flagged Facilities, User support, + Vet Center assignees: '' --- diff --git a/.github/ISSUE_TEMPLATE/runbook-vet-center-outstation-to-vet-center.md b/.github/ISSUE_TEMPLATE/runbook-vet-center-outstation-to-vet-center.md index 455cd72d35..5b6c096203 100644 --- a/.github/ISSUE_TEMPLATE/runbook-vet-center-outstation-to-vet-center.md +++ b/.github/ISSUE_TEMPLATE/runbook-vet-center-outstation-to-vet-center.md @@ -2,10 +2,12 @@ name: Runbook - Vet Center Outstation becomes a Vet Center about: Steps for upgrading an outstation to a full Vet Center title: 'Outstation becomes Vet Center: ' -labels: Change request, Drupal engineering, Facilities, Flagged Facilities, User support, Vet Center +labels: Change request, Drupal engineering, Facilities, Flagged Facilities, User support, + Vet Center assignees: '' --- + # Vet Center Outstation becomes a Vet Center ## Background Outstations have entries in VAST. When an Outstation becomes a full Vet Center, diff --git a/.github/ISSUE_TEMPLATE/sitewide-crew-member-onboarding.md b/.github/ISSUE_TEMPLATE/sitewide-crew-member-onboarding.md index ad5e597781..bbe16171d0 100644 --- a/.github/ISSUE_TEMPLATE/sitewide-crew-member-onboarding.md +++ b/.github/ISSUE_TEMPLATE/sitewide-crew-member-onboarding.md @@ -9,4 +9,4 @@ assignees: '' # Deprecated -Instead, clone the A6 Google [Onboarding Template doc](https://docs.google.com/document/d/1Ea4axA2GTyce0gtyI4mdFhbtBzYxNer9S0x264vw814/edit#heading=h.rcrak4gblqw3). +Instead, clone the A6 Google [Onboarding Template doc](https://docs.google.com/document/d/1Ea4axA2GTyce0gtyI4mdFhbtBzYxNer9S0x264vw814/edit#heading=h.rcrak4gblqw3). diff --git a/.github/ISSUE_TEMPLATE/sitewide-qa-plan.md b/.github/ISSUE_TEMPLATE/sitewide-qa-plan.md index 014ed627ff..95f4df1da2 100644 --- a/.github/ISSUE_TEMPLATE/sitewide-qa-plan.md +++ b/.github/ISSUE_TEMPLATE/sitewide-qa-plan.md @@ -2,7 +2,7 @@ name: Sitewide QA Plan about: QA plan template for test coverage of big-enough features title: 'QA test plan for: ' -labels: sitewide, Facilities, Manual QA, Public Websites +labels: Facilities, Manual QA, Public Websites, sitewide assignees: '' --- diff --git a/.github/ISSUE_TEMPLATE/tier-1-or-2-ongoing-work.md b/.github/ISSUE_TEMPLATE/tier-1-or-2-ongoing-work.md index 81d4f61dcf..cfa18c2066 100644 --- a/.github/ISSUE_TEMPLATE/tier-1-or-2-ongoing-work.md +++ b/.github/ISSUE_TEMPLATE/tier-1-or-2-ongoing-work.md @@ -19,4 +19,4 @@ Tier 2 expectations here: https://docs.google.com/document/d/15oe0wtGI_MdaScYpjJ ### Table to help track issues and approximate time spent | Date | Issue | Resolution | Time Spent | -| -- | -- | -- | -- | \ No newline at end of file +| -- | -- | -- | -- | diff --git a/.github/ISSUE_TEMPLATE/ux-writing.md b/.github/ISSUE_TEMPLATE/ux-writing.md index fb89db5fee..ed2f091479 100644 --- a/.github/ISSUE_TEMPLATE/ux-writing.md +++ b/.github/ISSUE_TEMPLATE/ux-writing.md @@ -37,4 +37,4 @@ E.g. *As a user who may be making changes to content, I'd like a message that wa - [ ] Validate draft with those responsible for the work - [ ] Peer review by a member of the design pod - [ ] Finalize edits to text, and mark as ready to implement in the original issue -- [ ] Document strategy behind language choices that are relevant to [the CMS content style guide](https://github.com/department-of-veterans-affairs/va.gov-team/tree/master/platform/cms/content-style-guide) \ No newline at end of file +- [ ] Document strategy behind language choices that are relevant to [the CMS content style guide](https://github.com/department-of-veterans-affairs/va.gov-team/tree/master/platform/cms/content-style-guide) From aef6346f50c4faf23466df00f702eec77fa3575c Mon Sep 17 00:00:00 2001 From: Christian Burk Date: Tue, 1 Oct 2024 16:45:20 -0500 Subject: [PATCH 85/86] [DOCS] Update migrations-facility.md --- READMES/migrations-facility.md | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/READMES/migrations-facility.md b/READMES/migrations-facility.md index 292174b760..fd692da1ea 100644 --- a/READMES/migrations-facility.md +++ b/READMES/migrations-facility.md @@ -131,6 +131,32 @@ foreach ($facility_migrations as $facility_migration) { 5. Run the System Health Service migration. Look for presence of migrate messages. The messages will indicate the problems with the data. Fix, rollback, repeat until there are no messages created and the row count of the data, matches the created count. 6. Run the Facility Health Service migration. Look for messages. The messages will indicate the problems with the data. Fix, rollback, repeat until there are no messages created and the row count of the data, matches the created count. +## CMS supplemental data +When a facility is updated, such as when the operated status is edited, a payload of data about that facility is added to the Post API Queue to be sent to Lighthouse. Similarly, when a facility service is created or edited, a payload of data about that service is added to the queue. The data flow is as follows: + +## Diagram of current process for pushing facility data +```mermaid +flowchart TD + A(Editor updates facility or adds or updates service in CMS) --> B(CMS adds node-related payload item to queue) + B --> C(CMS processes Post API Queue queue on cron) + C --> D{Is the queue empty or has it reached item processing limit?} + D -- Yes -->E(QueueProcessingCompleteEvent triggered) + D -- No --> F(Sends a queue item to Lighthouse) + E --> G{Does count of items at end equal count at start?} + F --> H{Successfully received by Lighthouse?} + G -- Yes --> I(Send error to Slack--or dblogs if no Slack) + style I stroke-width:4px,font-weight:bold,fill:#f96; + G -- No --> J(((End queue processing))) + H -- Yes -->K(Item removed from the queue) + H -- No --> L{What is the issue?} + I --> J + K --> D + L -- 200 but response long -->B + L -- 201 or 202 --> M(Send error to Slack and dblogs) + style M stroke-width:4px,font-weight:bold,fill:#f96; + L --> D +``` + ---- [Table of Contents](../README.md) From e32cec7506308088e1308f4e2aa9bc8be52dab06 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 1 Oct 2024 18:37:56 -0700 Subject: [PATCH 86/86] Bump va-gov/content-build from 0.0.3604 to 0.0.3605 (#19381) Bumps [va-gov/content-build](https://github.com/department-of-veterans-affairs/content-build) from 0.0.3604 to 0.0.3605. - [Release notes](https://github.com/department-of-veterans-affairs/content-build/releases) - [Commits](https://github.com/department-of-veterans-affairs/content-build/compare/v0.0.3604...v0.0.3605) --- updated-dependencies: - dependency-name: va-gov/content-build dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- composer.json | 2 +- composer.lock | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/composer.json b/composer.json index 841d436a75..6454bf270c 100644 --- a/composer.json +++ b/composer.json @@ -227,7 +227,7 @@ "symfony/phpunit-bridge": "^5.1", "symfony/process": "^6.3", "symfony/routing": "^6.3", - "va-gov/content-build": "^0.0.3604", + "va-gov/content-build": "^0.0.3605", "vlucas/phpdotenv": "^5.6", "webflo/drupal-finder": "1.2.2", "webmozart/path-util": "^2.3", diff --git a/composer.lock b/composer.lock index 581ce1347b..dff3792cb2 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": "2fc824b50acb01ef4f513d45defc0716", + "content-hash": "7d710afc8045d7cf002104aed787d1be", "packages": [ { "name": "asm89/stack-cors", @@ -26455,16 +26455,16 @@ }, { "name": "va-gov/content-build", - "version": "v0.0.3604", + "version": "v0.0.3605", "source": { "type": "git", "url": "https://github.com/department-of-veterans-affairs/content-build.git", - "reference": "82c44cadde7312b2467621526ccd25ab3794b140" + "reference": "bcf78a8e7d09491db9d1c0a868ce39d76d2d056d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/department-of-veterans-affairs/content-build/zipball/82c44cadde7312b2467621526ccd25ab3794b140", - "reference": "82c44cadde7312b2467621526ccd25ab3794b140", + "url": "https://api.github.com/repos/department-of-veterans-affairs/content-build/zipball/bcf78a8e7d09491db9d1c0a868ce39d76d2d056d", + "reference": "bcf78a8e7d09491db9d1c0a868ce39d76d2d056d", "shasum": "" }, "type": "node-project", @@ -26491,9 +26491,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.3604" + "source": "https://github.com/department-of-veterans-affairs/content-build/tree/v0.0.3605" }, - "time": "2024-09-27T19:42:28+00:00" + "time": "2024-09-30T18:49:49+00:00" }, { "name": "vlucas/phpdotenv",