diff --git a/.ci/github/create_release_pull_request b/.ci/github/create_release_pull_request new file mode 100755 index 0000000000..69242acaeb --- /dev/null +++ b/.ci/github/create_release_pull_request @@ -0,0 +1,107 @@ +#!/bin/bash + +set -eo pipefail + +# If we aren't updating an existing pull request, create one to merge develop into master. +if [[ -z "$PR_NUMBER" ]]; then + pull_request_response=$(curl -s -H "Accept: application/vnd.github+json" \ + -H "Authorization: token $ACCESS_TOKEN" \ + -X POST -d '{"title": "Release", "head": "develop", "base": "master"}' \ + "https://api.github.com/repos/$REPO/pulls") + + message=$(echo "$pull_request_response" | jq -r 'if has("errors") then .errors[].message else null end') + + # Check if the pull request creation was successful. + if [[ -n "$message" ]]; then + echo "Failed to create pull request." + echo "Error: $message" + exit 1 + else + pr_url=$(echo "$pull_request_response" | jq -r '.html_url') + fi + + # Extract the pull request number from the response. + PR_NUMBER=$(echo "$pull_request_response" | jq -r '.number') + +# If there is an existing PR number, get the PR. +else + pull_request_response=$(curl --silent -H "Authorization: token $ACCESS_TOKEN" \ + "https://api.github.com/repos/$REPO/pulls/$PR_NUMBER") + + pr_url=$(echo "$pull_request_response" | jq -r '.html_url') +fi + +# Page through the /pulls/#/commits endpoint. +page=1 +per_page=100 + +while true; do + # Get the list of commits from the pull request and extract commit SHAs. + commits_response=$(curl --silent -H "Authorization: token $ACCESS_TOKEN" \ + "https://api.github.com/repos/$REPO/pulls/$PR_NUMBER/commits?per_page=$per_page&page=$page") + + current_commit_shas=$(echo "$commits_response" | jq -r '.[].sha') + + # Append current commit SHAs to the overall list. + commit_shas+="$current_commit_shas" + + # Check if there are more pages, otherwise finish. + if [[ $(echo "$commits_response" | jq -r '. | length') -lt "$per_page" ]]; then + break + fi + + # Increment page number for the next API call. + ((page++)) +done + +# Create list of unique pull requests based on commit SHAs, and another for changes without PRs. +pull_requests=() +changes_without_pr=() + +for sha in $commit_shas; do + single_pr_url=$(curl -s -H "Authorization: token $ACCESS_TOKEN" \ + "https://api.github.com/repos/$REPO/commits/$sha/pulls" \ + | jq -r 'if type == "object" and has("message") and length > 0 then null else .[].html_url // empty end') + + if [[ -n "$single_pr_url" && "$single_pr_url" != "null" ]]; then + pull_requests+=("$single_pr_url") + elif [[ "$single_pr_url" == "null" ]]; then + : + else + changes_without_pr+=("$sha") + fi +done + +# Dedupe pull request URLs. +pull_requests=($(printf '%s\n' "${pull_requests[@]}" | sort -u)) + +# Begin outputting description if there are PRs. +if [[ -n "${pull_requests[*]}" ]]; then + description+="## Pull requests\n" + + # Create pull request description with list of pull requests as a markdown list. + for pr in "${pull_requests[@]}"; do + description+="- $pr\n" + done + +fi + +# Output changes that are not in a pull request. +if [[ -n "${changes_without_pr[*]}" ]]; then + description+="\n## Changes without a pull request:\n" + + for sha in "${changes_without_pr[@]}"; do + description+="- $sha\n" + done +fi + +# Update pull request with new description. +update_pull_request=$(curl -s -L \ + -H "Accept: application/vnd.github+json" \ + -H "Authorization: token $ACCESS_TOKEN" \ + -X PATCH -d "{\"body\": \"$description\"}" \ + "https://api.github.com/repos/$REPO/pulls/$PR_NUMBER") + +if [[ -n "$pull_request_response" || -n "$update_pull_request" ]]; then + echo "Pull request created or updated: $pr_url" +fi diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000000..be66ccfbef --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,35 @@ +version: 2 +updates: + # Update root composer.json and drupal/core only. + - package-ecosystem: "composer" + open-pull-requests-limit: 5 + target-branch: "develop" + schedule: + interval: "monthly" + directory: "/" + versioning-strategy: increase + commit-message: + prefix: "chore" + include: "scope" + allow: + - dependency-name: "drupal/core-*" + groups: + drupal-core: + patterns: + - "drupal/core-*" + + # Update yalesites_profile composer.json. + - package-ecosystem: "composer" + open-pull-requests-limit: 5 + target-branch: "develop" + schedule: + interval: "monthly" + directory: "/web/profiles/custom/yalesites_profile" + versioning-strategy: increase + commit-message: + prefix: "chore" + include: "scope" + groups: + yalesites-profile: + patterns: + - "*" diff --git a/.github/workflows/build_deploy_and_test.yml b/.github/workflows/build_deploy_and_test.yml index e09066be14..d489389a5b 100644 --- a/.github/workflows/build_deploy_and_test.yml +++ b/.github/workflows/build_deploy_and_test.yml @@ -115,6 +115,12 @@ jobs: if [ -n "$contrib_check" ]; then echo "::error::$contrib_check found in /composer.json and should be moved to /web/profiles/custom/yalesites_profile/composer.json" && exit 1 fi + - name: Check for unpinned dependencies + run: | + unpinned_dependencies=$(jq -r '.require | to_entries | map(select(.value | test("\\^|\\~|\\>|\\<")) | "\(.key): \(.value)") | join(", ")' ./web/profiles/custom/yalesites_profile/composer.json) + if [ -n "$unpinned_dependencies" ]; then + echo "::error::$unpinned_dependencies found in /web/profiles/custom/yalesites_profile/composer.json. Please switch to pinned versions." && exit 1 + fi - name: run static tests run: | diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index d6632cb701..ae897c4d51 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -4,6 +4,7 @@ on: branches: master env: GH_TOKEN: ${{ secrets.YALESITES_BUILD_TOKEN }} + YALESITES_BUILD_TOKEN: ${{ secrets.YALESITES_BUILD_TOKEN }} jobs: build: runs-on: ubuntu-latest @@ -15,8 +16,6 @@ jobs: uses: actions/setup-node@v3 - name: Install - env: - GH_TOKEN: ${{ secrets.GH_TOKEN }} run: npm install - name: Release diff --git a/.github/workflows/release_pr.yml b/.github/workflows/release_pr.yml new file mode 100644 index 0000000000..4b7dd713c5 --- /dev/null +++ b/.github/workflows/release_pr.yml @@ -0,0 +1,19 @@ +name: Create release pull request +on: + pull_request: + branches: + - master + workflow_dispatch: +jobs: + create_pull_request: + runs-on: ubuntu-latest + env: + ACCESS_TOKEN: ${{ secrets.YALESITES_BUILD_TOKEN }} + REPO: ${{ github.repository }} + PR_NUMBER: ${{ github.event.number }} + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Create pull request + run: ./.ci/github/create_release_pull_request diff --git a/.gitignore b/.gitignore index fa11765e87..96b8dfefbb 100644 --- a/.gitignore +++ b/.gitignore @@ -22,7 +22,6 @@ # Ignore SimpleTest multi-site environment. /web/sites/simpletest - # Ignore custom modules managed by Composer. # # When a development team creates one or more custom modules that @@ -113,6 +112,7 @@ package-lock.json # Local files .DS_Store +.zip # Database references reference @@ -130,3 +130,6 @@ web/profiles/custom/yalesites_profile/vendor/ /atomic /component-library-twig /tokens + +# Secrets for local use +secrets.json diff --git a/.lando.local.example.yml b/.lando.local.example.yml index 3d1162d2fc..c2631df289 100644 --- a/.lando.local.example.yml +++ b/.lando.local.example.yml @@ -42,5 +42,6 @@ services: overrides: environment: COMPOSER_PROCESS_TIMEOUT: 1800 + CUSTOMER_SECRETS_FAKE_FILE: /app/secrets.json # This is needed to expose the reverse proxy to the xdebug port (9003) xdebug: true diff --git a/README.md b/README.md index 807a633a9f..6e819ceb77 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# YaleSites Project +# YaleSites Project. The YaleSites platform empowers the Yale community to create digital experiences for the web in applications that are secure, cost-effective, accessible, and sustainable. This project repository contains the tooling, configuration, and scaffolding required to create sites on the platform. This project includes: diff --git a/composer.json b/composer.json index ad1b879229..37a02652f2 100644 --- a/composer.json +++ b/composer.json @@ -10,6 +10,18 @@ "drupal": { "type": "composer", "url": "https://packages.drupal.org/8" + }, + "ckeditor5-anchor-drupal": { + "type": "package", + "package": { + "name": "northernco/ckeditor5-anchor-drupal", + "version": "0.4.0", + "type": "drupal-library", + "dist": { + "url": "https://registry.npmjs.org/@northernco/ckeditor5-anchor-drupal/-/ckeditor5-anchor-drupal-0.4.0.tgz", + "type": "tar" + } + } } }, "require": { diff --git a/docs/development.md b/docs/development.md index 2362ddde52..029b11a304 100644 --- a/docs/development.md +++ b/docs/development.md @@ -91,3 +91,25 @@ lando drush migrate-rollback --group ys_starterkit # Update partial configuration if altering the migration configuration. lando drush cim --partial --source=/app/web/profiles/custom/yalesites_profile/modules/custom/ys_starterkit/config/install -y ``` + +## Data model best practices + +A well-structured data model ensures efficiency, maintainability, and scalability within the YaleSites platform. Below are some guiding principles adopted by the platform maintainers: + +- **Documentation Maintenance**: Keep the data model documentation up to date. This Teams document includes entity definitions, text formats, display mode definitions, and other content settings. Whenever there's a change to a content type, block, paragraph, taxonomy, or any other entity, make it a priority to update this central documentation source. Maintaining accurate documentation is crucial for team collaboration and project continuity. +- **Normalize Data**: Follow established principles of database normalization to minimize data redundancy and enhance data integrity. Leverage reference fields and relationships to establish connections between related content instead of duplicating data. This approach ensures that the data remains consistent and predictable. +- **Reuse Fields**: Reduce the proliferation of field definitions by reusing fields across multiple content bundles, as long as they serve a similar business purpose. For instance, if several content types (e.g., pull quote, video description, banner intro) require a 'field_text' storage, consider reusing this field definition to maintain consistency and simplify content management. +- **Avoid Single-Purpose Fields or Entities**: When adding fields or entities, strive to make them versatile enough to fulfill multiple purposes across YaleSites. For example, while a dedicated 'Speaker' field might seem useful for an event content type, evaluate whether this feature could be addressed using a content-spotlight block. Add new fields only when they contribute to sorting, filtering, or theming content in specific ways. +- **Build with Blocks**: Embrace the power of the layout builder by utilizing blocks to define new components. YaleSites relies on blocks for editorial controls and mapping content to the component library. This includes both custom blocks (content entities) and programmatically defined blocks (plugins). +- **Use Paragraphs for Nested Content**: Paragraphs remain a valuable tool, particularly when dealing with components that contain an indeterminate number of children, such as accordion items, tab items, or gallery items. The Paragraphs module provides intuitive widgets that offer an effective editorial interface for managing reference content within these complex components. + +## Adding a 'dial' for theming a component + +This project features custom fields for block theming. For example, the divider block includes settings for position, width, and animation style. In contrast to traditional Drupal projects using predefined list-field options in the configuration file, we've chosen a distinct approach. Our approach prioritizes the ability to add, remove, and dynamically adjust these options in future YaleSites themes and platform iterations, ensuring enduring flexibility. This system accommodates unique values for each field instance and supports changes over time, avoiding database integrity concerns. To add a dial: + +1. Begin by adding the desired style field to the custom block using the standard field UI. Whenever feasible, utilize an existing field like field_style_position, field_style_width, or field_style_variation. +2. Configure the display of this field using the Field UI. Ensure that the style field is presented without a label and employs the 'key' formatter. +3. Export the site configuration to generate all the associated field YAML files. +4. In the event that this is a newly created field, update the field storage configuration file. Specify the callback function for values using `allowed_values_function: ys_themes_allowed_values_function`. +5. Proceed to update the key-value pairs within `ys_themes.component_overrides.yml`. Remember to make these updates in two locations: the config/sync directory and the module/install directory. +6. With these adjustments in place, you can now connect these values to components within the theme templates, achieving the desired styling and functionality. diff --git a/docs/export-starterkit-content.md b/docs/export-starterkit-content.md new file mode 100644 index 0000000000..7ff8784afa --- /dev/null +++ b/docs/export-starterkit-content.md @@ -0,0 +1,47 @@ +# Exporting starterkit content + +## Purpose + +There are certain YaleSite sites whose purpose is to provide a starting set of +pages for new YaleSites to use. This is a way to export the content of those +sites for import into a new site. This document will focus on the yalesites +starterkit site. (ys-starterkit) + +## What does it do? + +This will attempt to execute an export of the pantheon site using the terminus +command, then SFTP to it to retrieve the zip file, and attempt to unzip it into +a git repository to make a new commit. + +New commits will look like the following: + +`Content update: ` + +## Prerequisites + +1. The following installed: + 1. Terminus + 2. Sftp + 3. Git + 4. tr (most linux/bsd/unix based systems have this) +1. [Terminus with auth tokens already provided](https://github.com/yalesites-org/yalesites-project/blob/develop/docs/setup.md#terminus) + +## Usage + +1. Clone this repository. +1. Clone the [yalesites-starterkit](https://github.com/yalesites-org/yalesites-starterkit) repository at a separate location. +1. In this local repository, you'll run the following: + + ```sh + SITE_MACHINE_NAME= \ + ./scripts/local/starterkit/create-export \ + /starterkit + ``` + +4. SITE_MACHINE_NAME is the name of the Pantheon site you want to export from. + (i.e. ys-starterkit.dev) + +## Where can I get this information? + +* PANTHEON_NAME: This is the name of the site as it appears in the Pantheon + dashboard. diff --git a/package.json b/package.json index e6397dcffc..7d85f7fe2f 100644 --- a/package.json +++ b/package.json @@ -6,6 +6,7 @@ "build-with-install": "./scripts/local/build-with-install.sh", "build-with-assets": "./scripts/local/build-with-assets.sh", "confex": "./scripts/local/confex.sh", + "content-import": "./scripts/shared/content-import.sh", "confim": "./scripts/local/confim.sh", "db:get": "./scripts/local/db-get.sh", "files:get": "./scripts/local/files-get.sh", @@ -61,7 +62,7 @@ "files": [ "web/profiles/custom/yalesites_profile/yalesites_profile.info.yml" ], - "from": "version: .*", + "from": "#version:", "to": "version: ${nextRelease.version}", "results": [ { @@ -76,14 +77,6 @@ ] } ], - [ - "@semantic-release/git", - { - "assets": [ - "web/profiles/custom/yalesites_profile/yalesites_profile.info.yml" - ] - } - ], "@semantic-release/release-notes-generator", "@semantic-release/github" ] diff --git a/scripts/local/build-with-install.sh b/scripts/local/build-with-install.sh index 13f856f34c..58ab770ba5 100755 --- a/scripts/local/build-with-install.sh +++ b/scripts/local/build-with-install.sh @@ -1,6 +1,7 @@ #!/bin/bash +export YALESITES_IS_LOCAL=1 lando drush si yalesites_profile -y lando drush cr -lando drush migrate:import --group=ys_starterkit +npm run content-import npm run build diff --git a/scripts/local/images/calculateMB.sh b/scripts/local/images/calculateMB.sh new file mode 100755 index 0000000000..8073f1ec54 --- /dev/null +++ b/scripts/local/images/calculateMB.sh @@ -0,0 +1,49 @@ +#!/usr/bin/env bash + +# This script is used to check the possible memory +# allocation ImageMagick would need to convert a base image +# into our currently largest resolution of a file. +# +# Usage: ./calculateMB.sh +# - image: The image to check the memory usage for +# +# Example: ./calculateMB.sh ~/Pictures/IMG_0001.JPG +# - This will return the memory usage for IMG_0001.JPG in megabytes + +getMB() { + local resolution + resolution=$(getResolutionFromImage "$1") + calculateMemoryUsage "$(retrieveWidth "$resolution")" "$(retrieveHeight "$resolution")" +} + +getResolutionFromImage() { + local image="$1" + local resolution + + # Use double quotes around "$image" to handle spaces in the filename + resolution=$(identify -format "%wx%h" "$image") + + echo "$resolution" +} + +retrieveWidth() { + echo "${1%x*}" +} + +retrieveHeight() { + echo "${1#*x}" +} + +calculateMemoryUsage() { + local bitsPerPixel=3 + local tweakFactor=1.8 + local width="$1" + local height="$2" + + local largestWidth=2400 + local largestHeight=1600 + + echo "($largestWidth * $largestHeight * $bitsPerPixel + $width * $height * $bitsPerPixel) * $tweakFactor / 1024 / 1024" | bc +} + +getMB "$1" diff --git a/scripts/local/images/doItAll.sh b/scripts/local/images/doItAll.sh new file mode 100755 index 0000000000..d3f9ceaa47 --- /dev/null +++ b/scripts/local/images/doItAll.sh @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Check arguments +if [[ $# -ne 3 ]]; then + echo "Usage: ./doItAll.sh " + exit 1 +fi + +./get_images.sh "$1" "$2" && +./convert_images.sh "$2" 3840 2160 && +./put_images.sh "$1" "$3" "$2" diff --git a/scripts/local/images/fix_images.sh b/scripts/local/images/fix_images.sh new file mode 100755 index 0000000000..99da6ce747 --- /dev/null +++ b/scripts/local/images/fix_images.sh @@ -0,0 +1,120 @@ +#!/usr/bin/env bash + +# This script will attempt to convert any images that are greater than the +# desired width and height into the desired width and height. +# +# Requirements: +# - ImageMagick +# - bc +# +# Usage: ./fix_images.sh +# - path_to_where_images_are: The path to where the images are +# - desired_max_width: The desired maximum width of the images +# - desired_max_height: The desired maximum height of the images +# +# Example: ./fix_images.sh ~/Pictures 3840 2160 +# - This will convert any images in ~/Pictures that are greater than 3840x2160 +# to 3840x2160 or close to it. +# - This will also print out the memory usage for each image (before and after) +# - This will also print out the command that will be used to convert the image +# (in case you want to copy and paste it to run it yourself) + +getImages() { + local dirsToExclude=("library-definitions" "media-icons" "private" "styles" "js" "oembed_thumbnails" "paragraphs_type_icon" "css") + local dirToLook="$1" + + # Get rid of excluded directories--will make find easier + for dir in "${dirsToExclude[@]}"; do + rm -rf "$dirToLook/$dir" + done + + find "$dirToLook" -type f \( -name "*.jpg" -o -name "*.jpeg" -o -name "*.JPEG" -o -name "*.JPG" \) +} + +convertImages() { + local desiredWidth=$2 + local desiredHeight=$3 + local height + local width + local resolution + local directory="$1" + + local red='\033[0;31m' + local green='\033[0;32m' + local yellow='\033[0;33m' + local noColor='\033[0m' + + # Use an array to store file paths and prevent splitting + local files=() + IFS=$'\n' # Set the Internal Field Separator to newline + + # Use the getImages function to populate the array + readarray -t files <<< "$(getImages "$directory")" + + for file in "${files[@]}"; do + resolution=$(getResolutionFromImage "$file") + width=$(retrieveWidth "$resolution") + height=$(retrieveHeight "$resolution") + + if [[ $height -gt $desiredHeight ]]; then + echo -e "$red [Will Convert] $file has a resolution of $resolution: w: $width, h: $height (Target: $desiredWidth x $desiredHeight, Current memory usage: $(calculateMemoryUsage "$width" "$height") MB) $noColor" + echo convert -resize 3840x2160\> -quality 100 "$file" "$file" + echo -e "$yellow" convert "$file" -resize 3840x2160\> -quality 100 "$file" "$noColor" + convert "$file" -resize 3840x2160\> -quality 100 "$file" + + # Retrieve the new resolution, width, and height to recalculate the new memory usage + resolution=$(getResolutionFromImage "$file") + width=$(retrieveWidth "$resolution") + height=$(retrieveHeight "$resolution") + echo -e "$green [Converted] $file has been converted to $(getResolutionFromImage "$file") : Current memory usage: $(calculateMemoryUsage "$width" "$height") MB $noColor" + else + echo -e "$green [Will Not Convert] $file has a resolution of $resolution: w: $width, h: $height, Current memory usage: $(calculateMemoryUsage "$width" "$height") MB) $noColor" + fi + done +} + +getResolutionFromImage() { + local image="$1" + local resolution + + # Use double quotes around "$image" to handle spaces in the filename + resolution=$(identify -format "%wx%h" "$image") + + echo "$resolution" +} + +retrieveWidth() { + echo "${1%x*}" +} + +retrieveHeight() { + echo "${1#*x}" +} + +calculateMemoryUsage() { + local bitsPerPixel=3 + local tweakFactor=1.8 + local width="$1" + local height="$2" + + # This is currently our largest generated image resolution + # Should we ever update this, we will need to update this script + local largestWidth=2400 + local largestHeight=1600 + + echo "($largestWidth * $largestHeight * $bitsPerPixel + $width * $height * $bitsPerPixel) * $tweakFactor / 1024 / 1024" | bc +} + +# Ensure that they pass the right parameters +if [ $# -ne 3 ]; then + echo "Usage: ./fix_images.sh " + exit 1 +fi + +# Ensure directory exists +if [ ! -d "$1" ]; then + echo "Directory $1 does not exist" + exit 2 +fi + +convertImages "$1" "$2" "$3" diff --git a/scripts/local/images/get_images.sh b/scripts/local/images/get_images.sh new file mode 100755 index 0000000000..3d29261e88 --- /dev/null +++ b/scripts/local/images/get_images.sh @@ -0,0 +1,39 @@ +#!/usr/bin/env bash + +# This will attempt to retrieve all files under the /files +# directory on a remote Pantheon server. +# +# The motivation for this script is to convert all images to a smaller format. + +getFiles() { + local port=2222 + + sftp -o Port="$port" "$1" < " + exit 1 +fi + +# Test if destination exists +if [ ! -d "$2" ]; then + echo "Destination $2 does not exist; attempting to make directory" + + if ! mkdir -p "$2"; then + echo "Could not create directory $2" + exit 2 + fi +fi + +getFiles "$1" "$2" diff --git a/scripts/local/images/put_images.sh b/scripts/local/images/put_images.sh new file mode 100755 index 0000000000..82a6b82689 --- /dev/null +++ b/scripts/local/images/put_images.sh @@ -0,0 +1,35 @@ +#!/usr/bin/env bash + +# This will upload images processed to a destination Pantheon server +# +# The motivation for this script is to convert all images to a smaller format. + +uploadImages() { + local destinationServer="$1" + local destinationDirectory="$2" + local sourceDirectory="$3" + local port=2222 + + echo "Uploading images to $destinationServer:$destinationDirectory" + sftp -o Port="$port" "$destinationServer" < " + exit 1 +fi + +# Directory check +if [ ! -d "$3" ]; then + echo "Source directory $3 does not exist" + exit 2 +fi + +uploadImages "$1" "$2" "$3" diff --git a/scripts/local/setup.sh b/scripts/local/setup.sh index 155fc3f8c6..5bd6f70a8e 100755 --- a/scripts/local/setup.sh +++ b/scripts/local/setup.sh @@ -1,5 +1,8 @@ #!/bin/bash +# Define variable to check from other scripts if this script is being invoked. +export YALESITES_IS_LOCAL=1 + # Ignore the composer.lock file on local dev only. if ! grep -qxF 'composer.lock' .git/info/exclude; then echo "Excluding composer.lock to keep it out of the repo." @@ -28,6 +31,10 @@ fi # Start lando and create containers. lando start +# Generate local secrets file. +terminus plugin:install pantheon-systems/terminus-secrets-manager-plugin +terminus secret:site:local-generate yalesites-platform --filepath=./secrets.json + # Install packages and install Drupal using yalesites_profile. npm install npm run build-with-install diff --git a/scripts/local/starterkit/create-export b/scripts/local/starterkit/create-export new file mode 100755 index 0000000000..f763cb87e8 --- /dev/null +++ b/scripts/local/starterkit/create-export @@ -0,0 +1,139 @@ +#!/usr/bin/env bash + +# The idea is that you would clone the yalesites-starterkit repository to +# a directory, and then run this script, passing the directory to that +# repository. Provided environment variables were set, it will: +# - Create the export remotely on the yalesites server +# - Retrieve the zip file and delete it from the server +# - Unzip it to the repository location +# - Create a commit with a timestamp +# - Delete the original zip file created +# +# Environment variables needed: +# - SITE_MACHINE_NAME: The terminus site name to connect to +# +# Usage: +# SITE_MACHINE_NAME=ys-starterkit.dev ./scripts/local/starterkit/create-export \ +# /code/yalesites-starterkit/starterkit + +# Since this script will attempt to pull the zip from the URL, the SFTP +# settings must be set beforehand. +verifyEnvironmentVariables() { + if [[ -z "$SITE_MACHINE_NAME" ]]; then + echo "Environment variable SITE_MACHINE_NAME is not set. Please pre-set this varaible before running." + exit 1 + fi +} + +export-content() { + local zipRemoteLocation + local zipFilename + local destinationFolder="${1:-$(mktemp -d)}" + + zipRemoteLocation="$(retrieveZipLocation "$(runExport)")" + zipFilename="$(basename "$zipRemoteLocation")" + retrieveFileFromSftp "$zipRemoteLocation" + if [[ -f "$zipFilename" ]]; then + unzipToFolder "$zipFilename" "$destinationFolder" + createCommit "$destinationFolder" + removeZipFile "$zipFilename" + else + exit 1 + fi + + echo "Content exported to" + echo "$destinationFolder" +} + +retrieveConnectionInfoForPantheonSite() { + local siteMachineName="$1" + local connectionInfo + + connectionInfo=$(terminus connection:info "$siteMachineName" --field=sftp_command) + echo "$connectionInfo" +} + +# Figures out the zip location on the remote server based on the stdout of the +# terminus command. +retrieveZipLocation() { + local zipFilename + local tmpPath="/tmp/export/zip" + + # We don't have permission to create the scs-export directory under + # /code/web, so it errors out. We redirect the error to stdouot so we can + # capture the file name that was attempted. We then use the tmp directory + # location that it was when it was created, which still exists. + zipFilename=$(echo "$1" | tr '\n' ' ' | tr -d ' ' | grep -o "temporary://[^']*" | xargs -I {} basename {}) + echo "$tmpPath/$zipFilename" +} + +runExport() { + echo "Retrieving SFTP connection info; this could take a while." + terminus drush "$SITE_MACHINE_NAME" -- content:export --all-content --assets --translate 2>&1 +} + +# Retrieves the file from a remote server and removes the files afterward. +retrieveFileFromSftp() { + local sftpCommand + + sftpCommand=$(retrieveConnectionInfoForPantheonSite "$SITE_MACHINE_NAME") + $sftpCommand < /dev/null) + if [[ "$hasGit" ]]; then + git add . + git commit -a -m "Content update: $(date)" + # git push + fi + popd || exit 1 +} + +# Cleans up the zip file after unzipped to the folder. +removeZipFile() { + rm "$1" +} + +createFolderIfNotExists() { + if [[ ! -d "$1" ]]; then + mkdir -p "$1" + fi +} + +verifyEnvironmentVariables +export-content "$1" diff --git a/scripts/shared/content-import.sh b/scripts/shared/content-import.sh new file mode 100755 index 0000000000..68ceb15aee --- /dev/null +++ b/scripts/shared/content-import.sh @@ -0,0 +1,32 @@ +#!/bin/bash + +STARTERKIT_VERSION="latest" +STARTERKIT_FILE="starterkit.zip" +DOWNLOAD_URL="https://github.com/yalesites-org/yalesites-starterkit/releases/$STARTERKIT_VERSION/download/$STARTERKIT_FILE" + +# Download starterkit export. +if curl -s -O -L "$DOWNLOAD_URL"; then + echo "Starterkit file downloaded successfully." +else + echo "Failed to download starterkit file." + exit 1 +fi + +# Check if running under lando, otherwise assume CI. +# Put starterkit file in place and import. +# Get home page node path and set as front page in config. +nid_command="print \Drupal::service('path_alias.manager')->getPathByAlias('/homepage');" + +if [ "$YALESITES_IS_LOCAL" == "1" ]; then + lando drush content:import ../"$STARTERKIT_FILE" && rm "$STARTERKIT_FILE" + homepage_nid=$(lando drush ev "$nid_command") + lando drush cset system.site page.front "$homepage_nid" -y +else + [ -z "$env" ] && env="dev" + COMMAND=$(terminus connection:info "$SITE_MACHINE_NAME"."$env" --field=sftp_command) + eval "$COMMAND:/files/ <<< 'put $STARTERKIT_FILE'" + terminus drush "$SITE_MACHINE_NAME"."$env" -- content:import ../../files/"$STARTERKIT_FILE" + eval "$COMMAND:/files/ <<< 'rm $STARTERKIT_FILE'" + homepage_nid=$(echo "$nid_command" | terminus drush "$SITE_MACHINE_NAME"."$env" -- php-script - 2>/dev/null) + terminus drush "$SITE_MACHINE_NAME"."$env" -- cset system.site page.front "$homepage_nid" -y +fi diff --git a/web/profiles/custom/yalesites_profile/composer.json b/web/profiles/custom/yalesites_profile/composer.json index b5de00ad1a..ab6f7a880d 100644 --- a/web/profiles/custom/yalesites_profile/composer.json +++ b/web/profiles/custom/yalesites_profile/composer.json @@ -5,12 +5,25 @@ "drupal": { "type": "composer", "url": "https://packages.drupal.org/8" + }, + "ckeditor5-anchor-drupal": { + "type": "package", + "package": { + "name": "northernco/ckeditor5-anchor-drupal", + "version": "0.4.0", + "type": "drupal-library", + "dist": { + "url": "https://registry.npmjs.org/@northernco/ckeditor5-anchor-drupal/-/ckeditor5-anchor-drupal-0.4.0.tgz", + "type": "tar" + } + } } }, "require": { "drupal/address": "1.12", "drupal/admin_toolbar": "3.4.1", "drupal/allowed_formats": "3.0", + "drupal/anchor_link": "3.0.0-alpha1", "drupal/auto_entitylabel": "3.0", "drupal/autosave_form": "1.4", "drupal/better_exposed_filters": "6.0.3", @@ -49,7 +62,7 @@ "drupal/layout_builder_restrictions": "2.19", "drupal/layout_builder_restrictions_by_role": "1.0-alpha5", "drupal/libraries": "4.0.4", - "drupal/linkit": "6.1.0", + "drupal/linkit": "6.1.2", "drupal/mailchimp_transactional": "1.1.0", "drupal/mailsystem": "4.4", "drupal/markup": "2.0.0-beta6", @@ -62,6 +75,7 @@ "drupal/metatag": "2.0.0", "drupal/migrate_plus": "6.0.1", "drupal/migrate_tools": "6.0.2", + "drupal/multiple_fields_remove_button": "2.2", "drupal/multivalue_form_element": "1.0-beta6", "drupal/node_revision_delete": "2.0.0-alpha2", "drupal/override_node_options": "2.7", @@ -82,7 +96,7 @@ "drupal/section_library": "1.1.1", "drupal/selective_better_exposed_filters": "3.0.0-beta1", "drupal/simple_sitemap": "4.1.6", - "drupal/single_content_sync": "1.4.1", + "drupal/single_content_sync": "1.4.4", "drupal/smart_date": "4.0.3", "drupal/twig_tweak": "3.2.1", "drupal/typogrify": "1.2", @@ -91,7 +105,8 @@ "drupal/wingsuit_companion": "2.1", "jjj/chosen": "2.2.1", "laminas/laminas-escaper": "2.12", - "yalesites-org/atomic": "1.21.1", + "northernco/ckeditor5-anchor-drupal": "0.4.0", + "yalesites-org/atomic": "1.25.0", "yalesites-org/yale_cas": "1.0.4" }, "minimum-stability": "dev", @@ -113,7 +128,8 @@ "hide remove button": "https://www.drupal.org/files/issues/2020-05-13/hide_field_required_paragraphs_remove_button_1.patch" }, "drupal/core": { - "plural results summary https://www.drupal.org/project/drupal/issues/2888320": "https://www.drupal.org/files/issues/2021-12-15/2888320-78.patch" + "plural results summary https://www.drupal.org/project/drupal/issues/2888320": "https://www.drupal.org/files/issues/2021-12-15/2888320-78.patch", + "Prevent empty block_content info fields from causing php deprecation notices": "https://www.drupal.org/files/issues/2023-07-21/3340159-empty-block-label_0.patch" }, "drupal/entity_redirect": { "fix layout route https://www.drupal.org/project/entity_redirect/issues/3352265": "https://git.drupalcode.org/project/entity_redirect/-/merge_requests/6.patch" @@ -128,8 +144,12 @@ "fix description toggle for CKEditor fields https://www.drupal.org/project/gin/issues/3316265": "https://git.drupalcode.org/project/gin/-/merge_requests/227.patch", "update dark mode localstorage https://www.drupal.org/project/gin/issues/3387653": "https://git.drupalcode.org/project/gin/-/merge_requests/304.diff" }, + "drupal/gin_lb": { + "fix multivalued fields throw an error": "https://www.drupal.org/files/issues/2024-01-02/gin_lb-fix-attribute-3387157-5.patch" + }, "drupal/media_library_form_element": { - "Order Media items https://www.drupal.org/project/media_library_form_element/issues/3168027":"https://www.drupal.org/files/issues/2022-01-22/order_media_items-3168027-8.patch" + "Order Media items https://www.drupal.org/project/media_library_form_element/issues/3168027":"https://www.drupal.org/files/issues/2022-01-22/order_media_items-3168027-8.patch", + "Deprecated function: explode(): Passing null to parameter #2 ($string) of type string is deprecated https://www.drupal.org/project/media_library_form_element/issues/3277273": "https://www.drupal.org/files/issues/2023-01-25/deprecated-explode-3277273-11.patch" }, "drupal/redirect": { "fix validation issue on adding url redirect": "https://www.drupal.org/files/issues/2023-08-09/3057250-65.patch" @@ -139,6 +159,16 @@ }, "drupal/google_analytics": { "Cannot install from existing config https://www.drupal.org/project/google_analytics/issues/3373921": "https://www.drupal.org/files/issues/2023-08-07/google-analytics-issues-3373921-cannot-install-from-existing-config-11.patch" + }, + "drupal/linkit": { + "Add phone number matcher https://www.drupal.org/project/linkit/issues/3273630": "https://git.drupalcode.org/project/linkit/-/merge_requests/36.diff", + "Fix linkit autocomplete alias selection https://www.drupal.org/project/linkit/issues/2877535": "https://www.drupal.org/files/issues/2023-10-05/linkit-2877535-64.patch" + }, + "drupal/quick_node_clone": { + "Fix cloning of inline blocks and paragraphs: https://www.drupal.org/project/quick_node_clone/issues/3100117": "https://www.drupal.org/files/issues/2023-04-25/quick-node-clone--inline-blocks--3100117-32.patch" + }, + "drupal/section_library": { + "Fix access check issues on add_to_template link: https://www.drupal.org/project/section_library/issues/3241715": "https://www.drupal.org/files/issues/2022-09-21/3241715-6.patch" } } } diff --git a/web/profiles/custom/yalesites_profile/config/sync/block_content.type.content_spotlight.yml b/web/profiles/custom/yalesites_profile/config/sync/block_content.type.content_spotlight.yml index 84e364c87a..8760015c85 100644 --- a/web/profiles/custom/yalesites_profile/config/sync/block_content.type.content_spotlight.yml +++ b/web/profiles/custom/yalesites_profile/config/sync/block_content.type.content_spotlight.yml @@ -1,8 +1,33 @@ uuid: 045c7b01-536a-4ecb-a54e-6c328ce91888 langcode: en status: true -dependencies: { } +dependencies: + module: + - entity_redirect +third_party_settings: + entity_redirect: + redirect: + add: + active: 0 + destination: default + url: '' + external: '' + edit: + active: 0 + destination: default + url: '' + external: '' + delete: + active: 0 + destination: default + url: '' + external: '' + anonymous: + active: 0 + destination: default + url: '' + external: '' id: content_spotlight -label: 'Content Spotlight' +label: 'Spotlight - Landscape' revision: 1 -description: 'Content spotlight allows you to display an image adjacent to text. This component has optional content, varying sizes, and different orientations.' +description: 'Spotlight - Landscape allows you to display a landscape 3x2 image adjacent to text. This component has optional content, varying sizes, and different orientations.' diff --git a/web/profiles/custom/yalesites_profile/config/sync/block_content.type.content_spotlight_portrait.yml b/web/profiles/custom/yalesites_profile/config/sync/block_content.type.content_spotlight_portrait.yml new file mode 100644 index 0000000000..fca30b1c4f --- /dev/null +++ b/web/profiles/custom/yalesites_profile/config/sync/block_content.type.content_spotlight_portrait.yml @@ -0,0 +1,33 @@ +uuid: b6c1e225-d1e1-4b06-a972-d6223b25c923 +langcode: en +status: true +dependencies: + module: + - entity_redirect +third_party_settings: + entity_redirect: + redirect: + add: + active: 0 + destination: default + url: '' + external: '' + edit: + active: 0 + destination: default + url: '' + external: '' + delete: + active: 0 + destination: default + url: '' + external: '' + anonymous: + active: 0 + destination: default + url: '' + external: '' +id: content_spotlight_portrait +label: 'Spotlight - Portrait' +revision: 0 +description: 'Spotlight - Portrait allows you to display a portrait 2x3 image adjacent to text. This component has optional content, an image offset option, and different orientations.' diff --git a/web/profiles/custom/yalesites_profile/config/sync/core.entity_form_display.block_content.accordion.default.yml b/web/profiles/custom/yalesites_profile/config/sync/core.entity_form_display.block_content.accordion.default.yml index b63ac7f67a..20138a1d24 100644 --- a/web/profiles/custom/yalesites_profile/config/sync/core.entity_form_display.block_content.accordion.default.yml +++ b/web/profiles/custom/yalesites_profile/config/sync/core.entity_form_display.block_content.accordion.default.yml @@ -56,7 +56,7 @@ content: hide_guidelines: '1' maxlength: maxlength_js: 50 - maxlength_js_label: 'Content limited to @limit characters, remaining: @remaining' + maxlength_js_label: 'Content recommended length set to @limit characters, remaining: @remaining' maxlength_js_enforce: false field_instructions: type: markup diff --git a/web/profiles/custom/yalesites_profile/config/sync/core.entity_form_display.block_content.callout.default.yml b/web/profiles/custom/yalesites_profile/config/sync/core.entity_form_display.block_content.callout.default.yml index 59881aefbd..d148a30ebd 100644 --- a/web/profiles/custom/yalesites_profile/config/sync/core.entity_form_display.block_content.callout.default.yml +++ b/web/profiles/custom/yalesites_profile/config/sync/core.entity_form_display.block_content.callout.default.yml @@ -6,6 +6,7 @@ dependencies: - block_content.type.callout - field.field.block_content.callout.field_callout - field.field.block_content.callout.field_instructions + - field.field.block_content.callout.field_style_alignment - field.field.block_content.callout.field_style_color module: - markup @@ -46,6 +47,12 @@ content: region: content settings: { } third_party_settings: { } + field_style_alignment: + type: options_select + weight: 3 + region: content + settings: { } + third_party_settings: { } field_style_color: type: options_select weight: 2 diff --git a/web/profiles/custom/yalesites_profile/config/sync/core.entity_form_display.block_content.content_spotlight.default.yml b/web/profiles/custom/yalesites_profile/config/sync/core.entity_form_display.block_content.content_spotlight.default.yml index 6e6089d435..abc2f0626b 100644 --- a/web/profiles/custom/yalesites_profile/config/sync/core.entity_form_display.block_content.content_spotlight.default.yml +++ b/web/profiles/custom/yalesites_profile/config/sync/core.entity_form_display.block_content.content_spotlight.default.yml @@ -8,6 +8,7 @@ dependencies: - field.field.block_content.content_spotlight.field_instructions - field.field.block_content.content_spotlight.field_link - field.field.block_content.content_spotlight.field_media + - field.field.block_content.content_spotlight.field_style_color - field.field.block_content.content_spotlight.field_style_position - field.field.block_content.content_spotlight.field_style_variation - field.field.block_content.content_spotlight.field_style_width @@ -28,7 +29,7 @@ mode: default content: field_heading: type: text_textfield - weight: 3 + weight: 2 region: content settings: size: 60 @@ -39,7 +40,7 @@ content: hide_guidelines: '1' maxlength: maxlength_js: 80 - maxlength_js_label: 'Content limited to @limit characters, remaining: @remaining' + maxlength_js_label: 'Content recommended length set to @limit characters, remaining: @remaining' maxlength_js_enforce: false field_instructions: type: markup @@ -49,7 +50,7 @@ content: third_party_settings: { } field_link: type: link_default - weight: 6 + weight: 5 region: content settings: placeholder_url: '' @@ -61,34 +62,40 @@ content: maxlength_js_enforce: false field_media: type: media_library_widget - weight: 2 + weight: 1 region: content settings: media_types: { } third_party_settings: media_library_edit: show_edit: '1' + field_style_color: + type: options_select + weight: 6 + region: content + settings: { } + third_party_settings: { } field_style_position: type: options_select - weight: 8 + weight: 7 region: content settings: { } third_party_settings: { } field_style_variation: type: options_select - weight: 10 + weight: 9 region: content settings: { } third_party_settings: { } field_style_width: type: options_select - weight: 9 + weight: 8 region: content settings: { } third_party_settings: { } field_subheading: type: text_textfield - weight: 4 + weight: 3 region: content settings: size: 60 @@ -99,11 +106,11 @@ content: hide_guidelines: '1' maxlength: maxlength_js: 50 - maxlength_js_label: 'Content limited to @limit characters, remaining: @remaining' + maxlength_js_label: 'Content recommended length set to @limit characters, remaining: @remaining' maxlength_js_enforce: false field_text: type: text_textarea - weight: 5 + weight: 4 region: content settings: rows: 5 diff --git a/web/profiles/custom/yalesites_profile/config/sync/core.entity_form_display.block_content.content_spotlight_portrait.default.yml b/web/profiles/custom/yalesites_profile/config/sync/core.entity_form_display.block_content.content_spotlight_portrait.default.yml new file mode 100644 index 0000000000..9bfbb15eff --- /dev/null +++ b/web/profiles/custom/yalesites_profile/config/sync/core.entity_form_display.block_content.content_spotlight_portrait.default.yml @@ -0,0 +1,140 @@ +uuid: 7336cef2-ae23-49a3-969a-e32b5bc98708 +langcode: en +status: true +dependencies: + config: + - block_content.type.content_spotlight_portrait + - field.field.block_content.content_spotlight_portrait.field_heading + - field.field.block_content.content_spotlight_portrait.field_instructions + - field.field.block_content.content_spotlight_portrait.field_link + - field.field.block_content.content_spotlight_portrait.field_media + - field.field.block_content.content_spotlight_portrait.field_style_color + - field.field.block_content.content_spotlight_portrait.field_style_position + - field.field.block_content.content_spotlight_portrait.field_style_variation + - field.field.block_content.content_spotlight_portrait.field_subheading + - field.field.block_content.content_spotlight_portrait.field_text + module: + - allowed_formats + - hide_revision_field + - link + - markup + - maxlength + - media_library + - media_library_edit + - text +id: block_content.content_spotlight_portrait.default +targetEntityType: block_content +bundle: content_spotlight_portrait +mode: default +content: + field_heading: + type: text_textfield + weight: 2 + region: content + settings: + size: 60 + placeholder: '' + third_party_settings: + allowed_formats: + hide_help: '1' + hide_guidelines: '1' + maxlength: + maxlength_js: 50 + maxlength_js_label: 'Content recommended length set to @limit characters, remaining: @remaining' + maxlength_js_enforce: false + field_instructions: + type: markup + weight: 1 + region: content + settings: { } + third_party_settings: { } + field_link: + type: link_default + weight: 6 + region: content + settings: + placeholder_url: '' + placeholder_title: '' + third_party_settings: + maxlength: + maxlength_js: null + maxlength_js_label: 'Content limited to @limit characters, remaining: @remaining' + maxlength_js_enforce: false + field_media: + type: media_library_widget + weight: 3 + region: content + settings: + media_types: { } + third_party_settings: + media_library_edit: + show_edit: '1' + field_style_color: + type: options_select + weight: 7 + region: content + settings: { } + third_party_settings: { } + field_style_position: + type: options_select + weight: 8 + region: content + settings: { } + third_party_settings: { } + field_style_variation: + type: options_select + weight: 9 + region: content + settings: { } + third_party_settings: { } + field_subheading: + type: text_textfield + weight: 4 + region: content + settings: + size: 60 + placeholder: '' + third_party_settings: + allowed_formats: + hide_help: '1' + hide_guidelines: '1' + maxlength: + maxlength_js: 50 + maxlength_js_label: 'Content recommended length set to @limit characters, remaining: @remaining' + maxlength_js_enforce: false + field_text: + type: text_textarea + weight: 5 + region: content + settings: + rows: 5 + placeholder: '' + third_party_settings: + allowed_formats: + hide_help: '1' + hide_guidelines: '1' + maxlength: + maxlength_js: 500 + maxlength_js_label: 'Content limited to @limit characters, remaining: @remaining' + maxlength_js_enforce: true + info: + type: string_textfield + weight: 0 + region: content + settings: + size: 60 + placeholder: '' + third_party_settings: { } + revision_log: + type: hide_revision_field_log_widget + weight: 10 + region: content + settings: + rows: 5 + placeholder: '' + show: true + default: '' + permission_based: false + allow_user_settings: true + third_party_settings: { } +hidden: { } diff --git a/web/profiles/custom/yalesites_profile/config/sync/core.entity_form_display.block_content.cta_banner.default.yml b/web/profiles/custom/yalesites_profile/config/sync/core.entity_form_display.block_content.cta_banner.default.yml index 8956dbd94a..02db80496c 100644 --- a/web/profiles/custom/yalesites_profile/config/sync/core.entity_form_display.block_content.cta_banner.default.yml +++ b/web/profiles/custom/yalesites_profile/config/sync/core.entity_form_display.block_content.cta_banner.default.yml @@ -38,7 +38,7 @@ content: hide_guidelines: '1' maxlength: maxlength_js: 50 - maxlength_js_label: 'Content limited to @limit characters, remaining: @remaining' + maxlength_js_label: 'Content recommended length set to @limit characters, remaining: @remaining' maxlength_js_enforce: false field_heading_level: type: options_select diff --git a/web/profiles/custom/yalesites_profile/config/sync/core.entity_form_display.block_content.custom_cards.default.yml b/web/profiles/custom/yalesites_profile/config/sync/core.entity_form_display.block_content.custom_cards.default.yml index d57aab67f5..4f9a7e7f8c 100644 --- a/web/profiles/custom/yalesites_profile/config/sync/core.entity_form_display.block_content.custom_cards.default.yml +++ b/web/profiles/custom/yalesites_profile/config/sync/core.entity_form_display.block_content.custom_cards.default.yml @@ -56,7 +56,7 @@ content: hide_guidelines: '1' maxlength: maxlength_js: 50 - maxlength_js_label: 'Content limited to @limit characters, remaining: @remaining' + maxlength_js_label: 'Content recommended length set to @limit characters, remaining: @remaining' maxlength_js_enforce: false field_instructions: type: markup diff --git a/web/profiles/custom/yalesites_profile/config/sync/core.entity_form_display.block_content.directory.default.yml b/web/profiles/custom/yalesites_profile/config/sync/core.entity_form_display.block_content.directory.default.yml index d9bcce115f..a287c462bd 100644 --- a/web/profiles/custom/yalesites_profile/config/sync/core.entity_form_display.block_content.directory.default.yml +++ b/web/profiles/custom/yalesites_profile/config/sync/core.entity_form_display.block_content.directory.default.yml @@ -29,7 +29,7 @@ content: hide_guidelines: '1' maxlength: maxlength_js: 50 - maxlength_js_label: 'Content limited to @limit characters, remaining: @remaining' + maxlength_js_label: 'Content recommended length set to @limit characters, remaining: @remaining' maxlength_js_enforce: false field_instructions: type: markup diff --git a/web/profiles/custom/yalesites_profile/config/sync/core.entity_form_display.block_content.event_list.default.yml b/web/profiles/custom/yalesites_profile/config/sync/core.entity_form_display.block_content.event_list.default.yml index 5dbd0eb88c..e7d8f5282b 100644 --- a/web/profiles/custom/yalesites_profile/config/sync/core.entity_form_display.block_content.event_list.default.yml +++ b/web/profiles/custom/yalesites_profile/config/sync/core.entity_form_display.block_content.event_list.default.yml @@ -29,7 +29,7 @@ content: hide_guidelines: '1' maxlength: maxlength_js: 50 - maxlength_js_label: 'Content limited to @limit characters, remaining: @remaining' + maxlength_js_label: 'Content recommended length set to @limit characters, remaining: @remaining' maxlength_js_enforce: false field_instructions: type: markup diff --git a/web/profiles/custom/yalesites_profile/config/sync/core.entity_form_display.block_content.gallery.default.yml b/web/profiles/custom/yalesites_profile/config/sync/core.entity_form_display.block_content.gallery.default.yml index 88b58d4b7c..065caa4027 100644 --- a/web/profiles/custom/yalesites_profile/config/sync/core.entity_form_display.block_content.gallery.default.yml +++ b/web/profiles/custom/yalesites_profile/config/sync/core.entity_form_display.block_content.gallery.default.yml @@ -56,7 +56,7 @@ content: hide_guidelines: '1' maxlength: maxlength_js: 50 - maxlength_js_label: 'Content limited to @limit characters, remaining: @remaining' + maxlength_js_label: 'Content recommended length set to @limit characters, remaining: @remaining' maxlength_js_enforce: false field_instructions: type: markup diff --git a/web/profiles/custom/yalesites_profile/config/sync/core.entity_form_display.block_content.grand_hero.default.yml b/web/profiles/custom/yalesites_profile/config/sync/core.entity_form_display.block_content.grand_hero.default.yml index 9641bcb843..b780112791 100644 --- a/web/profiles/custom/yalesites_profile/config/sync/core.entity_form_display.block_content.grand_hero.default.yml +++ b/web/profiles/custom/yalesites_profile/config/sync/core.entity_form_display.block_content.grand_hero.default.yml @@ -38,7 +38,7 @@ content: hide_guidelines: '1' maxlength: maxlength_js: 50 - maxlength_js_label: 'Content limited to @limit characters, remaining: @remaining' + maxlength_js_label: 'Content recommended length set to @limit characters, remaining: @remaining' maxlength_js_enforce: false field_heading_level: type: options_select @@ -66,8 +66,8 @@ content: region: content settings: media_types: - - background_video - image + - background_video third_party_settings: media_library_edit: show_edit: '1' @@ -96,7 +96,7 @@ content: hide_guidelines: '1' maxlength: maxlength_js: 90 - maxlength_js_label: 'Content limited to @limit characters, remaining: @remaining' + maxlength_js_label: 'Content recommended length set to @limit characters, remaining: @remaining' maxlength_js_enforce: false hidden: info: true diff --git a/web/profiles/custom/yalesites_profile/config/sync/core.entity_form_display.block_content.image.default.yml b/web/profiles/custom/yalesites_profile/config/sync/core.entity_form_display.block_content.image.default.yml index 0b8a92ba39..7cc6879d28 100644 --- a/web/profiles/custom/yalesites_profile/config/sync/core.entity_form_display.block_content.image.default.yml +++ b/web/profiles/custom/yalesites_profile/config/sync/core.entity_form_display.block_content.image.default.yml @@ -47,7 +47,7 @@ content: hide_guidelines: '1' maxlength: maxlength_js: 200 - maxlength_js_label: 'Content limited to @limit characters, remaining: @remaining' + maxlength_js_label: 'Content recommended length set to @limit characters, remaining: @remaining' maxlength_js_enforce: false hidden: info: true diff --git a/web/profiles/custom/yalesites_profile/config/sync/core.entity_form_display.block_content.media_grid.default.yml b/web/profiles/custom/yalesites_profile/config/sync/core.entity_form_display.block_content.media_grid.default.yml index fcd0c98c09..67a89c3fec 100644 --- a/web/profiles/custom/yalesites_profile/config/sync/core.entity_form_display.block_content.media_grid.default.yml +++ b/web/profiles/custom/yalesites_profile/config/sync/core.entity_form_display.block_content.media_grid.default.yml @@ -32,7 +32,7 @@ content: hide_guidelines: '1' maxlength: maxlength_js: 50 - maxlength_js_label: 'Content limited to @limit characters, remaining: @remaining' + maxlength_js_label: 'Content recommended length set to @limit characters, remaining: @remaining' maxlength_js_enforce: false field_instructions: type: markup diff --git a/web/profiles/custom/yalesites_profile/config/sync/core.entity_form_display.block_content.post_list.default.yml b/web/profiles/custom/yalesites_profile/config/sync/core.entity_form_display.block_content.post_list.default.yml index aeb017d48d..c8ddd320f5 100644 --- a/web/profiles/custom/yalesites_profile/config/sync/core.entity_form_display.block_content.post_list.default.yml +++ b/web/profiles/custom/yalesites_profile/config/sync/core.entity_form_display.block_content.post_list.default.yml @@ -29,7 +29,7 @@ content: hide_guidelines: '1' maxlength: maxlength_js: 50 - maxlength_js_label: 'Content limited to @limit characters, remaining: @remaining' + maxlength_js_label: 'Content recommended length set to @limit characters, remaining: @remaining' maxlength_js_enforce: false field_instructions: type: markup diff --git a/web/profiles/custom/yalesites_profile/config/sync/core.entity_form_display.block_content.pull_quote.default.yml b/web/profiles/custom/yalesites_profile/config/sync/core.entity_form_display.block_content.pull_quote.default.yml index 35584397a8..ffb8a05dad 100644 --- a/web/profiles/custom/yalesites_profile/config/sync/core.entity_form_display.block_content.pull_quote.default.yml +++ b/web/profiles/custom/yalesites_profile/config/sync/core.entity_form_display.block_content.pull_quote.default.yml @@ -31,7 +31,7 @@ content: hide_guidelines: '1' maxlength: maxlength_js: 90 - maxlength_js_label: 'Content limited to @limit characters, remaining: @remaining' + maxlength_js_label: 'Content recommended length set to @limit characters, remaining: @remaining' maxlength_js_enforce: false field_instructions: type: markup diff --git a/web/profiles/custom/yalesites_profile/config/sync/core.entity_form_display.block_content.quick_links.default.yml b/web/profiles/custom/yalesites_profile/config/sync/core.entity_form_display.block_content.quick_links.default.yml index 08f765cca6..624c78d3d4 100644 --- a/web/profiles/custom/yalesites_profile/config/sync/core.entity_form_display.block_content.quick_links.default.yml +++ b/web/profiles/custom/yalesites_profile/config/sync/core.entity_form_display.block_content.quick_links.default.yml @@ -35,7 +35,7 @@ content: hide_guidelines: '1' maxlength: maxlength_js: 50 - maxlength_js_label: 'Content limited to @limit characters, remaining: @remaining' + maxlength_js_label: 'Content recommended length set to @limit characters, remaining: @remaining' maxlength_js_enforce: false field_instructions: type: markup diff --git a/web/profiles/custom/yalesites_profile/config/sync/core.entity_form_display.block_content.text.default.yml b/web/profiles/custom/yalesites_profile/config/sync/core.entity_form_display.block_content.text.default.yml index b77b880344..bd8888d662 100644 --- a/web/profiles/custom/yalesites_profile/config/sync/core.entity_form_display.block_content.text.default.yml +++ b/web/profiles/custom/yalesites_profile/config/sync/core.entity_form_display.block_content.text.default.yml @@ -5,6 +5,7 @@ dependencies: config: - block_content.type.text - field.field.block_content.text.field_instructions + - field.field.block_content.text.field_style_variation - field.field.block_content.text.field_text module: - allowed_formats @@ -22,6 +23,12 @@ content: region: content settings: { } third_party_settings: { } + field_style_variation: + type: options_select + weight: 10 + region: content + settings: { } + third_party_settings: { } field_text: type: text_textarea weight: 1 diff --git a/web/profiles/custom/yalesites_profile/config/sync/core.entity_form_display.block_content.video.default.yml b/web/profiles/custom/yalesites_profile/config/sync/core.entity_form_display.block_content.video.default.yml index 10bdba6a98..7879b96248 100644 --- a/web/profiles/custom/yalesites_profile/config/sync/core.entity_form_display.block_content.video.default.yml +++ b/web/profiles/custom/yalesites_profile/config/sync/core.entity_form_display.block_content.video.default.yml @@ -33,7 +33,7 @@ content: hide_guidelines: '1' maxlength: maxlength_js: null - maxlength_js_label: 'Content limited to @limit characters, remaining: @remaining' + maxlength_js_label: 'Content recommended length set to @limit characters, remaining: @remaining' maxlength_js_enforce: false field_instructions: type: markup @@ -63,7 +63,7 @@ content: hide_guidelines: '1' maxlength: maxlength_js: 200 - maxlength_js_label: 'Content limited to @limit characters, remaining: @remaining' + maxlength_js_label: 'Content recommended length set to @limit characters, remaining: @remaining' maxlength_js_enforce: false hidden: info: true diff --git a/web/profiles/custom/yalesites_profile/config/sync/core.entity_form_display.block_content.view.default.yml b/web/profiles/custom/yalesites_profile/config/sync/core.entity_form_display.block_content.view.default.yml index 9fdf29700a..20f19b00d1 100644 --- a/web/profiles/custom/yalesites_profile/config/sync/core.entity_form_display.block_content.view.default.yml +++ b/web/profiles/custom/yalesites_profile/config/sync/core.entity_form_display.block_content.view.default.yml @@ -31,7 +31,7 @@ content: hide_guidelines: '1' maxlength: maxlength_js: 50 - maxlength_js_label: 'Content limited to @limit characters, remaining: @remaining' + maxlength_js_label: 'Content recommended length set to @limit characters, remaining: @remaining' maxlength_js_enforce: false field_instructions: type: markup diff --git a/web/profiles/custom/yalesites_profile/config/sync/core.entity_form_display.block_content.webform.default.yml b/web/profiles/custom/yalesites_profile/config/sync/core.entity_form_display.block_content.webform.default.yml index d6d65f0b88..f523a3ed8b 100644 --- a/web/profiles/custom/yalesites_profile/config/sync/core.entity_form_display.block_content.webform.default.yml +++ b/web/profiles/custom/yalesites_profile/config/sync/core.entity_form_display.block_content.webform.default.yml @@ -39,7 +39,7 @@ content: hide_guidelines: '1' maxlength: maxlength_js: 80 - maxlength_js_label: 'Content limited to @limit characters, remaining: @remaining' + maxlength_js_label: 'Content recommended length set to @limit characters, remaining: @remaining' maxlength_js_enforce: false field_instructions: type: markup diff --git a/web/profiles/custom/yalesites_profile/config/sync/core.entity_form_display.paragraph.accordion_item.default.yml b/web/profiles/custom/yalesites_profile/config/sync/core.entity_form_display.paragraph.accordion_item.default.yml index 9547831bd9..10b4b3b7aa 100644 --- a/web/profiles/custom/yalesites_profile/config/sync/core.entity_form_display.paragraph.accordion_item.default.yml +++ b/web/profiles/custom/yalesites_profile/config/sync/core.entity_form_display.paragraph.accordion_item.default.yml @@ -41,7 +41,8 @@ content: hide_guidelines: '1' maxlength: maxlength_js: 80 - maxlength_js_label: 'Content limited to @limit characters, remaining: @remaining' + maxlength_js_label: 'Content recommended length set to @limit characters, remaining: @remaining' + maxlength_js_enforce: false hidden: created: true status: true diff --git a/web/profiles/custom/yalesites_profile/config/sync/core.entity_form_display.paragraph.callout_item.default.yml b/web/profiles/custom/yalesites_profile/config/sync/core.entity_form_display.paragraph.callout_item.default.yml index 395f8cf58a..531beb3621 100644 --- a/web/profiles/custom/yalesites_profile/config/sync/core.entity_form_display.paragraph.callout_item.default.yml +++ b/web/profiles/custom/yalesites_profile/config/sync/core.entity_form_display.paragraph.callout_item.default.yml @@ -30,7 +30,8 @@ content: hide_guidelines: '1' maxlength: maxlength_js: 80 - maxlength_js_label: 'Content limited to @limit characters, remaining: @remaining' + maxlength_js_label: 'Content recommended length set to @limit characters, remaining: @remaining' + maxlength_js_enforce: false field_link: type: link_default weight: 3 diff --git a/web/profiles/custom/yalesites_profile/config/sync/core.entity_form_display.paragraph.custom_card.default.yml b/web/profiles/custom/yalesites_profile/config/sync/core.entity_form_display.paragraph.custom_card.default.yml index 765d50505a..71ba888e58 100644 --- a/web/profiles/custom/yalesites_profile/config/sync/core.entity_form_display.paragraph.custom_card.default.yml +++ b/web/profiles/custom/yalesites_profile/config/sync/core.entity_form_display.paragraph.custom_card.default.yml @@ -33,7 +33,8 @@ content: hide_guidelines: '1' maxlength: maxlength_js: 80 - maxlength_js_label: 'Content limited to @limit characters, remaining: @remaining' + maxlength_js_label: 'Content recommended length set to @limit characters, remaining: @remaining' + maxlength_js_enforce: false field_image: type: media_library_widget weight: 0 diff --git a/web/profiles/custom/yalesites_profile/config/sync/core.entity_form_display.paragraph.gallery_item.default.yml b/web/profiles/custom/yalesites_profile/config/sync/core.entity_form_display.paragraph.gallery_item.default.yml index 741b54db36..7ac3567c23 100644 --- a/web/profiles/custom/yalesites_profile/config/sync/core.entity_form_display.paragraph.gallery_item.default.yml +++ b/web/profiles/custom/yalesites_profile/config/sync/core.entity_form_display.paragraph.gallery_item.default.yml @@ -30,7 +30,8 @@ content: hide_guidelines: '1' maxlength: maxlength_js: 80 - maxlength_js_label: 'Content limited to @limit characters, remaining: @remaining' + maxlength_js_label: 'Content recommended length set to @limit characters, remaining: @remaining' + maxlength_js_enforce: false field_media: type: media_library_widget weight: 0 @@ -51,7 +52,7 @@ content: hide_guidelines: '1' maxlength: maxlength_js: 200 - maxlength_js_label: 'Content limited to @limit characters, remaining: @remaining' + maxlength_js_label: 'Content recommended length set to @limit characters, remaining: @remaining' maxlength_js_enforce: false hidden: created: true diff --git a/web/profiles/custom/yalesites_profile/config/sync/core.entity_form_display.paragraph.tab.default.yml b/web/profiles/custom/yalesites_profile/config/sync/core.entity_form_display.paragraph.tab.default.yml index 3fa6816408..0515c56f2c 100644 --- a/web/profiles/custom/yalesites_profile/config/sync/core.entity_form_display.paragraph.tab.default.yml +++ b/web/profiles/custom/yalesites_profile/config/sync/core.entity_form_display.paragraph.tab.default.yml @@ -55,7 +55,8 @@ content: hide_guidelines: '1' maxlength: maxlength_js: 40 - maxlength_js_label: 'Content limited to @limit characters, remaining: @remaining' + maxlength_js_label: 'Content recommended length set to @limit characters, remaining: @remaining' + maxlength_js_enforce: false hidden: created: true status: true diff --git a/web/profiles/custom/yalesites_profile/config/sync/core.entity_view_display.block_content.callout.default.yml b/web/profiles/custom/yalesites_profile/config/sync/core.entity_view_display.block_content.callout.default.yml index 0d36cef14b..c6d3c2c570 100644 --- a/web/profiles/custom/yalesites_profile/config/sync/core.entity_view_display.block_content.callout.default.yml +++ b/web/profiles/custom/yalesites_profile/config/sync/core.entity_view_display.block_content.callout.default.yml @@ -6,6 +6,7 @@ dependencies: - block_content.type.callout - field.field.block_content.callout.field_callout - field.field.block_content.callout.field_instructions + - field.field.block_content.callout.field_style_alignment - field.field.block_content.callout.field_style_color module: - entity_reference_revisions @@ -24,6 +25,13 @@ content: third_party_settings: { } weight: 0 region: content + field_style_alignment: + type: list_key + label: hidden + settings: { } + third_party_settings: { } + weight: 2 + region: content field_style_color: type: list_key label: hidden diff --git a/web/profiles/custom/yalesites_profile/config/sync/core.entity_view_display.block_content.content_spotlight.default.yml b/web/profiles/custom/yalesites_profile/config/sync/core.entity_view_display.block_content.content_spotlight.default.yml index 6d29480904..396b594d71 100644 --- a/web/profiles/custom/yalesites_profile/config/sync/core.entity_view_display.block_content.content_spotlight.default.yml +++ b/web/profiles/custom/yalesites_profile/config/sync/core.entity_view_display.block_content.content_spotlight.default.yml @@ -8,6 +8,7 @@ dependencies: - field.field.block_content.content_spotlight.field_instructions - field.field.block_content.content_spotlight.field_link - field.field.block_content.content_spotlight.field_media + - field.field.block_content.content_spotlight.field_style_color - field.field.block_content.content_spotlight.field_style_position - field.field.block_content.content_spotlight.field_style_variation - field.field.block_content.content_spotlight.field_style_width @@ -50,6 +51,13 @@ content: third_party_settings: { } weight: 0 region: content + field_style_color: + type: list_key + label: hidden + settings: { } + third_party_settings: { } + weight: 1 + region: content field_style_position: type: list_key label: hidden diff --git a/web/profiles/custom/yalesites_profile/config/sync/core.entity_view_display.block_content.content_spotlight_portrait.default.yml b/web/profiles/custom/yalesites_profile/config/sync/core.entity_view_display.block_content.content_spotlight_portrait.default.yml new file mode 100644 index 0000000000..8b417e34c8 --- /dev/null +++ b/web/profiles/custom/yalesites_profile/config/sync/core.entity_view_display.block_content.content_spotlight_portrait.default.yml @@ -0,0 +1,90 @@ +uuid: b36183ee-14fd-4001-82da-3dd2f5659e9b +langcode: en +status: true +dependencies: + config: + - block_content.type.content_spotlight_portrait + - field.field.block_content.content_spotlight_portrait.field_heading + - field.field.block_content.content_spotlight_portrait.field_instructions + - field.field.block_content.content_spotlight_portrait.field_link + - field.field.block_content.content_spotlight_portrait.field_media + - field.field.block_content.content_spotlight_portrait.field_style_color + - field.field.block_content.content_spotlight_portrait.field_style_position + - field.field.block_content.content_spotlight_portrait.field_style_variation + - field.field.block_content.content_spotlight_portrait.field_subheading + - field.field.block_content.content_spotlight_portrait.field_text + module: + - link + - options + - text +id: block_content.content_spotlight_portrait.default +targetEntityType: block_content +bundle: content_spotlight_portrait +mode: default +content: + field_heading: + type: text_default + label: hidden + settings: { } + third_party_settings: { } + weight: 1 + region: content + field_link: + type: link_separate + label: hidden + settings: + trim_length: null + url_only: false + url_plain: false + rel: '0' + target: '0' + third_party_settings: { } + weight: 4 + region: content + field_media: + type: entity_reference_entity_view + label: hidden + settings: + view_mode: content_spotlight_portrait_2_3 + link: false + third_party_settings: { } + weight: 0 + region: content + field_style_color: + type: list_key + label: hidden + settings: { } + third_party_settings: { } + weight: 5 + region: content + field_style_position: + type: list_key + label: hidden + settings: { } + third_party_settings: { } + weight: 7 + region: content + field_style_variation: + type: list_key + label: hidden + settings: { } + third_party_settings: { } + weight: 6 + region: content + field_subheading: + type: text_default + label: hidden + settings: { } + third_party_settings: { } + weight: 2 + region: content + field_text: + type: text_default + label: hidden + settings: { } + third_party_settings: { } + weight: 3 + region: content +hidden: + field_instructions: true + search_api_excerpt: true diff --git a/web/profiles/custom/yalesites_profile/config/sync/core.entity_view_display.block_content.text.default.yml b/web/profiles/custom/yalesites_profile/config/sync/core.entity_view_display.block_content.text.default.yml index 83f92d3c9f..c417897038 100644 --- a/web/profiles/custom/yalesites_profile/config/sync/core.entity_view_display.block_content.text.default.yml +++ b/web/profiles/custom/yalesites_profile/config/sync/core.entity_view_display.block_content.text.default.yml @@ -5,14 +5,23 @@ dependencies: config: - block_content.type.text - field.field.block_content.text.field_instructions + - field.field.block_content.text.field_style_variation - field.field.block_content.text.field_text module: + - options - text id: block_content.text.default targetEntityType: block_content bundle: text mode: default content: + field_style_variation: + type: list_key + label: hidden + settings: { } + third_party_settings: { } + weight: 5 + region: content field_text: type: text_default label: hidden diff --git a/web/profiles/custom/yalesites_profile/config/sync/core.entity_view_display.media.image.background_image_16_9_focus_header.yml b/web/profiles/custom/yalesites_profile/config/sync/core.entity_view_display.media.image.background_image_16_9_focus_header.yml new file mode 100644 index 0000000000..d39aebabce --- /dev/null +++ b/web/profiles/custom/yalesites_profile/config/sync/core.entity_view_display.media.image.background_image_16_9_focus_header.yml @@ -0,0 +1,38 @@ +uuid: c8e77859-a557-41b4-b240-2869c47c5b87 +langcode: en +status: true +dependencies: + config: + - core.entity_view_mode.media.background_image_16_9_focus_header + - field.field.media.image.field_media_image + - media.type.image + - responsive_image.styles.background_image_focus_header + module: + - layout_builder + - responsive_image +third_party_settings: + layout_builder: + enabled: false + allow_custom: false +id: media.image.background_image_16_9_focus_header +targetEntityType: media +bundle: image +mode: background_image_16_9_focus_header +content: + field_media_image: + type: responsive_image + label: hidden + settings: + responsive_image_style: background_image_focus_header + image_link: '' + image_loading: + attribute: eager + third_party_settings: { } + weight: 0 + region: content +hidden: + created: true + name: true + search_api_excerpt: true + thumbnail: true + uid: true diff --git a/web/profiles/custom/yalesites_profile/config/sync/core.entity_view_display.media.image.banner_profile.yml b/web/profiles/custom/yalesites_profile/config/sync/core.entity_view_display.media.image.banner_profile.yml new file mode 100644 index 0000000000..7373f67129 --- /dev/null +++ b/web/profiles/custom/yalesites_profile/config/sync/core.entity_view_display.media.image.banner_profile.yml @@ -0,0 +1,38 @@ +uuid: 38cdb103-9f65-4764-acd9-2c65b7e3c1c3 +langcode: en +status: true +dependencies: + config: + - core.entity_view_mode.media.banner_profile + - field.field.media.image.field_media_image + - media.type.image + - responsive_image.styles.banner_profile + module: + - layout_builder + - responsive_image +third_party_settings: + layout_builder: + enabled: false + allow_custom: false +id: media.image.banner_profile +targetEntityType: media +bundle: image +mode: banner_profile +content: + field_media_image: + type: responsive_image + label: hidden + settings: + responsive_image_style: banner_profile + image_link: '' + image_loading: + attribute: eager + third_party_settings: { } + weight: 0 + region: content +hidden: + created: true + name: true + search_api_excerpt: true + thumbnail: true + uid: true diff --git a/web/profiles/custom/yalesites_profile/config/sync/core.entity_view_display.media.image.content_spotlight_portrait_2_3.yml b/web/profiles/custom/yalesites_profile/config/sync/core.entity_view_display.media.image.content_spotlight_portrait_2_3.yml new file mode 100644 index 0000000000..74feca3385 --- /dev/null +++ b/web/profiles/custom/yalesites_profile/config/sync/core.entity_view_display.media.image.content_spotlight_portrait_2_3.yml @@ -0,0 +1,38 @@ +uuid: 50469c2a-a84b-433e-bef3-727c08f41f78 +langcode: en +status: true +dependencies: + config: + - core.entity_view_mode.media.content_spotlight_portrait_2_3 + - field.field.media.image.field_media_image + - media.type.image + - responsive_image.styles.content_spotlight_portrait + module: + - layout_builder + - responsive_image +third_party_settings: + layout_builder: + enabled: false + allow_custom: false +id: media.image.content_spotlight_portrait_2_3 +targetEntityType: media +bundle: image +mode: content_spotlight_portrait_2_3 +content: + field_media_image: + type: responsive_image + label: hidden + settings: + responsive_image_style: content_spotlight_portrait + image_link: '' + image_loading: + attribute: lazy + third_party_settings: { } + weight: 0 + region: content +hidden: + created: true + name: true + search_api_excerpt: true + thumbnail: true + uid: true diff --git a/web/profiles/custom/yalesites_profile/config/sync/core.entity_view_display.node.event.condensed.yml b/web/profiles/custom/yalesites_profile/config/sync/core.entity_view_display.node.event.condensed.yml index ad3e2ea0fb..58ad79c2d5 100644 --- a/web/profiles/custom/yalesites_profile/config/sync/core.entity_view_display.node.event.condensed.yml +++ b/web/profiles/custom/yalesites_profile/config/sync/core.entity_view_display.node.event.condensed.yml @@ -54,15 +54,11 @@ bundle: event mode: condensed content: field_event_date: - type: smartdate_default + type: smartdate_plain label: hidden settings: timezone_override: '' - format_type: medium - format: html_datetime - force_chronological: false - add_classes: false - time_wrapper: true + separator: '-' third_party_settings: { } weight: 0 region: content diff --git a/web/profiles/custom/yalesites_profile/config/sync/core.entity_view_display.node.page.default.yml b/web/profiles/custom/yalesites_profile/config/sync/core.entity_view_display.node.page.default.yml index e605ec6a92..7437b9422a 100644 --- a/web/profiles/custom/yalesites_profile/config/sync/core.entity_view_display.node.page.default.yml +++ b/web/profiles/custom/yalesites_profile/config/sync/core.entity_view_display.node.page.default.yml @@ -61,7 +61,6 @@ third_party_settings: 4: 4 5: 5 6: 6 - 7: 7 8: 8 - layout_id: layout_onecol diff --git a/web/profiles/custom/yalesites_profile/config/sync/core.entity_view_display.node.profile.card.yml b/web/profiles/custom/yalesites_profile/config/sync/core.entity_view_display.node.profile.card.yml index 06002b1e39..9e7afa834b 100644 --- a/web/profiles/custom/yalesites_profile/config/sync/core.entity_view_display.node.profile.card.yml +++ b/web/profiles/custom/yalesites_profile/config/sync/core.entity_view_display.node.profile.card.yml @@ -60,6 +60,15 @@ content: third_party_settings: { } weight: 4 region: content + field_teaser_media: + type: entity_reference_entity_view + label: hidden + settings: + view_mode: profile_directory_card_1_1_ + link: false + third_party_settings: { } + weight: 5 + region: content field_teaser_text: type: text_default label: hidden @@ -86,7 +95,6 @@ hidden: field_login_required: true field_metatags: true field_tags: true - field_teaser_media: true field_telephone: true layout_builder__layout: true links: true diff --git a/web/profiles/custom/yalesites_profile/config/sync/core.entity_view_display.node.profile.default.yml b/web/profiles/custom/yalesites_profile/config/sync/core.entity_view_display.node.profile.default.yml index 4a170b0b0b..225f23f7e3 100644 --- a/web/profiles/custom/yalesites_profile/config/sync/core.entity_view_display.node.profile.default.yml +++ b/web/profiles/custom/yalesites_profile/config/sync/core.entity_view_display.node.profile.default.yml @@ -60,7 +60,6 @@ third_party_settings: 4: 4 5: 5 6: 6 - 7: 7 8: 8 - layout_id: ys_layout_two_column @@ -79,7 +78,9 @@ third_party_settings: context_mapping: { } weight: 0 additional: { } - third_party_settings: { } + third_party_settings: + layout_builder_lock: + lock: { } layout_builder_restrictions: allowed_block_categories: - 'Chaos Tools' diff --git a/web/profiles/custom/yalesites_profile/config/sync/core.entity_view_display.node.profile.directory.yml b/web/profiles/custom/yalesites_profile/config/sync/core.entity_view_display.node.profile.directory.yml index 7012d62d41..abc30de218 100644 --- a/web/profiles/custom/yalesites_profile/config/sync/core.entity_view_display.node.profile.directory.yml +++ b/web/profiles/custom/yalesites_profile/config/sync/core.entity_view_display.node.profile.directory.yml @@ -93,6 +93,15 @@ content: third_party_settings: { } weight: 1 region: content + field_teaser_media: + type: entity_reference_entity_view + label: hidden + settings: + view_mode: profile_directory_card_1_1_ + link: false + third_party_settings: { } + weight: 7 + region: content field_telephone: type: string label: hidden @@ -109,7 +118,6 @@ hidden: field_login_required: true field_metatags: true field_tags: true - field_teaser_media: true field_teaser_text: true field_teaser_title: true layout_builder__layout: true diff --git a/web/profiles/custom/yalesites_profile/config/sync/core.entity_view_display.node.profile.list_item.yml b/web/profiles/custom/yalesites_profile/config/sync/core.entity_view_display.node.profile.list_item.yml index c1ed09f3e5..0649c31f3a 100644 --- a/web/profiles/custom/yalesites_profile/config/sync/core.entity_view_display.node.profile.list_item.yml +++ b/web/profiles/custom/yalesites_profile/config/sync/core.entity_view_display.node.profile.list_item.yml @@ -51,21 +51,30 @@ content: settings: link_to_entity: false third_party_settings: { } - weight: 3 + weight: 4 region: content field_subtitle: type: text_default label: hidden settings: { } third_party_settings: { } - weight: 4 + weight: 5 + region: content + field_teaser_media: + type: entity_reference_entity_view + label: hidden + settings: + view_mode: profile_directory_card_1_1_ + link: false + third_party_settings: { } + weight: 1 region: content field_teaser_text: type: text_default label: hidden settings: { } third_party_settings: { } - weight: 2 + weight: 3 region: content field_teaser_title: type: string @@ -73,7 +82,7 @@ content: settings: link_to_entity: false third_party_settings: { } - weight: 1 + weight: 2 region: content hidden: field_address: true @@ -86,7 +95,6 @@ hidden: field_login_required: true field_metatags: true field_tags: true - field_teaser_media: true field_telephone: true layout_builder__layout: true links: true diff --git a/web/profiles/custom/yalesites_profile/config/sync/core.entity_view_mode.media.background_image_16_9_focus_header.yml b/web/profiles/custom/yalesites_profile/config/sync/core.entity_view_mode.media.background_image_16_9_focus_header.yml new file mode 100644 index 0000000000..52614e40ce --- /dev/null +++ b/web/profiles/custom/yalesites_profile/config/sync/core.entity_view_mode.media.background_image_16_9_focus_header.yml @@ -0,0 +1,10 @@ +uuid: a71d250d-989a-4554-95cb-f04af8833400 +langcode: en +status: true +dependencies: + module: + - media +id: media.background_image_16_9_focus_header +label: 'Background Image (16:9) | Focus Header' +targetEntityType: media +cache: true diff --git a/web/profiles/custom/yalesites_profile/config/sync/core.entity_view_mode.media.banner_profile.yml b/web/profiles/custom/yalesites_profile/config/sync/core.entity_view_mode.media.banner_profile.yml new file mode 100644 index 0000000000..713cd81cb5 --- /dev/null +++ b/web/profiles/custom/yalesites_profile/config/sync/core.entity_view_mode.media.banner_profile.yml @@ -0,0 +1,10 @@ +uuid: 0c1f8db3-f81e-4e91-9ee2-a8ab5eb89ed3 +langcode: en +status: true +dependencies: + module: + - media +id: media.banner_profile +label: 'Banner Profile' +targetEntityType: media +cache: true diff --git a/web/profiles/custom/yalesites_profile/config/sync/core.entity_view_mode.media.content_spotlight_portrait_2_3.yml b/web/profiles/custom/yalesites_profile/config/sync/core.entity_view_mode.media.content_spotlight_portrait_2_3.yml new file mode 100644 index 0000000000..f520668d2f --- /dev/null +++ b/web/profiles/custom/yalesites_profile/config/sync/core.entity_view_mode.media.content_spotlight_portrait_2_3.yml @@ -0,0 +1,10 @@ +uuid: 95bbedd5-f503-4e01-a21e-447ee08309c1 +langcode: en +status: true +dependencies: + module: + - media +id: media.content_spotlight_portrait_2_3 +label: 'Content Spotlight - Portrait (2:3)' +targetEntityType: media +cache: true diff --git a/web/profiles/custom/yalesites_profile/config/sync/core.extension.yml b/web/profiles/custom/yalesites_profile/config/sync/core.extension.yml index 8f51697110..dd1116e372 100644 --- a/web/profiles/custom/yalesites_profile/config/sync/core.extension.yml +++ b/web/profiles/custom/yalesites_profile/config/sync/core.extension.yml @@ -6,6 +6,7 @@ module: admin_toolbar: 0 admin_toolbar_tools: 0 allowed_formats: 0 + anchor_link: 0 auto_entitylabel: 0 better_exposed_filters: 0 block: 0 @@ -84,6 +85,7 @@ module: migrate: 0 migrate_plus: 0 migrate_tools: 0 + multiple_fields_remove_button: 0 multivalue_form_element: 0 mysql: 0 node: 0 diff --git a/web/profiles/custom/yalesites_profile/config/sync/editor.editor.basic_html.yml b/web/profiles/custom/yalesites_profile/config/sync/editor.editor.basic_html.yml index 5716f12005..60efd65bcd 100644 --- a/web/profiles/custom/yalesites_profile/config/sync/editor.editor.basic_html.yml +++ b/web/profiles/custom/yalesites_profile/config/sync/editor.editor.basic_html.yml @@ -18,6 +18,8 @@ settings: - '|' - link - '|' + - anchor + - '|' - bulletedList - numberedList - outdent diff --git a/web/profiles/custom/yalesites_profile/config/sync/editor.editor.restricted_html.yml b/web/profiles/custom/yalesites_profile/config/sync/editor.editor.restricted_html.yml index 1626e54fcf..a33d588afa 100644 --- a/web/profiles/custom/yalesites_profile/config/sync/editor.editor.restricted_html.yml +++ b/web/profiles/custom/yalesites_profile/config/sync/editor.editor.restricted_html.yml @@ -15,6 +15,7 @@ settings: - italic - '|' - link + - anchor plugins: linkit_extension: linkit_enabled: true diff --git a/web/profiles/custom/yalesites_profile/config/sync/field.field.block_content.callout.field_style_alignment.yml b/web/profiles/custom/yalesites_profile/config/sync/field.field.block_content.callout.field_style_alignment.yml new file mode 100644 index 0000000000..ebc920c170 --- /dev/null +++ b/web/profiles/custom/yalesites_profile/config/sync/field.field.block_content.callout.field_style_alignment.yml @@ -0,0 +1,21 @@ +uuid: 8f6c0de5-11eb-44b0-92d9-11748df84be8 +langcode: en +status: true +dependencies: + config: + - block_content.type.callout + - field.storage.block_content.field_style_alignment + module: + - options +id: block_content.callout.field_style_alignment +field_name: field_style_alignment +entity_type: block_content +bundle: callout +label: Alignment +description: '' +required: true +translatable: false +default_value: { } +default_value_callback: ys_themes_default_value_function +settings: { } +field_type: list_string diff --git a/web/profiles/custom/yalesites_profile/config/sync/field.field.block_content.content_spotlight.field_style_color.yml b/web/profiles/custom/yalesites_profile/config/sync/field.field.block_content.content_spotlight.field_style_color.yml new file mode 100644 index 0000000000..73d754ef62 --- /dev/null +++ b/web/profiles/custom/yalesites_profile/config/sync/field.field.block_content.content_spotlight.field_style_color.yml @@ -0,0 +1,21 @@ +uuid: 8e110084-1a34-4832-af08-b9057bdd7503 +langcode: en +status: true +dependencies: + config: + - block_content.type.content_spotlight + - field.storage.block_content.field_style_color + module: + - options +id: block_content.content_spotlight.field_style_color +field_name: field_style_color +entity_type: block_content +bundle: content_spotlight +label: 'Theme Color' +description: '' +required: true +translatable: false +default_value: { } +default_value_callback: ys_themes_default_value_function +settings: { } +field_type: list_string diff --git a/web/profiles/custom/yalesites_profile/config/sync/field.field.block_content.content_spotlight.field_style_position.yml b/web/profiles/custom/yalesites_profile/config/sync/field.field.block_content.content_spotlight.field_style_position.yml index fb3a189c10..e07bc72a37 100644 --- a/web/profiles/custom/yalesites_profile/config/sync/field.field.block_content.content_spotlight.field_style_position.yml +++ b/web/profiles/custom/yalesites_profile/config/sync/field.field.block_content.content_spotlight.field_style_position.yml @@ -13,9 +13,9 @@ entity_type: block_content bundle: content_spotlight label: 'Image Position' description: '' -required: false +required: true translatable: true default_value: { } -default_value_callback: '' +default_value_callback: ys_themes_default_value_function settings: { } field_type: list_string diff --git a/web/profiles/custom/yalesites_profile/config/sync/field.field.block_content.content_spotlight.field_style_variation.yml b/web/profiles/custom/yalesites_profile/config/sync/field.field.block_content.content_spotlight.field_style_variation.yml index 7d5e665807..e8cd6700d8 100644 --- a/web/profiles/custom/yalesites_profile/config/sync/field.field.block_content.content_spotlight.field_style_variation.yml +++ b/web/profiles/custom/yalesites_profile/config/sync/field.field.block_content.content_spotlight.field_style_variation.yml @@ -13,9 +13,9 @@ entity_type: block_content bundle: content_spotlight label: Focus description: '' -required: false +required: true translatable: true default_value: { } -default_value_callback: '' +default_value_callback: ys_themes_default_value_function settings: { } field_type: list_string diff --git a/web/profiles/custom/yalesites_profile/config/sync/field.field.block_content.content_spotlight.field_style_width.yml b/web/profiles/custom/yalesites_profile/config/sync/field.field.block_content.content_spotlight.field_style_width.yml index 37b28b3812..38f4e56e31 100644 --- a/web/profiles/custom/yalesites_profile/config/sync/field.field.block_content.content_spotlight.field_style_width.yml +++ b/web/profiles/custom/yalesites_profile/config/sync/field.field.block_content.content_spotlight.field_style_width.yml @@ -13,9 +13,9 @@ entity_type: block_content bundle: content_spotlight label: 'Image Size' description: '' -required: false +required: true translatable: false default_value: { } -default_value_callback: '' +default_value_callback: ys_themes_default_value_function settings: { } field_type: list_string diff --git a/web/profiles/custom/yalesites_profile/config/sync/field.field.block_content.content_spotlight_portrait.field_heading.yml b/web/profiles/custom/yalesites_profile/config/sync/field.field.block_content.content_spotlight_portrait.field_heading.yml new file mode 100644 index 0000000000..cb809619f7 --- /dev/null +++ b/web/profiles/custom/yalesites_profile/config/sync/field.field.block_content.content_spotlight_portrait.field_heading.yml @@ -0,0 +1,24 @@ +uuid: 379be8ed-e580-4fdc-bbb0-db7d0001e329 +langcode: en +status: true +dependencies: + config: + - block_content.type.content_spotlight_portrait + - field.storage.block_content.field_heading + - filter.format.heading_html + module: + - text +id: block_content.content_spotlight_portrait.field_heading +field_name: field_heading +entity_type: block_content +bundle: content_spotlight_portrait +label: Heading +description: '' +required: false +translatable: false +default_value: { } +default_value_callback: '' +settings: + allowed_formats: + - heading_html +field_type: text diff --git a/web/profiles/custom/yalesites_profile/config/sync/field.field.block_content.content_spotlight_portrait.field_instructions.yml b/web/profiles/custom/yalesites_profile/config/sync/field.field.block_content.content_spotlight_portrait.field_instructions.yml new file mode 100644 index 0000000000..f382f74b5b --- /dev/null +++ b/web/profiles/custom/yalesites_profile/config/sync/field.field.block_content.content_spotlight_portrait.field_instructions.yml @@ -0,0 +1,25 @@ +uuid: 394701ba-4fbc-4848-9def-dad7f3c13e90 +langcode: en +status: true +dependencies: + config: + - block_content.type.content_spotlight_portrait + - field.storage.block_content.field_instructions + module: + - markup +id: block_content.content_spotlight_portrait.field_instructions +field_name: field_instructions +entity_type: block_content +bundle: content_spotlight_portrait +label: Instructions +description: '' +required: false +translatable: false +default_value: + - { } +default_value_callback: '' +settings: + markup: + value: '

Content spotlight - Portrait allows you to display a portrait 2x3 image adjacent to text. This component has optional content, an image offset option, and different orientations.

' + format: basic_html +field_type: markup diff --git a/web/profiles/custom/yalesites_profile/config/sync/field.field.block_content.content_spotlight_portrait.field_link.yml b/web/profiles/custom/yalesites_profile/config/sync/field.field.block_content.content_spotlight_portrait.field_link.yml new file mode 100644 index 0000000000..32bc511733 --- /dev/null +++ b/web/profiles/custom/yalesites_profile/config/sync/field.field.block_content.content_spotlight_portrait.field_link.yml @@ -0,0 +1,23 @@ +uuid: c048bfe6-6804-4b53-8733-82391ab95e53 +langcode: en +status: true +dependencies: + config: + - block_content.type.content_spotlight_portrait + - field.storage.block_content.field_link + module: + - link +id: block_content.content_spotlight_portrait.field_link +field_name: field_link +entity_type: block_content +bundle: content_spotlight_portrait +label: Link +description: '' +required: false +translatable: false +default_value: { } +default_value_callback: '' +settings: + title: 2 + link_type: 17 +field_type: link diff --git a/web/profiles/custom/yalesites_profile/config/sync/field.field.block_content.content_spotlight_portrait.field_media.yml b/web/profiles/custom/yalesites_profile/config/sync/field.field.block_content.content_spotlight_portrait.field_media.yml new file mode 100644 index 0000000000..82cf8bc9da --- /dev/null +++ b/web/profiles/custom/yalesites_profile/config/sync/field.field.block_content.content_spotlight_portrait.field_media.yml @@ -0,0 +1,29 @@ +uuid: 15c71cee-dd0a-4ce1-857c-43ee75dc6b1f +langcode: en +status: true +dependencies: + config: + - block_content.type.content_spotlight_portrait + - field.storage.block_content.field_media + - media.type.image +id: block_content.content_spotlight_portrait.field_media +field_name: field_media +entity_type: block_content +bundle: content_spotlight_portrait +label: Image +description: '' +required: true +translatable: false +default_value: { } +default_value_callback: '' +settings: + handler: 'default:media' + handler_settings: + target_bundles: + image: image + sort: + field: _none + direction: ASC + auto_create: true + auto_create_bundle: '' +field_type: entity_reference diff --git a/web/profiles/custom/yalesites_profile/config/sync/field.field.block_content.content_spotlight_portrait.field_style_color.yml b/web/profiles/custom/yalesites_profile/config/sync/field.field.block_content.content_spotlight_portrait.field_style_color.yml new file mode 100644 index 0000000000..6e53b33c69 --- /dev/null +++ b/web/profiles/custom/yalesites_profile/config/sync/field.field.block_content.content_spotlight_portrait.field_style_color.yml @@ -0,0 +1,21 @@ +uuid: 1da613ab-03a4-4618-8ae1-48b31cd8d122 +langcode: en +status: true +dependencies: + config: + - block_content.type.content_spotlight_portrait + - field.storage.block_content.field_style_color + module: + - options +id: block_content.content_spotlight_portrait.field_style_color +field_name: field_style_color +entity_type: block_content +bundle: content_spotlight_portrait +label: 'Theme Color' +description: '' +required: true +translatable: false +default_value: { } +default_value_callback: ys_themes_default_value_function +settings: { } +field_type: list_string diff --git a/web/profiles/custom/yalesites_profile/config/sync/field.field.block_content.content_spotlight_portrait.field_style_position.yml b/web/profiles/custom/yalesites_profile/config/sync/field.field.block_content.content_spotlight_portrait.field_style_position.yml new file mode 100644 index 0000000000..9361eefe52 --- /dev/null +++ b/web/profiles/custom/yalesites_profile/config/sync/field.field.block_content.content_spotlight_portrait.field_style_position.yml @@ -0,0 +1,21 @@ +uuid: f36dc028-0e9a-40fe-be2e-829b6741d358 +langcode: en +status: true +dependencies: + config: + - block_content.type.content_spotlight_portrait + - field.storage.block_content.field_style_position + module: + - options +id: block_content.content_spotlight_portrait.field_style_position +field_name: field_style_position +entity_type: block_content +bundle: content_spotlight_portrait +label: 'Image Position' +description: '' +required: true +translatable: false +default_value: { } +default_value_callback: ys_themes_default_value_function +settings: { } +field_type: list_string diff --git a/web/profiles/custom/yalesites_profile/config/sync/field.field.block_content.content_spotlight_portrait.field_style_variation.yml b/web/profiles/custom/yalesites_profile/config/sync/field.field.block_content.content_spotlight_portrait.field_style_variation.yml new file mode 100644 index 0000000000..6a547c3d85 --- /dev/null +++ b/web/profiles/custom/yalesites_profile/config/sync/field.field.block_content.content_spotlight_portrait.field_style_variation.yml @@ -0,0 +1,21 @@ +uuid: f0672483-23a3-4bda-a7da-75601a3ce11a +langcode: en +status: true +dependencies: + config: + - block_content.type.content_spotlight_portrait + - field.storage.block_content.field_style_variation + module: + - options +id: block_content.content_spotlight_portrait.field_style_variation +field_name: field_style_variation +entity_type: block_content +bundle: content_spotlight_portrait +label: 'Image Style' +description: '' +required: true +translatable: false +default_value: { } +default_value_callback: ys_themes_default_value_function +settings: { } +field_type: list_string diff --git a/web/profiles/custom/yalesites_profile/config/sync/field.field.block_content.content_spotlight_portrait.field_subheading.yml b/web/profiles/custom/yalesites_profile/config/sync/field.field.block_content.content_spotlight_portrait.field_subheading.yml new file mode 100644 index 0000000000..5d51509ed1 --- /dev/null +++ b/web/profiles/custom/yalesites_profile/config/sync/field.field.block_content.content_spotlight_portrait.field_subheading.yml @@ -0,0 +1,24 @@ +uuid: 7bdea851-53c1-457b-a540-3a6a03bb367c +langcode: en +status: true +dependencies: + config: + - block_content.type.content_spotlight_portrait + - field.storage.block_content.field_subheading + - filter.format.heading_html + module: + - text +id: block_content.content_spotlight_portrait.field_subheading +field_name: field_subheading +entity_type: block_content +bundle: content_spotlight_portrait +label: Subheading +description: '' +required: false +translatable: false +default_value: { } +default_value_callback: '' +settings: + allowed_formats: + - heading_html +field_type: text diff --git a/web/profiles/custom/yalesites_profile/config/sync/field.field.block_content.content_spotlight_portrait.field_text.yml b/web/profiles/custom/yalesites_profile/config/sync/field.field.block_content.content_spotlight_portrait.field_text.yml new file mode 100644 index 0000000000..c050f1accd --- /dev/null +++ b/web/profiles/custom/yalesites_profile/config/sync/field.field.block_content.content_spotlight_portrait.field_text.yml @@ -0,0 +1,24 @@ +uuid: ac38c825-b1e0-41c4-8987-89348c9e56ea +langcode: en +status: true +dependencies: + config: + - block_content.type.content_spotlight_portrait + - field.storage.block_content.field_text + - filter.format.restricted_html + module: + - text +id: block_content.content_spotlight_portrait.field_text +field_name: field_text +entity_type: block_content +bundle: content_spotlight_portrait +label: Content +description: '' +required: true +translatable: false +default_value: { } +default_value_callback: '' +settings: + allowed_formats: + - restricted_html +field_type: text_long diff --git a/web/profiles/custom/yalesites_profile/config/sync/field.field.block_content.divider.field_style_position.yml b/web/profiles/custom/yalesites_profile/config/sync/field.field.block_content.divider.field_style_position.yml index d18e611f49..fb5996bb4f 100644 --- a/web/profiles/custom/yalesites_profile/config/sync/field.field.block_content.divider.field_style_position.yml +++ b/web/profiles/custom/yalesites_profile/config/sync/field.field.block_content.divider.field_style_position.yml @@ -15,9 +15,7 @@ label: 'Divider Position' description: '' required: true translatable: true -default_value: - - - value: left -default_value_callback: '' +default_value: { } +default_value_callback: ys_themes_default_value_function settings: { } field_type: list_string diff --git a/web/profiles/custom/yalesites_profile/config/sync/field.field.block_content.divider.field_style_width.yml b/web/profiles/custom/yalesites_profile/config/sync/field.field.block_content.divider.field_style_width.yml index bef7143d4c..85e9b1d7a2 100644 --- a/web/profiles/custom/yalesites_profile/config/sync/field.field.block_content.divider.field_style_width.yml +++ b/web/profiles/custom/yalesites_profile/config/sync/field.field.block_content.divider.field_style_width.yml @@ -15,9 +15,7 @@ label: 'Divider Width' description: '' required: true translatable: true -default_value: - - - value: 100% -default_value_callback: '' +default_value: { } +default_value_callback: ys_themes_default_value_function settings: { } field_type: list_string diff --git a/web/profiles/custom/yalesites_profile/config/sync/field.field.block_content.gallery.field_gallery_items.yml b/web/profiles/custom/yalesites_profile/config/sync/field.field.block_content.gallery.field_gallery_items.yml index 1762af358d..0e03fadc6f 100644 --- a/web/profiles/custom/yalesites_profile/config/sync/field.field.block_content.gallery.field_gallery_items.yml +++ b/web/profiles/custom/yalesites_profile/config/sync/field.field.block_content.gallery.field_gallery_items.yml @@ -13,7 +13,7 @@ field_name: field_gallery_items entity_type: block_content bundle: gallery label: Images -description: '' +description: 'This block requires a minimum of 2 gallery items.' required: true translatable: false default_value: { } diff --git a/web/profiles/custom/yalesites_profile/config/sync/field.field.block_content.grand_hero.field_style_position.yml b/web/profiles/custom/yalesites_profile/config/sync/field.field.block_content.grand_hero.field_style_position.yml index 140c80abd1..e0a7bd02e0 100644 --- a/web/profiles/custom/yalesites_profile/config/sync/field.field.block_content.grand_hero.field_style_position.yml +++ b/web/profiles/custom/yalesites_profile/config/sync/field.field.block_content.grand_hero.field_style_position.yml @@ -13,9 +13,9 @@ entity_type: block_content bundle: grand_hero label: 'Overlay Position' description: '' -required: false +required: true translatable: true default_value: { } -default_value_callback: '' +default_value_callback: ys_themes_default_value_function settings: { } field_type: list_string diff --git a/web/profiles/custom/yalesites_profile/config/sync/field.field.block_content.grand_hero.field_style_variation.yml b/web/profiles/custom/yalesites_profile/config/sync/field.field.block_content.grand_hero.field_style_variation.yml index 059a628c9f..c60d7d44ac 100644 --- a/web/profiles/custom/yalesites_profile/config/sync/field.field.block_content.grand_hero.field_style_variation.yml +++ b/web/profiles/custom/yalesites_profile/config/sync/field.field.block_content.grand_hero.field_style_variation.yml @@ -13,9 +13,9 @@ entity_type: block_content bundle: grand_hero label: 'Media Size' description: '' -required: false +required: true translatable: true default_value: { } -default_value_callback: '' +default_value_callback: ys_themes_default_value_function settings: { } field_type: list_string diff --git a/web/profiles/custom/yalesites_profile/config/sync/field.field.block_content.media_grid.field_media_grid_items.yml b/web/profiles/custom/yalesites_profile/config/sync/field.field.block_content.media_grid.field_media_grid_items.yml index e46b65e7db..7973980b7c 100644 --- a/web/profiles/custom/yalesites_profile/config/sync/field.field.block_content.media_grid.field_media_grid_items.yml +++ b/web/profiles/custom/yalesites_profile/config/sync/field.field.block_content.media_grid.field_media_grid_items.yml @@ -13,7 +13,7 @@ field_name: field_media_grid_items entity_type: block_content bundle: media_grid label: Media -description: '' +description: 'This block requires a minimum of 2 media grid items.' required: false translatable: false default_value: { } diff --git a/web/profiles/custom/yalesites_profile/config/sync/field.field.block_content.quick_links.field_links.yml b/web/profiles/custom/yalesites_profile/config/sync/field.field.block_content.quick_links.field_links.yml index 97cae4fb32..dc02479c11 100644 --- a/web/profiles/custom/yalesites_profile/config/sync/field.field.block_content.quick_links.field_links.yml +++ b/web/profiles/custom/yalesites_profile/config/sync/field.field.block_content.quick_links.field_links.yml @@ -12,7 +12,7 @@ field_name: field_links entity_type: block_content bundle: quick_links label: Links -description: '' +description: 'This block requires a minimum of 3 and a maximum of 9 links.' required: true translatable: false default_value: { } diff --git a/web/profiles/custom/yalesites_profile/config/sync/field.field.block_content.quick_links.field_text.yml b/web/profiles/custom/yalesites_profile/config/sync/field.field.block_content.quick_links.field_text.yml index e8357c9f92..df47858ee8 100644 --- a/web/profiles/custom/yalesites_profile/config/sync/field.field.block_content.quick_links.field_text.yml +++ b/web/profiles/custom/yalesites_profile/config/sync/field.field.block_content.quick_links.field_text.yml @@ -20,5 +20,5 @@ default_value: { } default_value_callback: '' settings: allowed_formats: - - restricted_html + - heading_html field_type: text_long diff --git a/web/profiles/custom/yalesites_profile/config/sync/field.field.block_content.tabs.field_tabs.yml b/web/profiles/custom/yalesites_profile/config/sync/field.field.block_content.tabs.field_tabs.yml index 8079df4aa5..22fbcfaa85 100644 --- a/web/profiles/custom/yalesites_profile/config/sync/field.field.block_content.tabs.field_tabs.yml +++ b/web/profiles/custom/yalesites_profile/config/sync/field.field.block_content.tabs.field_tabs.yml @@ -13,7 +13,7 @@ field_name: field_tabs entity_type: block_content bundle: tabs label: Tabs -description: '' +description: 'This block requires a minimum of 2 and a maximum of 5 tabs.' required: true translatable: false default_value: { } diff --git a/web/profiles/custom/yalesites_profile/config/sync/field.field.block_content.text.field_style_variation.yml b/web/profiles/custom/yalesites_profile/config/sync/field.field.block_content.text.field_style_variation.yml new file mode 100644 index 0000000000..ac31ee66d4 --- /dev/null +++ b/web/profiles/custom/yalesites_profile/config/sync/field.field.block_content.text.field_style_variation.yml @@ -0,0 +1,21 @@ +uuid: 423a367c-5159-4a40-a107-031f8c53c99e +langcode: en +status: true +dependencies: + config: + - block_content.type.text + - field.storage.block_content.field_style_variation + module: + - options +id: block_content.text.field_style_variation +field_name: field_style_variation +entity_type: block_content +bundle: text +label: 'Text Style Variation' +description: '' +required: true +translatable: false +default_value: { } +default_value_callback: ys_themes_default_value_function +settings: { } +field_type: list_string diff --git a/web/profiles/custom/yalesites_profile/config/sync/field.field.block_content.wrapped_image.field_style_position.yml b/web/profiles/custom/yalesites_profile/config/sync/field.field.block_content.wrapped_image.field_style_position.yml index f19edb8f6c..f3923cbac1 100644 --- a/web/profiles/custom/yalesites_profile/config/sync/field.field.block_content.wrapped_image.field_style_position.yml +++ b/web/profiles/custom/yalesites_profile/config/sync/field.field.block_content.wrapped_image.field_style_position.yml @@ -13,9 +13,9 @@ entity_type: block_content bundle: wrapped_image label: Position description: '' -required: false +required: true translatable: true default_value: { } -default_value_callback: '' +default_value_callback: ys_themes_default_value_function settings: { } field_type: list_string diff --git a/web/profiles/custom/yalesites_profile/config/sync/field.field.block_content.wrapped_image.field_style_variation.yml b/web/profiles/custom/yalesites_profile/config/sync/field.field.block_content.wrapped_image.field_style_variation.yml index b37de3190d..63bba84e34 100644 --- a/web/profiles/custom/yalesites_profile/config/sync/field.field.block_content.wrapped_image.field_style_variation.yml +++ b/web/profiles/custom/yalesites_profile/config/sync/field.field.block_content.wrapped_image.field_style_variation.yml @@ -13,9 +13,9 @@ entity_type: block_content bundle: wrapped_image label: Style description: '' -required: false +required: true translatable: true default_value: { } -default_value_callback: '' +default_value_callback: ys_themes_default_value_function settings: { } field_type: list_string diff --git a/web/profiles/custom/yalesites_profile/config/sync/field.field.media.document.field_media_file.yml b/web/profiles/custom/yalesites_profile/config/sync/field.field.media.document.field_media_file.yml index 8e3aa5a538..719f3a861e 100644 --- a/web/profiles/custom/yalesites_profile/config/sync/field.field.media.document.field_media_file.yml +++ b/web/profiles/custom/yalesites_profile/config/sync/field.field.media.document.field_media_file.yml @@ -21,7 +21,7 @@ settings: handler: 'default:file' handler_settings: { } file_directory: '[date:custom:Y]-[date:custom:m]' - file_extensions: 'txt doc docx pdf xls xlsx' + file_extensions: 'txt rtf doc docx pdf xls xlsx' max_filesize: '' description_field: false field_type: file diff --git a/web/profiles/custom/yalesites_profile/config/sync/field.field.media.image.field_media_image.yml b/web/profiles/custom/yalesites_profile/config/sync/field.field.media.image.field_media_image.yml index 4a2ca6e6da..616ab9ff68 100644 --- a/web/profiles/custom/yalesites_profile/config/sync/field.field.media.image.field_media_image.yml +++ b/web/profiles/custom/yalesites_profile/config/sync/field.field.media.image.field_media_image.yml @@ -26,7 +26,7 @@ settings: file_directory: '[date:custom:Y]-[date:custom:m]' file_extensions: 'png jpg jpeg' max_filesize: '' - max_resolution: '' + max_resolution: 3840x2160 min_resolution: '' alt_field: true alt_field_required: true diff --git a/web/profiles/custom/yalesites_profile/config/sync/field.storage.block_content.field_style_alignment.yml b/web/profiles/custom/yalesites_profile/config/sync/field.storage.block_content.field_style_alignment.yml new file mode 100644 index 0000000000..2fe798014d --- /dev/null +++ b/web/profiles/custom/yalesites_profile/config/sync/field.storage.block_content.field_style_alignment.yml @@ -0,0 +1,21 @@ +uuid: 1ec88178-c5cf-4f76-a3d4-05bfd6a8fbbc +langcode: en +status: true +dependencies: + module: + - block_content + - options +id: block_content.field_style_alignment +field_name: field_style_alignment +entity_type: block_content +type: list_string +settings: + allowed_values: { } + allowed_values_function: ys_themes_allowed_values_function +module: options +locked: false +cardinality: 1 +translatable: true +indexes: { } +persist_with_no_fields: false +custom_storage: false diff --git a/web/profiles/custom/yalesites_profile/config/sync/filter.format.basic_html.yml b/web/profiles/custom/yalesites_profile/config/sync/filter.format.basic_html.yml index 33b90851c4..bd02ed8b5e 100644 --- a/web/profiles/custom/yalesites_profile/config/sync/filter.format.basic_html.yml +++ b/web/profiles/custom/yalesites_profile/config/sync/filter.format.basic_html.yml @@ -17,7 +17,7 @@ filters: status: true weight: -10 settings: - allowed_html: '