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 3ea5747164..502fc55305 100644 --- a/config/sync/core.entity_form_display.node.campaign_landing_page.default.yml +++ b/config/sync/core.entity_form_display.node.campaign_landing_page.default.yml @@ -19,6 +19,7 @@ dependencies: - field.field.node.campaign_landing_page.field_clp_resources_header - field.field.node.campaign_landing_page.field_clp_resources_intro_text - field.field.node.campaign_landing_page.field_clp_resources_panel + - field.field.node.campaign_landing_page.field_clp_reusable_q_a - field.field.node.campaign_landing_page.field_clp_spotlight_cta - field.field.node.campaign_landing_page.field_clp_spotlight_header - field.field.node.campaign_landing_page.field_clp_spotlight_intro_text @@ -261,6 +262,7 @@ third_party_settings: children: - field_clp_faq_panel - field_clp_faq_paragraphs + - field_clp_reusable_q_a - field_clp_faq_cta label: FAQs region: content @@ -268,7 +270,7 @@ third_party_settings: weight: 8 format_type: detailswithimage format_settings: - description: 'This optional segment allows you to add reusable question and answer content related to the campaign''s message.' + description: 'This optional segment allows you to add question and answer content related to the campaign''s message. Choose between creating a page-specific Q&A or adding a reusable Q&A. ' visual_guide_file_name: faqs-guide.svg visual_guide_alt_text: 'Basic visual layout of the faqs page segment.' required_fields: '1' @@ -315,6 +317,8 @@ content: field_widget_replace: 0 open: 0 field_widget_display_settings: { } + additional_fields: + options: null third_party_settings: limited_field_widgets: limit_values: '2' @@ -343,6 +347,7 @@ content: maxlength: 70 counter_position: after js_prevent_submit: true + count_only_mode: false count_html_characters: false textcount_status_message: '@remaining_count characters remaining' third_party_settings: { } @@ -367,10 +372,12 @@ content: selection_mode: selection_append field_widget_edit: 0 field_widget_replace: 0 + additional_fields: + options: null third_party_settings: { } field_clp_faq_cta: type: paragraphs - weight: 40 + weight: 42 region: content settings: title: Paragraph @@ -389,14 +396,14 @@ content: third_party_settings: { } field_clp_faq_panel: type: boolean_checkbox - weight: 36 + weight: 39 region: content settings: display_label: true third_party_settings: { } field_clp_faq_paragraphs: type: paragraphs - weight: 37 + weight: 40 region: content settings: title: Paragraph @@ -431,6 +438,7 @@ content: collapsible: false collapsed: false revision: true + removed_reference: optional allow_system_delete: false third_party_settings: entity_browser_entity_form: @@ -465,6 +473,7 @@ content: maxlength: 70 counter_position: after js_prevent_submit: true + count_only_mode: false count_html_characters: false textcount_status_message: '@remaining_count characters remaining' third_party_settings: { } @@ -478,6 +487,7 @@ content: maxlength: 350 counter_position: after js_prevent_submit: true + count_only_mode: false count_html_characters: false textcount_status_message: "Maximum @maxlength characters, but 120 characters is recommended. @current_length characters, @remaining_count characters remaining\r\n" third_party_settings: { } @@ -488,6 +498,34 @@ content: settings: display_label: true third_party_settings: { } + field_clp_reusable_q_a: + type: paragraphs + weight: 41 + region: content + settings: + title: Paragraph + title_plural: Paragraphs + edit_mode: open + closed_mode: summary + autocollapse: none + closed_mode_threshold: 0 + add_mode: button + form_display_mode: default + default_paragraph_type: _none + features: + add_above: '0' + collapse_edit_all: collapse_edit_all + duplicate: duplicate + third_party_settings: + paragraphs_features: + add_in_between: false + add_in_between_link_count: 3 + delete_confirmation: false + show_drag_and_drop: true + limited_field_widgets: + limit_values: '0' + change_labels: + add_another: '' field_clp_spotlight_cta: type: paragraphs weight: 16 @@ -517,6 +555,7 @@ content: maxlength: 0 counter_position: after js_prevent_submit: true + count_only_mode: false count_html_characters: true textcount_status_message: 'Maxlength: @maxlength
Used: @current_length
Remaining: @remaining_count' third_party_settings: { } @@ -530,6 +569,7 @@ content: maxlength: 350 counter_position: after js_prevent_submit: true + count_only_mode: false count_html_characters: false textcount_status_message: '@remaining_count characters remaining' third_party_settings: { } @@ -582,6 +622,7 @@ content: maxlength: 70 counter_position: after js_prevent_submit: true + count_only_mode: false count_html_characters: false textcount_status_message: '@remaining_count characters remaining.' third_party_settings: { } @@ -595,6 +636,7 @@ content: maxlength: 350 counter_position: after js_prevent_submit: true + count_only_mode: false count_html_characters: false textcount_status_message: 'Maximum @maxlength characters, but 120 characters is recommended.
@current_length characters,
@remaining_count characters remaining.' third_party_settings: { } @@ -635,6 +677,7 @@ content: maxlength: 0 counter_position: after js_prevent_submit: true + count_only_mode: false count_html_characters: false textcount_status_message: '@remaining_count characters remaining' third_party_settings: { } @@ -666,6 +709,7 @@ content: maxlength: 0 counter_position: after js_prevent_submit: true + count_only_mode: false count_html_characters: false textcount_status_message: 'Characters remaining: @remaining_count' third_party_settings: { } @@ -679,6 +723,7 @@ content: maxlength: 300 counter_position: after js_prevent_submit: true + count_only_mode: false count_html_characters: false textcount_status_message: '@remaining_count characters remaining' third_party_settings: { } @@ -698,6 +743,7 @@ content: collapsible: false collapsed: false revision: true + removed_reference: optional allow_system_delete: false third_party_settings: entity_browser_entity_form: @@ -712,6 +758,7 @@ content: maxlength: 350 counter_position: after js_prevent_submit: true + count_only_mode: false count_html_characters: false textcount_status_message: '@remaining_count characters remaining' third_party_settings: { } @@ -726,6 +773,7 @@ content: maxlength: 0 counter_position: after js_prevent_submit: true + count_only_mode: false count_html_characters: false textcount_status_message: '@remaining_count characters remaining' third_party_settings: { } @@ -833,6 +881,7 @@ content: maxlength: 70 counter_position: after js_prevent_submit: true + count_only_mode: false count_html_characters: false textcount_status_message: '@remaining_count characters remaining' third_party_settings: { } diff --git a/config/sync/core.entity_view_display.node.campaign_landing_page.default.yml b/config/sync/core.entity_view_display.node.campaign_landing_page.default.yml index 0c7a83f094..0dc2e5b421 100644 --- a/config/sync/core.entity_view_display.node.campaign_landing_page.default.yml +++ b/config/sync/core.entity_view_display.node.campaign_landing_page.default.yml @@ -17,6 +17,7 @@ dependencies: - field.field.node.campaign_landing_page.field_clp_resources_header - field.field.node.campaign_landing_page.field_clp_resources_intro_text - field.field.node.campaign_landing_page.field_clp_resources_panel + - field.field.node.campaign_landing_page.field_clp_reusable_q_a - field.field.node.campaign_landing_page.field_clp_spotlight_cta - field.field.node.campaign_landing_page.field_clp_spotlight_header - field.field.node.campaign_landing_page.field_clp_spotlight_intro_text @@ -307,6 +308,15 @@ content: third_party_settings: { } weight: 16 region: content + field_clp_reusable_q_a: + type: entity_reference_revisions_entity_view + label: above + settings: + view_mode: default + link: '' + third_party_settings: { } + weight: 28 + region: content field_clp_spotlight_cta: type: entity_reference_revisions_entity_view label: above diff --git a/config/sync/core.entity_view_display.node.campaign_landing_page.teaser.yml b/config/sync/core.entity_view_display.node.campaign_landing_page.teaser.yml index 946e675741..b43aab7f65 100644 --- a/config/sync/core.entity_view_display.node.campaign_landing_page.teaser.yml +++ b/config/sync/core.entity_view_display.node.campaign_landing_page.teaser.yml @@ -18,6 +18,7 @@ dependencies: - field.field.node.campaign_landing_page.field_clp_resources_header - field.field.node.campaign_landing_page.field_clp_resources_intro_text - field.field.node.campaign_landing_page.field_clp_resources_panel + - field.field.node.campaign_landing_page.field_clp_reusable_q_a - field.field.node.campaign_landing_page.field_clp_spotlight_cta - field.field.node.campaign_landing_page.field_clp_spotlight_header - field.field.node.campaign_landing_page.field_clp_spotlight_intro_text @@ -75,6 +76,7 @@ hidden: field_clp_resources_header: true field_clp_resources_intro_text: true field_clp_resources_panel: true + field_clp_reusable_q_a: true field_clp_spotlight_cta: true field_clp_spotlight_header: true field_clp_spotlight_intro_text: true diff --git a/config/sync/entity_browser.browser.q_a_browser.yml b/config/sync/entity_browser.browser.q_a_browser.yml index cd142eacd3..fd43b473c6 100644 --- a/config/sync/entity_browser.browser.q_a_browser.yml +++ b/config/sync/entity_browser.browser.q_a_browser.yml @@ -13,7 +13,7 @@ display: modal display_configuration: width: '' height: '' - link_text: 'Place Q&As' + link_text: 'Add Reusable Q&As' auto_open: false selection_display: no_display selection_display_configuration: { } diff --git a/config/sync/field.field.node.campaign_landing_page.field_clp_faq_paragraphs.yml b/config/sync/field.field.node.campaign_landing_page.field_clp_faq_paragraphs.yml index 08c47c5246..78c2bb66a5 100644 --- a/config/sync/field.field.node.campaign_landing_page.field_clp_faq_paragraphs.yml +++ b/config/sync/field.field.node.campaign_landing_page.field_clp_faq_paragraphs.yml @@ -8,12 +8,16 @@ dependencies: - paragraphs.paragraphs_type.q_a module: - entity_reference_revisions + - tmgmt_content +third_party_settings: + tmgmt_content: + excluded: false id: node.campaign_landing_page.field_clp_faq_paragraphs field_name: field_clp_faq_paragraphs entity_type: node bundle: campaign_landing_page -label: 'Add between 3 and 10 Q&As' -description: '' +label: 'Page-Specific Q&A' +description: 'Add questions and answers that provide information specific to the page content.' required: false translatable: false default_value: { } @@ -37,9 +41,15 @@ settings: audience_topics: weight: 45 enabled: false + basic_accordion: + weight: 50 + enabled: false button: weight: 46 enabled: false + centralized_content_descriptor: + weight: 52 + enabled: false checklist: weight: 47 enabled: false @@ -61,9 +71,15 @@ settings: email_contact: weight: 53 enabled: false + embedded_video: + weight: 60 + enabled: false expandable_text: weight: 54 enabled: false + featured_content: + weight: 62 + enabled: false health_care_local_facility_servi: weight: 55 enabled: false @@ -82,6 +98,9 @@ settings: lists_of_links: weight: 58 enabled: false + magichead_group: + weight: 69 + enabled: false media: weight: 61 enabled: false @@ -133,9 +152,6 @@ settings: staff_profile: weight: 77 enabled: false - starred_horizontal_rule: - weight: 78 - enabled: false step: weight: 79 enabled: false diff --git a/config/sync/field.field.node.campaign_landing_page.field_clp_reusable_q_a.yml b/config/sync/field.field.node.campaign_landing_page.field_clp_reusable_q_a.yml new file mode 100644 index 0000000000..4a86a5d8f9 --- /dev/null +++ b/config/sync/field.field.node.campaign_landing_page.field_clp_reusable_q_a.yml @@ -0,0 +1,167 @@ +uuid: 22948d35-29e6-4cbe-bad7-c47bf260b4fa +langcode: en +status: true +dependencies: + config: + - field.storage.node.field_clp_reusable_q_a + - node.type.campaign_landing_page + - paragraphs.paragraphs_type.q_a_group + module: + - entity_reference_revisions + - tmgmt_content +third_party_settings: + tmgmt_content: + excluded: false +id: node.campaign_landing_page.field_clp_reusable_q_a +field_name: field_clp_reusable_q_a +entity_type: node +bundle: campaign_landing_page +label: 'Reusable Q&A' +description: 'Choose from questions and answers that are stored in the CMS and used on multiple pages.' +required: false +translatable: false +default_value: { } +default_value_callback: '' +settings: + handler: 'default:paragraph' + handler_settings: + target_bundles: + q_a_group: q_a_group + negate: 0 + target_bundles_drag_drop: + address: + weight: 46 + enabled: false + alert: + weight: 47 + enabled: false + alert_single: + weight: 48 + enabled: false + audience_topics: + weight: 49 + enabled: false + basic_accordion: + weight: 50 + enabled: false + button: + weight: 51 + enabled: false + centralized_content_descriptor: + weight: 52 + enabled: false + checklist: + weight: 53 + enabled: false + checklist_item: + weight: 54 + enabled: false + collapsible_panel: + weight: 55 + enabled: false + collapsible_panel_item: + weight: 56 + enabled: false + contact_information: + weight: 57 + enabled: false + downloadable_file: + weight: 58 + enabled: false + email_contact: + weight: 59 + enabled: false + embedded_video: + weight: 60 + enabled: false + expandable_text: + weight: 61 + enabled: false + featured_content: + weight: 62 + enabled: false + health_care_local_facility_servi: + weight: 63 + enabled: false + link_teaser: + weight: 64 + enabled: false + link_teaser_with_image: + weight: 65 + enabled: false + list_of_link_teasers: + weight: 68 + enabled: false + list_of_links: + weight: 67 + enabled: false + lists_of_links: + weight: 66 + enabled: false + magichead_group: + weight: 69 + enabled: false + media: + weight: 70 + enabled: false + media_list_images: + weight: 71 + enabled: false + media_list_videos: + weight: 72 + enabled: false + non_reusable_alert: + weight: 73 + enabled: false + number_callout: + weight: 74 + enabled: false + phone_number: + weight: 75 + enabled: false + process: + weight: 76 + enabled: false + q_a: + weight: 77 + enabled: false + q_a_group: + weight: 78 + enabled: true + q_a_section: + weight: 79 + enabled: false + react_widget: + weight: 80 + enabled: false + rich_text_char_limit_1000: + weight: 81 + enabled: false + service_location: + weight: 82 + enabled: false + service_location_address: + weight: 83 + enabled: false + situation_update: + weight: 84 + enabled: false + spanish_translation_summary: + weight: 85 + enabled: false + staff_profile: + weight: 86 + enabled: false + step: + weight: 87 + enabled: false + step_by_step: + weight: 88 + enabled: false + table: + weight: 89 + enabled: false + wysiwyg: + weight: 90 + enabled: false +field_type: entity_reference_revisions diff --git a/config/sync/field.storage.node.field_clp_reusable_q_a.yml b/config/sync/field.storage.node.field_clp_reusable_q_a.yml new file mode 100644 index 0000000000..0ee7bc04f5 --- /dev/null +++ b/config/sync/field.storage.node.field_clp_reusable_q_a.yml @@ -0,0 +1,21 @@ +uuid: e2e9bb11-42e6-4077-95de-edf70e5ae05d +langcode: en +status: true +dependencies: + module: + - entity_reference_revisions + - node + - paragraphs +id: node.field_clp_reusable_q_a +field_name: field_clp_reusable_q_a +entity_type: node +type: entity_reference_revisions +settings: + target_type: paragraph +module: entity_reference_revisions +locked: false +cardinality: -1 +translatable: true +indexes: { } +persist_with_no_fields: false +custom_storage: false diff --git a/docroot/modules/custom/va_gov_backend/va_gov_backend.module b/docroot/modules/custom/va_gov_backend/va_gov_backend.module index 4ad3d96f78..e98ed06060 100644 --- a/docroot/modules/custom/va_gov_backend/va_gov_backend.module +++ b/docroot/modules/custom/va_gov_backend/va_gov_backend.module @@ -24,8 +24,8 @@ use Drupal\Core\Url; use Drupal\field\Entity\FieldConfig; use Drupal\field\FieldStorageConfigInterface; use Drupal\file\Entity\File; -use Drupal\paragraphs\Entity\Paragraph; use Drupal\node\NodeInterface; +use Drupal\paragraphs\Entity\Paragraph; use Drupal\taxonomy\TermInterface; use Drupal\user\Entity\Role; use Drupal\user\RoleInterface; @@ -253,6 +253,9 @@ function _va_gov_backend_get_clp_toggles() { 'required' => TRUE, 'show-indicator' => TRUE, ], + 'field_clp_reusable_q_a' => [ + 'required' => FALSE, + ], 'field_clp_faq_cta' => [ 'required' => FALSE, ], diff --git a/tests/cypress/integration/features/content_type/campaign_landing_page/basic_requirements.feature b/tests/cypress/integration/features/content_type/campaign_landing_page/clp_basic_requirements.feature similarity index 100% rename from tests/cypress/integration/features/content_type/campaign_landing_page/basic_requirements.feature rename to tests/cypress/integration/features/content_type/campaign_landing_page/clp_basic_requirements.feature diff --git a/tests/cypress/integration/features/content_type/campaign_landing_page/connect_with_us.feature b/tests/cypress/integration/features/content_type/campaign_landing_page/clp_connect_with_us.feature similarity index 100% rename from tests/cypress/integration/features/content_type/campaign_landing_page/connect_with_us.feature rename to tests/cypress/integration/features/content_type/campaign_landing_page/clp_connect_with_us.feature diff --git a/tests/cypress/integration/features/content_type/campaign_landing_page/downloadable_resources.feature b/tests/cypress/integration/features/content_type/campaign_landing_page/clp_downloadable_resources.feature similarity index 100% rename from tests/cypress/integration/features/content_type/campaign_landing_page/downloadable_resources.feature rename to tests/cypress/integration/features/content_type/campaign_landing_page/clp_downloadable_resources.feature diff --git a/tests/cypress/integration/features/content_type/campaign_landing_page/events.feature b/tests/cypress/integration/features/content_type/campaign_landing_page/clp_events.feature similarity index 100% rename from tests/cypress/integration/features/content_type/campaign_landing_page/events.feature rename to tests/cypress/integration/features/content_type/campaign_landing_page/clp_events.feature diff --git a/tests/cypress/integration/features/content_type/campaign_landing_page/faq.feature b/tests/cypress/integration/features/content_type/campaign_landing_page/clp_faq.feature similarity index 93% rename from tests/cypress/integration/features/content_type/campaign_landing_page/faq.feature rename to tests/cypress/integration/features/content_type/campaign_landing_page/clp_faq.feature index b175dfbbf4..32a539314d 100644 --- a/tests/cypress/integration/features/content_type/campaign_landing_page/faq.feature +++ b/tests/cypress/integration/features/content_type/campaign_landing_page/clp_faq.feature @@ -10,5 +10,5 @@ Feature: Content Type: Campaign Landing Page And I click the "Add Page-Specific Q&A" button Then I can fill in "Question" field with fake text And I can fill in "Text" field with fake text + And I should see "Add Reusable Q&A" And I should see "Add a link to more FAQs" -# TODO: Test the call to action button diff --git a/tests/cypress/integration/features/content_type/campaign_landing_page/hero_banner.feature b/tests/cypress/integration/features/content_type/campaign_landing_page/clp_hero_banner.feature similarity index 100% rename from tests/cypress/integration/features/content_type/campaign_landing_page/hero_banner.feature rename to tests/cypress/integration/features/content_type/campaign_landing_page/clp_hero_banner.feature diff --git a/tests/cypress/integration/features/content_type/campaign_landing_page/spotlight.feature b/tests/cypress/integration/features/content_type/campaign_landing_page/clp_spotlight.feature similarity index 100% rename from tests/cypress/integration/features/content_type/campaign_landing_page/spotlight.feature rename to tests/cypress/integration/features/content_type/campaign_landing_page/clp_spotlight.feature diff --git a/tests/cypress/integration/features/content_type/campaign_landing_page/stories.feature b/tests/cypress/integration/features/content_type/campaign_landing_page/clp_stories.feature similarity index 100% rename from tests/cypress/integration/features/content_type/campaign_landing_page/stories.feature rename to tests/cypress/integration/features/content_type/campaign_landing_page/clp_stories.feature diff --git a/tests/cypress/integration/features/content_type/campaign_landing_page/video.feature b/tests/cypress/integration/features/content_type/campaign_landing_page/clp_video.feature similarity index 100% rename from tests/cypress/integration/features/content_type/campaign_landing_page/video.feature rename to tests/cypress/integration/features/content_type/campaign_landing_page/clp_video.feature diff --git a/tests/cypress/integration/features/content_type/campaign_landing_page/what_you_can_do.feature b/tests/cypress/integration/features/content_type/campaign_landing_page/clp_what_you_can_do.feature similarity index 100% rename from tests/cypress/integration/features/content_type/campaign_landing_page/what_you_can_do.feature rename to tests/cypress/integration/features/content_type/campaign_landing_page/clp_what_you_can_do.feature diff --git a/tests/cypress/integration/features/content_type/campaign_landing_page/why_this_matters.feature b/tests/cypress/integration/features/content_type/campaign_landing_page/clp_why_this_matters.feature similarity index 100% rename from tests/cypress/integration/features/content_type/campaign_landing_page/why_this_matters.feature rename to tests/cypress/integration/features/content_type/campaign_landing_page/clp_why_this_matters.feature