diff --git a/composer.json b/composer.json
index 6dd88b1574..b1d0a4e4ea 100644
--- a/composer.json
+++ b/composer.json
@@ -229,7 +229,7 @@
"symfony/phpunit-bridge": "^5.1",
"symfony/process": "^6.3",
"symfony/routing": "^6.3",
- "va-gov/content-build": "^0.0.3611",
+ "va-gov/content-build": "^0.0.3612",
"vlucas/phpdotenv": "^5.6",
"webflo/drupal-finder": "1.2.2",
"webmozart/path-util": "^2.3",
diff --git a/composer.lock b/composer.lock
index 55ec0bf8ce..f670089395 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": "d611d7b804b8f2f4f8ea07a4a3a3cd55",
+ "content-hash": "09f17de1694170b346fd43b8b022d5bf",
"packages": [
{
"name": "asm89/stack-cors",
@@ -26644,16 +26644,16 @@
},
{
"name": "va-gov/content-build",
- "version": "v0.0.3611",
+ "version": "v0.0.3612",
"source": {
"type": "git",
"url": "https://github.com/department-of-veterans-affairs/content-build.git",
- "reference": "f44a4ade749e41ae1d98afd735e29ea7fcf619d4"
+ "reference": "895da1620d56d11772955b6aa2d872810a16771f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/department-of-veterans-affairs/content-build/zipball/f44a4ade749e41ae1d98afd735e29ea7fcf619d4",
- "reference": "f44a4ade749e41ae1d98afd735e29ea7fcf619d4",
+ "url": "https://api.github.com/repos/department-of-veterans-affairs/content-build/zipball/895da1620d56d11772955b6aa2d872810a16771f",
+ "reference": "895da1620d56d11772955b6aa2d872810a16771f",
"shasum": ""
},
"type": "node-project",
@@ -26680,9 +26680,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.3611"
+ "source": "https://github.com/department-of-veterans-affairs/content-build/tree/v0.0.3612"
},
- "time": "2024-10-07T22:27:44+00:00"
+ "time": "2024-10-09T21:01:11+00:00"
},
{
"name": "vlucas/phpdotenv",
@@ -27673,6 +27673,7 @@
"drupal/fieldhelptext": 10,
"drupal/flag": 10,
"drupal/graphql_menu": 15,
+ "drupal/html_tag_usage": 10,
"drupal/image_style_warmer": 5,
"drupal/jsonapi_resources": 10,
"drupal/limited_field_widgets": 15,
@@ -27692,13 +27693,12 @@
"drupal/simplesamlphp_auth": 5,
"drupal/styleguide": 10,
"drupal/user_history": 15,
- "drupal/viewfield": 10,
- "drupal/html_tag_usage": 10
+ "drupal/viewfield": 10
},
"prefer-stable": true,
"prefer-lowest": false,
- "platform": [],
- "platform-dev": [],
+ "platform": {},
+ "platform-dev": {},
"platform-overrides": {
"php": "8.1"
},
diff --git a/config/sync/core.entity_form_display.node.health_care_local_facility.default.yml b/config/sync/core.entity_form_display.node.health_care_local_facility.default.yml
index 28204b937b..db9fb178fa 100644
--- a/config/sync/core.entity_form_display.node.health_care_local_facility.default.yml
+++ b/config/sync/core.entity_form_display.node.health_care_local_facility.default.yml
@@ -50,7 +50,7 @@ third_party_settings:
label: 'Section settings'
region: content
parent_name: ''
- weight: 9
+ weight: 10
format_type: details_sidebar
format_settings:
classes: ''
@@ -66,7 +66,7 @@ third_party_settings:
label: 'Editorial Workflow'
region: content
parent_name: ''
- weight: 10
+ weight: 11
format_type: fieldset
format_settings:
classes: ''
@@ -79,7 +79,7 @@ third_party_settings:
label: '"Prepare for your visit"'
region: content
parent_name: ''
- weight: 7
+ weight: 8
format_type: details
format_settings:
classes: ''
@@ -94,7 +94,7 @@ third_party_settings:
label: 'VAMC system'
region: content
parent_name: ''
- weight: 3
+ weight: 4
format_type: fieldset
format_settings:
classes: ''
@@ -108,7 +108,7 @@ third_party_settings:
label: 'Title and summary'
region: content
parent_name: ''
- weight: 4
+ weight: 5
format_type: fieldset
format_settings:
classes: ''
@@ -120,7 +120,7 @@ third_party_settings:
label: 'Social Media'
region: content
parent_name: ''
- weight: 6
+ weight: 7
format_type: fieldset
format_settings:
classes: ''
@@ -134,7 +134,7 @@ third_party_settings:
label: 'Operating status'
region: content
parent_name: ''
- weight: 2
+ weight: 3
format_type: fieldset
format_settings:
classes: ''
@@ -149,7 +149,7 @@ third_party_settings:
label: 'Meta Tags'
region: content
parent_name: ''
- weight: 5
+ weight: 6
format_type: fieldset
format_settings:
classes: ''
@@ -159,6 +159,7 @@ third_party_settings:
group_locations_and_contact_info:
children:
- group_facility_data_from_vast
+ - field_mental_health_phone
label: 'Locations and contact information'
region: content
parent_name: ''
@@ -232,7 +233,7 @@ content:
third_party_settings: { }
field_administration:
type: options_select
- weight: 13
+ weight: 14
region: content
settings: { }
third_party_settings: { }
@@ -288,7 +289,7 @@ content:
third_party_settings: { }
field_last_saved_by_an_editor:
type: datetime_timestamp
- weight: 11
+ weight: 12
region: content
settings: { }
third_party_settings: { }
@@ -306,7 +307,7 @@ content:
third_party_settings: { }
field_main_location:
type: boolean_checkbox
- weight: 21
+ weight: 22
region: content
settings:
display_label: true
@@ -318,6 +319,13 @@ content:
settings:
media_types: { }
third_party_settings: { }
+ field_mental_health_phone:
+ type: telephone_default
+ weight: 21
+ region: content
+ settings:
+ placeholder: ''
+ third_party_settings: { }
field_mobile:
type: boolean_checkbox
weight: 26
@@ -410,7 +418,7 @@ content:
third_party_settings: { }
path:
type: path
- weight: 8
+ weight: 9
region: content
settings: { }
third_party_settings: { }
@@ -432,7 +440,6 @@ content:
hidden:
created: true
field_local_health_care_service_: true
- field_mental_health_phone: true
field_meta_tags: true
field_supplemental_status: true
field_supplemental_status_more_i: true
diff --git a/config/sync/core.entity_form_display.node.health_care_local_facility.inline_entity_form.yml b/config/sync/core.entity_form_display.node.health_care_local_facility.inline_entity_form.yml
index 0a1185a15f..192365774c 100644
--- a/config/sync/core.entity_form_display.node.health_care_local_facility.inline_entity_form.yml
+++ b/config/sync/core.entity_form_display.node.health_care_local_facility.inline_entity_form.yml
@@ -31,6 +31,8 @@ dependencies:
- node.type.health_care_local_facility
module:
- field_group
+ - ief_table_view_mode
+ - telephone
- textfield_counter
third_party_settings:
field_group:
@@ -40,7 +42,7 @@ third_party_settings:
label: 'Section settings'
region: hidden
parent_name: ''
- weight: 25
+ weight: 31
format_type: details_sidebar
format_settings:
classes: ''
@@ -50,13 +52,13 @@ third_party_settings:
weight: -10
group_editorial_workflow:
children:
- - revision_log
- moderation_state
+ - revision_log
- flag
label: 'Editorial Workflow'
region: hidden
parent_name: ''
- weight: 27
+ weight: 32
format_type: fieldset
format_settings:
classes: ''
@@ -69,7 +71,7 @@ third_party_settings:
label: 'Facility Locator'
region: hidden
parent_name: ''
- weight: 23
+ weight: 29
format_type: fieldset
format_settings:
classes: ''
@@ -83,7 +85,7 @@ third_party_settings:
label: 'Location services'
region: hidden
parent_name: ''
- weight: 24
+ weight: 30
format_type: details
format_settings:
classes: ''
@@ -98,7 +100,7 @@ third_party_settings:
label: Region
region: hidden
parent_name: ''
- weight: 22
+ weight: 28
format_type: fieldset
format_settings:
classes: ''
@@ -110,6 +112,13 @@ targetEntityType: node
bundle: health_care_local_facility
mode: inline_entity_form
content:
+ field_mental_health_phone:
+ type: telephone_default
+ weight: 22
+ region: content
+ settings:
+ placeholder: ''
+ third_party_settings: { }
field_operating_status_facility:
type: options_select
weight: 1
@@ -126,9 +135,29 @@ content:
maxlength: 300
counter_position: after
js_prevent_submit: true
+ count_only_mode: false
count_html_characters: true
textcount_status_message: '@remaining_count characters remaining'
third_party_settings: { }
+ field_telephone:
+ type: inline_entity_form_complex_table_view_mode
+ weight: 3
+ region: content
+ settings:
+ form_mode: default
+ override_labels: false
+ label_singular: ''
+ label_plural: ''
+ allow_new: true
+ allow_existing: false
+ match_operator: CONTAINS
+ allow_duplicate: false
+ collapsible: false
+ collapsed: false
+ revision: false
+ removed_reference: optional
+ allow_system_delete: false
+ third_party_settings: { }
title:
type: string_textfield
weight: 0
@@ -151,7 +180,6 @@ hidden:
field_location_services: true
field_main_location: true
field_media: true
- field_mental_health_phone: true
field_meta_tags: true
field_mobile: true
field_office_hours: true
@@ -159,7 +187,6 @@ hidden:
field_region_page: true
field_supplemental_status: true
field_supplemental_status_more_i: true
- field_telephone: true
field_timezone: true
flag: true
langcode: true
diff --git a/config/sync/core.entity_form_display.node.person_profile.default.yml b/config/sync/core.entity_form_display.node.person_profile.default.yml
index 186d053e10..a7215a2a60 100644
--- a/config/sync/core.entity_form_display.node.person_profile.default.yml
+++ b/config/sync/core.entity_form_display.node.person_profile.default.yml
@@ -29,6 +29,7 @@ dependencies:
- media_library
- paragraphs
- path
+ - telephone
- text
- textfield_counter
third_party_settings:
@@ -54,7 +55,7 @@ third_party_settings:
label: 'Editorial workflow'
region: content
parent_name: ''
- weight: 9
+ weight: 10
format_type: fieldset
format_settings:
classes: ''
@@ -80,6 +81,7 @@ third_party_settings:
group_contact_info:
children:
- field_email_address
+ - field_phone_number
- field_telephone
label: 'Contact info'
region: content
@@ -148,7 +150,7 @@ content:
third_party_settings: { }
field_body:
type: text_textarea
- weight: 9
+ weight: 13
region: content
settings:
rows: 5
@@ -156,14 +158,14 @@ content:
third_party_settings: { }
field_complete_biography:
type: file_generic
- weight: 11
+ weight: 14
region: content
settings:
progress_indicator: throbber
third_party_settings: { }
field_complete_biography_create:
type: boolean_checkbox
- weight: 7
+ weight: 11
region: content
settings:
display_label: true
@@ -186,7 +188,7 @@ content:
third_party_settings: { }
field_intro_text:
type: string_textarea_with_counter
- weight: 8
+ weight: 12
region: content
settings:
rows: 5
@@ -208,7 +210,7 @@ content:
third_party_settings: { }
field_last_saved_by_an_editor:
type: datetime_timestamp
- weight: 10
+ weight: 11
region: content
settings: { }
third_party_settings: { }
@@ -233,6 +235,13 @@ content:
region: content
settings: { }
third_party_settings: { }
+ field_phone_number:
+ type: telephone_default
+ weight: 6
+ region: content
+ settings:
+ placeholder: ''
+ third_party_settings: { }
field_photo_allow_hires_download:
type: boolean_checkbox
weight: 7
@@ -250,7 +259,7 @@ content:
third_party_settings: { }
field_telephone:
type: paragraphs
- weight: 6
+ weight: 7
region: content
settings:
title: Paragraph
@@ -294,7 +303,6 @@ content:
hidden:
created: true
field_meta_tags: true
- field_phone_number: true
langcode: true
promote: true
status: true
diff --git a/config/sync/core.entity_form_display.node.person_profile.inline_entity_form.yml b/config/sync/core.entity_form_display.node.person_profile.inline_entity_form.yml
index 8021f8e269..4920f18e2b 100644
--- a/config/sync/core.entity_form_display.node.person_profile.inline_entity_form.yml
+++ b/config/sync/core.entity_form_display.node.person_profile.inline_entity_form.yml
@@ -25,6 +25,7 @@ dependencies:
module:
- field_group
- media_library
+ - paragraphs
- telephone
- text
third_party_settings:
@@ -79,6 +80,7 @@ third_party_settings:
children:
- field_email_address
- field_phone_number
+ - field_telephone
label: 'Contact info'
region: content
parent_name: ''
@@ -178,7 +180,8 @@ content:
type: media_library_widget
weight: 4
region: content
- settings: { }
+ settings:
+ media_types: { }
third_party_settings: { }
field_name_first:
type: string_textfield
@@ -220,9 +223,27 @@ content:
size: 60
placeholder: ''
third_party_settings: { }
+ field_telephone:
+ type: paragraphs
+ weight: 8
+ region: content
+ settings:
+ title: Paragraph
+ title_plural: Paragraphs
+ edit_mode: open
+ closed_mode: summary
+ autocollapse: none
+ closed_mode_threshold: 0
+ add_mode: dropdown
+ form_display_mode: default
+ default_paragraph_type: ''
+ features:
+ collapse_edit_all: collapse_edit_all
+ duplicate: duplicate
+ third_party_settings: { }
moderation_state:
type: string_textfield
- weight: 0
+ weight: 10
region: content
settings:
size: 60
@@ -242,7 +263,6 @@ hidden:
field_complete_biography_create: true
field_last_saved_by_an_editor: true
field_meta_tags: true
- field_telephone: true
langcode: true
path: true
promote: true
diff --git a/config/sync/core.entity_form_display.node.vamc_system_billing_insurance.default.yml b/config/sync/core.entity_form_display.node.vamc_system_billing_insurance.default.yml
index 51a35af72d..36c3a150ea 100644
--- a/config/sync/core.entity_form_display.node.vamc_system_billing_insurance.default.yml
+++ b/config/sync/core.entity_form_display.node.vamc_system_billing_insurance.default.yml
@@ -26,6 +26,7 @@ dependencies:
- field_group
- office_hours
- paragraphs
+ - telephone
- viewfield
third_party_settings:
field_group:
@@ -104,6 +105,7 @@ third_party_settings:
attributes: ''
group_inquiries_about_copay:
children:
+ - field_phone_number
- field_telephone
- field_office_hours
label: 'For inquiries by phone about copay balance'
@@ -174,7 +176,7 @@ content:
third_party_settings: { }
field_cc_bottom_of_page_content:
type: entity_field_fetch_widget
- weight: 14
+ weight: 9
region: content
settings:
show_field_label: 0
@@ -183,7 +185,7 @@ content:
third_party_settings: { }
field_cc_related_links:
type: entity_field_fetch_widget
- weight: 15
+ weight: 10
region: content
settings:
show_field_label: '1'
@@ -192,7 +194,7 @@ content:
third_party_settings: { }
field_cc_top_of_page_content:
type: entity_field_fetch_widget
- weight: 14
+ weight: 9
region: content
settings:
show_field_label: 0
@@ -238,6 +240,13 @@ content:
settings:
collapsed: false
third_party_settings: { }
+ field_phone_number:
+ type: telephone_default
+ weight: 8
+ region: content
+ settings:
+ placeholder: ''
+ third_party_settings: { }
field_telephone:
type: paragraphs
weight: 9
@@ -279,7 +288,6 @@ content:
third_party_settings: { }
hidden:
created: true
- field_phone_number: true
field_service_name_and_descripti: true
langcode: true
path: true
diff --git a/config/sync/core.entity_form_display.taxonomy_term.va_benefits_taxonomy.default.yml b/config/sync/core.entity_form_display.taxonomy_term.va_benefits_taxonomy.default.yml
index 1709f61bb8..688d269b3e 100644
--- a/config/sync/core.entity_form_display.taxonomy_term.va_benefits_taxonomy.default.yml
+++ b/config/sync/core.entity_form_display.taxonomy_term.va_benefits_taxonomy.default.yml
@@ -3,6 +3,7 @@ langcode: en
status: true
dependencies:
config:
+ - field.field.taxonomy_term.va_benefits_taxonomy.field_application_process
- field.field.taxonomy_term.va_benefits_taxonomy.field_enforce_unique_id
- field.field.taxonomy_term.va_benefits_taxonomy.field_enforce_unique_value
- field.field.taxonomy_term.va_benefits_taxonomy.field_va_benefit_after_applying
@@ -108,6 +109,7 @@ third_party_settings:
children:
- field_va_benefit_app_form
- field_va_benefit_app_preparation
+ - field_application_process
- field_va_benefit_app_help
label: 'How to apply'
region: content
@@ -173,6 +175,14 @@ targetEntityType: taxonomy_term
bundle: va_benefits_taxonomy
mode: default
content:
+ field_application_process:
+ type: text_textarea
+ weight: 8
+ region: content
+ settings:
+ rows: 5
+ placeholder: ''
+ third_party_settings: { }
field_enforce_unique_id:
type: allow_only_one_widget
weight: 5
@@ -206,6 +216,7 @@ content:
maxlength: 60
counter_position: after
js_prevent_submit: false
+ count_only_mode: false
count_html_characters: false
textcount_status_message: '@remaining_count characters remaining'
third_party_settings: { }
@@ -225,7 +236,7 @@ content:
add_another: 'Add another form'
field_va_benefit_app_help:
type: text_textarea
- weight: 8
+ weight: 9
region: content
settings:
rows: 5
@@ -255,6 +266,7 @@ content:
maxlength: 500
counter_position: after
js_prevent_submit: false
+ count_only_mode: false
count_html_characters: false
textcount_status_message: '@remaining_count characters remaining'
third_party_settings:
@@ -347,6 +359,7 @@ content:
maxlength: 300
counter_position: after
js_prevent_submit: false
+ count_only_mode: false
count_html_characters: false
textcount_status_message: '@remaining_count characters remaining'
third_party_settings: { }
@@ -375,6 +388,7 @@ content:
maxlength: 255
counter_position: after
js_prevent_submit: false
+ count_only_mode: false
count_html_characters: false
textcount_status_message: '@remaining_count characters remaining'
third_party_settings: { }
diff --git a/config/sync/core.entity_view_display.node.health_care_local_facility.default.yml b/config/sync/core.entity_view_display.node.health_care_local_facility.default.yml
index 673bf63284..7882b68f4f 100644
--- a/config/sync/core.entity_view_display.node.health_care_local_facility.default.yml
+++ b/config/sync/core.entity_view_display.node.health_care_local_facility.default.yml
@@ -111,6 +111,7 @@ third_party_settings:
- field_address
- field_phone_number
- field_mobile
+ - field_mental_health_phone
- field_telephone
- field_office_hours
- field_timezone
@@ -201,6 +202,14 @@ content:
third_party_settings: { }
weight: 0
region: content
+ field_mental_health_phone:
+ type: telephone_link
+ label: inline
+ settings:
+ title: ''
+ third_party_settings: { }
+ weight: 19
+ region: content
field_mobile:
type: boolean
label: inline
@@ -303,7 +312,6 @@ hidden:
field_last_saved_by_an_editor: true
field_local_health_care_service_: true
field_main_location: true
- field_mental_health_phone: true
field_meta_tags: true
field_region_page: true
field_supplemental_status: true
diff --git a/config/sync/core.entity_view_display.node.vamc_system_billing_insurance.default.yml b/config/sync/core.entity_view_display.node.vamc_system_billing_insurance.default.yml
index 3414250df9..823bf69b33 100644
--- a/config/sync/core.entity_view_display.node.vamc_system_billing_insurance.default.yml
+++ b/config/sync/core.entity_view_display.node.vamc_system_billing_insurance.default.yml
@@ -24,6 +24,7 @@ dependencies:
- entity_reference_revisions
- field_group
- office_hours
+ - telephone
- user
- viewfield
third_party_settings:
@@ -69,6 +70,7 @@ third_party_settings:
attributes: ''
group_inquiries_about_copay:
children:
+ - field_phone_number
- field_telephone
- field_office_hours
label: 'For inquiries by phone about copay balance'
@@ -184,7 +186,15 @@ content:
schema:
enabled: false
third_party_settings: { }
- weight: 10
+ weight: 2
+ region: content
+ field_phone_number:
+ type: telephone_link
+ label: above
+ settings:
+ title: ''
+ third_party_settings: { }
+ weight: 0
region: content
field_telephone:
type: entity_reference_revisions_entity_view
@@ -193,7 +203,7 @@ content:
view_mode: default
link: ''
third_party_settings: { }
- weight: 9
+ weight: 1
region: content
flag_email_node:
settings: { }
@@ -217,7 +227,6 @@ hidden:
field_enforce_unique_combo: true
field_last_saved_by_an_editor: true
field_office: true
- field_phone_number: true
field_service_name_and_descripti: true
langcode: true
search_api_excerpt: true
diff --git a/config/sync/core.entity_view_display.taxonomy_term.va_benefits_taxonomy.default.yml b/config/sync/core.entity_view_display.taxonomy_term.va_benefits_taxonomy.default.yml
index b5b126b152..5ed5e347b5 100644
--- a/config/sync/core.entity_view_display.taxonomy_term.va_benefits_taxonomy.default.yml
+++ b/config/sync/core.entity_view_display.taxonomy_term.va_benefits_taxonomy.default.yml
@@ -3,6 +3,7 @@ langcode: en
status: true
dependencies:
config:
+ - field.field.taxonomy_term.va_benefits_taxonomy.field_application_process
- field.field.taxonomy_term.va_benefits_taxonomy.field_enforce_unique_id
- field.field.taxonomy_term.va_benefits_taxonomy.field_enforce_unique_value
- field.field.taxonomy_term.va_benefits_taxonomy.field_va_benefit_after_applying
@@ -81,6 +82,7 @@ third_party_settings:
children:
- field_va_benefit_app_form
- field_va_benefit_app_preparation
+ - field_application_process
- field_va_benefit_app_help
label: 'How to apply'
parent_name: ''
@@ -142,6 +144,13 @@ content:
third_party_settings: { }
weight: 8
region: content
+ field_application_process:
+ type: text_default
+ label: above
+ settings: { }
+ third_party_settings: { }
+ weight: 11
+ region: content
field_enforce_unique_id:
type: allow_only_one
label: hidden
@@ -184,7 +193,7 @@ content:
label: above
settings: { }
third_party_settings: { }
- weight: 11
+ weight: 12
region: content
field_va_benefit_app_preparation:
type: text_default
@@ -276,5 +285,6 @@ content:
weight: 11
region: content
hidden:
+ breadcrumbs: true
langcode: true
search_api_excerpt: true
diff --git a/config/sync/feature_toggle.features.yml b/config/sync/feature_toggle.features.yml
index f8bedb77c0..26292b8adc 100644
--- a/config/sync/feature_toggle.features.yml
+++ b/config/sync/feature_toggle.features.yml
@@ -59,3 +59,4 @@ features:
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
+ feature_telephone_migration_v1: FEATURE_TELEPHONE_MIGRATION_V1
diff --git a/config/sync/field.field.taxonomy_term.va_benefits_taxonomy.field_application_process.yml b/config/sync/field.field.taxonomy_term.va_benefits_taxonomy.field_application_process.yml
new file mode 100644
index 0000000000..84043bc412
--- /dev/null
+++ b/config/sync/field.field.taxonomy_term.va_benefits_taxonomy.field_application_process.yml
@@ -0,0 +1,28 @@
+uuid: d6af1a31-8bc6-49c1-89c4-72ecf28bd423
+langcode: en
+status: true
+dependencies:
+ config:
+ - field.storage.taxonomy_term.field_application_process
+ - filter.format.rich_text_limited
+ - taxonomy.vocabulary.va_benefits_taxonomy
+ module:
+ - text
+ - tmgmt_content
+third_party_settings:
+ tmgmt_content:
+ excluded: false
+id: taxonomy_term.va_benefits_taxonomy.field_application_process
+field_name: field_application_process
+entity_type: taxonomy_term
+bundle: va_benefits_taxonomy
+label: 'Application process'
+description: 'Briefly describe the benefit application process, including which form(s) are required or optional.'
+required: false
+translatable: true
+default_value: { }
+default_value_callback: ''
+settings:
+ allowed_formats:
+ - rich_text_limited
+field_type: text_long
diff --git a/config/sync/field.storage.taxonomy_term.field_application_process.yml b/config/sync/field.storage.taxonomy_term.field_application_process.yml
new file mode 100644
index 0000000000..19133b02a4
--- /dev/null
+++ b/config/sync/field.storage.taxonomy_term.field_application_process.yml
@@ -0,0 +1,19 @@
+uuid: d1ac49a1-a5b9-453c-ab7d-d638335da6f4
+langcode: en
+status: true
+dependencies:
+ module:
+ - taxonomy
+ - text
+id: taxonomy_term.field_application_process
+field_name: field_application_process
+entity_type: taxonomy_term
+type: text_long
+settings: { }
+module: text
+locked: false
+cardinality: 1
+translatable: true
+indexes: { }
+persist_with_no_fields: false
+custom_storage: false
diff --git a/config/sync/views.view.rich_text_field_audit.yml b/config/sync/views.view.rich_text_field_audit.yml
index dc9eef7cbd..37aaec00df 100644
--- a/config/sync/views.view.rich_text_field_audit.yml
+++ b/config/sync/views.view.rich_text_field_audit.yml
@@ -4761,6 +4761,1409 @@ display:
- 'config:field.storage.paragraph.field_phone_extension'
- 'config:field.storage.paragraph.field_phone_number'
- workbench_access_view
+ missing_phone_numbers:
+ id: missing_phone_numbers
+ display_title: 'Content Audit - Missing Phone numbers'
+ display_plugin: page
+ position: 3
+ display_options:
+ title: 'Content Audit - Phone Numbers'
+ fields:
+ title:
+ id: title
+ table: node_field_data
+ field: title
+ relationship: none
+ group_type: group
+ admin_label: ''
+ entity_type: node
+ entity_field: title
+ plugin_id: field
+ label: Title
+ exclude: false
+ alter:
+ alter_text: false
+ make_link: false
+ absolute: false
+ word_boundary: false
+ ellipsis: false
+ strip_tags: false
+ trim: false
+ 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: string
+ settings:
+ link_to_entity: true
+ 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
+ nid:
+ id: nid
+ table: node_field_data
+ field: nid
+ relationship: none
+ group_type: group
+ admin_label: ''
+ entity_type: node
+ entity_field: nid
+ plugin_id: field
+ label: ID
+ exclude: false
+ 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: number_integer
+ settings:
+ thousand_separator: ''
+ prefix_suffix: true
+ 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
+ edit_node_1:
+ id: edit_node_1
+ table: node_field_revision
+ field: edit_node
+ relationship: none
+ group_type: group
+ admin_label: ''
+ entity_type: node
+ plugin_id: entity_link_edit
+ label: ''
+ exclude: false
+ alter:
+ alter_text: true
+ text: 'Edit'
+ 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: false
+ element_wrapper_type: ''
+ element_wrapper_class: ''
+ element_default_classes: true
+ empty: 'Edit'
+ hide_empty: false
+ empty_zero: false
+ hide_alter_empty: true
+ text: edit
+ output_url_as_text: true
+ absolute: false
+ type:
+ id: type
+ table: node_field_data
+ field: type
+ relationship: none
+ group_type: group
+ admin_label: ''
+ entity_type: node
+ entity_field: type
+ plugin_id: field
+ label: 'Content type'
+ exclude: false
+ 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: target_id
+ type: entity_reference_label
+ settings:
+ link: false
+ group_column: target_id
+ 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
+ changed:
+ id: changed
+ table: node_field_data
+ field: changed
+ relationship: none
+ group_type: group
+ admin_label: ''
+ entity_type: node
+ entity_field: changed
+ plugin_id: field
+ label: Updated
+ exclude: false
+ 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: timestamp
+ settings:
+ date_format: short
+ custom_date_format: ''
+ timezone: ''
+ tooltip:
+ date_format: ''
+ custom_date_format: ''
+ time_diff:
+ enabled: false
+ future_format: '@interval hence'
+ past_format: '@interval ago'
+ granularity: 2
+ refresh: 60
+ 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
+ moderation_state:
+ id: moderation_state
+ table: node_field_data
+ field: moderation_state
+ relationship: none
+ group_type: group
+ admin_label: ''
+ entity_type: node
+ plugin_id: moderation_state_field
+ label: 'Moderation state'
+ exclude: false
+ 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: content_moderation_state
+ 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
+ field_administration:
+ id: field_administration
+ table: node__field_administration
+ field: field_administration
+ relationship: none
+ group_type: group
+ admin_label: ''
+ plugin_id: field
+ label: Section
+ exclude: false
+ 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: target_id
+ type: entity_reference_label
+ settings:
+ link: true
+ group_column: target_id
+ 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
+ field_phone_number:
+ id: field_phone_number
+ table: node__field_phone_number
+ field: field_phone_number
+ relationship: none
+ group_type: group
+ admin_label: ''
+ plugin_id: field
+ label: 'Direct line'
+ exclude: false
+ 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: telephone_link
+ settings:
+ title: ''
+ 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
+ field_mental_health_phone:
+ id: field_mental_health_phone
+ table: node__field_mental_health_phone
+ field: field_mental_health_phone
+ relationship: none
+ group_type: group
+ admin_label: ''
+ plugin_id: field
+ label: 'Mental Health Phone (old)'
+ exclude: false
+ 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: telephone_link
+ settings:
+ title: ''
+ 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
+ field_va_health_connect_phone:
+ id: field_va_health_connect_phone
+ table: node__field_va_health_connect_phone
+ field: field_va_health_connect_phone
+ relationship: none
+ group_type: group
+ admin_label: ''
+ plugin_id: field
+ label: 'VA Health Connect phone number'
+ exclude: false
+ 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: telephone_link
+ settings:
+ title: ''
+ 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
+ field_phone_extension:
+ id: field_phone_extension
+ table: paragraph__field_phone_extension
+ field: field_phone_extension
+ relationship: field_telephone
+ group_type: group
+ admin_label: ''
+ plugin_id: field
+ label: ''
+ exclude: true
+ alter:
+ alter_text: true
+ text: ', ext. {{ field_phone_extension }} '
+ 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: false
+ 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: string
+ 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
+ field_phone_number_1:
+ id: field_phone_number_1
+ table: paragraph__field_phone_number
+ field: field_phone_number
+ relationship: field_telephone
+ group_type: group
+ admin_label: ''
+ plugin_id: field
+ label: 'Staff profile, Mental health (VAMC facility), or Billing and insurance phone'
+ exclude: false
+ alter:
+ alter_text: true
+ text: '{{ field_phone_number_1 }}{{ field_phone_extension }}'
+ 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: string
+ 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
+ filters:
+ title:
+ id: title
+ table: node_field_data
+ field: title
+ relationship: none
+ group_type: group
+ admin_label: ''
+ entity_type: node
+ entity_field: title
+ plugin_id: string
+ operator: contains
+ value: ''
+ group: 1
+ exposed: true
+ expose:
+ operator_id: title_op
+ label: 'Title contains'
+ description: ''
+ use_operator: false
+ operator: title_op
+ operator_limit_selection: false
+ operator_list: { }
+ identifier: title
+ required: false
+ remember: false
+ multiple: false
+ remember_roles:
+ authenticated: authenticated
+ anonymous: '0'
+ content_api_consumer: '0'
+ content_creator_benefits_hubs: '0'
+ content_creator_resources_and_support: '0'
+ office_content_creator: '0'
+ vamc_content_creator: '0'
+ content_creator_vet_center: '0'
+ content_editor: '0'
+ content_reviewer: '0'
+ content_publisher: '0'
+ content_admin: '0'
+ redirect_administrator: '0'
+ admnistrator_users: '0'
+ administrator: '0'
+ placeholder: ''
+ is_grouped: false
+ group_info:
+ label: ''
+ description: ''
+ identifier: ''
+ optional: true
+ widget: select
+ multiple: false
+ remember: false
+ default_group: All
+ default_group_multiple: { }
+ group_items: { }
+ type:
+ id: type
+ table: node_field_data
+ field: type
+ relationship: none
+ group_type: group
+ admin_label: ''
+ entity_type: node
+ entity_field: type
+ plugin_id: bundle
+ operator: in
+ value:
+ page: page
+ centralized_content: centralized_content
+ basic_landing_page: basic_landing_page
+ nca_facility: nca_facility
+ press_release: press_release
+ press_releases_listing: press_releases_listing
+ support_resources_detail_page: support_resources_detail_page
+ person_profile: person_profile
+ step_by_step: step_by_step
+ support_service: support_service
+ health_care_region_detail_page: health_care_region_detail_page
+ health_care_local_facility: health_care_local_facility
+ health_care_local_health_service: health_care_local_health_service
+ vha_facility_nonclinical_service: vha_facility_nonclinical_service
+ health_care_region_page: health_care_region_page
+ full_width_banner_alert: full_width_banner_alert
+ vamc_system_billing_insurance: vamc_system_billing_insurance
+ regional_health_care_service_des: regional_health_care_service_des
+ vamc_system_medical_records_offi: vamc_system_medical_records_offi
+ vamc_operating_status_and_alerts: vamc_operating_status_and_alerts
+ vamc_system_policies_page: vamc_system_policies_page
+ vamc_system_register_for_care: vamc_system_register_for_care
+ vba_facility: vba_facility
+ vba_facility_service: vba_facility_service
+ vet_center: vet_center
+ vet_center_cap: vet_center_cap
+ vet_center_facility_health_servi: vet_center_facility_health_servi
+ vet_center_locations_list: vet_center_locations_list
+ vet_center_mobile_vet_center: vet_center_mobile_vet_center
+ vet_center_outstation: vet_center_outstation
+ group: 1
+ exposed: true
+ expose:
+ operator_id: type_op
+ label: 'Content type'
+ description: ''
+ use_operator: false
+ operator: type_op
+ operator_limit_selection: false
+ operator_list: { }
+ identifier: type
+ required: false
+ remember: false
+ multiple: false
+ remember_roles:
+ authenticated: authenticated
+ anonymous: '0'
+ content_api_consumer: '0'
+ content_creator_benefits_hubs: '0'
+ content_creator_resources_and_support: '0'
+ office_content_creator: '0'
+ vamc_content_creator: '0'
+ content_creator_vet_center: '0'
+ content_editor: '0'
+ content_reviewer: '0'
+ content_publisher: '0'
+ content_admin: '0'
+ redirect_administrator: '0'
+ admnistrator_users: '0'
+ administrator: '0'
+ homepage_manager: '0'
+ translation_manager: '0'
+ next_js: '0'
+ reduce: true
+ is_grouped: false
+ group_info:
+ label: ''
+ description: ''
+ identifier: ''
+ optional: true
+ widget: select
+ multiple: false
+ remember: false
+ default_group: All
+ default_group_multiple: { }
+ group_items: { }
+ moderation_state_multiple_workflow_filter:
+ id: moderation_state_multiple_workflow_filter
+ table: node
+ field: moderation_state_multiple_workflow_filter
+ relationship: none
+ group_type: group
+ admin_label: ''
+ entity_type: node
+ plugin_id: moderation_state_multiple_workflow_filter
+ operator: or
+ value: { }
+ group: 1
+ exposed: true
+ expose:
+ operator_id: moderation_state_op
+ label: 'Moderation state'
+ description: ''
+ use_operator: false
+ operator: moderation_state_multiple_workflow_filter_op
+ operator_limit_selection: false
+ operator_list: { }
+ identifier: moderation_state
+ required: false
+ remember: false
+ multiple: false
+ remember_roles:
+ authenticated: authenticated
+ anonymous: '0'
+ content_api_consumer: '0'
+ content_creator_benefits_hubs: '0'
+ content_creator_resources_and_support: '0'
+ office_content_creator: '0'
+ vamc_content_creator: '0'
+ content_creator_vet_center: '0'
+ content_editor: '0'
+ content_reviewer: '0'
+ content_publisher: '0'
+ content_admin: '0'
+ redirect_administrator: '0'
+ admnistrator_users: '0'
+ administrator: '0'
+ homepage_manager: '0'
+ translation_manager: '0'
+ next_js: '0'
+ reduce: 0
+ is_grouped: false
+ group_info:
+ label: ''
+ description: ''
+ identifier: ''
+ optional: true
+ widget: select
+ multiple: false
+ remember: false
+ default_group: All
+ default_group_multiple: { }
+ group_items: { }
+ reduce_duplicates: 0
+ workbench_access_section__section:
+ id: workbench_access_section__section
+ table: node
+ field: workbench_access_section__section
+ relationship: none
+ group_type: group
+ admin_label: ''
+ entity_type: node
+ plugin_id: workbench_access_section
+ operator: in
+ value: { }
+ group: 1
+ exposed: true
+ expose:
+ operator_id: workbench_access_section__section_op
+ label: Section
+ description: ''
+ use_operator: false
+ operator: workbench_access_section__section_op
+ operator_limit_selection: false
+ operator_list: { }
+ identifier: workbench_access_section__section
+ required: false
+ remember: false
+ multiple: false
+ remember_roles:
+ authenticated: authenticated
+ anonymous: '0'
+ content_api_consumer: '0'
+ content_creator_benefits_hubs: '0'
+ content_creator_resources_and_support: '0'
+ office_content_creator: '0'
+ vamc_content_creator: '0'
+ content_creator_vet_center: '0'
+ content_editor: '0'
+ content_reviewer: '0'
+ content_publisher: '0'
+ content_admin: '0'
+ redirect_administrator: '0'
+ admnistrator_users: '0'
+ administrator: '0'
+ reduce: 1
+ is_grouped: false
+ group_info:
+ label: ''
+ description: ''
+ identifier: ''
+ optional: true
+ widget: select
+ multiple: false
+ remember: false
+ default_group: All
+ default_group_multiple: { }
+ group_items: { }
+ reduce_duplicates: 0
+ section_filter:
+ show_hierarchy: 1
+ combine:
+ id: combine
+ table: views
+ field: combine
+ relationship: none
+ group_type: group
+ admin_label: ''
+ plugin_id: combine
+ operator: contains
+ value: ''
+ group: 1
+ exposed: true
+ expose:
+ operator_id: combine_op
+ label: 'Phone Number contains'
+ description: ''
+ use_operator: false
+ operator: combine_op
+ operator_limit_selection: false
+ operator_list: { }
+ identifier: phone
+ required: false
+ remember: false
+ multiple: false
+ remember_roles:
+ authenticated: authenticated
+ anonymous: '0'
+ content_api_consumer: '0'
+ content_creator_benefits_hubs: '0'
+ content_creator_resources_and_support: '0'
+ office_content_creator: '0'
+ vamc_content_creator: '0'
+ content_creator_vet_center: '0'
+ content_editor: '0'
+ content_reviewer: '0'
+ content_publisher: '0'
+ content_admin: '0'
+ redirect_administrator: '0'
+ admnistrator_users: '0'
+ administrator: '0'
+ placeholder: ''
+ is_grouped: false
+ group_info:
+ label: ''
+ description: ''
+ identifier: ''
+ optional: true
+ widget: select
+ multiple: false
+ remember: false
+ default_group: All
+ default_group_multiple: { }
+ group_items: { }
+ fields:
+ field_phone_number: field_phone_number
+ field_mental_health_phone: field_mental_health_phone
+ field_va_health_connect_phone: field_va_health_connect_phone
+ field_phone_number_value_1:
+ id: field_phone_number_value_1
+ table: paragraph__field_phone_number
+ field: field_phone_number_value
+ relationship: field_telephone
+ group_type: group
+ admin_label: ''
+ plugin_id: string
+ operator: empty
+ value: ''
+ group: 1
+ exposed: true
+ expose:
+ operator_id: field_phone_number_value_1_op
+ label: 'Phone number (field_phone_number)'
+ description: ''
+ use_operator: true
+ operator: field_phone_number_value_1_op
+ operator_limit_selection: true
+ operator_list:
+ empty: empty
+ 'not empty': 'not empty'
+ identifier: field_phone_number_value_1
+ required: false
+ remember: false
+ multiple: false
+ remember_roles:
+ authenticated: authenticated
+ anonymous: '0'
+ content_api_consumer: '0'
+ content_creator_benefits_hubs: '0'
+ content_creator_resources_and_support: '0'
+ office_content_creator: '0'
+ vamc_content_creator: '0'
+ content_creator_vba: '0'
+ content_creator_vet_center: '0'
+ content_editor: '0'
+ content_reviewer: '0'
+ content_publisher: '0'
+ content_admin: '0'
+ redirect_administrator: '0'
+ admnistrator_users: '0'
+ administrator: '0'
+ homepage_manager: '0'
+ next_js: '0'
+ translation_manager: '0'
+ rates_editor: '0'
+ placeholder: ''
+ is_grouped: false
+ group_info:
+ label: ''
+ description: ''
+ identifier: ''
+ optional: true
+ widget: select
+ multiple: false
+ remember: false
+ default_group: All
+ default_group_multiple: { }
+ group_items: { }
+ field_phone_number_value:
+ id: field_phone_number_value
+ table: node__field_phone_number
+ field: field_phone_number_value
+ relationship: none
+ group_type: group
+ admin_label: ''
+ plugin_id: string
+ operator: '='
+ value: ''
+ group: 1
+ exposed: true
+ expose:
+ operator_id: field_phone_number_value_op
+ label: 'Direct line (field_phone_number)'
+ description: null
+ use_operator: false
+ operator: field_phone_number_value_op
+ operator_limit_selection: false
+ operator_list: { }
+ identifier: field_phone_number_value
+ required: false
+ remember: false
+ multiple: false
+ remember_roles:
+ authenticated: authenticated
+ placeholder: null
+ is_grouped: true
+ group_info:
+ label: 'Direct line (field_phone_number)'
+ description: ''
+ identifier: field_phone_number_value
+ optional: true
+ widget: select
+ multiple: false
+ remember: false
+ default_group: All
+ default_group_multiple: { }
+ group_items:
+ 1:
+ title: 'Is empty (NULL)'
+ operator: empty
+ value: ''
+ 2:
+ title: 'Is not empty (NOT NULL)'
+ operator: 'not empty'
+ value: ''
+ field_mental_health_phone_value:
+ id: field_mental_health_phone_value
+ table: node__field_mental_health_phone
+ field: field_mental_health_phone_value
+ relationship: none
+ group_type: group
+ admin_label: ''
+ plugin_id: string
+ operator: empty
+ value: ''
+ group: 1
+ exposed: true
+ expose:
+ operator_id: field_mental_health_phone_value_op
+ label: 'Mental health phone number (field_mental_health_phone)'
+ description: ''
+ use_operator: true
+ operator: field_mental_health_phone_value_op
+ operator_limit_selection: true
+ operator_list:
+ empty: empty
+ 'not empty': 'not empty'
+ identifier: field_mental_health_phone_value
+ required: false
+ remember: false
+ multiple: false
+ remember_roles:
+ authenticated: authenticated
+ anonymous: '0'
+ content_api_consumer: '0'
+ content_creator_benefits_hubs: '0'
+ content_creator_resources_and_support: '0'
+ office_content_creator: '0'
+ vamc_content_creator: '0'
+ content_creator_vba: '0'
+ content_creator_vet_center: '0'
+ content_editor: '0'
+ content_reviewer: '0'
+ content_publisher: '0'
+ content_admin: '0'
+ redirect_administrator: '0'
+ admnistrator_users: '0'
+ administrator: '0'
+ homepage_manager: '0'
+ next_js: '0'
+ translation_manager: '0'
+ rates_editor: '0'
+ placeholder: ''
+ is_grouped: true
+ group_info:
+ label: 'Mental health phone number (field_mental_health_phone)'
+ description: ''
+ identifier: field_mental_health_phone_value
+ optional: true
+ widget: select
+ multiple: false
+ remember: false
+ default_group: All
+ default_group_multiple: { }
+ group_items:
+ 1:
+ title: 'Is empty (NULL)'
+ operator: empty
+ value: ''
+ 2:
+ title: 'Is not empty (NOT NULL)'
+ operator: 'not empty'
+ value: ''
+ filter_groups:
+ operator: AND
+ groups:
+ 1: AND
+ style:
+ type: table
+ options:
+ grouping: { }
+ row_class: ''
+ default_row_class: true
+ columns:
+ title: title
+ nid: nid
+ edit_node_1: edit_node_1
+ type: type
+ changed: changed
+ moderation_state: moderation_state
+ field_administration: field_administration
+ field_phone_number: field_phone_number
+ field_mental_health_phone: field_mental_health_phone
+ field_va_health_connect_phone: field_va_health_connect_phone
+ default: '-1'
+ info:
+ title:
+ sortable: true
+ default_sort_order: asc
+ align: ''
+ separator: ''
+ empty_column: false
+ responsive: ''
+ nid:
+ sortable: true
+ default_sort_order: asc
+ align: ''
+ separator: ''
+ empty_column: false
+ responsive: ''
+ edit_node_1:
+ sortable: false
+ default_sort_order: asc
+ align: ''
+ separator: ''
+ empty_column: false
+ responsive: ''
+ type:
+ sortable: true
+ default_sort_order: asc
+ align: ''
+ separator: ''
+ empty_column: false
+ responsive: ''
+ changed:
+ sortable: true
+ default_sort_order: asc
+ align: ''
+ separator: ''
+ empty_column: false
+ responsive: ''
+ moderation_state:
+ sortable: true
+ default_sort_order: asc
+ align: ''
+ separator: ''
+ empty_column: false
+ responsive: ''
+ field_administration:
+ sortable: true
+ default_sort_order: asc
+ align: ''
+ separator: ''
+ empty_column: false
+ responsive: ''
+ field_phone_number:
+ sortable: false
+ default_sort_order: asc
+ align: ''
+ separator: ''
+ empty_column: false
+ responsive: ''
+ field_mental_health_phone:
+ sortable: false
+ default_sort_order: asc
+ align: ''
+ separator: ''
+ empty_column: false
+ responsive: ''
+ field_va_health_connect_phone:
+ sortable: false
+ default_sort_order: asc
+ align: ''
+ separator: ''
+ empty_column: false
+ responsive: ''
+ override: true
+ sticky: false
+ summary: ''
+ empty_table: false
+ caption: 'Phone number audit results'
+ description: ''
+ row:
+ type: fields
+ options: { }
+ defaults:
+ title: false
+ style: false
+ row: false
+ relationships: false
+ fields: false
+ filters: false
+ filter_groups: false
+ relationships:
+ field_telephone:
+ id: field_telephone
+ table: node__field_telephone
+ field: field_telephone
+ relationship: none
+ group_type: group
+ admin_label: 'field_telephone: Paragraph'
+ plugin_id: standard
+ required: false
+ display_description: ''
+ display_comment: 'This view is temporary as we migrate telephone fields as part of this epic https://github.com/department-of-veterans-affairs/va.gov-cms/issues/17854'
+ display_extenders:
+ jsonapi_views:
+ enabled: true
+ path: admin/content/audit/missing-phone-numbers
+ menu:
+ type: none
+ title: 'Phone Numbers'
+ description: ''
+ weight: 0
+ expanded: false
+ menu_name: main
+ parent: ''
+ context: '0'
+ as_local_task: true
+ local_task_link_title: 'Phone Numbers'
+ local_task_parent: 'views_view:view.content.content_audit_page'
+ local_task_weight: 500
+ local_task_custom_parent_route: ''
+ cache_metadata:
+ max-age: -1
+ contexts:
+ - 'languages:language_content'
+ - 'languages:language_interface'
+ - url
+ - url.query_args
+ - user
+ - 'user.node_grants:view'
+ - user.roles
+ tags:
+ - 'config:field.storage.node.field_administration'
+ - 'config:field.storage.node.field_mental_health_phone'
+ - 'config:field.storage.node.field_phone_number'
+ - 'config:field.storage.node.field_va_health_connect_phone'
+ - 'config:field.storage.paragraph.field_phone_extension'
+ - 'config:field.storage.paragraph.field_phone_number'
+ - workbench_access_view
phone_numbers_export:
id: phone_numbers_export
display_title: 'Data export - Phone numbers'
diff --git a/docroot/modules/custom/va_gov_post_api/src/Service/PostFacilityStatus.php b/docroot/modules/custom/va_gov_post_api/src/Service/PostFacilityStatus.php
index fdb39ce001..967ffea725 100644
--- a/docroot/modules/custom/va_gov_post_api/src/Service/PostFacilityStatus.php
+++ b/docroot/modules/custom/va_gov_post_api/src/Service/PostFacilityStatus.php
@@ -2,8 +2,14 @@
namespace Drupal\va_gov_post_api\Service;
+use Drupal\Core\Config\ConfigFactoryInterface;
use Drupal\Core\Entity\EntityInterface;
+use Drupal\Core\Entity\EntityTypeManagerInterface;
+use Drupal\Core\Logger\LoggerChannelFactoryInterface;
+use Drupal\Core\Messenger\MessengerInterface;
+use Drupal\feature_toggle\FeatureStatus;
use Drupal\node\NodeInterface;
+use Drupal\post_api\Service\AddToQueue;
use Drupal\va_gov_facilities\FacilityOps;
use Drupal\va_gov_lovell\LovellOps;
@@ -40,6 +46,34 @@ class PostFacilityStatus extends PostFacilityBase implements PostServiceInterfac
*/
protected $additionalInfoToPush;
+ /**
+ * Feature Toggle status service.
+ *
+ * @var \Drupal\feature_toggle\FeatureStatus
+ */
+ private FeatureStatus $featureStatus;
+
+ /**
+ * Constructs a new PostFacilityStatus service object.
+ *
+ * @param \Drupal\Core\Config\ConfigFactoryInterface $config_factory
+ * The config factory service.
+ * @param \Drupal\Core\Entity\EntityTypeManagerInterface $entity_type_manager
+ * The entity type manager service.
+ * @param \Drupal\Core\Logger\LoggerChannelFactoryInterface $logger_channel_factory
+ * The logger factory service.
+ * @param \Drupal\Core\Messenger\MessengerInterface $messenger
+ * The messenger interface.
+ * @param \Drupal\post_api\Service\AddToQueue $post_queue
+ * The PostAPI service.
+ * @param \Drupal\feature_toggle\FeatureStatus $feature_status
+ * The Feature Status service.
+ */
+ public function __construct(ConfigFactoryInterface $config_factory, EntityTypeManagerInterface $entity_type_manager, LoggerChannelFactoryInterface $logger_channel_factory, MessengerInterface $messenger, AddToQueue $post_queue, FeatureStatus $feature_status) {
+ parent::__construct($config_factory, $entity_type_manager, $logger_channel_factory, $messenger, $post_queue);
+ $this->featureStatus = $feature_status;
+ }
+
/**
* Adds facility service data to Post API queue.
*
@@ -413,19 +447,27 @@ protected function shouldPushSystem(NodeInterface $entity) {
* The mental health phone number.
*/
protected function getFacilityMentalHealthPhone(): string {
- if (!$this->facilityNode->hasField('field_telephone')) {
- return '';
- }
- $telephone_paragraph_id = $this->facilityNode->get('field_telephone')->target_id;
- if (empty($telephone_paragraph_id)) {
- return '';
+ $status = $this->featureStatus->getStatus('feature_telephone_migration_v1');
+ // Return the original phone until the feature toggle is turned on.
+ if (!$status) {
+ return $this->getFieldSafe('field_mental_health_phone');
}
- $telephone_paragraph = $this->entityTypeManager->getStorage('paragraph')->load($telephone_paragraph_id);
- $mental_health_phone = $telephone_paragraph->get('field_phone_number')->value ?? '';
- $mental_health_extension = $telephone_paragraph->get('field_phone_extension')->value ?? '';
- if (!empty($mental_health_extension)) {
- $mental_health_phone .= ', ext. ' . $mental_health_extension;
+ else {
+ if (!$this->facilityNode->hasField('field_telephone')) {
+ return '';
+ }
+ $telephone_paragraph_id = $this->facilityNode->get('field_telephone')->target_id;
+ if (empty($telephone_paragraph_id)) {
+ return '';
+ }
+ $telephone_paragraph = $this->entityTypeManager->getStorage('paragraph')->load($telephone_paragraph_id);
+ $mental_health_phone = $telephone_paragraph->get('field_phone_number')->value ?? '';
+ $mental_health_extension = $telephone_paragraph->get('field_phone_extension')->value ?? '';
+ if (!empty($mental_health_extension)) {
+ $mental_health_phone .= ', ext. ' . $mental_health_extension;
+ }
}
+
return $mental_health_phone;
}
diff --git a/docroot/modules/custom/va_gov_post_api/va_gov_post_api.services.yml b/docroot/modules/custom/va_gov_post_api/va_gov_post_api.services.yml
index d02a179010..68508a63ca 100644
--- a/docroot/modules/custom/va_gov_post_api/va_gov_post_api.services.yml
+++ b/docroot/modules/custom/va_gov_post_api/va_gov_post_api.services.yml
@@ -18,7 +18,7 @@ services:
arguments: ['@config.factory', '@entity_type.manager', '@logger.factory', '@messenger', '@post_api.add_to_queue', '@renderer', '@file_system', '@file.repository']
va_gov_post_api.queue_facility_status_updates:
class: '\Drupal\va_gov_post_api\Service\PostFacilityStatus'
- arguments: ['@config.factory', '@entity_type.manager', '@logger.factory', '@messenger', '@post_api.add_to_queue']
+ arguments: ['@config.factory', '@entity_type.manager', '@logger.factory', '@messenger', '@post_api.add_to_queue', '@feature_toggle.feature_status']
va_gov_post_api.queue_facility_without_status_updates:
class: '\Drupal\va_gov_post_api\Service\PostFacilityWithoutStatus'
arguments: ['@config.factory', '@entity_type.manager', '@logger.factory', '@messenger', '@post_api.add_to_queue']
diff --git a/docroot/modules/custom/va_gov_profile/src/EventSubscriber/EntityEventSubscriber.php b/docroot/modules/custom/va_gov_profile/src/EventSubscriber/EntityEventSubscriber.php
index 9ae09105b3..5ef80b7419 100644
--- a/docroot/modules/custom/va_gov_profile/src/EventSubscriber/EntityEventSubscriber.php
+++ b/docroot/modules/custom/va_gov_profile/src/EventSubscriber/EntityEventSubscriber.php
@@ -6,7 +6,9 @@
use Drupal\Core\StringTranslation\StringTranslationTrait;
use Drupal\core_event_dispatcher\EntityHookEvents;
use Drupal\core_event_dispatcher\Event\Entity\EntityTypeAlterEvent;
+use Drupal\core_event_dispatcher\Event\Entity\EntityViewAlterEvent;
use Drupal\core_event_dispatcher\Event\Form\FormIdAlterEvent;
+use Drupal\feature_toggle\FeatureStatus;
use Drupal\va_gov_user\Service\UserPermsService;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
@@ -28,10 +30,16 @@ class EntityEventSubscriber implements EventSubscriberInterface {
* The entity manager.
*
* @var \Drupal\Core\Entity\EntityTypeManager
- * The entity manager.
*/
private $entityTypeManager;
+ /**
+ * Feature Toggle status service.
+ *
+ * @var \Drupal\feature_toggle\FeatureStatus
+ */
+ private FeatureStatus $featureStatus;
+
/**
* Constructs the EventSubscriber object.
*
@@ -39,13 +47,17 @@ class EntityEventSubscriber implements EventSubscriberInterface {
* The current user perms service.
* @param \Drupal\Core\Entity\EntityTypeManager $entity_type_manager
* The entity type manager service.
+ * @param \Drupal\feature_toggle\FeatureStatus $feature_status
+ * The Feature Status service.
*/
public function __construct(
UserPermsService $user_perms_service,
EntityTypeManager $entity_type_manager,
+ FeatureStatus $feature_status,
) {
$this->userPermsService = $user_perms_service;
$this->entityTypeManager = $entity_type_manager;
+ $this->featureStatus = $feature_status;
}
/**
@@ -56,6 +68,7 @@ public static function getSubscribedEvents(): array {
'hook_event_dispatcher.form_node_person_profile_edit_form.alter' => 'alterStaffProfileNodeForm',
'hook_event_dispatcher.form_node_person_profile_form.alter' => 'alterStaffProfileNodeForm',
EntityHookEvents::ENTITY_TYPE_ALTER => 'entityTypeAlter',
+ EntityHookEvents::ENTITY_VIEW_ALTER => 'entityViewAlter',
];
}
@@ -73,6 +86,38 @@ public function entityTypeAlter(EntityTypeAlterEvent $event): void {
}
}
+ /**
+ * Alteration to entity view pages.
+ *
+ * @param \Drupal\core_event_dispatcher\Event\Entity\EntityViewAlterEvent $event
+ * The entity view alter service.
+ */
+ public function entityViewAlter(EntityViewAlterEvent $event):void {
+ $this->showRenderedTelephone($event);
+ }
+
+ /**
+ * Show the correct telephone field based on feature toggle for VACMS-17854.
+ *
+ * @param \Drupal\core_event_dispatcher\Event\Entity\EntityViewAlterEvent $event
+ * The entity view alter event.
+ */
+ private function showRenderedTelephone(EntityViewAlterEvent $event) {
+ if ($event->getDisplay()->getTargetBundle() !== 'person_profile') {
+ return;
+ }
+ $build = &$event->getBuild();
+ $status = $this->featureStatus->getStatus('feature_telephone_migration_v1');
+ if ($status) {
+ // Hide the old telephone field, and, thereby, show the new one.
+ unset($build['field_phone_number']);
+ }
+ else {
+ // Hide the new telephone field, and, thereby, show the old one.
+ unset($build['field_telephone']);
+ }
+ }
+
/**
* Form alterations for staff profile content type.
*
@@ -82,6 +127,7 @@ public function entityTypeAlter(EntityTypeAlterEvent $event): void {
public function alterstaffProfileNodeForm(FormIdAlterEvent $event): void {
$this->addStateManagementToBioFields($event);
$this->removePhoneLabel($event);
+ $this->showTelephone($event);
}
/**
@@ -132,6 +178,25 @@ public function addStateManagementToBioFields(FormIdAlterEvent $event) {
];
}
+ /**
+ * Show the correct telephone field based on feature toggle for VACMS-17854.
+ *
+ * @param \Drupal\core_event_dispatcher\Event\Form\FormIdAlterEvent $event
+ * The form event.
+ */
+ private function showTelephone($event) {
+ $form = &$event->getForm();
+ $status = $this->featureStatus->getStatus('feature_telephone_migration_v1');
+ if ($status) {
+ // Hide the old telephone field, and, thereby, show the new one.
+ unset($form['field_phone_number']);
+ }
+ else {
+ // Hide the new telephone field, and, thereby, show the old one.
+ unset($form['field_telephone']);
+ }
+ }
+
/**
* Removes the phone label on staff profile content type forms.
*
diff --git a/docroot/modules/custom/va_gov_profile/va_gov_profile.services.yml b/docroot/modules/custom/va_gov_profile/va_gov_profile.services.yml
index 7669c4f026..2eec79c038 100644
--- a/docroot/modules/custom/va_gov_profile/va_gov_profile.services.yml
+++ b/docroot/modules/custom/va_gov_profile/va_gov_profile.services.yml
@@ -1,6 +1,6 @@
services:
va_gov_profile.entity_event_subscriber:
class: Drupal\va_gov_profile\EventSubscriber\EntityEventSubscriber
- arguments: ['@va_gov_user.user_perms', '@entity_type.manager']
+ arguments: ['@va_gov_user.user_perms', '@entity_type.manager', '@feature_toggle.feature_status']
tags:
- { name: event_subscriber }
diff --git a/docroot/modules/custom/va_gov_vamc/src/EventSubscriber/VAMCEntityEventSubscriber.php b/docroot/modules/custom/va_gov_vamc/src/EventSubscriber/VAMCEntityEventSubscriber.php
index 8eab6b5a71..c7ca5fe537 100644
--- a/docroot/modules/custom/va_gov_vamc/src/EventSubscriber/VAMCEntityEventSubscriber.php
+++ b/docroot/modules/custom/va_gov_vamc/src/EventSubscriber/VAMCEntityEventSubscriber.php
@@ -13,6 +13,7 @@
use Drupal\core_event_dispatcher\Event\Entity\EntityUpdateEvent;
use Drupal\core_event_dispatcher\Event\Entity\EntityViewAlterEvent;
use Drupal\core_event_dispatcher\Event\Form\FormIdAlterEvent;
+use Drupal\feature_toggle\FeatureStatus;
use Drupal\node\NodeInterface;
use Drupal\va_gov_notifications\Service\NotificationsManager;
use Drupal\va_gov_user\Service\UserPermsService;
@@ -105,6 +106,13 @@ public static function getSubscribedEvents(): array {
*/
protected $userPermsService;
+ /**
+ * Feature Toggle status service.
+ *
+ * @var \Drupal\feature_toggle\FeatureStatus
+ */
+ private FeatureStatus $featureStatus;
+
/**
* Constructs the EventSubscriber object.
*
@@ -120,6 +128,8 @@ public static function getSubscribedEvents(): array {
* The deduper service.
* @param \Drupal\va_gov_notifications\Service\NotificationsManager $notifications_manager
* VA gov NotificationsManager service.
+ * @param \Drupal\feature_toggle\FeatureStatus $feature_status
+ * The Feature Status service.
*/
public function __construct(
EntityTypeManager $entity_type_manager,
@@ -128,6 +138,7 @@ public function __construct(
UserPermsService $user_perms_service,
ContentHardeningDeduper $content_hardening_deduper,
NotificationsManager $notifications_manager,
+ FeatureStatus $feature_status,
) {
$this->entityTypeManager = $entity_type_manager;
$this->currentUser = $currentUser;
@@ -135,6 +146,7 @@ public function __construct(
$this->userPermsService = $user_perms_service;
$this->contentHardeningDeduper = $content_hardening_deduper;
$this->notificationsManager = $notifications_manager;
+ $this->featureStatus = $feature_status;
}
/**
@@ -146,7 +158,35 @@ public function __construct(
public function entityViewAlter(EntityViewAlterEvent $event):void {
$this->showUnspecifiedWhenSystemEhrNumberEmpty($event);
$this->alterAppendedSystemHealthServices($event);
+ $this->showRenderedTelephone($event);
+ }
+ /**
+ * Show the correct telephone field based on feature toggle for VACMS-17854.
+ *
+ * @param \Drupal\core_event_dispatcher\Event\Entity\EntityViewAlterEvent $event
+ * The entity view alter event.
+ */
+ private function showRenderedTelephone(EntityViewAlterEvent $event) {
+ $node_type = $event->getEntity()->bundle();
+ if ($node_type !== 'vamc_system_billing_insurance' &&
+ $node_type !== 'health_care_local_facility') {
+ return;
+ }
+ // We want to hide the old mental health phone field on the facility node.
+ $old_field_to_hide = $node_type === 'health_care_local_facility'
+ ? 'field_mental_health_phone' : 'field_phone_number';
+
+ $build = &$event->getBuild();
+ $status = $this->featureStatus->getStatus('feature_telephone_migration_v1');
+ if ($status) {
+ // Hide the old telephone field, and, thereby, show the new one.
+ unset($build[$old_field_to_hide]);
+ }
+ else {
+ // Hide the new telephone field, and, thereby, show the old one.
+ unset($build['field_telephone']);
+ }
}
/**
@@ -327,7 +367,7 @@ public function alterFacilityNodeForm(FormIdAlterEvent $event): void {
$form_state = $event->getFormState();
$this->addCovidStatusData($form, $form_state);
$this->removePhoneLabel($event);
-
+ $this->showTelephone($event);
}
/**
@@ -362,6 +402,31 @@ public function alterTopTaskNodeForm(FormIdAlterEvent $event): void {
public function alterVamcSystemBillingAndInsuranceForm(FormIdAlterEvent $event) {
$this->alterTopTaskNodeForm($event);
$this->removePhoneLabel($event);
+ $this->showTelephone($event);
+ }
+
+ /**
+ * Show the correct telephone field based on feature toggle for VACMS-17854.
+ *
+ * @param \Drupal\core_event_dispatcher\Event\Form\FormIdAlterEvent $event
+ * The form event.
+ */
+ private function showTelephone($event) {
+ $form = &$event->getForm();
+ $form_id = $form['#form_id'];
+ // We want to hide the old mental health phone field on the facility node,
+ // where there are two phone fields.
+ $old_field_to_hide = $form_id === 'node_health_care_local_facility_form' || $form_id === 'node_health_care_local_facility_edit_form'
+ ? 'field_mental_health_phone' : 'field_phone_number';
+ $status = $this->featureStatus->getStatus('feature_telephone_migration_v1');
+ if ($status) {
+ // Hide the old telephone field, and, thereby, show the new one.
+ unset($form[$old_field_to_hide]);
+ }
+ else {
+ // Hide the new telephone field, and, thereby, show the old one.
+ unset($form['field_telephone']);
+ }
}
/**
diff --git a/docroot/modules/custom/va_gov_vamc/va_gov_vamc.services.yml b/docroot/modules/custom/va_gov_vamc/va_gov_vamc.services.yml
index 096492b370..a4e28434a1 100644
--- a/docroot/modules/custom/va_gov_vamc/va_gov_vamc.services.yml
+++ b/docroot/modules/custom/va_gov_vamc/va_gov_vamc.services.yml
@@ -8,6 +8,7 @@ services:
- '@va_gov_user.user_perms'
- '@va_gov_vamc.content_hardening_deduper'
- '@va_gov_notifications.notifications_manager'
+ - '@feature_toggle.feature_status'
tags:
- { name: event_subscriber }
va_gov_vamc.entity_prevent_reuse:
diff --git a/tests/cypress/integration/features/content_type/facilities/vamc/health_care_local_facility.feature b/tests/cypress/integration/features/content_type/facilities/vamc/health_care_local_facility.feature
index ed955e8a2f..44530688c0 100644
--- a/tests/cypress/integration/features/content_type/facilities/vamc/health_care_local_facility.feature
+++ b/tests/cypress/integration/features/content_type/facilities/vamc/health_care_local_facility.feature
@@ -9,7 +9,6 @@ Feature: CMS Users may effectively interact with the VAMC Facility form
When I am at "/node/add/health_care_local_facility"
And I fill in "Name of facility" with "[Test Data] Facility Name"
And I select the "Normal services and hours" radio button
- And I fill in field with selector "#edit-field-telephone-0-subform-field-phone-number-0-value" with value "123-456-7890"
And I select option "VA Alaska health care" from dropdown "What health care system does the facility belong to?"
And I fill in "Meta description" with "[Test Data] Meta description"
And I select option "---VA Alaska health care" from dropdown "Section"
diff --git a/tests/cypress/integration/features/content_type/person_profile.feature b/tests/cypress/integration/features/content_type/person_profile.feature
index 23844ef678..8961d5d739 100644
--- a/tests/cypress/integration/features/content_type/person_profile.feature
+++ b/tests/cypress/integration/features/content_type/person_profile.feature
@@ -8,7 +8,6 @@ Scenario: Log in and create a Person Profile with attention to conditional field
And I am at "/node/add/person_profile"
And I select option "---VA Boston health care" from dropdown "Section"
And I select option "VA Boston health care" from dropdown "Related office or health care region"
- And I fill in field with selector "#edit-field-telephone-0-subform-field-phone-number-0-value" with value "800-698-2411"
And I fill in "First name" with "James"
And I fill in "Last name" with "Smith"