diff --git a/composer.json b/composer.json
index 9bf6dd95cb..2940bf117d 100644
--- a/composer.json
+++ b/composer.json
@@ -40,10 +40,10 @@
"type": "package",
"package": {
"name": "danskernesdigitalebibliotek/dpl-react",
- "version": "2024.49.0",
+ "version": "2024.50.0",
"type": "drupal-library",
"dist": {
- "url": "https://github.com/danskernesdigitalebibliotek/dpl-react/releases/download/2024.49.0/dist-2024-49-0-ccdcf6397ae7b1acd328c0cdd5688c2d7bbf1bd4.zip",
+ "url": "https://github.com/danskernesdigitalebibliotek/dpl-react/releases/download/2024.50.0/dist-2024-50-0-971e7c3cbc30ed2ea65d95655b798d67a6aa9d75.zip",
"type": "zip"
},
"require": {
@@ -56,9 +56,9 @@
"package": {
"name": "danskernesdigitalebibliotek/dpl-design-system",
"type": "drupal-library",
- "version": "2024.49.0",
+ "version": "2024.50.0",
"dist": {
- "url": "https://github.com/danskernesdigitalebibliotek/dpl-design-system/releases/download/2024.49.0/dist-2024-49-0-6c2891c7ad8ebebab5a41646dc217693f0b49284.zip",
+ "url": "https://github.com/danskernesdigitalebibliotek/dpl-design-system/releases/download/2024.50.0/dist-2024-50-0-fbcaaf96dce9df6ceb2537705578a0f3e882fe08.zip",
"type": "zip"
}
}
@@ -90,8 +90,8 @@
"composer/installers": "1.12.0",
"cweagans/composer-patches": "1.7.3",
"danskernesdigitalebibliotek/cms-api": "*",
- "danskernesdigitalebibliotek/dpl-design-system": "2024.49.0",
- "danskernesdigitalebibliotek/dpl-react": "2024.49.0",
+ "danskernesdigitalebibliotek/dpl-design-system": "2024.50.0",
+ "danskernesdigitalebibliotek/dpl-react": "2024.50.0",
"danskernesdigitalebibliotek/fbs-client": "*",
"dealerdirect/phpcodesniffer-composer-installer": "^1.0.0",
"deoliveiralucas/array-keys-case-transform": "^1.1",
@@ -102,6 +102,7 @@
"drupal/antibot": "^2.0",
"drupal/azure_mailer": "^2.0",
"drupal/color_field": "^3.0",
+ "drupal/config_filter": "^2.6",
"drupal/config_ignore": "^3",
"drupal/config_ignore_auto": "^3",
"drupal/config_perms": "^2.1",
@@ -302,7 +303,8 @@
"3035578: Add details for AJAX response errors": "https://www.drupal.org/files/issues/2023-07-24/3035578-26.patch",
"3293926: Error decorating non-existent service when inner service's module not installed": "https://git.drupalcode.org/project/drupal/-/commit/a64662a3cea209c106b888ce9ef03cc1808f9ffe.patch",
"Always assume chmod succeeds": "patches/core-chmod-true.patch",
- "Debug Form triggering element detection": "patches/form-triggering-element-detection-paragraphs-ee.patch"
+ "Debug Form triggering element detection": "patches/form-triggering-element-detection-paragraphs-ee.patch",
+ "Don't check for file owner in update": "patches/dont-check-fileowner.patch"
},
"drupal/date_range_formatter": {
"3309324: Fails when start and end date are identical": "https://www.drupal.org/files/issues/2023-12-22/date_range_formatter_3309324_1.patch"
@@ -325,11 +327,6 @@
"drupal/field_inheritance": {
"3454350: Create seperate permission for adding field inheritance": "https://www.drupal.org/files/issues/2024-06-13/field_inheritance_permission.patch"
},
- "drupal/focal_point": {
- "3462165 (1/3): Preview results in Error: Call to a member function getDefinitions() on null": "https://git.drupalcode.org/project/focal_point/-/commit/e9803fdb1f74fecf4972120518f87a4e260ccf9e.patch",
- "3462165 (2/3): Preview results in Error: Call to a member function getDefinitions() on null": "https://git.drupalcode.org/project/focal_point/-/commit/7d1c3bba96560d96a6ec5a9834d091eebcb7b9b5.patch",
- "3462165 (3/3): Preview results in Error: Call to a member function getDefinitions() on null": "https://git.drupalcode.org/project/focal_point/-/commit/72d7a23c5251c2313557fe1f6d01263ddc729963.patch"
- },
"drupal/job_scheduler": {
"3426366: Callables as worker callbacks": "https://git.drupalcode.org/project/job_scheduler/-/commit/da200da280c4c95e6e91f2416581ad3797ab1428.patch"
},
diff --git a/composer.lock b/composer.lock
index 834f682e85..55cc55e3b9 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
- "content-hash": "d89be314a09f03f216ca135be18c887d",
+ "content-hash": "f58b7ee6ff24d0da102116095910a003",
"packages": [
{
"name": "amazeeio/drupal_integrations",
@@ -1166,19 +1166,19 @@
},
{
"name": "danskernesdigitalebibliotek/dpl-design-system",
- "version": "2024.49.0",
+ "version": "2024.50.0",
"dist": {
"type": "zip",
- "url": "https://github.com/danskernesdigitalebibliotek/dpl-design-system/releases/download/2024.49.0/dist-2024-49-0-6c2891c7ad8ebebab5a41646dc217693f0b49284.zip"
+ "url": "https://github.com/danskernesdigitalebibliotek/dpl-design-system/releases/download/2024.50.0/dist-2024-50-0-fbcaaf96dce9df6ceb2537705578a0f3e882fe08.zip"
},
"type": "drupal-library"
},
{
"name": "danskernesdigitalebibliotek/dpl-react",
- "version": "2024.49.0",
+ "version": "2024.50.0",
"dist": {
"type": "zip",
- "url": "https://github.com/danskernesdigitalebibliotek/dpl-react/releases/download/2024.49.0/dist-2024-49-0-ccdcf6397ae7b1acd328c0cdd5688c2d7bbf1bd4.zip"
+ "url": "https://github.com/danskernesdigitalebibliotek/dpl-react/releases/download/2024.50.0/dist-2024-50-0-971e7c3cbc30ed2ea65d95655b798d67a6aa9d75.zip"
},
"require": {
"composer/installers": "^1.2.0"
@@ -1819,29 +1819,27 @@
},
{
"name": "doctrine/deprecations",
- "version": "1.1.3",
+ "version": "1.1.4",
"source": {
"type": "git",
"url": "https://github.com/doctrine/deprecations.git",
- "reference": "dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab"
+ "reference": "31610dbb31faa98e6b5447b62340826f54fbc4e9"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/deprecations/zipball/dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab",
- "reference": "dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab",
+ "url": "https://api.github.com/repos/doctrine/deprecations/zipball/31610dbb31faa98e6b5447b62340826f54fbc4e9",
+ "reference": "31610dbb31faa98e6b5447b62340826f54fbc4e9",
"shasum": ""
},
"require": {
"php": "^7.1 || ^8.0"
},
"require-dev": {
- "doctrine/coding-standard": "^9",
- "phpstan/phpstan": "1.4.10 || 1.10.15",
- "phpstan/phpstan-phpunit": "^1.0",
+ "doctrine/coding-standard": "^9 || ^12",
+ "phpstan/phpstan": "1.4.10 || 2.0.3",
+ "phpstan/phpstan-phpunit": "^1.0 || ^2",
"phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
- "psalm/plugin-phpunit": "0.18.4",
- "psr/log": "^1 || ^2 || ^3",
- "vimeo/psalm": "4.30.0 || 5.12.0"
+ "psr/log": "^1 || ^2 || ^3"
},
"suggest": {
"psr/log": "Allows logging deprecations via PSR-3 logger implementation"
@@ -1849,7 +1847,7 @@
"type": "library",
"autoload": {
"psr-4": {
- "Doctrine\\Deprecations\\": "lib/Doctrine/Deprecations"
+ "Doctrine\\Deprecations\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -1860,9 +1858,9 @@
"homepage": "https://www.doctrine-project.org/",
"support": {
"issues": "https://github.com/doctrine/deprecations/issues",
- "source": "https://github.com/doctrine/deprecations/tree/1.1.3"
+ "source": "https://github.com/doctrine/deprecations/tree/1.1.4"
},
- "time": "2024-01-30T19:34:25+00:00"
+ "time": "2024-12-07T21:18:45+00:00"
},
{
"name": "doctrine/event-manager",
@@ -2802,6 +2800,75 @@
"issues": "https://www.drupal.org/project/issues/color_field?version=8.x"
}
},
+ {
+ "name": "drupal/config_filter",
+ "version": "2.6.0",
+ "source": {
+ "type": "git",
+ "url": "https://git.drupalcode.org/project/config_filter.git",
+ "reference": "8.x-2.6"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://ftp.drupal.org/files/projects/config_filter-8.x-2.6.zip",
+ "reference": "8.x-2.6",
+ "shasum": "fd1a057a402436fc906c63bf0a74722f73b9b155"
+ },
+ "require": {
+ "drupal/core": "^8.8 || ^9 || ^10"
+ },
+ "conflict": {
+ "drush/drush": "<10"
+ },
+ "suggest": {
+ "drupal/config_split": "Split site configuration for different environments."
+ },
+ "type": "drupal-module",
+ "extra": {
+ "drupal": {
+ "version": "8.x-2.6",
+ "datestamp": "1698308577",
+ "security-coverage": {
+ "status": "covered",
+ "message": "Covered by Drupal's security advisory policy"
+ }
+ }
+ },
+ "notification-url": "https://packages.drupal.org/8/downloads",
+ "license": [
+ "GPL-2.0-or-later"
+ ],
+ "authors": [
+ {
+ "name": "Fabian Bircher",
+ "homepage": "https://www.drupal.org/u/bircher",
+ "email": "opensource@fabianbircher.com",
+ "role": "Maintainer"
+ },
+ {
+ "name": "Nuvole Web",
+ "homepage": "http://nuvole.org",
+ "email": "info@nuvole.org",
+ "role": "Maintainer"
+ },
+ {
+ "name": "pescetti",
+ "homepage": "https://www.drupal.org/user/436244"
+ }
+ ],
+ "description": "Config Filter allows other modules to interact with a ConfigStorage through filter plugins.",
+ "homepage": "https://www.drupal.org/project/config_filter",
+ "keywords": [
+ "Drupal",
+ "configuration",
+ "configuration management"
+ ],
+ "support": {
+ "source": "https://git.drupalcode.org/project/config_filter",
+ "issues": "https://www.drupal.org/project/issues/config_filter",
+ "slack": "https://drupal.slack.com/archives/C45342CDD"
+ }
+ },
{
"name": "drupal/config_ignore",
"version": "3.3.0",
@@ -2996,26 +3063,26 @@
},
{
"name": "drupal/config_translation_po",
- "version": "1.0.0",
+ "version": "1.0.1",
"source": {
"type": "git",
"url": "https://git.drupalcode.org/project/config_translation_po.git",
- "reference": "1.0.0"
+ "reference": "1.0.1"
},
"dist": {
"type": "zip",
- "url": "https://ftp.drupal.org/files/projects/config_translation_po-1.0.0.zip",
- "reference": "1.0.0",
- "shasum": "268b55019f7106d50e9a3b0ed5f0f845360aed4b"
+ "url": "https://ftp.drupal.org/files/projects/config_translation_po-1.0.1.zip",
+ "reference": "1.0.1",
+ "shasum": "452452f9cabef5efc6229db49cd88ada89babb5f"
},
"require": {
- "drupal/core": "^9.3 || ^10"
+ "drupal/core": "^9.3 || ^10 || ^11"
},
"type": "drupal-module",
"extra": {
"drupal": {
- "version": "1.0.0",
- "datestamp": "1687993665",
+ "version": "1.0.1",
+ "datestamp": "1732743222",
"security-coverage": {
"status": "covered",
"message": "Covered by Drupal's security advisory policy"
@@ -3046,8 +3113,11 @@
],
"description": "Configuration Translations to po file",
"homepage": "https://www.drupal.org/project/config_translation_po",
+ "keywords": [
+ "Drupal"
+ ],
"support": {
- "source": "http://cgit.drupalcode.org/config_translation_po",
+ "source": "https://git.drupalcode.org/project/config_translation_po",
"issues": "https://www.drupal.org/project/issues/config_translation_po"
}
},
@@ -3318,29 +3388,29 @@
"extra": {
"drupal-scaffold": {
"file-mapping": {
- "[project-root]/.editorconfig": "assets/scaffold/files/editorconfig",
- "[project-root]/.gitattributes": "assets/scaffold/files/gitattributes",
- "[web-root]/.csslintrc": "assets/scaffold/files/csslintrc",
- "[web-root]/.eslintignore": "assets/scaffold/files/eslintignore",
- "[web-root]/.eslintrc.json": "assets/scaffold/files/eslintrc.json",
- "[web-root]/.ht.router.php": "assets/scaffold/files/ht.router.php",
"[web-root]/.htaccess": "assets/scaffold/files/htaccess",
- "[web-root]/example.gitignore": "assets/scaffold/files/example.gitignore",
- "[web-root]/index.php": "assets/scaffold/files/index.php",
- "[web-root]/INSTALL.txt": "assets/scaffold/files/drupal.INSTALL.txt",
"[web-root]/README.md": "assets/scaffold/files/drupal.README.md",
+ "[web-root]/index.php": "assets/scaffold/files/index.php",
+ "[web-root]/.csslintrc": "assets/scaffold/files/csslintrc",
"[web-root]/robots.txt": "assets/scaffold/files/robots.txt",
"[web-root]/update.php": "assets/scaffold/files/update.php",
"[web-root]/web.config": "assets/scaffold/files/web.config",
+ "[web-root]/INSTALL.txt": "assets/scaffold/files/drupal.INSTALL.txt",
+ "[web-root]/.eslintignore": "assets/scaffold/files/eslintignore",
+ "[web-root]/.eslintrc.json": "assets/scaffold/files/eslintrc.json",
+ "[web-root]/.ht.router.php": "assets/scaffold/files/ht.router.php",
"[web-root]/sites/README.txt": "assets/scaffold/files/sites.README.txt",
+ "[project-root]/.editorconfig": "assets/scaffold/files/editorconfig",
+ "[web-root]/example.gitignore": "assets/scaffold/files/example.gitignore",
+ "[web-root]/themes/README.txt": "assets/scaffold/files/themes.README.txt",
+ "[project-root]/.gitattributes": "assets/scaffold/files/gitattributes",
+ "[web-root]/modules/README.txt": "assets/scaffold/files/modules.README.txt",
+ "[web-root]/profiles/README.txt": "assets/scaffold/files/profiles.README.txt",
+ "[web-root]/sites/example.sites.php": "assets/scaffold/files/example.sites.php",
"[web-root]/sites/development.services.yml": "assets/scaffold/files/development.services.yml",
"[web-root]/sites/example.settings.local.php": "assets/scaffold/files/example.settings.local.php",
- "[web-root]/sites/example.sites.php": "assets/scaffold/files/example.sites.php",
"[web-root]/sites/default/default.services.yml": "assets/scaffold/files/default.services.yml",
- "[web-root]/sites/default/default.settings.php": "assets/scaffold/files/default.settings.php",
- "[web-root]/modules/README.txt": "assets/scaffold/files/modules.README.txt",
- "[web-root]/profiles/README.txt": "assets/scaffold/files/profiles.README.txt",
- "[web-root]/themes/README.txt": "assets/scaffold/files/themes.README.txt"
+ "[web-root]/sites/default/default.settings.php": "assets/scaffold/files/default.settings.php"
}
}
},
@@ -4478,17 +4548,17 @@
},
{
"name": "drupal/focal_point",
- "version": "2.1.1",
+ "version": "2.1.2",
"source": {
"type": "git",
"url": "https://git.drupalcode.org/project/focal_point.git",
- "reference": "2.1.1"
+ "reference": "2.1.2"
},
"dist": {
"type": "zip",
- "url": "https://ftp.drupal.org/files/projects/focal_point-2.1.1.zip",
- "reference": "2.1.1",
- "shasum": "f8c24bb4257f784176e79ec6f2b4c11ed46391e0"
+ "url": "https://ftp.drupal.org/files/projects/focal_point-2.1.2.zip",
+ "reference": "2.1.2",
+ "shasum": "5f8ffadd37748506c8f00314b1d45c947eb27cf7"
},
"require": {
"drupal/core": "^9.3 || ^10 || ^11",
@@ -4500,8 +4570,8 @@
"type": "drupal-module",
"extra": {
"drupal": {
- "version": "2.1.1",
- "datestamp": "1721126807",
+ "version": "2.1.2",
+ "datestamp": "1731556344",
"security-coverage": {
"status": "covered",
"message": "Covered by Drupal's security advisory policy"
@@ -5492,26 +5562,26 @@
},
{
"name": "drupal/language_neutral_aliases",
- "version": "3.1.1",
+ "version": "3.2.0",
"source": {
"type": "git",
"url": "https://git.drupalcode.org/project/language_neutral_aliases.git",
- "reference": "3.1.1"
+ "reference": "3.2.0"
},
"dist": {
"type": "zip",
- "url": "https://ftp.drupal.org/files/projects/language_neutral_aliases-3.1.1.zip",
- "reference": "3.1.1",
- "shasum": "41af20fd8b468d43fcfcebf6e7087f213ba09141"
+ "url": "https://ftp.drupal.org/files/projects/language_neutral_aliases-3.2.0.zip",
+ "reference": "3.2.0",
+ "shasum": "ab0eab68a6efd5329700fd6735eca39db2f707ee"
},
"require": {
- "drupal/core": "^8.8 || ^9 || ^10"
+ "drupal/core": "^8.8 || ^9 || ^10 || ^11"
},
"type": "drupal-module",
"extra": {
"drupal": {
- "version": "3.1.1",
- "datestamp": "1700598474",
+ "version": "3.2.0",
+ "datestamp": "1729507726",
"security-coverage": {
"status": "covered",
"message": "Covered by Drupal's security advisory policy"
@@ -5524,7 +5594,7 @@
],
"authors": [
{
- "name": "Xen",
+ "name": "xen",
"homepage": "https://www.drupal.org/user/91385"
}
],
@@ -7927,17 +7997,17 @@
},
{
"name": "drupal/upgrade_status",
- "version": "4.3.5",
+ "version": "4.3.6",
"source": {
"type": "git",
"url": "https://git.drupalcode.org/project/upgrade_status.git",
- "reference": "4.3.5"
+ "reference": "4.3.6"
},
"dist": {
"type": "zip",
- "url": "https://ftp.drupal.org/files/projects/upgrade_status-4.3.5.zip",
- "reference": "4.3.5",
- "shasum": "353c17f14c855f5ba0fe48c6a4f6486360c066a7"
+ "url": "https://ftp.drupal.org/files/projects/upgrade_status-4.3.6.zip",
+ "reference": "4.3.6",
+ "shasum": "8169732d814034f541238d67ba31300825a61aca"
},
"require": {
"dekor/php-array-table": "^2.0",
@@ -7954,8 +8024,8 @@
"type": "drupal-module",
"extra": {
"drupal": {
- "version": "4.3.5",
- "datestamp": "1723044184",
+ "version": "4.3.6",
+ "datestamp": "1729173427",
"security-coverage": {
"status": "covered",
"message": "Covered by Drupal's security advisory policy"
@@ -7973,7 +8043,7 @@
],
"authors": [
{
- "name": "Gábor Hojtsy",
+ "name": "gábor hojtsy",
"homepage": "https://www.drupal.org/user/4166"
}
],
@@ -7985,26 +8055,26 @@
},
{
"name": "drupal/uuid_url",
- "version": "1.3.0",
+ "version": "1.4.0",
"source": {
"type": "git",
"url": "https://git.drupalcode.org/project/uuid_url.git",
- "reference": "8.x-1.3"
+ "reference": "8.x-1.4"
},
"dist": {
"type": "zip",
- "url": "https://ftp.drupal.org/files/projects/uuid_url-8.x-1.3.zip",
- "reference": "8.x-1.3",
- "shasum": "38623a180989c1e72bfdcdc4274a64c08b05f170"
+ "url": "https://ftp.drupal.org/files/projects/uuid_url-8.x-1.4.zip",
+ "reference": "8.x-1.4",
+ "shasum": "4463bdde93cb84d6fe9ed8fb357353d82678c61f"
},
"require": {
- "drupal/core": "^8 || ^9 || ^10"
+ "drupal/core": "^8 || ^9 || ^10 || ^11"
},
"type": "drupal-module",
"extra": {
"drupal": {
- "version": "8.x-1.3",
- "datestamp": "1670421397",
+ "version": "8.x-1.4",
+ "datestamp": "1727792977",
"security-coverage": {
"status": "covered",
"message": "Covered by Drupal's security advisory policy"
@@ -10120,16 +10190,16 @@
},
{
"name": "mglaman/phpstan-drupal",
- "version": "1.2.12",
+ "version": "1.3.1",
"source": {
"type": "git",
"url": "https://github.com/mglaman/phpstan-drupal.git",
- "reference": "346bdddda169a56b6ebb7dc17893f0ac8f33a4f1"
+ "reference": "2bc25a59b53c8f3990f168efd71241d9c25ea0c3"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/mglaman/phpstan-drupal/zipball/346bdddda169a56b6ebb7dc17893f0ac8f33a4f1",
- "reference": "346bdddda169a56b6ebb7dc17893f0ac8f33a4f1",
+ "url": "https://api.github.com/repos/mglaman/phpstan-drupal/zipball/2bc25a59b53c8f3990f168efd71241d9c25ea0c3",
+ "reference": "2bc25a59b53c8f3990f168efd71241d9c25ea0c3",
"shasum": ""
},
"require": {
@@ -10138,7 +10208,7 @@
"phpstan/phpstan-deprecation-rules": "^1.1.4",
"symfony/finder": "^4.2 || ^5.0 || ^6.0 || ^7.0",
"symfony/yaml": "^4.2|| ^5.0 || ^6.0 || ^7.0",
- "webflo/drupal-finder": "^1.2"
+ "webflo/drupal-finder": "^1.3.1"
},
"require-dev": {
"behat/mink": "^1.8",
@@ -10204,7 +10274,7 @@
"description": "Drupal extension and rules for PHPStan",
"support": {
"issues": "https://github.com/mglaman/phpstan-drupal/issues",
- "source": "https://github.com/mglaman/phpstan-drupal/tree/1.2.12"
+ "source": "https://github.com/mglaman/phpstan-drupal/tree/1.3.1"
},
"funding": [
{
@@ -10220,7 +10290,7 @@
"type": "tidelift"
}
],
- "time": "2024-08-07T21:15:21+00:00"
+ "time": "2024-09-27T08:54:16+00:00"
},
{
"name": "mnsami/composer-custom-directory-installer",
@@ -10948,16 +11018,16 @@
},
{
"name": "phpdocumentor/reflection-docblock",
- "version": "5.6.0",
+ "version": "5.6.1",
"source": {
"type": "git",
"url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
- "reference": "f3558a4c23426d12bffeaab463f8a8d8b681193c"
+ "reference": "e5e784149a09bd69d9a5e3b01c5cbd2e2bd653d8"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/f3558a4c23426d12bffeaab463f8a8d8b681193c",
- "reference": "f3558a4c23426d12bffeaab463f8a8d8b681193c",
+ "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/e5e784149a09bd69d9a5e3b01c5cbd2e2bd653d8",
+ "reference": "e5e784149a09bd69d9a5e3b01c5cbd2e2bd653d8",
"shasum": ""
},
"require": {
@@ -11006,9 +11076,9 @@
"description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.",
"support": {
"issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues",
- "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.6.0"
+ "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.6.1"
},
- "time": "2024-11-12T11:25:25+00:00"
+ "time": "2024-12-07T09:39:29+00:00"
},
{
"name": "phpdocumentor/type-resolver",
@@ -11911,16 +11981,16 @@
},
{
"name": "spatie/color",
- "version": "1.6.1",
+ "version": "1.6.2",
"source": {
"type": "git",
"url": "https://github.com/spatie/color.git",
- "reference": "4c540ffbef68a3df3d209718ae06deaab081e708"
+ "reference": "b4fac074a9e5999dcca12cbfab0f7c73e2684d6d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/spatie/color/zipball/4c540ffbef68a3df3d209718ae06deaab081e708",
- "reference": "4c540ffbef68a3df3d209718ae06deaab081e708",
+ "url": "https://api.github.com/repos/spatie/color/zipball/b4fac074a9e5999dcca12cbfab0f7c73e2684d6d",
+ "reference": "b4fac074a9e5999dcca12cbfab0f7c73e2684d6d",
"shasum": ""
},
"require": {
@@ -11958,7 +12028,7 @@
],
"support": {
"issues": "https://github.com/spatie/color/issues",
- "source": "https://github.com/spatie/color/tree/1.6.1"
+ "source": "https://github.com/spatie/color/tree/1.6.2"
},
"funding": [
{
@@ -11966,7 +12036,7 @@
"type": "github"
}
],
- "time": "2024-11-18T15:00:47+00:00"
+ "time": "2024-12-09T16:20:38+00:00"
},
{
"name": "squizlabs/php_codesniffer",
@@ -12252,16 +12322,16 @@
},
{
"name": "symfony/cache-contracts",
- "version": "v3.5.0",
+ "version": "v3.5.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/cache-contracts.git",
- "reference": "df6a1a44c890faded49a5fca33c2d5c5fd3c2197"
+ "reference": "15a4f8e5cd3bce9aeafc882b1acab39ec8de2c1b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/cache-contracts/zipball/df6a1a44c890faded49a5fca33c2d5c5fd3c2197",
- "reference": "df6a1a44c890faded49a5fca33c2d5c5fd3c2197",
+ "url": "https://api.github.com/repos/symfony/cache-contracts/zipball/15a4f8e5cd3bce9aeafc882b1acab39ec8de2c1b",
+ "reference": "15a4f8e5cd3bce9aeafc882b1acab39ec8de2c1b",
"shasum": ""
},
"require": {
@@ -12308,7 +12378,7 @@
"standards"
],
"support": {
- "source": "https://github.com/symfony/cache-contracts/tree/v3.5.0"
+ "source": "https://github.com/symfony/cache-contracts/tree/v3.5.1"
},
"funding": [
{
@@ -12324,7 +12394,7 @@
"type": "tidelift"
}
],
- "time": "2024-04-18T09:32:20+00:00"
+ "time": "2024-09-25T14:20:29+00:00"
},
{
"name": "symfony/config",
@@ -12497,16 +12567,16 @@
},
{
"name": "symfony/dependency-injection",
- "version": "v6.4.15",
+ "version": "v6.4.16",
"source": {
"type": "git",
"url": "https://github.com/symfony/dependency-injection.git",
- "reference": "70ab1f65a4516ef741e519ea938e6aa465e6aa36"
+ "reference": "7a379d8871f6a36f01559c14e11141cc02eb8dc8"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/70ab1f65a4516ef741e519ea938e6aa465e6aa36",
- "reference": "70ab1f65a4516ef741e519ea938e6aa465e6aa36",
+ "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/7a379d8871f6a36f01559c14e11141cc02eb8dc8",
+ "reference": "7a379d8871f6a36f01559c14e11141cc02eb8dc8",
"shasum": ""
},
"require": {
@@ -12558,7 +12628,7 @@
"description": "Allows you to standardize and centralize the way objects are constructed in your application",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/dependency-injection/tree/v6.4.15"
+ "source": "https://github.com/symfony/dependency-injection/tree/v6.4.16"
},
"funding": [
{
@@ -12574,20 +12644,20 @@
"type": "tidelift"
}
],
- "time": "2024-11-09T06:56:25+00:00"
+ "time": "2024-11-25T14:52:46+00:00"
},
{
"name": "symfony/deprecation-contracts",
- "version": "v3.5.0",
+ "version": "v3.5.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/deprecation-contracts.git",
- "reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1"
+ "reference": "74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1",
- "reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1",
+ "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6",
+ "reference": "74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6",
"shasum": ""
},
"require": {
@@ -12625,7 +12695,7 @@
"description": "A generic function and convention to trigger deprecation notices",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/deprecation-contracts/tree/v3.5.0"
+ "source": "https://github.com/symfony/deprecation-contracts/tree/v3.5.1"
},
"funding": [
{
@@ -12641,7 +12711,7 @@
"type": "tidelift"
}
],
- "time": "2024-04-18T09:32:20+00:00"
+ "time": "2024-09-25T14:20:29+00:00"
},
{
"name": "symfony/error-handler",
@@ -12800,16 +12870,16 @@
},
{
"name": "symfony/event-dispatcher-contracts",
- "version": "v3.5.0",
+ "version": "v3.5.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/event-dispatcher-contracts.git",
- "reference": "8f93aec25d41b72493c6ddff14e916177c9efc50"
+ "reference": "7642f5e970b672283b7823222ae8ef8bbc160b9f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/8f93aec25d41b72493c6ddff14e916177c9efc50",
- "reference": "8f93aec25d41b72493c6ddff14e916177c9efc50",
+ "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/7642f5e970b672283b7823222ae8ef8bbc160b9f",
+ "reference": "7642f5e970b672283b7823222ae8ef8bbc160b9f",
"shasum": ""
},
"require": {
@@ -12856,7 +12926,7 @@
"standards"
],
"support": {
- "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.5.0"
+ "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.5.1"
},
"funding": [
{
@@ -12872,7 +12942,7 @@
"type": "tidelift"
}
],
- "time": "2024-04-18T09:32:20+00:00"
+ "time": "2024-09-25T14:20:29+00:00"
},
{
"name": "symfony/filesystem",
@@ -13227,16 +13297,16 @@
},
{
"name": "symfony/http-kernel",
- "version": "v6.4.15",
+ "version": "v6.4.16",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-kernel.git",
- "reference": "b002a5b3947653c5aee3adac2a024ea615fd3ff5"
+ "reference": "8838b5b21d807923b893ccbfc2cbeda0f1bc00f0"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/http-kernel/zipball/b002a5b3947653c5aee3adac2a024ea615fd3ff5",
- "reference": "b002a5b3947653c5aee3adac2a024ea615fd3ff5",
+ "url": "https://api.github.com/repos/symfony/http-kernel/zipball/8838b5b21d807923b893ccbfc2cbeda0f1bc00f0",
+ "reference": "8838b5b21d807923b893ccbfc2cbeda0f1bc00f0",
"shasum": ""
},
"require": {
@@ -13321,7 +13391,7 @@
"description": "Provides a structured process for converting a Request into a Response",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/http-kernel/tree/v6.4.15"
+ "source": "https://github.com/symfony/http-kernel/tree/v6.4.16"
},
"funding": [
{
@@ -13337,7 +13407,7 @@
"type": "tidelift"
}
],
- "time": "2024-11-13T13:57:37+00:00"
+ "time": "2024-11-27T12:49:36+00:00"
},
{
"name": "symfony/mailer",
@@ -13530,8 +13600,8 @@
"type": "library",
"extra": {
"thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
+ "url": "https://github.com/symfony/polyfill",
+ "name": "symfony/polyfill"
}
},
"autoload": {
@@ -13686,8 +13756,8 @@
"type": "library",
"extra": {
"thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
+ "url": "https://github.com/symfony/polyfill",
+ "name": "symfony/polyfill"
}
},
"autoload": {
@@ -13848,8 +13918,8 @@
"type": "library",
"extra": {
"thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
+ "url": "https://github.com/symfony/polyfill",
+ "name": "symfony/polyfill"
}
},
"autoload": {
@@ -14006,8 +14076,8 @@
"type": "metapackage",
"extra": {
"thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
+ "url": "https://github.com/symfony/polyfill",
+ "name": "symfony/polyfill"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -14071,8 +14141,8 @@
"type": "library",
"extra": {
"thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
+ "url": "https://github.com/symfony/polyfill",
+ "name": "symfony/polyfill"
}
},
"autoload": {
@@ -14151,8 +14221,8 @@
"type": "library",
"extra": {
"thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
+ "url": "https://github.com/symfony/polyfill",
+ "name": "symfony/polyfill"
}
},
"autoload": {
@@ -14228,8 +14298,8 @@
"type": "library",
"extra": {
"thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
+ "url": "https://github.com/symfony/polyfill",
+ "name": "symfony/polyfill"
}
},
"autoload": {
@@ -14424,16 +14494,16 @@
},
{
"name": "symfony/property-info",
- "version": "v6.4.15",
+ "version": "v6.4.16",
"source": {
"type": "git",
"url": "https://github.com/symfony/property-info.git",
- "reference": "9d7b576bb643c72bf3b60eb8e89c98725d00afd0"
+ "reference": "e4782ec1c2b6896e820896357f6a3d02249e63eb"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/property-info/zipball/9d7b576bb643c72bf3b60eb8e89c98725d00afd0",
- "reference": "9d7b576bb643c72bf3b60eb8e89c98725d00afd0",
+ "url": "https://api.github.com/repos/symfony/property-info/zipball/e4782ec1c2b6896e820896357f6a3d02249e63eb",
+ "reference": "e4782ec1c2b6896e820896357f6a3d02249e63eb",
"shasum": ""
},
"require": {
@@ -14441,17 +14511,18 @@
"symfony/string": "^5.4|^6.0|^7.0"
},
"conflict": {
+ "doctrine/annotations": "<1.12",
"phpdocumentor/reflection-docblock": "<5.2",
"phpdocumentor/type-resolver": "<1.5.1",
- "symfony/dependency-injection": "<5.4",
- "symfony/serializer": "<6.4"
+ "symfony/dependency-injection": "<5.4|>=6.0,<6.4"
},
"require-dev": {
+ "doctrine/annotations": "^1.12|^2",
"phpdocumentor/reflection-docblock": "^5.2",
"phpstan/phpdoc-parser": "^1.0|^2.0",
"symfony/cache": "^5.4|^6.0|^7.0",
"symfony/dependency-injection": "^5.4|^6.0|^7.0",
- "symfony/serializer": "^6.4|^7.0"
+ "symfony/serializer": "^5.4|^6.4|^7.0"
},
"type": "library",
"autoload": {
@@ -14487,7 +14558,7 @@
"validator"
],
"support": {
- "source": "https://github.com/symfony/property-info/tree/v6.4.15"
+ "source": "https://github.com/symfony/property-info/tree/v6.4.16"
},
"funding": [
{
@@ -14503,7 +14574,7 @@
"type": "tidelift"
}
],
- "time": "2024-11-07T16:39:46+00:00"
+ "time": "2024-11-27T10:18:02+00:00"
},
{
"name": "symfony/psr-http-message-bridge",
@@ -14590,16 +14661,16 @@
},
{
"name": "symfony/routing",
- "version": "v6.4.13",
+ "version": "v6.4.16",
"source": {
"type": "git",
"url": "https://github.com/symfony/routing.git",
- "reference": "640a74250d13f9c30d5ca045b6aaaabcc8215278"
+ "reference": "91e02e606b4b705c2f4fb42f7e7708b7923a3220"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/routing/zipball/640a74250d13f9c30d5ca045b6aaaabcc8215278",
- "reference": "640a74250d13f9c30d5ca045b6aaaabcc8215278",
+ "url": "https://api.github.com/repos/symfony/routing/zipball/91e02e606b4b705c2f4fb42f7e7708b7923a3220",
+ "reference": "91e02e606b4b705c2f4fb42f7e7708b7923a3220",
"shasum": ""
},
"require": {
@@ -14653,7 +14724,7 @@
"url"
],
"support": {
- "source": "https://github.com/symfony/routing/tree/v6.4.13"
+ "source": "https://github.com/symfony/routing/tree/v6.4.16"
},
"funding": [
{
@@ -14669,7 +14740,7 @@
"type": "tidelift"
}
],
- "time": "2024-10-01T08:30:56+00:00"
+ "time": "2024-11-13T15:31:34+00:00"
},
{
"name": "symfony/serializer",
@@ -14771,16 +14842,16 @@
},
{
"name": "symfony/service-contracts",
- "version": "v3.5.0",
+ "version": "v3.5.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/service-contracts.git",
- "reference": "bd1d9e59a81d8fa4acdcea3f617c581f7475a80f"
+ "reference": "e53260aabf78fb3d63f8d79d69ece59f80d5eda0"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/service-contracts/zipball/bd1d9e59a81d8fa4acdcea3f617c581f7475a80f",
- "reference": "bd1d9e59a81d8fa4acdcea3f617c581f7475a80f",
+ "url": "https://api.github.com/repos/symfony/service-contracts/zipball/e53260aabf78fb3d63f8d79d69ece59f80d5eda0",
+ "reference": "e53260aabf78fb3d63f8d79d69ece59f80d5eda0",
"shasum": ""
},
"require": {
@@ -14834,7 +14905,7 @@
"standards"
],
"support": {
- "source": "https://github.com/symfony/service-contracts/tree/v3.5.0"
+ "source": "https://github.com/symfony/service-contracts/tree/v3.5.1"
},
"funding": [
{
@@ -14850,7 +14921,7 @@
"type": "tidelift"
}
],
- "time": "2024-04-18T09:32:20+00:00"
+ "time": "2024-09-25T14:20:29+00:00"
},
{
"name": "symfony/string",
@@ -15035,16 +15106,16 @@
},
{
"name": "symfony/translation-contracts",
- "version": "v3.5.0",
+ "version": "v3.5.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/translation-contracts.git",
- "reference": "b9d2189887bb6b2e0367a9fc7136c5239ab9b05a"
+ "reference": "4667ff3bd513750603a09c8dedbea942487fb07c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/b9d2189887bb6b2e0367a9fc7136c5239ab9b05a",
- "reference": "b9d2189887bb6b2e0367a9fc7136c5239ab9b05a",
+ "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/4667ff3bd513750603a09c8dedbea942487fb07c",
+ "reference": "4667ff3bd513750603a09c8dedbea942487fb07c",
"shasum": ""
},
"require": {
@@ -15093,7 +15164,7 @@
"standards"
],
"support": {
- "source": "https://github.com/symfony/translation-contracts/tree/v3.5.0"
+ "source": "https://github.com/symfony/translation-contracts/tree/v3.5.1"
},
"funding": [
{
@@ -15109,20 +15180,20 @@
"type": "tidelift"
}
],
- "time": "2024-04-18T09:32:20+00:00"
+ "time": "2024-09-25T14:20:29+00:00"
},
{
"name": "symfony/validator",
- "version": "v6.4.15",
+ "version": "v6.4.16",
"source": {
"type": "git",
"url": "https://github.com/symfony/validator.git",
- "reference": "7541055cdaf54ff95f0735bf703d313374e8b20b"
+ "reference": "9b0d1988b56511706bc91d96ead39acd77aaf34d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/validator/zipball/7541055cdaf54ff95f0735bf703d313374e8b20b",
- "reference": "7541055cdaf54ff95f0735bf703d313374e8b20b",
+ "url": "https://api.github.com/repos/symfony/validator/zipball/9b0d1988b56511706bc91d96ead39acd77aaf34d",
+ "reference": "9b0d1988b56511706bc91d96ead39acd77aaf34d",
"shasum": ""
},
"require": {
@@ -15190,7 +15261,7 @@
"description": "Provides tools to validate values",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/validator/tree/v6.4.15"
+ "source": "https://github.com/symfony/validator/tree/v6.4.16"
},
"funding": [
{
@@ -15206,7 +15277,7 @@
"type": "tidelift"
}
],
- "time": "2024-11-08T15:28:48+00:00"
+ "time": "2024-11-27T09:48:51+00:00"
},
{
"name": "symfony/var-dumper",
@@ -17387,16 +17458,16 @@
},
{
"name": "php-mock/php-mock",
- "version": "2.5.0",
+ "version": "2.5.1",
"source": {
"type": "git",
"url": "https://github.com/php-mock/php-mock.git",
- "reference": "fff1a621ebe54100fa3bd852e7be57773a0c0127"
+ "reference": "8f58972dce4de5a804dc0459383a11bc651416cf"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/php-mock/php-mock/zipball/fff1a621ebe54100fa3bd852e7be57773a0c0127",
- "reference": "fff1a621ebe54100fa3bd852e7be57773a0c0127",
+ "url": "https://api.github.com/repos/php-mock/php-mock/zipball/8f58972dce4de5a804dc0459383a11bc651416cf",
+ "reference": "8f58972dce4de5a804dc0459383a11bc651416cf",
"shasum": ""
},
"require": {
@@ -17451,7 +17522,7 @@
],
"support": {
"issues": "https://github.com/php-mock/php-mock/issues",
- "source": "https://github.com/php-mock/php-mock/tree/2.5.0"
+ "source": "https://github.com/php-mock/php-mock/tree/2.5.1"
},
"funding": [
{
@@ -17459,7 +17530,7 @@
"type": "github"
}
],
- "time": "2024-02-10T21:07:01+00:00"
+ "time": "2024-12-07T20:52:37+00:00"
},
{
"name": "phpspec/prophecy",
@@ -19568,16 +19639,16 @@
},
{
"name": "symfony/dom-crawler",
- "version": "v6.4.13",
+ "version": "v6.4.16",
"source": {
"type": "git",
"url": "https://github.com/symfony/dom-crawler.git",
- "reference": "ae074dffb018c37a57071990d16e6152728dd972"
+ "reference": "4304e6ad5c894a9c72831ad459f627bfd35d766d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/ae074dffb018c37a57071990d16e6152728dd972",
- "reference": "ae074dffb018c37a57071990d16e6152728dd972",
+ "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/4304e6ad5c894a9c72831ad459f627bfd35d766d",
+ "reference": "4304e6ad5c894a9c72831ad459f627bfd35d766d",
"shasum": ""
},
"require": {
@@ -19615,7 +19686,7 @@
"description": "Eases DOM navigation for HTML and XML documents",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/dom-crawler/tree/v6.4.13"
+ "source": "https://github.com/symfony/dom-crawler/tree/v6.4.16"
},
"funding": [
{
@@ -19631,7 +19702,7 @@
"type": "tidelift"
}
],
- "time": "2024-10-25T15:07:50+00:00"
+ "time": "2024-11-13T15:06:22+00:00"
},
{
"name": "symfony/lock",
@@ -19814,8 +19885,8 @@
"type": "library",
"extra": {
"thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
+ "url": "https://github.com/symfony/polyfill",
+ "name": "symfony/polyfill"
}
},
"autoload": {
diff --git a/config/sync/core.entity_form_display.eventinstance.default.default.yml b/config/sync/core.entity_form_display.eventinstance.default.default.yml
index 71ccee1fb3..9664ad0d92 100644
--- a/config/sync/core.entity_form_display.eventinstance.default.default.yml
+++ b/config/sync/core.entity_form_display.eventinstance.default.default.yml
@@ -15,6 +15,7 @@ dependencies:
- field.field.eventinstance.default.field_event_state
- field.field.eventinstance.default.field_event_title
- field.field.eventinstance.default.field_external_admin_link
+ - field.field.eventinstance.default.field_screen_names
- field.field.eventinstance.default.field_tags
- field.field.eventinstance.default.field_teaser_image
- field.field.eventinstance.default.field_teaser_text
@@ -87,6 +88,22 @@ third_party_settings:
description: ''
required_fields: true
weight: 0
+ group_infoscreen:
+ children:
+ - field_screen_names
+ label: Infoscreen
+ region: content
+ parent_name: ''
+ weight: 15
+ format_type: details_sidebar
+ format_settings:
+ classes: ''
+ show_empty_fields: false
+ id: ''
+ open: true
+ description: ''
+ required_fields: true
+ weight: 0
id: eventinstance.default.default
targetEntityType: eventinstance
bundle: default
@@ -219,7 +236,7 @@ content:
placeholder_url: ''
placeholder_title: ''
third_party_settings: { }
- field_tags:
+ field_screen_names:
type: select2_entity_reference
weight: 7
region: content
@@ -229,6 +246,16 @@ content:
match_operator: CONTAINS
match_limit: 10
third_party_settings: { }
+ field_tags:
+ type: select2_entity_reference
+ weight: 6
+ region: content
+ settings:
+ width: 100%
+ autocomplete: true
+ match_operator: CONTAINS
+ match_limit: 10
+ third_party_settings: { }
field_teaser_image:
type: media_library_widget
weight: 14
@@ -283,7 +310,7 @@ content:
dialog_style: tiles
path:
type: path
- weight: 15
+ weight: 16
region: content
settings: { }
third_party_settings: { }
diff --git a/config/sync/core.entity_form_display.eventseries.default.default.yml b/config/sync/core.entity_form_display.eventseries.default.default.yml
index 73b0ec9299..c76a24e3b0 100644
--- a/config/sync/core.entity_form_display.eventseries.default.default.yml
+++ b/config/sync/core.entity_form_display.eventseries.default.default.yml
@@ -14,6 +14,7 @@ dependencies:
- field.field.eventseries.default.field_event_place
- field.field.eventseries.default.field_event_state
- field.field.eventseries.default.field_relevant_ticket_manager
+ - field.field.eventseries.default.field_screen_names
- field.field.eventseries.default.field_tags
- field.field.eventseries.default.field_teaser_image
- field.field.eventseries.default.field_teaser_text
@@ -88,6 +89,22 @@ third_party_settings:
description: ''
required_fields: true
weight: 0
+ group_infoscreen:
+ children:
+ - field_screen_names
+ label: Infoscreen
+ region: content
+ parent_name: ''
+ weight: 24
+ format_type: details_sidebar
+ format_settings:
+ classes: ''
+ show_empty_fields: false
+ id: ''
+ open: true
+ description: ''
+ required_fields: true
+ weight: 0
_core:
default_config_hash: 7_dwlx5EAFGRacPwzHjO_cePFPbST8IjxnowMV4sk0A
id: eventseries.default.default
@@ -223,6 +240,16 @@ content:
settings:
display_label: true
third_party_settings: { }
+ field_screen_names:
+ type: select2_entity_reference
+ weight: 35
+ region: content
+ settings:
+ width: 100%
+ autocomplete: false
+ match_operator: CONTAINS
+ match_limit: 10
+ third_party_settings: { }
field_tags:
type: select2_entity_reference
weight: 34
@@ -293,7 +320,7 @@ content:
third_party_settings: { }
path:
type: path
- weight: 24
+ weight: 25
region: content
settings: { }
third_party_settings: { }
diff --git a/config/sync/core.entity_form_display.taxonomy_term.screen_name.default.yml b/config/sync/core.entity_form_display.taxonomy_term.screen_name.default.yml
new file mode 100644
index 0000000000..f7a4caa0cd
--- /dev/null
+++ b/config/sync/core.entity_form_display.taxonomy_term.screen_name.default.yml
@@ -0,0 +1,53 @@
+uuid: de724c1c-3c49-4e4c-aa3f-466895689de0
+langcode: en
+status: true
+dependencies:
+ config:
+ - taxonomy.vocabulary.screen_name
+ module:
+ - path
+ - text
+id: taxonomy_term.screen_name.default
+targetEntityType: taxonomy_term
+bundle: screen_name
+mode: default
+content:
+ description:
+ type: text_textfield
+ weight: 0
+ region: content
+ settings:
+ size: 60
+ placeholder: ''
+ third_party_settings: { }
+ langcode:
+ type: language_select
+ weight: 2
+ region: content
+ settings:
+ include_locked: true
+ third_party_settings: { }
+ name:
+ type: string_textfield
+ weight: -5
+ region: content
+ settings:
+ size: 60
+ placeholder: ''
+ third_party_settings: { }
+ path:
+ type: path
+ weight: 30
+ region: content
+ settings: { }
+ third_party_settings: { }
+ status:
+ type: boolean_checkbox
+ weight: 100
+ region: content
+ settings:
+ display_label: true
+ third_party_settings: { }
+hidden:
+ publish_on: true
+ unpublish_on: true
diff --git a/config/sync/core.entity_view_display.eventinstance.default.card.yml b/config/sync/core.entity_view_display.eventinstance.default.card.yml
index d7413f67a1..21660d0b7b 100644
--- a/config/sync/core.entity_view_display.eventinstance.default.card.yml
+++ b/config/sync/core.entity_view_display.eventinstance.default.card.yml
@@ -16,6 +16,7 @@ dependencies:
- field.field.eventinstance.default.field_event_state
- field.field.eventinstance.default.field_event_title
- field.field.eventinstance.default.field_external_admin_link
+ - field.field.eventinstance.default.field_screen_names
- field.field.eventinstance.default.field_tags
- field.field.eventinstance.default.field_teaser_image
- field.field.eventinstance.default.field_teaser_text
@@ -78,6 +79,14 @@ content:
third_party_settings: { }
weight: 60
region: content
+ event_screen_names:
+ type: entity_reference_label
+ label: above
+ settings:
+ link: true
+ third_party_settings: { }
+ weight: 60
+ region: content
event_tags:
type: entity_reference_label
label: above
@@ -105,7 +114,7 @@ content:
region: content
event_ticket_capacity:
type: number_integer
- label: visible
+ label: above
settings:
thousand_separator: ''
prefix_suffix: true
@@ -144,6 +153,7 @@ hidden:
field_event_state: true
field_event_title: true
field_external_admin_link: true
+ field_screen_names: true
field_tags: true
field_teaser_image: true
field_teaser_text: true
diff --git a/config/sync/core.entity_view_display.eventinstance.default.default.yml b/config/sync/core.entity_view_display.eventinstance.default.default.yml
index 4e89c51845..0cc8f0d5a9 100644
--- a/config/sync/core.entity_view_display.eventinstance.default.default.yml
+++ b/config/sync/core.entity_view_display.eventinstance.default.default.yml
@@ -15,6 +15,7 @@ dependencies:
- field.field.eventinstance.default.field_event_state
- field.field.eventinstance.default.field_event_title
- field.field.eventinstance.default.field_external_admin_link
+ - field.field.eventinstance.default.field_screen_names
- field.field.eventinstance.default.field_tags
- field.field.eventinstance.default.field_teaser_image
- field.field.eventinstance.default.field_teaser_text
@@ -130,6 +131,14 @@ content:
third_party_settings: { }
weight: 7
region: content
+ event_screen_names:
+ type: entity_reference_label
+ label: visible
+ settings:
+ link: true
+ third_party_settings: { }
+ weight: 60
+ region: content
event_tags:
type: entity_reference_label
label: hidden
@@ -203,6 +212,7 @@ hidden:
field_event_state: true
field_event_title: true
field_external_admin_link: true
+ field_screen_names: true
field_tags: true
field_teaser_image: true
field_teaser_text: true
diff --git a/config/sync/core.entity_view_display.eventinstance.default.list.yml b/config/sync/core.entity_view_display.eventinstance.default.list.yml
index fe0e4b7a27..f298d72054 100644
--- a/config/sync/core.entity_view_display.eventinstance.default.list.yml
+++ b/config/sync/core.entity_view_display.eventinstance.default.list.yml
@@ -16,6 +16,7 @@ dependencies:
- field.field.eventinstance.default.field_event_state
- field.field.eventinstance.default.field_event_title
- field.field.eventinstance.default.field_external_admin_link
+ - field.field.eventinstance.default.field_screen_names
- field.field.eventinstance.default.field_tags
- field.field.eventinstance.default.field_teaser_image
- field.field.eventinstance.default.field_teaser_text
@@ -138,6 +139,14 @@ content:
third_party_settings: { }
weight: 60
region: content
+ event_screen_names:
+ type: entity_reference_label
+ label: visible
+ settings:
+ link: true
+ third_party_settings: { }
+ weight: 60
+ region: content
event_tags:
type: entity_reference_label
label: above
@@ -209,6 +218,7 @@ hidden:
field_event_state: true
field_event_title: true
field_external_admin_link: true
+ field_screen_names: true
field_tags: true
field_teaser_image: true
field_teaser_text: true
diff --git a/config/sync/core.entity_view_display.eventinstance.default.list_teaser.yml b/config/sync/core.entity_view_display.eventinstance.default.list_teaser.yml
index 60ec404e52..4ab1f0df1a 100644
--- a/config/sync/core.entity_view_display.eventinstance.default.list_teaser.yml
+++ b/config/sync/core.entity_view_display.eventinstance.default.list_teaser.yml
@@ -16,6 +16,7 @@ dependencies:
- field.field.eventinstance.default.field_event_state
- field.field.eventinstance.default.field_event_title
- field.field.eventinstance.default.field_external_admin_link
+ - field.field.eventinstance.default.field_screen_names
- field.field.eventinstance.default.field_tags
- field.field.eventinstance.default.field_teaser_image
- field.field.eventinstance.default.field_teaser_text
@@ -141,6 +142,14 @@ content:
third_party_settings: { }
weight: 60
region: content
+ event_screen_names:
+ type: entity_reference_label
+ label: visible
+ settings:
+ link: true
+ third_party_settings: { }
+ weight: 60
+ region: content
event_tags:
type: entity_reference_label
label: above
@@ -201,6 +210,7 @@ hidden:
field_event_state: true
field_event_title: true
field_external_admin_link: true
+ field_screen_names: true
field_tags: true
field_teaser_image: true
field_teaser_text: true
diff --git a/config/sync/core.entity_view_display.eventinstance.default.list_teaser_stacked_parent.yml b/config/sync/core.entity_view_display.eventinstance.default.list_teaser_stacked_parent.yml
index 52dc6ab0e9..f3f63dd027 100644
--- a/config/sync/core.entity_view_display.eventinstance.default.list_teaser_stacked_parent.yml
+++ b/config/sync/core.entity_view_display.eventinstance.default.list_teaser_stacked_parent.yml
@@ -16,6 +16,7 @@ dependencies:
- field.field.eventinstance.default.field_event_state
- field.field.eventinstance.default.field_event_title
- field.field.eventinstance.default.field_external_admin_link
+ - field.field.eventinstance.default.field_screen_names
- field.field.eventinstance.default.field_tags
- field.field.eventinstance.default.field_teaser_image
- field.field.eventinstance.default.field_teaser_text
@@ -141,6 +142,14 @@ content:
third_party_settings: { }
weight: 60
region: content
+ event_screen_names:
+ type: entity_reference_label
+ label: visible
+ settings:
+ link: true
+ third_party_settings: { }
+ weight: 60
+ region: content
event_tags:
type: entity_reference_label
label: hidden
@@ -208,6 +217,7 @@ hidden:
field_event_state: true
field_event_title: true
field_external_admin_link: true
+ field_screen_names: true
field_tags: true
field_teaser_image: true
field_teaser_text: true
diff --git a/config/sync/core.entity_view_display.eventinstance.default.nav_spot.yml b/config/sync/core.entity_view_display.eventinstance.default.nav_spot.yml
index 7094a071c9..73fd450d83 100644
--- a/config/sync/core.entity_view_display.eventinstance.default.nav_spot.yml
+++ b/config/sync/core.entity_view_display.eventinstance.default.nav_spot.yml
@@ -16,6 +16,7 @@ dependencies:
- field.field.eventinstance.default.field_event_state
- field.field.eventinstance.default.field_event_title
- field.field.eventinstance.default.field_external_admin_link
+ - field.field.eventinstance.default.field_screen_names
- field.field.eventinstance.default.field_tags
- field.field.eventinstance.default.field_teaser_image
- field.field.eventinstance.default.field_teaser_text
@@ -54,6 +55,14 @@ content:
third_party_settings: { }
weight: 60
region: content
+ event_screen_names:
+ type: entity_reference_label
+ label: visible
+ settings:
+ link: true
+ third_party_settings: { }
+ weight: 60
+ region: content
event_teaser_image:
type: entity_reference_entity_view
label: hidden
@@ -115,6 +124,7 @@ hidden:
field_event_state: true
field_event_title: true
field_external_admin_link: true
+ field_screen_names: true
field_tags: true
field_teaser_image: true
field_teaser_text: true
diff --git a/config/sync/core.entity_view_display.eventinstance.default.nav_teaser.yml b/config/sync/core.entity_view_display.eventinstance.default.nav_teaser.yml
index 41c93d5a02..9eed14f308 100644
--- a/config/sync/core.entity_view_display.eventinstance.default.nav_teaser.yml
+++ b/config/sync/core.entity_view_display.eventinstance.default.nav_teaser.yml
@@ -16,6 +16,7 @@ dependencies:
- field.field.eventinstance.default.field_event_state
- field.field.eventinstance.default.field_event_title
- field.field.eventinstance.default.field_external_admin_link
+ - field.field.eventinstance.default.field_screen_names
- field.field.eventinstance.default.field_tags
- field.field.eventinstance.default.field_teaser_image
- field.field.eventinstance.default.field_teaser_text
@@ -54,6 +55,14 @@ content:
third_party_settings: { }
weight: 60
region: content
+ event_screen_names:
+ type: entity_reference_label
+ label: visible
+ settings:
+ link: true
+ third_party_settings: { }
+ weight: 60
+ region: content
event_ticket_capacity:
type: number_integer
label: visible
@@ -108,6 +117,7 @@ hidden:
field_event_state: true
field_event_title: true
field_external_admin_link: true
+ field_screen_names: true
field_tags: true
field_teaser_image: true
field_ticket_capacity: true
diff --git a/config/sync/core.entity_view_display.eventinstance.default.stacked_event.yml b/config/sync/core.entity_view_display.eventinstance.default.stacked_event.yml
index 7be7ec9470..13e04eb244 100644
--- a/config/sync/core.entity_view_display.eventinstance.default.stacked_event.yml
+++ b/config/sync/core.entity_view_display.eventinstance.default.stacked_event.yml
@@ -16,6 +16,7 @@ dependencies:
- field.field.eventinstance.default.field_event_state
- field.field.eventinstance.default.field_event_title
- field.field.eventinstance.default.field_external_admin_link
+ - field.field.eventinstance.default.field_screen_names
- field.field.eventinstance.default.field_tags
- field.field.eventinstance.default.field_teaser_image
- field.field.eventinstance.default.field_teaser_text
@@ -83,6 +84,14 @@ content:
third_party_settings: { }
weight: 60
region: content
+ event_screen_names:
+ type: entity_reference_label
+ label: visible
+ settings:
+ link: true
+ third_party_settings: { }
+ weight: 60
+ region: content
event_ticket_capacity:
type: number_integer
label: visible
@@ -127,6 +136,7 @@ hidden:
field_event_state: true
field_event_title: true
field_external_admin_link: true
+ field_screen_names: true
field_tags: true
field_teaser_image: true
field_teaser_text: true
diff --git a/config/sync/core.entity_view_display.eventseries.default.card.yml b/config/sync/core.entity_view_display.eventseries.default.card.yml
index b87d3a11be..91892307a5 100644
--- a/config/sync/core.entity_view_display.eventseries.default.card.yml
+++ b/config/sync/core.entity_view_display.eventseries.default.card.yml
@@ -15,6 +15,7 @@ dependencies:
- field.field.eventseries.default.field_event_place
- field.field.eventseries.default.field_event_state
- field.field.eventseries.default.field_relevant_ticket_manager
+ - field.field.eventseries.default.field_screen_names
- field.field.eventseries.default.field_tags
- field.field.eventseries.default.field_teaser_image
- field.field.eventseries.default.field_teaser_text
@@ -80,6 +81,7 @@ hidden:
field_event_place: true
field_event_state: true
field_relevant_ticket_manager: true
+ field_screen_names: true
field_tags: true
field_ticket_capacity: true
field_ticket_categories: true
diff --git a/config/sync/core.entity_view_display.eventseries.default.default.yml b/config/sync/core.entity_view_display.eventseries.default.default.yml
index 79e1475fd4..e855484d72 100644
--- a/config/sync/core.entity_view_display.eventseries.default.default.yml
+++ b/config/sync/core.entity_view_display.eventseries.default.default.yml
@@ -14,6 +14,7 @@ dependencies:
- field.field.eventseries.default.field_event_place
- field.field.eventseries.default.field_event_state
- field.field.eventseries.default.field_relevant_ticket_manager
+ - field.field.eventseries.default.field_screen_names
- field.field.eventseries.default.field_tags
- field.field.eventseries.default.field_teaser_image
- field.field.eventseries.default.field_teaser_text
@@ -166,6 +167,7 @@ hidden:
event_registration: true
field_event_state: true
field_relevant_ticket_manager: true
+ field_screen_names: true
field_ticket_capacity: true
monthly_recurring_date: true
search_api_excerpt: true
diff --git a/config/sync/core.entity_view_display.eventseries.default.list.yml b/config/sync/core.entity_view_display.eventseries.default.list.yml
index d257acc5c7..139e6526d6 100644
--- a/config/sync/core.entity_view_display.eventseries.default.list.yml
+++ b/config/sync/core.entity_view_display.eventseries.default.list.yml
@@ -15,6 +15,7 @@ dependencies:
- field.field.eventseries.default.field_event_place
- field.field.eventseries.default.field_event_state
- field.field.eventseries.default.field_relevant_ticket_manager
+ - field.field.eventseries.default.field_screen_names
- field.field.eventseries.default.field_tags
- field.field.eventseries.default.field_teaser_image
- field.field.eventseries.default.field_teaser_text
@@ -54,6 +55,7 @@ hidden:
field_event_place: true
field_event_state: true
field_relevant_ticket_manager: true
+ field_screen_names: true
field_tags: true
field_teaser_image: true
field_teaser_text: true
diff --git a/config/sync/core.entity_view_display.eventseries.default.nav_spot.yml b/config/sync/core.entity_view_display.eventseries.default.nav_spot.yml
index 1b544c9deb..80ad282bcf 100644
--- a/config/sync/core.entity_view_display.eventseries.default.nav_spot.yml
+++ b/config/sync/core.entity_view_display.eventseries.default.nav_spot.yml
@@ -15,6 +15,7 @@ dependencies:
- field.field.eventseries.default.field_event_place
- field.field.eventseries.default.field_event_state
- field.field.eventseries.default.field_relevant_ticket_manager
+ - field.field.eventseries.default.field_screen_names
- field.field.eventseries.default.field_tags
- field.field.eventseries.default.field_teaser_image
- field.field.eventseries.default.field_teaser_text
@@ -71,6 +72,7 @@ hidden:
field_event_place: true
field_event_state: true
field_relevant_ticket_manager: true
+ field_screen_names: true
field_tags: true
field_ticket_capacity: true
field_ticket_categories: true
diff --git a/config/sync/core.entity_view_display.eventseries.default.nav_teaser.yml b/config/sync/core.entity_view_display.eventseries.default.nav_teaser.yml
index 71e746d476..631e43747c 100644
--- a/config/sync/core.entity_view_display.eventseries.default.nav_teaser.yml
+++ b/config/sync/core.entity_view_display.eventseries.default.nav_teaser.yml
@@ -15,6 +15,7 @@ dependencies:
- field.field.eventseries.default.field_event_place
- field.field.eventseries.default.field_event_state
- field.field.eventseries.default.field_relevant_ticket_manager
+ - field.field.eventseries.default.field_screen_names
- field.field.eventseries.default.field_tags
- field.field.eventseries.default.field_teaser_image
- field.field.eventseries.default.field_teaser_text
@@ -62,6 +63,7 @@ hidden:
field_event_place: true
field_event_state: true
field_relevant_ticket_manager: true
+ field_screen_names: true
field_tags: true
field_teaser_image: true
field_ticket_capacity: true
diff --git a/config/sync/dpl_event.settings.yml b/config/sync/dpl_event.settings.yml
index 63541ed49b..3b61ae667f 100644
--- a/config/sync/dpl_event.settings.yml
+++ b/config/sync/dpl_event.settings.yml
@@ -1,2 +1,4 @@
-unpublish_schedule: 0
+unpublish_schedule: '21600'
price_currency: DKK
+unpublish_enable: 1
+unpublish_series_enable: 0
diff --git a/config/sync/field.field.eventinstance.default.field_screen_names.yml b/config/sync/field.field.eventinstance.default.field_screen_names.yml
new file mode 100644
index 0000000000..951db12bd0
--- /dev/null
+++ b/config/sync/field.field.eventinstance.default.field_screen_names.yml
@@ -0,0 +1,29 @@
+uuid: 6cb51b10-df02-4bf8-aa68-ef641a1dd1a1
+langcode: en
+status: true
+dependencies:
+ config:
+ - field.storage.eventinstance.field_screen_names
+ - recurring_events.eventinstance_type.default
+ - taxonomy.vocabulary.screen_name
+id: eventinstance.default.field_screen_names
+field_name: field_screen_names
+entity_type: eventinstance
+bundle: default
+label: 'Screen names'
+description: 'Select which screens to display this event on. '
+required: false
+translatable: false
+default_value: { }
+default_value_callback: ''
+settings:
+ handler: 'default:taxonomy_term'
+ handler_settings:
+ target_bundles:
+ screen_name: screen_name
+ sort:
+ field: name
+ direction: asc
+ auto_create: false
+ auto_create_bundle: ''
+field_type: entity_reference
diff --git a/config/sync/field.field.eventseries.default.field_screen_names.yml b/config/sync/field.field.eventseries.default.field_screen_names.yml
new file mode 100644
index 0000000000..9a18a3a6a5
--- /dev/null
+++ b/config/sync/field.field.eventseries.default.field_screen_names.yml
@@ -0,0 +1,29 @@
+uuid: 1587448d-7660-4bd9-849c-d0de6318a5a2
+langcode: en
+status: true
+dependencies:
+ config:
+ - field.storage.eventseries.field_screen_names
+ - recurring_events.eventseries_type.default
+ - taxonomy.vocabulary.screen_name
+id: eventseries.default.field_screen_names
+field_name: field_screen_names
+entity_type: eventseries
+bundle: default
+label: 'Screen names'
+description: 'Select which screens to display this event on.'
+required: false
+translatable: false
+default_value: { }
+default_value_callback: ''
+settings:
+ handler: 'default:taxonomy_term'
+ handler_settings:
+ target_bundles:
+ screen_name: screen_name
+ sort:
+ field: name
+ direction: asc
+ auto_create: false
+ auto_create_bundle: ''
+field_type: entity_reference
diff --git a/config/sync/field.storage.eventinstance.field_screen_names.yml b/config/sync/field.storage.eventinstance.field_screen_names.yml
new file mode 100644
index 0000000000..2b810586cd
--- /dev/null
+++ b/config/sync/field.storage.eventinstance.field_screen_names.yml
@@ -0,0 +1,20 @@
+uuid: b56885e7-70a1-4449-af48-edd59248dc55
+langcode: en
+status: true
+dependencies:
+ module:
+ - recurring_events
+ - taxonomy
+id: eventinstance.field_screen_names
+field_name: field_screen_names
+entity_type: eventinstance
+type: entity_reference
+settings:
+ target_type: taxonomy_term
+module: core
+locked: false
+cardinality: -1
+translatable: true
+indexes: { }
+persist_with_no_fields: false
+custom_storage: false
diff --git a/config/sync/field.storage.eventseries.field_screen_names.yml b/config/sync/field.storage.eventseries.field_screen_names.yml
new file mode 100644
index 0000000000..7f091ae6c1
--- /dev/null
+++ b/config/sync/field.storage.eventseries.field_screen_names.yml
@@ -0,0 +1,20 @@
+uuid: 10baea55-1be7-453c-9578-13ad99e319a7
+langcode: en
+status: true
+dependencies:
+ module:
+ - recurring_events
+ - taxonomy
+id: eventseries.field_screen_names
+field_name: field_screen_names
+entity_type: eventseries
+type: entity_reference
+settings:
+ target_type: taxonomy_term
+module: core
+locked: false
+cardinality: -1
+translatable: true
+indexes: { }
+persist_with_no_fields: false
+custom_storage: false
diff --git a/config/sync/field_inheritance.field_inheritance.eventinstance_default_event_screen_names.yml b/config/sync/field_inheritance.field_inheritance.eventinstance_default_event_screen_names.yml
new file mode 100644
index 0000000000..6e24788193
--- /dev/null
+++ b/config/sync/field_inheritance.field_inheritance.eventinstance_default_event_screen_names.yml
@@ -0,0 +1,14 @@
+uuid: 96438ecf-b991-4e51-b0be-860c23dfc8cf
+langcode: en
+status: true
+dependencies: { }
+id: eventinstance_default_event_screen_names
+label: 'Event screen names'
+type: fallback
+sourceEntityType: eventseries
+sourceEntityBundle: default
+sourceField: field_screen_names
+destinationEntityType: eventinstance
+destinationEntityBundle: default
+destinationField: field_screen_names
+plugin: entity_reference_inheritance
diff --git a/config/sync/language.content_settings.taxonomy_term.screen_name.yml b/config/sync/language.content_settings.taxonomy_term.screen_name.yml
new file mode 100644
index 0000000000..0022f290f9
--- /dev/null
+++ b/config/sync/language.content_settings.taxonomy_term.screen_name.yml
@@ -0,0 +1,11 @@
+uuid: 1775adfc-d12c-49ab-964a-71e30d949c91
+langcode: en
+status: true
+dependencies:
+ config:
+ - taxonomy.vocabulary.screen_name
+id: taxonomy_term.screen_name
+target_entity_type_id: taxonomy_term
+target_bundle: screen_name
+default_langcode: da
+language_alterable: false
diff --git a/config/sync/taxonomy.vocabulary.screen_name.yml b/config/sync/taxonomy.vocabulary.screen_name.yml
new file mode 100644
index 0000000000..39cb31843d
--- /dev/null
+++ b/config/sync/taxonomy.vocabulary.screen_name.yml
@@ -0,0 +1,29 @@
+uuid: 956b17d2-80b6-410b-8f23-b728b068287a
+langcode: da
+status: true
+dependencies:
+ module:
+ - scheduler
+ - taxonomy_unique
+third_party_settings:
+ scheduler:
+ expand_fieldset: when_required
+ fields_display_mode: vertical_tab
+ publish_enable: false
+ publish_past_date: error
+ publish_past_date_created: false
+ publish_required: false
+ publish_revision: false
+ publish_touch: false
+ show_message_after_update: true
+ unpublish_enable: false
+ unpublish_required: false
+ unpublish_revision: false
+ taxonomy_unique:
+ enabled: false
+ message: 'Term "%term" already exists in vocabulary "%vocabulary".'
+name: 'Screen name'
+vid: screen_name
+description: 'Screens to display content on'
+weight: 0
+new_revision: false
diff --git a/config/sync/user.role.administrator.yml b/config/sync/user.role.administrator.yml
index 42b4d76937..f8a8d4e7cc 100644
--- a/config/sync/user.role.administrator.yml
+++ b/config/sync/user.role.administrator.yml
@@ -19,6 +19,7 @@ dependencies:
- taxonomy.vocabulary.breadcrumb_structure
- taxonomy.vocabulary.categories
- taxonomy.vocabulary.opening_hours_categories
+ - taxonomy.vocabulary.screen_name
- taxonomy.vocabulary.tags
- taxonomy.vocabulary.webform_email_categories
module:
@@ -140,6 +141,7 @@ permissions:
- 'create terms in breadcrumb_structure'
- 'create terms in categories'
- 'create terms in opening_hours_categories'
+ - 'create terms in screen_name'
- 'create terms in tags'
- 'create terms in webform_email_categories'
- 'create url aliases'
@@ -183,6 +185,7 @@ permissions:
- 'delete terms in breadcrumb_structure'
- 'delete terms in categories'
- 'delete terms in opening_hours_categories'
+ - 'delete terms in screen_name'
- 'delete terms in tags'
- 'delete terms in webform_email_categories'
- 'disable cookie information consent'
@@ -216,6 +219,7 @@ permissions:
- 'edit terms in breadcrumb_structure'
- 'edit terms in categories'
- 'edit terms in opening_hours_categories'
+ - 'edit terms in screen_name'
- 'edit terms in tags'
- 'edit terms in webform_email_categories'
- 'edit themes novel'
diff --git a/config/sync/user.role.local_administrator.yml b/config/sync/user.role.local_administrator.yml
index 2afcdbb9c1..6751389e4b 100644
--- a/config/sync/user.role.local_administrator.yml
+++ b/config/sync/user.role.local_administrator.yml
@@ -19,6 +19,7 @@ dependencies:
- taxonomy.vocabulary.breadcrumb_structure
- taxonomy.vocabulary.categories
- taxonomy.vocabulary.opening_hours_categories
+ - taxonomy.vocabulary.screen_name
- taxonomy.vocabulary.tags
- taxonomy.vocabulary.webform_email_categories
module:
@@ -113,6 +114,7 @@ permissions:
- 'create terms in breadcrumb_structure'
- 'create terms in categories'
- 'create terms in opening_hours_categories'
+ - 'create terms in screen_name'
- 'create terms in tags'
- 'create terms in webform_email_categories'
- 'create url aliases'
@@ -183,6 +185,7 @@ permissions:
- 'edit terms in breadcrumb_structure'
- 'edit terms in categories'
- 'edit terms in opening_hours_categories'
+ - 'edit terms in screen_name'
- 'edit terms in tags'
- 'edit terms in webform_email_categories'
- 'edit themes novel'
diff --git a/config/sync/views.view.events.yml b/config/sync/views.view.events.yml
index fc06ebc12e..385282804e 100644
--- a/config/sync/views.view.events.yml
+++ b/config/sync/views.view.events.yml
@@ -161,8 +161,12 @@ display:
options:
perm: 'access content'
cache:
- type: none
- options: { }
+ type: search_api_time
+ options:
+ results_lifespan: 3600
+ results_lifespan_custom: 0
+ output_lifespan: 3600
+ output_lifespan_custom: 0
empty:
area:
id: area
@@ -377,5 +381,7 @@ display:
- url.query_args
- user.permissions
tags:
+ - 'config:facets.facet.branch'
+ - 'config:facets.facet.event_categories'
- 'config:search_api.index.events'
- 'search_api_list:events'
diff --git a/openapi.json b/openapi.json
index f942b0242b..12ccc8d8fa 100644
--- a/openapi.json
+++ b/openapi.json
@@ -1079,6 +1079,14 @@
"description": "An absolute URL provided by the third party where editorial users can administer the event. Accessing this URL should require authentication."
}
}
+ },
+ "screen_names": {
+ "type": "array",
+ "description": "The screens this event should be shown on.",
+ "items": {
+ "type": "string",
+ "description": "A screen name."
+ }
}
},
"required": ["uuid", "title", "created_at", "updated_at", "url", "state", "date_time"]
diff --git a/package.json b/package.json
index c113e39bf7..20eb212102 100644
--- a/package.json
+++ b/package.json
@@ -7,11 +7,11 @@
"@lhci/cli": "^0.8",
"@testing-library/cypress": "^10.0.2",
"@types/node": "^18.11.11",
- "@typescript-eslint/eslint-plugin": "^8.17.0",
- "@typescript-eslint/parser": "^8.17.0",
+ "@typescript-eslint/eslint-plugin": "^8.18.0",
+ "@typescript-eslint/parser": "^8.18.0",
"chrome-launcher": "^0.15.1",
- "cypress": "^13.16.0",
- "cypress-if": "^1.13.1",
+ "cypress": "^13.16.1",
+ "cypress-if": "^1.13.2",
"cypress-plugin-api": "^2.11.2",
"dayjs": "^1.11.13",
"eslint": "^8.57.1",
@@ -24,7 +24,7 @@
"pa11y-ci": "https://github.com/pa11y/pa11y-ci/archive/5c842cf1b9fe2867b70ff5354851d985be8d71c4.tar.gz",
"prettier": "^2.7.1",
"typescript": "^5.7.2",
- "wiremock-rest-client": "^1.10.0"
+ "wiremock-rest-client": "^1.11.0"
},
"scripts": {
"wiremock:create-mappings": "yarn wiremock:build && node wiremock/build/createMappings.js",
diff --git a/packages/cms-api/Model/EventsGET200ResponseInner.php b/packages/cms-api/Model/EventsGET200ResponseInner.php
index ef7ce54079..e2850fb076 100644
--- a/packages/cms-api/Model/EventsGET200ResponseInner.php
+++ b/packages/cms-api/Model/EventsGET200ResponseInner.php
@@ -240,6 +240,18 @@ class EventsGET200ResponseInner
*/
protected ?EventPATCHRequestExternalData $externalData = null;
+ /**
+ * The screens this event should be shown on.
+ *
+ * @var string[]|null
+ * @SerializedName("screen_names")
+ * @Assert\All({
+ * @Assert\Type("string")
+ * })
+ * @Type("array',
+ '#suffix' => '
',
+ '#markup' => t('Reset password', [], ['context' => 'DPL admin']),
+ '#weight' => '-999',
+ ];
+
+ $form['actions']['submit']['#attributes']['class'] = ['btn-primary', 'btn-filled btn-small', 'dpl-button'];
}
/**
@@ -243,6 +292,10 @@ function dpl_admin_form_alter(array &$form, FormStateInterface $form_state, stri
if (in_array($form_id, ['node_page_form', 'node_page_edit_form'])) {
_dpl_admin_form_alter_node_page($form, $form_state, $form_id);
}
+
+ if (in_array($form_id, ['user_register_form', 'user_form'])) {
+ _dpl_admin_form_alter_user_form($form, $form_state, $form_id);
+ }
}
/**
diff --git a/web/modules/custom/dpl_event/dpl_event.install b/web/modules/custom/dpl_event/dpl_event.install
index 2917df63b5..c68ec473d7 100644
--- a/web/modules/custom/dpl_event/dpl_event.install
+++ b/web/modules/custom/dpl_event/dpl_event.install
@@ -6,6 +6,8 @@
*/
use Drupal\Core\Field\BaseFieldDefinition;
+use Drupal\dpl_event\Form\SettingsForm;
+use Drupal\dpl_event\Workflows\UnpublishSchedule;
use Drupal\drupal_typed\DrupalTyped;
use Drupal\field\Entity\FieldConfig;
use Drupal\field\Entity\FieldStorageConfig;
@@ -18,6 +20,7 @@ use Drupal\locale\StringDatabaseStorage;
function dpl_event_install(): void {
_dpl_event_create_mock_title();
_dpl_event_add_weekday_translations();
+ _dpl_event_set_scheduler_settings();
}
/**
@@ -67,6 +70,45 @@ function dpl_event_update_10004(): string {
return _dpl_event_add_weekday_translations();
}
+/**
+ * Set default values of event-unpublishing-schedule settings, and re-schedule.
+ */
+function dpl_event_update_10005(): string {
+ return _dpl_event_set_scheduler_settings();
+}
+
+/**
+ * Set default values of event-unpublishing-schedule settings, and re-schedule.
+ */
+function _dpl_event_set_scheduler_settings(): string {
+ $config_name = SettingsForm::CONFIG_NAME;
+
+ $config = \Drupal::configFactory()->getEditable($config_name);
+
+ $existing_schedule = $config->get('unpublish_schedule');
+
+ // If we have no existing schedule set, set it as default to 6 hours.
+ $schedule_time = !empty($existing_schedule) ? $existing_schedule : 21600;
+
+ // If no schedule is set already, we'll disable the setting.
+ $unpublish_enable = ($existing_schedule != 0);
+
+ $config->set('unpublish_schedule', $schedule_time);
+ $config->set('unpublish_enable', $unpublish_enable);
+
+ // This was originally enabled for all sites, but as we no longer recommend
+ // it, we'll set the default to false.
+ // The libraries will be informed of this in the changelog.
+ $config->set('unpublish_series_enable', FALSE);
+
+ $config->save();
+
+ $unpublish_scheduler = DrupalTyped::service(UnpublishSchedule::class, 'dpl_event.unpublish_schedule');
+ $count = $unpublish_scheduler->rescheduleAll();
+
+ return "Enabled new unpublishing settings. $count events has been rescheduled.";
+}
+
/**
* Add a mock title field to eventinstance, to fix entity reference fields.
*
diff --git a/web/modules/custom/dpl_event/dpl_event.module b/web/modules/custom/dpl_event/dpl_event.module
index 4c319f3466..73d129d506 100644
--- a/web/modules/custom/dpl_event/dpl_event.module
+++ b/web/modules/custom/dpl_event/dpl_event.module
@@ -8,15 +8,29 @@
use Drupal\Core\Datetime\DrupalDateTime;
use Drupal\Core\Entity\EntityInterface;
use Drupal\Core\Entity\FieldableEntityInterface;
+use Drupal\Core\Entity\Query\QueryInterface;
+use Drupal\Core\Form\FormStateInterface;
use Drupal\Core\Url;
+use Drupal\dpl_event\Entity\EventInstance;
use Drupal\dpl_event\EventState;
-use Drupal\dpl_event\EventWrapper;
+use Drupal\dpl_event\Form\SettingsForm;
+use Drupal\dpl_event\ReoccurringDateFormatter;
use Drupal\dpl_event\Workflows\OccurredSchedule;
use Drupal\dpl_event\Workflows\UnpublishSchedule;
use Drupal\drupal_typed\DrupalTyped;
-use Drupal\recurring_events\Entity\EventInstance;
use Drupal\recurring_events\Entity\EventSeries;
-use Safe\DateTime;
+
+/**
+ * Implements hook_entity_bundle_info_alter().
+ *
+ * @param mixed[] $bundles
+ * Bundle info for altering.
+ */
+function dpl_event_entity_bundle_info_alter(array &$bundles): void {
+ if (isset($bundles['eventinstance']['default'])) {
+ $bundles['eventinstance']['default']['class'] = EventInstance::class;
+ }
+}
/**
* Implements hook_cron_job_scheduler_info().
@@ -43,7 +57,7 @@ function dpl_event_eventinstance_insert(EntityInterface $entity): void {
return;
}
- (new EventWrapper($entity))->isActive() && $occurred_schedule->scheduleOccurred($entity);
+ $entity->isActive() && $occurred_schedule->scheduleOccurred($entity);
$unpublish_schedule->scheduleUnpublication($entity);
}
@@ -56,15 +70,15 @@ function dpl_event_eventinstance_update(EntityInterface $entity): void {
if (!$entity instanceof EventInstance) {
return;
}
- $updated_event = new EventWrapper($entity);
+
if (isset($entity->original) && $entity->original instanceof EventInstance) {
// If there are no changes to the date then skip updating schedules.
- if ($updated_event->hasSameDate($entity->original)) {
+ if ($entity->hasSameDate($entity->original)) {
return;
}
}
- $updated_event->isActive() && $occurred_schedule->scheduleOccurred($entity);
+ $entity->isActive() && $occurred_schedule->scheduleOccurred($entity);
$unpublish_schedule->scheduleUnpublication($entity);
}
@@ -92,8 +106,7 @@ function dpl_event_preprocess_field(array &$variables): void {
return;
}
- $event_wrapper = new EventWrapper($entity);
- $event_state = $event_wrapper->getState();
+ $event_state = $entity->getState();
// Check if the event state is valid. If not, return early.
if (!($event_state instanceof EventState)) {
@@ -182,30 +195,23 @@ function dpl_event_preprocess_eventseries(array &$variables): void {
return;
}
- $variables['formatted_date'] =
- \Drupal::service('dpl_event.reoccurring_date_formatter')
- ->getSeriesDateString($event_series);
+ $service = DrupalTyped::service(ReoccurringDateFormatter::class, 'dpl_event.reoccurring_date_formatter');
+ $upcoming_ids = $service->getUpcomingEventIds($event_series);
+
+ $variables['formatted_date'] = $service->getSeriesDateString($event_series);
- if ($event_series->getInstanceCount() < 2) {
+ if (count($upcoming_ids) < 2) {
return;
}
- // Load event instances & filter out past events.
- $eventinstances_in_series = $event_series->get('event_instances')->referencedEntities();
- $current_date = (new DateTime())->setTime(0, 0, 0);
-
- $eventinstances_in_series_filtered = array_filter($eventinstances_in_series, function ($eventInstance) use ($current_date) {
- $event_start_date = new DateTime($eventInstance->get('date')->start_date);
- return $event_start_date >= $current_date;
- });
-
- $eventinstances_in_series_filtered = array_values($eventinstances_in_series_filtered);
-
+ $instance_storage = \Drupal::entityTypeManager()->getStorage('eventinstance');
+ $event_instances = $instance_storage->loadMultiple($upcoming_ids);
$viewBuilder = \Drupal::entityTypeManager()->getViewBuilder('eventinstance');
$variables['event_instances'] = [];
- foreach ($eventinstances_in_series_filtered as $index => $eventInstance) {
- $viewMode = $index === 0 ? 'list_teaser_stacked_parent' : 'stacked_event';
- $renderable_instance = $viewBuilder->view($eventInstance, $viewMode);
+
+ foreach ($event_instances as $index => $event_instance) {
+ $view_mode = $index === 0 ? 'list_teaser_stacked_parent' : 'stacked_event';
+ $renderable_instance = $viewBuilder->view($event_instance, $view_mode);
$variables['event_instances'][] = $renderable_instance;
}
@@ -266,6 +272,7 @@ function dpl_event_preprocess_eventinstance(array &$variables): void {
$variables['datetime_attribute'] = $date_formatter->format($start_time->getTimestamp(), DATE_ATOM);
}
if ($end_time instanceof DrupalDateTime) {
+ $variables['expired'] = ($end_time->getTimestamp() < \Drupal::time()->getCurrentTime());
$variables['end_time'] = $date_formatter->format($end_time->getTimestamp(), 'custom', 'H:i');
}
}
@@ -287,3 +294,53 @@ function dpl_event_gin_content_form_routes() : array {
'entity.eventinstance.edit_form',
];
}
+
+/**
+ * Implements hook_entity_query_TAG_alter().
+ *
+ * Deny access to the screen name vocabulary when the feature is disabled.
+ *
+ * This is to totally hide the vocabulary when the feature is disabled.
+ *
+ * hook_entity_query_TAG_alter() is the way to hook into `accessCheck(TRUE)`.
+ */
+function dpl_event_entity_query_taxonomy_vocabulary_alter(QueryInterface $query): void {
+ if (!\Drupal::config(SettingsForm::CONFIG_NAME)->get('enable_screen_name')) {
+ $query->condition('vid', 'screen_name', '<>');
+ }
+}
+
+/**
+ * Implements hook_form_alter().
+ *
+ * Alter event forms to hide screen names when the feature is disabled.
+ */
+function dpl_event_form_alter(array &$form, FormStateInterface $form_state, string $form_id): void {
+ $forms = [
+ 'eventseries_default_edit_form',
+ 'eventseries_default_add_form',
+ 'eventinstance_default_edit_form',
+ 'eventinstance_default_add_form',
+ ];
+ if (!in_array($form_id, $forms)) {
+ return;
+ }
+
+ if (!isset($form['field_screen_names'])) {
+ return;
+ }
+
+ // Undo select2s adding of help text.
+ if (isset($form['field_screen_names']['widget']['#description']) &&
+ is_array($form['field_screen_names']['widget']['#description']) &&
+ is_array($form['field_screen_names']['widget']['#description']['#items'])) {
+ $form['field_screen_names']['widget']['#description'] =
+ $form['field_screen_names']['widget']['#description']['#items'][0];
+ }
+
+ if (\Drupal::config(SettingsForm::CONFIG_NAME)->get('enable_screen_name')) {
+ return;
+ }
+
+ $form['field_screen_names']['#access'] = FALSE;
+}
diff --git a/web/modules/custom/dpl_event/dpl_event.services.yml b/web/modules/custom/dpl_event/dpl_event.services.yml
index 4a47f1a01e..55e44bee02 100644
--- a/web/modules/custom/dpl_event/dpl_event.services.yml
+++ b/web/modules/custom/dpl_event/dpl_event.services.yml
@@ -45,6 +45,9 @@ services:
- { name: access_check, applies_to: _access_event_series_instances_tab }
dpl_event.event_series_redirect:
class: Drupal\dpl_event\EventSubscriber\EventSeriesRedirect
+ arguments:
+ - '@entity_type.manager'
+ - '@dpl_event.reoccurring_date_formatter'
tags:
- { name: event_subscriber }
dpl_event.event_instance_edit_redirect:
diff --git a/web/modules/custom/dpl_event/src/EventWrapper.php b/web/modules/custom/dpl_event/src/Entity/EventInstance.php
similarity index 83%
rename from web/modules/custom/dpl_event/src/EventWrapper.php
rename to web/modules/custom/dpl_event/src/Entity/EventInstance.php
index 58c1011a8f..c014a240b7 100644
--- a/web/modules/custom/dpl_event/src/EventWrapper.php
+++ b/web/modules/custom/dpl_event/src/Entity/EventInstance.php
@@ -1,33 +1,21 @@
getStartDate() == $otherWrapper->getStartDate() &&
- $this->getEndDate() == $otherWrapper->getEndDate();
+ public function hasSameDate(EventInstance $other): bool {
+ return $this->getStartDate() == $other->getStartDate() &&
+ $this->getEndDate() == $other->getEndDate();
}
/**
@@ -74,7 +61,7 @@ public function hasSameDate(EventInstance $otherEvent): bool {
* The part of the date to get.
*/
private function getDate(string $value): \DateTimeInterface {
- $event_date = $this->event->get('date')->get(0);
+ $event_date = $this->get('date')->get(0);
if (!$event_date) {
throw new \LogicException("Unable to retrieve date from event instance");
}
@@ -109,7 +96,7 @@ public function getBranches(): ?array {
*/
public function getDescription(): ?string {
/** @var \Drupal\paragraphs\ParagraphInterface[] $paragraphs */
- $paragraphs = $this->event->get('event_paragraphs')->referencedEntities();
+ $paragraphs = $this->get('event_paragraphs')->referencedEntities();
foreach ($paragraphs as $paragraph) {
if ($paragraph->bundle() === 'text_body') {
@@ -120,6 +107,25 @@ public function getDescription(): ?string {
return NULL;
}
+ /**
+ * Getting associated screen names.
+ *
+ * @return string[]
+ * The screen names.
+ */
+ public function getScreenNames(): array {
+ $names = [];
+
+ /** @var \Drupal\taxonomy\TermInterface[] $screens */
+ $screens = $this->get('event_screen_names')->referencedEntities();
+
+ foreach ($screens as $screen) {
+ $names[] = $screen->getName();
+ }
+
+ return $names;
+ }
+
/**
* Get the EventState object of an eventinstance.
*/
@@ -204,9 +210,9 @@ public function isFreeToAttend(): bool {
* which ever is newer.
*/
public function getUpdatedDate(): ?DateTime {
- $series = $this->event->getEventSeries();
+ $series = $this->getEventSeries();
- $changed_instance = $this->event->getChangedTime();
+ $changed_instance = $this->getChangedTime();
$changed_series = $series->getChangedTime();
// Setting the timestamp to whichever is the larger.
@@ -231,8 +237,8 @@ public function getUpdatedDate(): ?DateTime {
*/
public function getField(string $field_name): ?FieldItemListInterface {
// First, let's look up the custom field - does it already have a value?
- if ($this->event->hasField($field_name)) {
- $field = $this->event->get($field_name);
+ if ($this->hasField($field_name)) {
+ $field = $this->get($field_name);
if (!$field->isEmpty()) {
return $field;
diff --git a/web/modules/custom/dpl_event/src/EventSubscriber/EventSeriesRedirect.php b/web/modules/custom/dpl_event/src/EventSubscriber/EventSeriesRedirect.php
index ae23154cec..8487e297d4 100644
--- a/web/modules/custom/dpl_event/src/EventSubscriber/EventSeriesRedirect.php
+++ b/web/modules/custom/dpl_event/src/EventSubscriber/EventSeriesRedirect.php
@@ -2,6 +2,8 @@
namespace Drupal\dpl_event\EventSubscriber;
+use Drupal\Core\Entity\EntityTypeManagerInterface;
+use Drupal\dpl_event\ReoccurringDateFormatter;
use Drupal\recurring_events\Entity\EventInstance;
use Drupal\recurring_events\Entity\EventSeries;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
@@ -10,25 +12,43 @@
use Symfony\Component\HttpKernel\KernelEvents;
/**
- * Redirects requests for single instance event series to that instance.
+ * Redirect to AND from eventseries, depending on the situation.
+ *
+ * - If accessing an eventseries with a single active instance, redirect to
+ * that instance
+ * - If failing to access an unpublished eventinstance, redirect to the
+ * parent series.
*
* @package Drupal\dpl_event\EventSubscriber
*/
class EventSeriesRedirect implements EventSubscriberInterface {
+ /**
+ * {@inheritdoc}
+ */
+ public function __construct(
+ private EntityTypeManagerInterface $entityTypeManager,
+ private ReoccurringDateFormatter $reoccurringDateFormatter,
+ ) {}
+
/**
* {@inheritdoc}
*/
public static function getSubscribedEvents(): array {
return [
- KernelEvents::REQUEST => 'checkEventSeriesRedirect',
+ KernelEvents::REQUEST => [
+ ['checkEventSeriesRedirect'],
+ ],
+ // Only target users that end up on an unpublished eventinstance page,
+ // without being allowed to see it.
+ KernelEvents::EXCEPTION => [
+ ['checkEventInstanceRedirect'],
+ ],
];
}
/**
- * Redirects the visit to an event series to the event instance if there is.
- *
- * Only one instance.
+ * Redirects the visit to an event series to the event instance if only 1.
*
* This is necessary because if a user visits an event series page, but there
* is only one instance in the series, they should be redirected to the event
@@ -39,20 +59,56 @@ public static function getSubscribedEvents(): array {
* The request event.
*/
public function checkEventSeriesRedirect(RequestEvent $event): void {
-
$request = $event->getRequest();
$route_name = $request->attributes->get('_route');
- $eventSeries = $request->attributes->get('eventseries');
+ $event_series = $request->attributes->get('eventseries');
- if ($route_name !== 'entity.eventseries.canonical' || !$eventSeries instanceof EventSeries || $eventSeries->getInstanceCount() > 1) {
+ if ($route_name !== 'entity.eventseries.canonical' || !$event_series instanceof EventSeries) {
return;
}
- $eventInstances = $eventSeries->get('event_instances')->referencedEntities();
- if (count($eventInstances) === 1 && $eventInstances[0] instanceof EventInstance) {
- $response = new RedirectResponse($eventInstances[0]->toUrl()->toString());
+ $upcoming_ids = $this->reoccurringDateFormatter->getUpcomingEventIds($event_series);
+
+ // Only redirect, if we can find a single eventinstance - otherwise, we
+ // want to stay on the series display.
+ if (count($upcoming_ids) != 1) {
+ return;
+ }
+
+ $event_instance_id = reset($upcoming_ids);
+ $event_instance = $this->entityTypeManager->getStorage('eventinstance')->load($event_instance_id);
+
+ if ($event_instance instanceof EventInstance) {
+ $response = new RedirectResponse($event_instance->toUrl()->toString());
$event->setResponse($response);
}
}
+ /**
+ * Redirect unpublished eventinstances to eventseries.
+ *
+ * @param \Symfony\Component\HttpKernel\Event\RequestEvent $event
+ * The response event.
+ */
+ public function checkEventInstanceRedirect(RequestEvent $event): void {
+ $request = $event->getRequest();
+
+ if ($request->attributes->get('_route') !== 'entity.eventinstance.canonical') {
+ return;
+ }
+
+ $event_instance = $request->attributes->get('eventinstance');
+
+ if (!($event_instance instanceof EventInstance) || $event_instance->isPublished()) {
+ return;
+ }
+
+ // At this stage, we know we're on an unpublished eventinstance.
+ // Look up the eventseries, and redirect to it.
+ $event_series = $event_instance->getEventSeries();
+
+ $response = new RedirectResponse($event_series->toUrl()->toString());
+ $event->setResponse($response);
+ }
+
}
diff --git a/web/modules/custom/dpl_event/src/Form/SettingsForm.php b/web/modules/custom/dpl_event/src/Form/SettingsForm.php
index f7c2e63a2c..14fe149c18 100644
--- a/web/modules/custom/dpl_event/src/Form/SettingsForm.php
+++ b/web/modules/custom/dpl_event/src/Form/SettingsForm.php
@@ -72,12 +72,21 @@ public function buildForm(array $form, FormStateInterface $form_state): array {
],
];
+ $form['enable_screen_name'] = [
+ '#type' => 'checkbox',
+ '#title' => $this->t('Enable screen names'),
+ '#default_value' => $config->get('enable_screen_name'),
+ '#description' => $this->t('Enable screen names on events. Requires an external system to actually fetch and display the events on real physical screens.'),
+ ];
+
$form['unpublish'] = [
'#type' => 'fieldset',
'#title' => $this->t('Automatic unpublication', [], ['context' => 'DPL event']),
];
$period = [
+ // 1 hour
+ 3600,
// 6 hours
21600,
// 12 hours
@@ -98,14 +107,66 @@ public function buildForm(array $form, FormStateInterface $form_state): array {
15552000,
];
$period = array_map([$this->dateFormatter, 'formatInterval'], array_combine($period, $period));
+
+ $form['unpublish']['unpublish_enable'] = [
+ '#type' => 'checkbox',
+ '#title' => $this->t('Unpublish eventinstances when they have occured (recommended)', [], ['context' => 'DPL event']),
+ '#default_value' => $config->get('unpublish_enable'),
+ ];
+
+ $form['unpublish']['unpublish_disable_warning'] = [
+ '#type' => 'container',
+ // js-form-wrapper is important - otherwise, Drupal states will not work.
+ '#prefix' => '
Du er i gang med at slette \"@title\". Denne side er "
+"liket til brødkrummen \"@breadcrumb_title\".\n"
+"
Du kan ikke slette dette indhold før du erstatter siden i "
+"\"Content to link to\" feltet i \"@breadcrumb_title\".\n"
+"
Rediger brødkrummen \"@breadcrumb_title\"