diff --git a/services/drupal/composer.patches.json b/services/drupal/composer.patches.json index c624301fc5..2ea77b8497 100644 --- a/services/drupal/composer.patches.json +++ b/services/drupal/composer.patches.json @@ -209,7 +209,8 @@ "Prevent the reuse of embedded paragraphs": "https://www.drupal.org/files/issues/2020-04-30/paragraphs_entity_embed-single_use-3132549-2.patch", "Allow modal to be larger": "https://www.drupal.org/files/issues/2021-10-22/paragraphs_entity_embed-dialog_too_small-3117524-5.patch", "Allow use of buttons for selecting paragraph type": "https://www.drupal.org/files/issues/2020-04-30/paragraphs_entity_embed-add_mode-3089674-3.patch", - "Make compatible with new security in embed module": "https://www.drupal.org/files/issues/2022-05-27/paragraphs_entity_embed_csrf_token.patch" + "Make compatible with new security in embed module": "https://www.drupal.org/files/issues/2022-05-27/paragraphs_entity_embed_csrf_token.patch", + "Add openerParameters": "patches/drupalparagraph_add_opener_parameters-rolled-with-3004077-7-and-3117524-5-and-csrf_token-patch.patch" }, "drupal/linked_field": { "Generate relative links rather than absolute": "https://www.drupal.org/files/issues/2020-05-22/linked_field-relative-destination-url-3139179-1-D8.patch" diff --git a/services/drupal/config/sync/core.entity_form_display.media.audio.default.yml b/services/drupal/config/sync/core.entity_form_display.media.audio.default.yml index afafbf8480..16476f632c 100644 --- a/services/drupal/config/sync/core.entity_form_display.media.audio.default.yml +++ b/services/drupal/config/sync/core.entity_form_display.media.audio.default.yml @@ -12,12 +12,23 @@ dependencies: - media.type.audio module: - duration_field + - entitygroupfield - file id: media.audio.default targetEntityType: media bundle: audio mode: default content: + entitygroupfield: + type: entitygroupfield_autocomplete_widget + weight: 9 + region: content + settings: + help_text: '' + label: 'Group name' + multiple: false + required: true + third_party_settings: { } field_author: type: entity_reference_autocomplete weight: 6 @@ -84,9 +95,17 @@ content: region: content settings: { } third_party_settings: { } + uid: + type: entity_reference_autocomplete + weight: 9 + region: content + settings: + match_operator: CONTAINS + match_limit: 10 + size: 60 + placeholder: '' + third_party_settings: { } hidden: created: true - entitygroupfield: true path: true status: true - uid: true diff --git a/services/drupal/config/sync/core.entity_form_display.media.banner_image.default.yml b/services/drupal/config/sync/core.entity_form_display.media.banner_image.default.yml index b1fce0da9f..ca84af2509 100644 --- a/services/drupal/config/sync/core.entity_form_display.media.banner_image.default.yml +++ b/services/drupal/config/sync/core.entity_form_display.media.banner_image.default.yml @@ -8,6 +8,7 @@ dependencies: - image.style.thumbnail - media.type.banner_image module: + - entitygroupfield - focal_point - path id: media.banner_image.default @@ -21,6 +22,16 @@ content: region: content settings: { } third_party_settings: { } + entitygroupfield: + type: entitygroupfield_autocomplete_widget + weight: 7 + region: content + settings: + help_text: '' + label: 'Group name' + multiple: false + required: true + third_party_settings: { } field_banner_image_restricted: type: options_select weight: 6 @@ -60,7 +71,7 @@ content: third_party_settings: { } status: type: boolean_checkbox - weight: 7 + weight: 8 region: content settings: display_label: true @@ -76,5 +87,4 @@ content: placeholder: '' third_party_settings: { } hidden: - entitygroupfield: true replace_file: true diff --git a/services/drupal/config/sync/core.entity_form_display.media.document.default.yml b/services/drupal/config/sync/core.entity_form_display.media.document.default.yml index 956a66d63b..16bff36623 100644 --- a/services/drupal/config/sync/core.entity_form_display.media.document.default.yml +++ b/services/drupal/config/sync/core.entity_form_display.media.document.default.yml @@ -11,12 +11,23 @@ dependencies: - field.field.media.document.field_publication_number - media.type.document module: + - entitygroupfield - file id: media.document.default targetEntityType: media bundle: document mode: default content: + entitygroupfield: + type: entitygroupfield_autocomplete_widget + weight: 9 + region: content + settings: + help_text: '' + label: 'Group name' + multiple: false + required: true + third_party_settings: { } field_description: type: string_textarea weight: 4 @@ -84,9 +95,17 @@ content: region: content settings: { } third_party_settings: { } + uid: + type: entity_reference_autocomplete + weight: 9 + region: content + settings: + match_operator: CONTAINS + match_limit: 10 + size: 60 + placeholder: '' + third_party_settings: { } hidden: created: true - entitygroupfield: true path: true status: true - uid: true diff --git a/services/drupal/config/sync/core.entity_form_display.media.image.default.yml b/services/drupal/config/sync/core.entity_form_display.media.image.default.yml index d280257440..d763bc98b6 100644 --- a/services/drupal/config/sync/core.entity_form_display.media.image.default.yml +++ b/services/drupal/config/sync/core.entity_form_display.media.image.default.yml @@ -12,12 +12,23 @@ dependencies: - image.style.thumbnail - media.type.image module: + - entitygroupfield - focal_point id: media.image.default targetEntityType: media bundle: image mode: default content: + entitygroupfield: + type: entitygroupfield_autocomplete_widget + weight: 9 + region: content + settings: + help_text: '' + label: 'Group name' + multiple: false + required: true + third_party_settings: { } field_banner_image_restricted: type: options_select weight: 2 @@ -70,6 +81,16 @@ content: region: content settings: { } third_party_settings: { } + uid: + type: entity_reference_autocomplete + weight: 9 + region: content + settings: + match_operator: CONTAINS + match_limit: 10 + size: 60 + placeholder: '' + third_party_settings: { } hidden: created: true entitygroupfield: true @@ -77,4 +98,3 @@ hidden: field_legacy_image_alignment: true path: true status: true - uid: true diff --git a/services/drupal/config/sync/core.entity_form_display.media.other.default.yml b/services/drupal/config/sync/core.entity_form_display.media.other.default.yml index 1353ac9fad..2b76cce45d 100644 --- a/services/drupal/config/sync/core.entity_form_display.media.other.default.yml +++ b/services/drupal/config/sync/core.entity_form_display.media.other.default.yml @@ -8,12 +8,23 @@ dependencies: - field.field.media.other.field_media_tags - media.type.other module: + - entitygroupfield - file id: media.other.default targetEntityType: media bundle: other mode: default content: + entitygroupfield: + type: entitygroupfield_autocomplete_widget + weight: 6 + region: content + settings: + help_text: '' + label: 'Group name' + multiple: false + required: true + third_party_settings: { } field_limit_file_accessibility: type: options_buttons weight: 5 @@ -57,9 +68,17 @@ content: region: content settings: { } third_party_settings: { } + uid: + type: entity_reference_autocomplete + weight: 6 + region: content + settings: + match_operator: CONTAINS + match_limit: 10 + size: 60 + placeholder: '' + third_party_settings: { } hidden: created: true - entitygroupfield: true path: true status: true - uid: true diff --git a/services/drupal/config/sync/core.entity_form_display.media.remote_video.default.yml b/services/drupal/config/sync/core.entity_form_display.media.remote_video.default.yml index 1d10da1711..6982b88e49 100644 --- a/services/drupal/config/sync/core.entity_form_display.media.remote_video.default.yml +++ b/services/drupal/config/sync/core.entity_form_display.media.remote_video.default.yml @@ -10,6 +10,7 @@ dependencies: - field.field.media.remote_video.field_media_tags - media.type.remote_video module: + - entitygroupfield - media - path - shs @@ -25,6 +26,16 @@ content: region: content settings: { } third_party_settings: { } + entitygroupfield: + type: entitygroupfield_autocomplete_widget + weight: 10 + region: content + settings: + help_text: '' + label: 'Group name' + multiple: false + required: true + third_party_settings: { } field_caption: type: text_textarea weight: 3 @@ -90,7 +101,7 @@ content: third_party_settings: { } status: type: boolean_checkbox - weight: 10 + weight: 11 region: content settings: display_label: true @@ -105,5 +116,4 @@ content: size: 60 placeholder: '' third_party_settings: { } -hidden: - entitygroupfield: true +hidden: { } diff --git a/services/drupal/config/sync/core.entity_view_display.media.audio.media_library.yml b/services/drupal/config/sync/core.entity_view_display.media.audio.media_library.yml index 4d4b8297c3..b3be60518c 100644 --- a/services/drupal/config/sync/core.entity_view_display.media.audio.media_library.yml +++ b/services/drupal/config/sync/core.entity_view_display.media.audio.media_library.yml @@ -25,12 +25,12 @@ content: settings: image_link: '' image_style: medium - image_loading: - attribute: lazy svg_attributes: - width: '' - height: '' + width: null + height: null svg_render_as_image: true + image_loading: + attribute: lazy third_party_settings: { } weight: 0 region: content diff --git a/services/drupal/config/sync/core.entity_view_display.media.document.media_library.yml b/services/drupal/config/sync/core.entity_view_display.media.document.media_library.yml index 048ba4dcc6..fb8a72df02 100644 --- a/services/drupal/config/sync/core.entity_view_display.media.document.media_library.yml +++ b/services/drupal/config/sync/core.entity_view_display.media.document.media_library.yml @@ -25,12 +25,12 @@ content: settings: image_link: '' image_style: medium - image_loading: - attribute: lazy svg_attributes: - width: '' - height: '' + width: null + height: null svg_render_as_image: true + image_loading: + attribute: lazy third_party_settings: { } weight: 0 region: content diff --git a/services/drupal/config/sync/core.entity_view_display.media.other.media_library.yml b/services/drupal/config/sync/core.entity_view_display.media.other.media_library.yml index c466d44abf..04ccb33814 100644 --- a/services/drupal/config/sync/core.entity_view_display.media.other.media_library.yml +++ b/services/drupal/config/sync/core.entity_view_display.media.other.media_library.yml @@ -22,12 +22,12 @@ content: settings: image_link: '' image_style: medium - image_loading: - attribute: lazy svg_attributes: - width: '' - height: '' + width: null + height: null svg_render_as_image: true + image_loading: + attribute: lazy third_party_settings: { } weight: 0 region: content diff --git a/services/drupal/config/sync/core.entity_view_display.media.remote_video.media_library.yml b/services/drupal/config/sync/core.entity_view_display.media.remote_video.media_library.yml index 93765cc356..4d3a590448 100644 --- a/services/drupal/config/sync/core.entity_view_display.media.remote_video.media_library.yml +++ b/services/drupal/config/sync/core.entity_view_display.media.remote_video.media_library.yml @@ -30,12 +30,12 @@ content: settings: image_link: '' image_style: medium - image_loading: - attribute: lazy svg_attributes: - width: '' - height: '' + width: null + height: null svg_render_as_image: true + image_loading: + attribute: lazy third_party_settings: { } weight: 0 region: content diff --git a/services/drupal/config/sync/core.entity_view_display.media.remote_video.thumbnail.yml b/services/drupal/config/sync/core.entity_view_display.media.remote_video.thumbnail.yml index a3b86e6076..b8e509fd05 100644 --- a/services/drupal/config/sync/core.entity_view_display.media.remote_video.thumbnail.yml +++ b/services/drupal/config/sync/core.entity_view_display.media.remote_video.thumbnail.yml @@ -33,12 +33,12 @@ content: settings: image_link: '' image_style: thumbnail - image_loading: - attribute: lazy svg_attributes: - width: '' - height: '' + width: null + height: null svg_render_as_image: true + image_loading: + attribute: lazy third_party_settings: linked_field: linked: '1' diff --git a/services/drupal/config/sync/core.entity_view_display.node.speeches.link.yml b/services/drupal/config/sync/core.entity_view_display.node.speeches.link.yml index 66dd16712f..1bfd2aad8b 100644 --- a/services/drupal/config/sync/core.entity_view_display.node.speeches.link.yml +++ b/services/drupal/config/sync/core.entity_view_display.node.speeches.link.yml @@ -73,6 +73,7 @@ hidden: field_page_head: true field_paragraphs: true field_publish_date: true + field_publisher: true field_related_information: true field_release: true field_review_deadline: true diff --git a/services/drupal/config/sync/core.entity_view_display.node.web_area.default.yml b/services/drupal/config/sync/core.entity_view_display.node.web_area.default.yml index 127c9d7949..e6db6c0b14 100644 --- a/services/drupal/config/sync/core.entity_view_display.node.web_area.default.yml +++ b/services/drupal/config/sync/core.entity_view_display.node.web_area.default.yml @@ -79,38 +79,6 @@ third_party_settings: token: '' weight: 0 additional: { } - 476e0f5c-5396-47dd-9ee0-e7703afbd437: - uuid: 476e0f5c-5396-47dd-9ee0-e7703afbd437 - region: main - configuration: - id: 'field_block:node:web_area:field_wide_content' - label: 'Wide Content' - label_display: '0' - provider: layout_builder - context_mapping: - entity: layout_builder.entity - view_mode: view_mode - formatter: - type: layout_paragraphs - label: hidden - settings: - view_mode: default - third_party_settings: - linked_field: - linked: 0 - type: field - destination: - field: '' - custom: '' - advanced: - title: '' - target: '' - class: '' - rel: '' - text: '' - token: '' - weight: 1 - additional: { } 4908b795-23aa-4ee8-8a52-dce89dfcd636: uuid: 4908b795-23aa-4ee8-8a52-dce89dfcd636 region: main diff --git a/services/drupal/config/sync/diff.settings.yml b/services/drupal/config/sync/diff.settings.yml index 9e2764a0f3..b236ed7bbf 100644 --- a/services/drupal/config/sync/diff.settings.yml +++ b/services/drupal/config/sync/diff.settings.yml @@ -6,10 +6,10 @@ general_settings: context_lines_trailing: 1 revision_pager_limit: 50 layout_plugins: - split_fields: + visual_inline: enabled: true weight: -50 - visual_inline: + split_fields: enabled: true weight: -49 unified_fields: diff --git a/services/drupal/config/sync/field.field.node.page.field_wide_template.yml b/services/drupal/config/sync/field.field.node.page.field_wide_template.yml index 0a625e0ebe..93ea8b2037 100644 --- a/services/drupal/config/sync/field.field.node.page.field_wide_template.yml +++ b/services/drupal/config/sync/field.field.node.page.field_wide_template.yml @@ -16,7 +16,7 @@ field_name: field_wide_template entity_type: node bundle: page label: 'Use wide template' -description: 'If your content is very wide, check this option to use the wide template.' +description: 'The wide template may only be used to accommodate specific types of content. It is not permitted for purely aesthetic or layout preferences.' required: false translatable: false default_value: diff --git a/services/drupal/config/sync/field.field.node.perspective.field_scheduled_transition.yml b/services/drupal/config/sync/field.field.node.perspective.field_scheduled_transition.yml new file mode 100644 index 0000000000..035900171b --- /dev/null +++ b/services/drupal/config/sync/field.field.node.perspective.field_scheduled_transition.yml @@ -0,0 +1,29 @@ +uuid: fa0993c7-017f-4946-97f1-b0ffc3f419c3 +langcode: en +status: true +dependencies: + config: + - field.storage.node.field_scheduled_transition + - node.type.perspective + module: + - custom_add_another + - scheduled_publish +third_party_settings: + custom_add_another: + custom_add_another: '' + custom_remove: '' +id: node.perspective.field_scheduled_transition +field_name: field_scheduled_transition +entity_type: node +bundle: perspective +label: 'Scheduled Transition' +description: '' +required: false +translatable: true +default_value: + - + moderation_state: null + value: null +default_value_callback: '' +settings: { } +field_type: scheduled_publish diff --git a/services/drupal/config/sync/field.field.node.speeches.field_wide_template.yml b/services/drupal/config/sync/field.field.node.speeches.field_wide_template.yml index d58c4ee580..2c13f0f38d 100644 --- a/services/drupal/config/sync/field.field.node.speeches.field_wide_template.yml +++ b/services/drupal/config/sync/field.field.node.speeches.field_wide_template.yml @@ -16,7 +16,7 @@ field_name: field_wide_template entity_type: node bundle: speeches label: 'Use wide template' -description: 'If your content is very wide, check this option to use the wide template.' +description: 'The wide template may only be used to accommodate specific types of content. It is not permitted for purely aesthetic or layout preferences.' required: false translatable: true default_value: diff --git a/services/drupal/config/sync/group.role.web_area-administrator.yml b/services/drupal/config/sync/group.role.web_area-administrator.yml index cfd76404d0..df9be6bd99 100644 --- a/services/drupal/config/sync/group.role.web_area-administrator.yml +++ b/services/drupal/config/sync/group.role.web_area-administrator.yml @@ -32,11 +32,17 @@ permissions: - 'create group_node:regulation entity' - 'create group_node:speeches entity' - 'create group_node:webform entity' + - 'delete any group_media:audio content' - 'delete any group_media:audio entity' + - 'delete any group_media:banner_image content' - 'delete any group_media:banner_image entity' + - 'delete any group_media:document content' - 'delete any group_media:document entity' + - 'delete any group_media:image content' - 'delete any group_media:image entity' + - 'delete any group_media:other content' - 'delete any group_media:other entity' + - 'delete any group_media:remote_video content' - 'delete any group_media:remote_video entity' - 'delete any group_node:event content' - 'delete any group_node:event entity' @@ -56,11 +62,17 @@ permissions: - 'delete any group_node:speeches entity' - 'delete any group_node:webform content' - 'delete any group_node:webform entity' + - 'delete own group_media:audio content' - 'delete own group_media:audio entity' + - 'delete own group_media:banner_image content' - 'delete own group_media:banner_image entity' + - 'delete own group_media:document content' - 'delete own group_media:document entity' + - 'delete own group_media:image content' - 'delete own group_media:image entity' + - 'delete own group_media:other content' - 'delete own group_media:other entity' + - 'delete own group_media:remote_video content' - 'delete own group_media:remote_video entity' - 'delete own group_node:event content' - 'delete own group_node:event entity' @@ -82,11 +94,17 @@ permissions: - 'delete own group_node:webform entity' - 'manage group_content_menu' - 'manage group_content_menu menu items' + - 'update any group_media:audio content' - 'update any group_media:audio entity' + - 'update any group_media:banner_image content' - 'update any group_media:banner_image entity' + - 'update any group_media:document content' - 'update any group_media:document entity' + - 'update any group_media:image content' - 'update any group_media:image entity' + - 'update any group_media:other content' - 'update any group_media:other entity' + - 'update any group_media:remote_video content' - 'update any group_media:remote_video entity' - 'update any group_node:event content' - 'update any group_node:event entity' @@ -108,11 +126,17 @@ permissions: - 'update any group_node:webform content' - 'update any group_node:webform entity' - 'update group_menu:menu entity' + - 'update own group_media:audio content' - 'update own group_media:audio entity' + - 'update own group_media:banner_image content' - 'update own group_media:banner_image entity' + - 'update own group_media:document content' - 'update own group_media:document entity' + - 'update own group_media:image content' - 'update own group_media:image entity' + - 'update own group_media:other content' - 'update own group_media:other entity' + - 'update own group_media:remote_video content' - 'update own group_media:remote_video entity' - 'update own group_membership content' - 'update own group_node:event content' diff --git a/services/drupal/config/sync/group.role.web_area-approver.yml b/services/drupal/config/sync/group.role.web_area-approver.yml index 66de341ca4..b2920645f2 100644 --- a/services/drupal/config/sync/group.role.web_area-approver.yml +++ b/services/drupal/config/sync/group.role.web_area-approver.yml @@ -14,11 +14,17 @@ permissions_ui: true permissions: - 'access group_media overview' - 'access group_node overview' + - 'delete any group_media:audio content' - 'delete any group_media:audio entity' + - 'delete any group_media:banner_image content' - 'delete any group_media:banner_image entity' + - 'delete any group_media:document content' - 'delete any group_media:document entity' + - 'delete any group_media:image content' - 'delete any group_media:image entity' + - 'delete any group_media:other content' - 'delete any group_media:other entity' + - 'delete any group_media:remote_video content' - 'delete any group_media:remote_video entity' - 'delete any group_node:event content' - 'delete any group_node:faq content' @@ -29,11 +35,17 @@ permissions: - 'delete any group_node:regulation content' - 'delete any group_node:speeches content' - 'delete any group_node:webform content' + - 'delete own group_media:audio content' - 'delete own group_media:audio entity' + - 'delete own group_media:banner_image content' - 'delete own group_media:banner_image entity' + - 'delete own group_media:document content' - 'delete own group_media:document entity' + - 'delete own group_media:image content' - 'delete own group_media:image entity' + - 'delete own group_media:other content' - 'delete own group_media:other entity' + - 'delete own group_media:remote_video content' - 'delete own group_media:remote_video entity' - 'delete own group_node:event content' - 'delete own group_node:faq content' @@ -44,11 +56,17 @@ permissions: - 'delete own group_node:regulation content' - 'delete own group_node:speeches content' - 'delete own group_node:webform content' + - 'update any group_media:audio content' - 'update any group_media:audio entity' + - 'update any group_media:banner_image content' - 'update any group_media:banner_image entity' + - 'update any group_media:document content' - 'update any group_media:document entity' + - 'update any group_media:image content' - 'update any group_media:image entity' + - 'update any group_media:other content' - 'update any group_media:other entity' + - 'update any group_media:remote_video content' - 'update any group_media:remote_video entity' - 'update any group_node:event content' - 'update any group_node:faq content' @@ -59,11 +77,17 @@ permissions: - 'update any group_node:regulation content' - 'update any group_node:speeches content' - 'update any group_node:webform content' + - 'update own group_media:audio content' - 'update own group_media:audio entity' + - 'update own group_media:banner_image content' - 'update own group_media:banner_image entity' + - 'update own group_media:document content' - 'update own group_media:document entity' + - 'update own group_media:image content' - 'update own group_media:image entity' + - 'update own group_media:other content' - 'update own group_media:other entity' + - 'update own group_media:remote_video content' - 'update own group_media:remote_video entity' - 'update own group_node:event content' - 'update own group_node:faq content' diff --git a/services/drupal/config/sync/group.role.web_area-editor.yml b/services/drupal/config/sync/group.role.web_area-editor.yml index 77d660c325..fce4ec91fb 100644 --- a/services/drupal/config/sync/group.role.web_area-editor.yml +++ b/services/drupal/config/sync/group.role.web_area-editor.yml @@ -24,11 +24,17 @@ permissions: - 'create group_node:regulation entity' - 'create group_node:speeches entity' - 'create group_node:webform entity' + - 'delete any group_media:audio content' - 'delete any group_media:audio entity' + - 'delete any group_media:banner_image content' - 'delete any group_media:banner_image entity' + - 'delete any group_media:document content' - 'delete any group_media:document entity' + - 'delete any group_media:image content' - 'delete any group_media:image entity' + - 'delete any group_media:other content' - 'delete any group_media:other entity' + - 'delete any group_media:remote_video content' - 'delete any group_media:remote_video entity' - 'delete any group_node:event content' - 'delete any group_node:faq content' @@ -39,11 +45,17 @@ permissions: - 'delete any group_node:regulation content' - 'delete any group_node:speeches content' - 'delete any group_node:webform content' + - 'delete own group_media:audio content' - 'delete own group_media:audio entity' + - 'delete own group_media:banner_image content' - 'delete own group_media:banner_image entity' + - 'delete own group_media:document content' - 'delete own group_media:document entity' + - 'delete own group_media:image content' - 'delete own group_media:image entity' + - 'delete own group_media:other content' - 'delete own group_media:other entity' + - 'delete own group_media:remote_video content' - 'delete own group_media:remote_video entity' - 'delete own group_node:event content' - 'delete own group_node:faq content' @@ -57,11 +69,17 @@ permissions: - 'delete own group_node:webform entity' - 'manage group_content_menu' - 'manage group_content_menu menu items' + - 'update any group_media:audio content' - 'update any group_media:audio entity' + - 'update any group_media:banner_image content' - 'update any group_media:banner_image entity' + - 'update any group_media:document content' - 'update any group_media:document entity' + - 'update any group_media:image content' - 'update any group_media:image entity' + - 'update any group_media:other content' - 'update any group_media:other entity' + - 'update any group_media:remote_video content' - 'update any group_media:remote_video entity' - 'update any group_node:event content' - 'update any group_node:event entity' @@ -83,11 +101,17 @@ permissions: - 'update any group_node:webform content' - 'update any group_node:webform entity' - 'update group_menu:menu entity' + - 'update own group_media:audio content' - 'update own group_media:audio entity' + - 'update own group_media:banner_image content' - 'update own group_media:banner_image entity' + - 'update own group_media:document content' - 'update own group_media:document entity' + - 'update own group_media:image content' - 'update own group_media:image entity' + - 'update own group_media:other content' - 'update own group_media:other entity' + - 'update own group_media:remote_video content' - 'update own group_media:remote_video entity' - 'update own group_node:event content' - 'update own group_node:event entity' diff --git a/services/drupal/config/sync/group.role.web_area-member.yml b/services/drupal/config/sync/group.role.web_area-member.yml index 952811891e..6695193c39 100644 --- a/services/drupal/config/sync/group.role.web_area-member.yml +++ b/services/drupal/config/sync/group.role.web_area-member.yml @@ -28,17 +28,29 @@ permissions: - 'create group_node:public_notice entity' - 'create group_node:regulation entity' - 'create group_node:speeches entity' + - 'delete any group_media:audio content' - 'delete any group_media:audio entity' + - 'delete any group_media:banner_image content' - 'delete any group_media:banner_image entity' + - 'delete any group_media:document content' - 'delete any group_media:document entity' + - 'delete any group_media:image content' - 'delete any group_media:image entity' + - 'delete any group_media:other content' - 'delete any group_media:other entity' + - 'delete any group_media:remote_video content' - 'delete any group_media:remote_video entity' + - 'delete own group_media:audio content' - 'delete own group_media:audio entity' + - 'delete own group_media:banner_image content' - 'delete own group_media:banner_image entity' + - 'delete own group_media:document content' - 'delete own group_media:document entity' + - 'delete own group_media:image content' - 'delete own group_media:image entity' + - 'delete own group_media:other content' - 'delete own group_media:other entity' + - 'delete own group_media:remote_video content' - 'delete own group_media:remote_video entity' - 'delete own group_node:event entity' - 'delete own group_node:faq entity' @@ -58,11 +70,17 @@ permissions: - 'revert group_node:speeches revision' - 'revert group_node:web_area revision' - 'revert group_node:webform revision' + - 'update any group_media:audio content' - 'update any group_media:audio entity' + - 'update any group_media:banner_image content' - 'update any group_media:banner_image entity' + - 'update any group_media:document content' - 'update any group_media:document entity' + - 'update any group_media:image content' - 'update any group_media:image entity' + - 'update any group_media:other content' - 'update any group_media:other entity' + - 'update any group_media:remote_video content' - 'update any group_media:remote_video entity' - 'update any group_node:event entity' - 'update any group_node:faq entity' @@ -72,11 +90,17 @@ permissions: - 'update any group_node:public_notice entity' - 'update any group_node:regulation entity' - 'update any group_node:speeches entity' + - 'update own group_media:audio content' - 'update own group_media:audio entity' + - 'update own group_media:banner_image content' - 'update own group_media:banner_image entity' + - 'update own group_media:document content' - 'update own group_media:document entity' + - 'update own group_media:image content' - 'update own group_media:image entity' + - 'update own group_media:other content' - 'update own group_media:other entity' + - 'update own group_media:remote_video content' - 'update own group_media:remote_video entity' - 'update own group_node:event entity' - 'update own group_node:faq entity' diff --git a/services/drupal/patches/drupalparagraph_add_opener_parameters-rolled-with-3004077-7-and-3117524-5-and-csrf_token-patch.patch b/services/drupal/patches/drupalparagraph_add_opener_parameters-rolled-with-3004077-7-and-3117524-5-and-csrf_token-patch.patch new file mode 100644 index 0000000000..44323f5ea2 --- /dev/null +++ b/services/drupal/patches/drupalparagraph_add_opener_parameters-rolled-with-3004077-7-and-3117524-5-and-csrf_token-patch.patch @@ -0,0 +1,74 @@ +diff --git a/js/plugins/drupalparagraph/plugin.js b/js/plugins/drupalparagraph/plugin.js +index f90864f..0f06666 100644 +--- a/js/plugins/drupalparagraph/plugin.js ++++ b/js/plugins/drupalparagraph/plugin.js +@@ -77,6 +77,9 @@ + if ('data-paragraph-revision-id' in existingValues) { + url = url + '/' + existingValues['data-paragraph-revision-id'] + } ++ ++ url = url + "?" + editor.config.DrupalParagraph_openerParameters; ++ + // Open the Paragraph embed dialog for corresponding EmbedButton. + Drupal.ckeditor.openDialog(editor, url, existingValues, paragraphSaveCallback, dialogSettings); + } +diff --git a/src/Plugin/CKEditorPlugin/DrupalParagraph.php b/src/Plugin/CKEditorPlugin/DrupalParagraph.php +index 249ced2..0540944 100644 +--- a/src/Plugin/CKEditorPlugin/DrupalParagraph.php ++++ b/src/Plugin/CKEditorPlugin/DrupalParagraph.php +@@ -2,6 +2,7 @@ + + namespace Drupal\paragraphs_entity_embed\Plugin\CKEditorPlugin; + ++use Drupal\Core\Entity\ContentEntityInterface; + use Drupal\editor\Entity\Editor; + use Drupal\embed\EmbedCKEditorPluginBase; + +@@ -16,6 +17,25 @@ use Drupal\embed\EmbedCKEditorPluginBase; + */ + class DrupalParagraph extends EmbedCKEditorPluginBase { + ++ /** ++ * The current route match. ++ * ++ * @var \Drupal\Core\Routing\RouteMatchInterface ++ */ ++ protected $currentRouteMatch; ++ ++ /** ++ * Get the current route match. ++ * ++ * @return \Drupal\Core\Routing\RouteMatchInterface ++ */ ++ protected function getCurrentRouteMatch() { ++ if (!$this->currentRouteMatch) { ++ $this->currentRouteMatch = \Drupal::routeMatch(); ++ } ++ return $this->currentRouteMatch; ++ } ++ + /** + * {@inheritdoc} + */ +@@ -27,11 +47,21 @@ class DrupalParagraph extends EmbedCKEditorPluginBase { + * {@inheritdoc} + */ + public function getConfig(Editor $editor) { ++ $opener_parameters = ['entity_type_id' => '', 'entity_bundle' => '']; ++ foreach ($this->getCurrentRouteMatch()->getParameters()->all() as $parameter) { ++ if ($parameter instanceof ContentEntityInterface) { ++ $opener_parameters['entity_type_id'] = $parameter->getEntityTypeId(); ++ $opener_parameters['entity_bundle'] = $parameter->bundle(); ++ break; ++ } ++ } ++ + return [ + 'DrupalParagraph_dialogTitleAdd' => t('Insert Paragraph'), + 'DrupalParagraph_dialogTitleEdit' => t('Edit Paragraph'), + 'DrupalParagraph_buttons' => $this->getButtons(), + 'DrupalParagraph_previewCsrfToken' => \Drupal::csrfToken()->get('X-Drupal-EmbedPreview-CSRF-Token'), ++ 'DrupalParagraph_openerParameters' => http_build_query($opener_parameters), + ]; + } + diff --git a/services/drupal/web/modules/custom/epa_web_areas/epa_web_areas.module b/services/drupal/web/modules/custom/epa_web_areas/epa_web_areas.module index ef705f770a..7982fc4a00 100644 --- a/services/drupal/web/modules/custom/epa_web_areas/epa_web_areas.module +++ b/services/drupal/web/modules/custom/epa_web_areas/epa_web_areas.module @@ -13,6 +13,7 @@ use Drupal\Core\Entity\ContentEntityInterface; use Drupal\Core\Form\FormStateInterface; use Drupal\Core\Session\AccountInterface; use Drupal\Core\Url; +use Drupal\group\Entity\Group; use Drupal\group\Entity\GroupContent; use Drupal\group\Entity\GroupInterface; use Drupal\layout_builder\Plugin\SectionStorage\OverridesSectionStorage; @@ -197,6 +198,16 @@ function epa_web_areas_form_media_library_add_form_alter(&$form, FormStateInterf } } +/** + * Implements hook_form_FORM_ID_alter(). + */ +function epa_web_areas_form_embedded_paragraphs_paragraphs_entity_embed_form_alter(&$form, FormStateInterface $form_state, $form_id) { + // Add a custom submit handler that runs after media is added and saved. + if (!empty($form['actions'])) { + $form['#submit'][] = 'epa_web_areas_group_media_submit'; + } +} + /** * Implements hook_editor_js_settings_alter(). */ @@ -229,6 +240,12 @@ function epa_web_areas_editor_js_settings_alter(&$settings) { } } + $query = \Drupal::request()->query->all(); + if (empty($group) && isset($query['opener_parameters']['group'])) { + $group_id = $query['opener_parameters']['group']; + $group = Group::load($group_id); + } + // If we have a group object, add group id as a query parameter // to the opener parameters and rebuild query for media library // ckeditor widgets. The MediaLibraryState will preserve the group id. @@ -252,6 +269,15 @@ function epa_web_areas_editor_js_settings_alter(&$settings) { $url = implode('?', [$parts['path'], $query]); $settings['editor']['formats'][$format]['editorSettings'][$key] = $url; } + + // Add group ID as query parameter for DrupalParagraph entity embed. + if ($key == 'DrupalParagraph_openerParameters') { + $parts = parse_url($value); + parse_str($parts['path'], $query); + $query['opener_parameters']['group'] = $group->id(); + $out = http_build_query($query); + $settings['editor']['formats'][$format]['editorSettings'][$key] = $out; + } } } } diff --git a/services/drupal/web/themes/epa_theme/.eslintrc.js b/services/drupal/web/themes/epa_theme/.eslintrc.js index 8adfcf6b3b..aae12f77b6 100644 --- a/services/drupal/web/themes/epa_theme/.eslintrc.js +++ b/services/drupal/web/themes/epa_theme/.eslintrc.js @@ -42,5 +42,8 @@ module.exports = { "ignoreCase": true, "ignoreDeclarationSort": true, }], + }, + globals: { + "once": true } }; diff --git a/services/drupal/web/themes/epa_theme/epa_theme.libraries.yml b/services/drupal/web/themes/epa_theme/epa_theme.libraries.yml index e20efea28c..edfc801ed1 100644 --- a/services/drupal/web/themes/epa_theme/epa_theme.libraries.yml +++ b/services/drupal/web/themes/epa_theme/epa_theme.libraries.yml @@ -1,9 +1,9 @@ common: - version: VERSION + version: 20230524 js: js/dist/common.min.js: {} global: - version: 1 + version: 20230524 css: theme: css/styles.css: {} @@ -18,6 +18,7 @@ global: - core/drupal - core/drupalSettings - core/jquery + - core/once - epa_theme/common - epa_theme/font_arabic - epa_theme/font_korean @@ -26,14 +27,15 @@ global: - epa_theme/font_simplified_chinese - epa_theme/font_traditional_chinese before_after_swipe: - version: VERSION + version: 20230524 js: js/dist/before-after-swipe.min.js: {} dependencies: - core/drupal + - core/once - epa_theme/common details: - version: VERSION + version: 20230524 js: js/libraries/details-element-polyfill.js: {} font_arabic: @@ -61,34 +63,38 @@ font_traditional_chinese: theme: fonts/noto-sans-tc.css: {} image_gallery: - version: VERSION + version: 20230524 js: js/dist/image-gallery.min.js: {} dependencies: - core/drupal + - core/once - epa_theme/common hero_slideshow: - version: VERSION + version: 20230524 js: js/dist/hero-slideshow.min.js: {} dependencies: - core/drupal + - core/once - epa_theme/common media_link: - version: VERSION + version: 20230524 js: js/dist/media-link.min.js: {} dependencies: - core/drupal + - core/once - epa_theme/common svgxuse: version: 1.2.6 js: js/libraries/svgxuse.min.js: {} toggle_admin: - version: VERSION + version: 20230524 js: js/dist/toggle-admin.min.js: {} dependencies: - core/drupal + - core/once - epa_theme/common diff --git a/services/drupal/web/themes/epa_theme/includes/navigation.inc b/services/drupal/web/themes/epa_theme/includes/navigation.inc index eb24104542..f5994af1ea 100644 --- a/services/drupal/web/themes/epa_theme/includes/navigation.inc +++ b/services/drupal/web/themes/epa_theme/includes/navigation.inc @@ -23,6 +23,21 @@ function epa_theme_menu_active_item(&$items) { } } +/** + * Implements theme_preprocess_links__HOOK() + * + * @param $variables + */ +function epa_theme_preprocess_links__dropbutton(&$variables) { + if (isset($variables['links'])) { + foreach ($variables['links'] as $key => $item) { + $variables['links'][$key]['link']['#attributes']['class'][] = 'button'; + $variables['links'][$key]['link']['#attributes']['class'][] = 'dropbutton__button'; + } + } +} + + /** * Implements theme_preprocess_menu() * diff --git a/services/drupal/web/themes/epa_theme/js/src/before-after-swipe.es6.js b/services/drupal/web/themes/epa_theme/js/src/before-after-swipe.es6.js index 9a5cb510ca..b3c7b0d647 100644 --- a/services/drupal/web/themes/epa_theme/js/src/before-after-swipe.es6.js +++ b/services/drupal/web/themes/epa_theme/js/src/before-after-swipe.es6.js @@ -4,7 +4,11 @@ import Drupal from 'drupal'; (function(Drupal) { Drupal.behaviors.beforeAfterSwipe = { attach(context, settings) { - const beforeAfters = context.querySelectorAll('.js-before-after-swipe'); + const beforeAfters = once( + 'before-after-swipe', + '.js-before-after-swipe', + context + ); beforeAfters.forEach(beforeAfter => { const slider = beforeAfter.querySelector( diff --git a/services/drupal/web/themes/epa_theme/js/src/definition.es6.js b/services/drupal/web/themes/epa_theme/js/src/definition.es6.js index 63e9af4444..facfdcfe51 100644 --- a/services/drupal/web/themes/epa_theme/js/src/definition.es6.js +++ b/services/drupal/web/themes/epa_theme/js/src/definition.es6.js @@ -4,7 +4,7 @@ import Drupal from 'drupal'; (function(Drupal) { Drupal.behaviors.definition = { attach(context) { - const definitions = context.querySelectorAll('.js-definition'); + const definitions = once('definition', '.js-definition', context); const now = Date.now(); definitions.forEach((definition, index) => { diff --git a/services/drupal/web/themes/epa_theme/js/src/external-links.es6.js b/services/drupal/web/themes/epa_theme/js/src/external-links.es6.js index 5c9954d18d..231458487b 100644 --- a/services/drupal/web/themes/epa_theme/js/src/external-links.es6.js +++ b/services/drupal/web/themes/epa_theme/js/src/external-links.es6.js @@ -57,8 +57,11 @@ import Drupal from 'drupal'; return external; } - const externalLinks = context.querySelectorAll( - "a:not([href=''], [href^='#'], [href^='?'], [href^='/'], [href^='.'], [href^='javascript:'], [href^='mailto:'], [href^='tel:'])" + + const externalLinks = once( + 'external-links', + "a:not([href=''], [href^='#'], [href^='?'], [href^='/'], [href^='.'], [href^='javascript:'], [href^='mailto:'], [href^='tel:'])", + context ); const translate = { en: ['Exit', 'Exit EPA’s website'], diff --git a/services/drupal/web/themes/epa_theme/js/src/hero-slideshow.es6.js b/services/drupal/web/themes/epa_theme/js/src/hero-slideshow.es6.js index 3726593193..4e5a7b3fe3 100644 --- a/services/drupal/web/themes/epa_theme/js/src/hero-slideshow.es6.js +++ b/services/drupal/web/themes/epa_theme/js/src/hero-slideshow.es6.js @@ -7,7 +7,7 @@ import { tns } from 'tiny-slider/src/tiny-slider'; (function(Drupal) { Drupal.behaviors.heroSlideshow = { attach(context) { - const sliders = context.querySelectorAll('.js-hero-slideshow'); + const sliders = once('hero-slideshow', '.js-hero-slideshow', context); sliders.forEach(slider => { const sliderObject = tns({ autoplay: true, diff --git a/services/drupal/web/themes/epa_theme/js/src/image-gallery.es6.js b/services/drupal/web/themes/epa_theme/js/src/image-gallery.es6.js index f545d4d6c0..d4fa052b43 100644 --- a/services/drupal/web/themes/epa_theme/js/src/image-gallery.es6.js +++ b/services/drupal/web/themes/epa_theme/js/src/image-gallery.es6.js @@ -7,7 +7,7 @@ import { tns } from 'tiny-slider/src/tiny-slider'; (function(Drupal) { Drupal.behaviors.imageGallery = { attach(context) { - const sliders = context.querySelectorAll('.js-image-gallery'); + const sliders = once('image-gallery', '.js-image-gallery', context); sliders.forEach(slider => tns({ container: slider.querySelector('.js-image-gallery__container'), diff --git a/services/drupal/web/themes/epa_theme/js/src/media-link.es6.js b/services/drupal/web/themes/epa_theme/js/src/media-link.es6.js index cf67f7e4f1..763bc627c3 100644 --- a/services/drupal/web/themes/epa_theme/js/src/media-link.es6.js +++ b/services/drupal/web/themes/epa_theme/js/src/media-link.es6.js @@ -4,8 +4,10 @@ import Drupal from 'drupal'; (function(Drupal) { Drupal.behaviors.mediaLink = { attach(context) { - const mediaImages = context.querySelectorAll( - 'a > .figure > .figure__media > img' + const mediaImages = once( + 'media-link', + 'a > .figure > .figure__media > img', + context ); // Move anchors that wrap the figure to wrap the img instead. diff --git a/services/drupal/web/themes/epa_theme/js/src/modules/_back-to-top.es6.js b/services/drupal/web/themes/epa_theme/js/src/modules/_back-to-top.es6.js index ed5e4c8a08..8234a5bd13 100644 --- a/services/drupal/web/themes/epa_theme/js/src/modules/_back-to-top.es6.js +++ b/services/drupal/web/themes/epa_theme/js/src/modules/_back-to-top.es6.js @@ -6,7 +6,7 @@ * to the top. */ export default function(threshold = 200, smoothScroll = true) { - const backToTop = document.querySelector('.back-to-top'); + const backToTop = once('back-to-top', '.back-to-top'); if (backToTop) { if (!isNaN(threshold)) { backToTop.setAttribute('aria-hidden', 'true'); diff --git a/services/drupal/web/themes/epa_theme/js/src/modules/navigation.js b/services/drupal/web/themes/epa_theme/js/src/modules/navigation.js index 22dd7333f3..147a198187 100644 --- a/services/drupal/web/themes/epa_theme/js/src/modules/navigation.js +++ b/services/drupal/web/themes/epa_theme/js/src/modules/navigation.js @@ -1,5 +1,5 @@ export default function() { - const subnav = document.querySelectorAll('.menu--main .menu__subnav'); + const subnav = once('navigation', '.menu--main .menu__subnav'); subnav.forEach((menu, index) => { menu.setAttribute('hidden', true); const button = menu.previousElementSibling; diff --git a/services/drupal/web/themes/epa_theme/js/src/modules/tablesort.js b/services/drupal/web/themes/epa_theme/js/src/modules/tablesort.js index 59d858a63f..8013e40b65 100644 --- a/services/drupal/web/themes/epa_theme/js/src/modules/tablesort.js +++ b/services/drupal/web/themes/epa_theme/js/src/modules/tablesort.js @@ -1,7 +1,7 @@ import tablesort from 'tablesort/src/tablesort.js'; export default function() { - const tables = document.querySelectorAll('.usa-table--sortable'); + const tables = once('tablesort', '.usa-table--sortable'); tables.forEach(table => { tablesort(table); table.addEventListener('beforeSort', () => { diff --git a/services/drupal/web/themes/epa_theme/js/src/protected-links.es6.js b/services/drupal/web/themes/epa_theme/js/src/protected-links.es6.js index 774ab9882e..9c6b56676b 100644 --- a/services/drupal/web/themes/epa_theme/js/src/protected-links.es6.js +++ b/services/drupal/web/themes/epa_theme/js/src/protected-links.es6.js @@ -23,8 +23,11 @@ import Drupal from 'drupal'; return external; } - const externalLinks = context.querySelectorAll( - "a:not([href=''], [href^='#'], [href^='?'], [href^='/'], [href^='.'], [href^='javascript:'], [href^='mailto:'], [href^='tel:'])" + + const externalLinks = once( + 'protected-links', + "a:not([href=''], [href^='#'], [href^='?'], [href^='/'], [href^='.'], [href^='javascript:'], [href^='mailto:'], [href^='tel:'])", + context ); externalLinks.forEach(function(el) { diff --git a/services/drupal/web/themes/epa_theme/js/src/sitewide-alert.es6.js b/services/drupal/web/themes/epa_theme/js/src/sitewide-alert.es6.js index d0a5397e29..6579b31e86 100644 --- a/services/drupal/web/themes/epa_theme/js/src/sitewide-alert.es6.js +++ b/services/drupal/web/themes/epa_theme/js/src/sitewide-alert.es6.js @@ -4,7 +4,7 @@ import Drupal from 'drupal'; (function(Drupal) { Drupal.behaviors.sitewideAlert = { attach(context) { - const alerts = context.querySelectorAll('.js-sitewide-alert'); + const alerts = once('sitewide-alert', '.js-sitewide-alert', context); const cacheLimitDays = 14; const now = Date.now(); let closedHashes = getClosedAlerts(); diff --git a/services/drupal/web/themes/epa_theme/js/src/toggle-admin.es6.js b/services/drupal/web/themes/epa_theme/js/src/toggle-admin.es6.js index cc3dcceb1e..abbb09cd55 100644 --- a/services/drupal/web/themes/epa_theme/js/src/toggle-admin.es6.js +++ b/services/drupal/web/themes/epa_theme/js/src/toggle-admin.es6.js @@ -5,7 +5,11 @@ import Drupal from 'drupal'; Drupal.behaviors.toggleAdmin = { attach(context) { const toggleButton = context.querySelector('.js-toggle-admin'); - const adminContent = context.querySelectorAll('.js-toggle-admin-content'); + const adminContent = once( + 'toggle-admin', + '.js-toggle-admin-content', + context + ); if (toggleButton !== null) { toggleButton.addEventListener('click', event => { diff --git a/services/drupal/web/themes/epa_theme/source/_meta/_foot.twig b/services/drupal/web/themes/epa_theme/source/_meta/_foot.twig index 09304a7dd5..5634f3e4aa 100644 --- a/services/drupal/web/themes/epa_theme/source/_meta/_foot.twig +++ b/services/drupal/web/themes/epa_theme/source/_meta/_foot.twig @@ -2,6 +2,7 @@ + diff --git a/services/drupal/web/themes/epa_theme/source/_patterns/05-components/00-cms-styles/_index.scss b/services/drupal/web/themes/epa_theme/source/_patterns/05-components/00-cms-styles/_index.scss index b90f85b862..7986b486fc 100644 --- a/services/drupal/web/themes/epa_theme/source/_patterns/05-components/00-cms-styles/_index.scss +++ b/services/drupal/web/themes/epa_theme/source/_patterns/05-components/00-cms-styles/_index.scss @@ -1,3 +1,4 @@ @forward 'addtocal/addtocal'; +@forward 'diff/diff'; @forward 'flag/flag'; @forward 'toolbar-menu/toolbar-menu'; diff --git a/services/drupal/web/themes/epa_theme/source/_patterns/05-components/00-cms-styles/diff/_diff.scss b/services/drupal/web/themes/epa_theme/source/_patterns/05-components/00-cms-styles/diff/_diff.scss new file mode 100644 index 0000000000..5e7cf9d1a1 --- /dev/null +++ b/services/drupal/web/themes/epa_theme/source/_patterns/05-components/00-cms-styles/diff/_diff.scss @@ -0,0 +1,25 @@ +@use '../../../00-config' as *; + +.diff-header { + background: gesso-grayscale(gray-1); + margin-bottom: 1.5rem; + margin-top: 1rem; + padding: 2rem; + + .diff-revision { + margin-top: 0; + } +} + +.diff-controls { + margin-bottom: 1.5rem; + margin-top: 1rem; + + &__item + .diff-controls__item { + margin-top: 0; + } +} + +.diff-responsive-table-wrapper { + margin-bottom: 2rem; +} diff --git a/services/drupal/web/themes/epa_theme/source/_patterns/05-components/box/box--blog/_box--blog.scss b/services/drupal/web/themes/epa_theme/source/_patterns/05-components/box/box--blog/_box--blog.scss index 2d86846648..edd9e75aa5 100644 --- a/services/drupal/web/themes/epa_theme/source/_patterns/05-components/box/box--blog/_box--blog.scss +++ b/services/drupal/web/themes/epa_theme/source/_patterns/05-components/box/box--blog/_box--blog.scss @@ -32,13 +32,19 @@ } > .box__footer > .box__footer-link { - color: gesso-grayscale(gray-7); + color: gesso-color(text, link); + + &:visited { + color: gesso-color(text, link-visited); + } - &:visited, &:hover, - &:focus, + &:focus { + color: gesso-color(text, link-hover); + } + &:active { - color: gesso-grayscale(gray-7); + color: gesso-color(text, link-active); } } } diff --git a/services/drupal/web/themes/epa_theme/source/_patterns/05-components/box/box--blog/box--blog.md b/services/drupal/web/themes/epa_theme/source/_patterns/05-components/box/box--blog/box--blog.md index 9e96138e42..895cbd546f 100644 --- a/services/drupal/web/themes/epa_theme/source/_patterns/05-components/box/box--blog/box--blog.md +++ b/services/drupal/web/themes/epa_theme/source/_patterns/05-components/box/box--blog/box--blog.md @@ -1,6 +1,6 @@ --- el: .box--blog -title: Blog Box +title: Perspectives Box state: complete --- diff --git a/services/drupal/web/themes/epa_theme/templates/block/block--layout-builder.html.twig b/services/drupal/web/themes/epa_theme/templates/block/block--layout-builder.html.twig index c1a6dab4f6..cf9deaf1a9 100644 --- a/services/drupal/web/themes/epa_theme/templates/block/block--layout-builder.html.twig +++ b/services/drupal/web/themes/epa_theme/templates/block/block--layout-builder.html.twig @@ -4,4 +4,4 @@ * Theme override for a layout builder block. */ #} -{{ content }} +{% extends "block--admin.html.twig" %} diff --git a/services/drupal/web/themes/epa_theme/templates/content/node--web-area--full.html.twig b/services/drupal/web/themes/epa_theme/templates/content/node--web-area--full.html.twig index 14bead502a..1f355d4cab 100644 --- a/services/drupal/web/themes/epa_theme/templates/content/node--web-area--full.html.twig +++ b/services/drupal/web/themes/epa_theme/templates/content/node--web-area--full.html.twig @@ -57,8 +57,10 @@ {% set body %} {{ content|without( 'epa_content_moderation_info_box', - 'field_banner' + 'field_banner', + 'field_wide_content' ) }} + {{ node.field_wide_content|view({type: 'layout_paragraphs', label: 'hidden', settings: {view_mode: 'default'}}) }} {% endset %} {% include '@templates/web-area-homepages/microsite.twig' with { diff --git a/services/drupal/web/themes/epa_theme/templates/layout/page--node--revisions.html.twig b/services/drupal/web/themes/epa_theme/templates/layout/page--node--revisions.html.twig new file mode 100644 index 0000000000..17c1269e4b --- /dev/null +++ b/services/drupal/web/themes/epa_theme/templates/layout/page--node--revisions.html.twig @@ -0,0 +1,18 @@ +{# +/** + * @file + * Theme override to display a single page. + */ +#} + +{% extends "page.html.twig" %} + +{% block main_content %} +
+
+ {{ page.title }} + {{ page.messages }} + {{ page.content }} +
+
+{% endblock %} diff --git a/services/drupal/web/themes/epa_theme/templates/layout/page--node--webform--confirmation.html.twig b/services/drupal/web/themes/epa_theme/templates/layout/page--node--webform--confirmation.html.twig index b189249bd4..17c1269e4b 100644 --- a/services/drupal/web/themes/epa_theme/templates/layout/page--node--webform--confirmation.html.twig +++ b/services/drupal/web/themes/epa_theme/templates/layout/page--node--webform--confirmation.html.twig @@ -8,11 +8,11 @@ {% extends "page.html.twig" %} {% block main_content %} -
-
- {{ page.title }} - {{ page.messages }} - {{ page.content }} -
+
+
+ {{ page.title }} + {{ page.messages }} + {{ page.content }}
+
{% endblock %} diff --git a/services/drupal/web/themes/epa_theme/templates/navigation/links--dropbutton.html.twig b/services/drupal/web/themes/epa_theme/templates/navigation/links--dropbutton.html.twig index 0789ca4347..445692637c 100644 --- a/services/drupal/web/themes/epa_theme/templates/navigation/links--dropbutton.html.twig +++ b/services/drupal/web/themes/epa_theme/templates/navigation/links--dropbutton.html.twig @@ -28,7 +28,6 @@ {%- endif -%}