diff --git a/.env b/.env index 5afff69b..dcd21a41 100644 --- a/.env +++ b/.env @@ -29,3 +29,6 @@ HELBIT_CLIENT_ID= # URL for Elasticsearch (for job search) ELASTIC_PROXY_URL=https://elastic-helfi-rekry.docker.so + +# Hakuvahti URL +HAKUVAHTI_URL=http://helfi-rekry.docker.so:3000 diff --git a/README.md b/README.md index f8ae9627..938a6a9e 100644 --- a/README.md +++ b/README.md @@ -40,3 +40,11 @@ This will log you inside the app container: ``` $ make shell ``` + +## Enable Hakuvahti features + +To enable [Hakuvahti features](https://github.com/City-of-Helsinki/helfi-hakuvahti) for local development or usage, you need to first install Hakuvahti and then enable Hakuvahti network in compose.yaml. + +These lines are commented out with comment `# Uncomment to enable Hakuvahti:` + +Specifically what is commented out: `HAKUVAHTI_URL` environment variable, `helfi-hakuvahti_helfi-hakuvahti-network` for `app` and `elastic` containers. Finally it needs to be listed under `networks`. This enables Hakuvahti server to access ElasticSearch. diff --git a/azure-pipelines-devtest.yml b/azure-pipelines-devtest.yml deleted file mode 100644 index 53c0776a..00000000 --- a/azure-pipelines-devtest.yml +++ /dev/null @@ -1,48 +0,0 @@ -# Continuous integration (CI) triggers cause a pipeline to run whenever you push -# an update to the specified branches or you push specified tags. -trigger: - batch: true - branches: - include: - - dev - paths: - exclude: - - README.md - -# Pull request (PR) triggers cause a pipeline to run whenever a pull request is -# opened with one of the specified target branches, or when updates are made to -# such a pull request. -# -# GitHub creates a new ref when a pull request is created. The ref points to a -# merge commit, which is the merged code between the source and target branches -# of the pull request. -# -# Opt out of pull request validation -pr: none - -# By default, use self-hosted agents -pool: Default - -# Image tag name for Fuse projects -#parameters: -#- name: imagetag -# displayName: Image tag to be built and/or deployed -# type: string -# default: latest - -resources: - repositories: - # Azure DevOps repository - - repository: helfi-rekry-pipelines - type: git - # Azure DevOps project/repository - name: helfi-rekry/helfi-rekry-pipelines - -extends: - # Filename in Azure DevOps Repository (note possible -ui or -api) - # Django example: azure-pipelines-PROJECTNAME-api-master.yml - # Drupal example: azure-pipelines-drupal-master.yml - template: azure-pipelines-drupal-devtest.yml@helfi-rekry-pipelines - # Image tag name for Fuse projects - #parameters: - #imagetag: ${{ parameters.imagetag }} diff --git a/azure-pipelines-prod.yml b/azure-pipelines-prod.yml deleted file mode 100644 index bb35bb29..00000000 --- a/azure-pipelines-prod.yml +++ /dev/null @@ -1,47 +0,0 @@ -# Continuous integration (CI) triggers cause a pipeline to run whenever you push -# an update to the specified branches or you push specified tags. -trigger: none -# batch: true -# branches: -# include: -# - main -# paths: -# exclude: -# - README.md - -# Pull request (PR) triggers cause a pipeline to run whenever a pull request is -# opened with one of the specified target branches, or when updates are made to -# such a pull request. -# -# GitHub creates a new ref when a pull request is created. The ref points to a -# merge commit, which is the merged code between the source and target branches -# of the pull request. -# -# Opt out of pull request validation -pr: none - -# By default, use self-hosted agents -pool: Default - -# Image tag name for Fuse projects -#parameters: -#- name: imagetag -# displayName: Image tag to be built and/or deployed -# type: string -# default: latest - -resources: - repositories: - # Azure DevOps repository - - repository: helfi-rekry-pipelines - type: git - # Azure DevOps project/repository - name: helfi-rekry/helfi-rekry-pipelines - -extends: - # Filename in Azure DevOps Repository (note possible -ui or -api) - # Django example: azure-pipelines-PROJECTNAME-api-release.yml - # Drupal example: azure-pipelines-drupal-release.yml - template: azure-pipelines-drupal-prod.yml@helfi-rekry-pipelines - #parameters: - #imagetag: ${{ parameters.imagetag }} diff --git a/azure-pipelines-staging.yml b/azure-pipelines-staging.yml deleted file mode 100644 index fb313af4..00000000 --- a/azure-pipelines-staging.yml +++ /dev/null @@ -1,47 +0,0 @@ -# Continuous integration (CI) triggers cause a pipeline to run whenever you push -# an update to the specified branches or you push specified tags. -trigger: - batch: true - branches: - include: - - main - paths: - exclude: - - README.md - -# Pull request (PR) triggers cause a pipeline to run whenever a pull request is -# opened with one of the specified target branches, or when updates are made to -# such a pull request. -# -# GitHub creates a new ref when a pull request is created. The ref points to a -# merge commit, which is the merged code between the source and target branches -# of the pull request. -# -# Opt out of pull request validation -pr: none - -# By default, use self-hosted agents -pool: Default - -# Image tag name for Fuse projects -#parameters: -#- name: imagetag -# displayName: Image tag to be built and/or deployed -# type: string -# default: latest - -resources: - repositories: - # Azure DevOps repository - - repository: helfi-rekry-pipelines - type: git - # Azure DevOps project/repository - name: helfi-rekry/helfi-rekry-pipelines - -extends: - # Filename in Azure DevOps Repository (note possible -ui or -api) - # Django example: azure-pipelines-PROJECTNAME-api-release.yml - # Drupal example: azure-pipelines-drupal-release.yml - template: azure-pipelines-drupal-staging.yml@helfi-rekry-pipelines - #parameters: - #imagetag: ${{ parameters.imagetag }} diff --git a/compose.yaml b/compose.yaml index 56202025..0e16d19e 100644 --- a/compose.yaml +++ b/compose.yaml @@ -105,6 +105,12 @@ services: - "traefik.http.services.nginx.loadbalancer.server.port=8080" - "traefik.http.routers.nginx.tls=true" - "traefik.docker.network=stonehenge-network" + - "traefik.http.middlewares.cors-header.headers.accesscontrolallowmethods=GET,OPTIONS,POST" + - "traefik.http.middlewares.cors-header.headers.accesscontrolallowheaders=*" + - "traefik.http.middlewares.cors-header.headers.accesscontrolalloworiginlist=*" + - "traefik.http.middlewares.cors-header.headers.accesscontrolmaxage=100" + - "traefik.http.middlewares.cors-header.headers.addvaryheader=true" + - "traefik.http.routers.nginx.middlewares=cors-header" depends_on: - elastic profiles: diff --git a/composer.lock b/composer.lock index 4f8fa7bd..9116ec73 100644 --- a/composer.lock +++ b/composer.lock @@ -2375,21 +2375,22 @@ }, { "name": "drupal/diff", - "version": "1.3.0", + "version": "1.4.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/diff.git", - "reference": "8.x-1.3" + "reference": "8.x-1.4" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/diff-8.x-1.3.zip", - "reference": "8.x-1.3", - "shasum": "7a6e70546d97974600baffd0695105e88699744e" + "url": "https://ftp.drupal.org/files/projects/diff-8.x-1.4.zip", + "reference": "8.x-1.4", + "shasum": "8f1e95e6c7f576999c5b2880023de2c2aaaf99b3" }, "require": { - "drupal/core": "^9.3 || ^10", - "mkalkbrenner/php-htmldiff-advanced": "~0.0.8" + "drupal/core": "^9.3 || ^10 || ^11", + "mkalkbrenner/php-htmldiff-advanced": "~0.0.8", + "php": "^8.1" }, "require-dev": { "jangregor/phpstan-prophecy": "dev-master", @@ -2404,8 +2405,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "8.x-1.3", - "datestamp": "1712883857", + "version": "8.x-1.4", + "datestamp": "1717130431", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -2633,17 +2634,17 @@ }, { "name": "drupal/editoria11y", - "version": "2.1.17", + "version": "2.1.18", "source": { "type": "git", "url": "https://git.drupalcode.org/project/editoria11y.git", - "reference": "2.1.17" + "reference": "2.1.18" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/editoria11y-2.1.17.zip", - "reference": "2.1.17", - "shasum": "7c9af73ebfe342d988abf2a89e41d324bfc31766" + "url": "https://ftp.drupal.org/files/projects/editoria11y-2.1.18.zip", + "reference": "2.1.18", + "shasum": "ebdb25f92c2d77681661216ca3abebbc710b662a" }, "require": { "drupal/core": "^9 || ^10 || ^11" @@ -2654,8 +2655,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "2.1.17", - "datestamp": "1715783435", + "version": "2.1.18", + "datestamp": "1716399461", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -3708,16 +3709,16 @@ }, { "name": "drupal/hdbt", - "version": "6.5.11", + "version": "6.5.19", "source": { "type": "git", "url": "https://github.com/City-of-Helsinki/drupal-hdbt.git", - "reference": "1bceace4bc51d2a6ebfc368434485cbea20c1d52" + "reference": "14c0591acc5fba933ab83384905d88c3e3512c8a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/City-of-Helsinki/drupal-hdbt/zipball/1bceace4bc51d2a6ebfc368434485cbea20c1d52", - "reference": "1bceace4bc51d2a6ebfc368434485cbea20c1d52", + "url": "https://api.github.com/repos/City-of-Helsinki/drupal-hdbt/zipball/14c0591acc5fba933ab83384905d88c3e3512c8a", + "reference": "14c0591acc5fba933ab83384905d88c3e3512c8a", "shasum": "" }, "require": { @@ -3735,23 +3736,23 @@ "Drupal" ], "support": { - "source": "https://github.com/City-of-Helsinki/drupal-hdbt/tree/6.5.11", + "source": "https://github.com/City-of-Helsinki/drupal-hdbt/tree/6.5.19", "issues": "https://github.com/City-of-Helsinki/drupal-hdbt/issues" }, - "time": "2024-05-20T09:37:47+00:00" + "time": "2024-06-04T13:35:36+00:00" }, { "name": "drupal/hdbt_admin", - "version": "3.1.7", + "version": "3.1.8", "source": { "type": "git", "url": "https://github.com/City-of-Helsinki/drupal-hdbt-admin.git", - "reference": "33a217058068330c90b049e539e91b19d24d933d" + "reference": "d2e146b0215a5d6098d38f87548b999af2b43468" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/City-of-Helsinki/drupal-hdbt-admin/zipball/33a217058068330c90b049e539e91b19d24d933d", - "reference": "33a217058068330c90b049e539e91b19d24d933d", + "url": "https://api.github.com/repos/City-of-Helsinki/drupal-hdbt-admin/zipball/d2e146b0215a5d6098d38f87548b999af2b43468", + "reference": "d2e146b0215a5d6098d38f87548b999af2b43468", "shasum": "" }, "require": { @@ -3770,10 +3771,10 @@ "Drupal" ], "support": { - "source": "https://github.com/City-of-Helsinki/drupal-hdbt-admin/tree/3.1.7", + "source": "https://github.com/City-of-Helsinki/drupal-hdbt-admin/tree/3.1.8", "issues": "https://github.com/City-of-Helsinki/drupal-hdbt-admin/issues" }, - "time": "2024-05-20T09:40:02+00:00" + "time": "2024-05-24T05:30:41+00:00" }, { "name": "drupal/health_check", @@ -3998,16 +3999,16 @@ }, { "name": "drupal/helfi_navigation", - "version": "2.2.3", + "version": "2.2.4", "source": { "type": "git", "url": "https://github.com/City-of-Helsinki/drupal-module-helfi-navigation.git", - "reference": "eb20060acf28691380da8c928fa134ee5bbb7770" + "reference": "7c1048ea3f3b3a14ee11ac40b60fddeb50df2b4d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/City-of-Helsinki/drupal-module-helfi-navigation/zipball/eb20060acf28691380da8c928fa134ee5bbb7770", - "reference": "eb20060acf28691380da8c928fa134ee5bbb7770", + "url": "https://api.github.com/repos/City-of-Helsinki/drupal-module-helfi-navigation/zipball/7c1048ea3f3b3a14ee11ac40b60fddeb50df2b4d", + "reference": "7c1048ea3f3b3a14ee11ac40b60fddeb50df2b4d", "shasum": "" }, "require": { @@ -4025,23 +4026,23 @@ ], "description": "Helfi - Navigation", "support": { - "source": "https://github.com/City-of-Helsinki/drupal-module-helfi-navigation/tree/2.2.3", + "source": "https://github.com/City-of-Helsinki/drupal-module-helfi-navigation/tree/2.2.4", "issues": "https://github.com/City-of-Helsinki/drupal-module-helfi-navigation/issues" }, - "time": "2024-04-26T06:27:49+00:00" + "time": "2024-06-04T07:30:53+00:00" }, { "name": "drupal/helfi_platform_config", - "version": "4.3.57", + "version": "4.3.60", "source": { "type": "git", "url": "https://github.com/City-of-Helsinki/drupal-helfi-platform-config.git", - "reference": "9ebb3f106cf8e2835cce6f789abb127234af9aab" + "reference": "5325477652218592b37907d622cce89c2b0786cf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/City-of-Helsinki/drupal-helfi-platform-config/zipball/9ebb3f106cf8e2835cce6f789abb127234af9aab", - "reference": "9ebb3f106cf8e2835cce6f789abb127234af9aab", + "url": "https://api.github.com/repos/City-of-Helsinki/drupal-helfi-platform-config/zipball/5325477652218592b37907d622cce89c2b0786cf", + "reference": "5325477652218592b37907d622cce89c2b0786cf", "shasum": "" }, "require": { @@ -4152,10 +4153,10 @@ ], "description": "HELfi platform config", "support": { - "source": "https://github.com/City-of-Helsinki/drupal-helfi-platform-config/tree/4.3.57", + "source": "https://github.com/City-of-Helsinki/drupal-helfi-platform-config/tree/4.3.60", "issues": "https://github.com/City-of-Helsinki/drupal-helfi-platform-config/issues" }, - "time": "2024-05-22T06:30:57+00:00" + "time": "2024-06-04T06:56:15+00:00" }, { "name": "drupal/helfi_proxy", @@ -4485,26 +4486,26 @@ }, { "name": "drupal/jquery_ui", - "version": "1.6.0", + "version": "1.7.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/jquery_ui.git", - "reference": "8.x-1.6" + "reference": "8.x-1.7" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/jquery_ui-8.x-1.6.zip", - "reference": "8.x-1.6", - "shasum": "0ddccdcf35a066de1843e1d9670677ee1a2faac0" + "url": "https://ftp.drupal.org/files/projects/jquery_ui-8.x-1.7.zip", + "reference": "8.x-1.7", + "shasum": "3f893843ec30fed18fa1b0cb326e51880b0cb686" }, "require": { - "drupal/core": "^9.2 || ^10" + "drupal/core": "^9.2 || ^10 || ^11" }, "type": "drupal-module", "extra": { "drupal": { - "version": "8.x-1.6", - "datestamp": "1668521197", + "version": "8.x-1.7", + "datestamp": "1717002098", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -4581,27 +4582,27 @@ }, { "name": "drupal/jquery_ui_draggable", - "version": "2.0.0", + "version": "2.1.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/jquery_ui_draggable.git", - "reference": "2.0.0" + "reference": "2.1.0" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/jquery_ui_draggable-2.0.0.zip", - "reference": "2.0.0", - "shasum": "13a8f4bf037449cd176ddb967fc9cba9a466a705" + "url": "https://ftp.drupal.org/files/projects/jquery_ui_draggable-2.1.0.zip", + "reference": "2.1.0", + "shasum": "0d014cfff20993d8051efb8f6c9093a4fe5136f3" }, "require": { - "drupal/core": "^9.2 || ^10", - "drupal/jquery_ui": "^1.6" + "drupal/core": "^9.2 || ^10 || ^11", + "drupal/jquery_ui": "^1.7" }, "type": "drupal-module", "extra": { "drupal": { - "version": "2.0.0", - "datestamp": "1670871516", + "version": "2.1.0", + "datestamp": "1717015492", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -4825,6 +4826,14 @@ "GPL-2.0-or-later" ], "authors": [ + { + "name": "Anybody", + "homepage": "https://www.drupal.org/user/291091" + }, + { + "name": "Grevil", + "homepage": "https://www.drupal.org/user/3668491" + }, { "name": "jcnventura", "homepage": "https://www.drupal.org/user/122464" @@ -5510,20 +5519,20 @@ }, { "name": "drupal/raven", - "version": "5.0.13", + "version": "5.0.14", "source": { "type": "git", "url": "https://git.drupalcode.org/project/raven.git", - "reference": "5.0.13" + "reference": "5.0.14" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/raven-5.0.13.zip", - "reference": "5.0.13", - "shasum": "12bcb8daeaaee35e28982e8d225011e866d535e9" + "url": "https://ftp.drupal.org/files/projects/raven-5.0.14.zip", + "reference": "5.0.14", + "shasum": "b6487db5f6be84aa06ccf48e878021c30a8511ba" }, "require": { - "drupal/core": "^10.1", + "drupal/core": "^10.1 || ^11", "sentry/sentry": "^4.4" }, "require-dev": { @@ -5535,8 +5544,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "5.0.13", - "datestamp": "1715818744", + "version": "5.0.14", + "datestamp": "1716361931", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -10638,16 +10647,16 @@ }, { "name": "symfony/console", - "version": "v6.4.7", + "version": "v6.4.8", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "a170e64ae10d00ba89e2acbb590dc2e54da8ad8f" + "reference": "be5854cee0e8c7b110f00d695d11debdfa1a2a91" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/a170e64ae10d00ba89e2acbb590dc2e54da8ad8f", - "reference": "a170e64ae10d00ba89e2acbb590dc2e54da8ad8f", + "url": "https://api.github.com/repos/symfony/console/zipball/be5854cee0e8c7b110f00d695d11debdfa1a2a91", + "reference": "be5854cee0e8c7b110f00d695d11debdfa1a2a91", "shasum": "" }, "require": { @@ -10712,7 +10721,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v6.4.7" + "source": "https://github.com/symfony/console/tree/v6.4.8" }, "funding": [ { @@ -10728,20 +10737,20 @@ "type": "tidelift" } ], - "time": "2024-04-18T09:22:46+00:00" + "time": "2024-05-31T14:49:08+00:00" }, { "name": "symfony/dependency-injection", - "version": "v6.4.7", + "version": "v6.4.8", "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "d8c5f9781b71c2a868ae9d0e5c9b283684740b6d" + "reference": "d3b618176e8c3a9e5772151c51eba0c52a0c771c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/d8c5f9781b71c2a868ae9d0e5c9b283684740b6d", - "reference": "d8c5f9781b71c2a868ae9d0e5c9b283684740b6d", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/d3b618176e8c3a9e5772151c51eba0c52a0c771c", + "reference": "d3b618176e8c3a9e5772151c51eba0c52a0c771c", "shasum": "" }, "require": { @@ -10793,7 +10802,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.7" + "source": "https://github.com/symfony/dependency-injection/tree/v6.4.8" }, "funding": [ { @@ -10809,7 +10818,7 @@ "type": "tidelift" } ], - "time": "2024-04-18T09:22:46+00:00" + "time": "2024-05-31T14:49:08+00:00" }, { "name": "symfony/deprecation-contracts", @@ -10880,16 +10889,16 @@ }, { "name": "symfony/error-handler", - "version": "v6.4.7", + "version": "v6.4.8", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "667a072466c6a53827ed7b119af93806b884cbb3" + "reference": "ef836152bf13472dc5fb5b08b0c0c4cfeddc0fcc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/667a072466c6a53827ed7b119af93806b884cbb3", - "reference": "667a072466c6a53827ed7b119af93806b884cbb3", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/ef836152bf13472dc5fb5b08b0c0c4cfeddc0fcc", + "reference": "ef836152bf13472dc5fb5b08b0c0c4cfeddc0fcc", "shasum": "" }, "require": { @@ -10935,7 +10944,7 @@ "description": "Provides tools to manage errors and ease debugging PHP code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/error-handler/tree/v6.4.7" + "source": "https://github.com/symfony/error-handler/tree/v6.4.8" }, "funding": [ { @@ -10951,20 +10960,20 @@ "type": "tidelift" } ], - "time": "2024-04-18T09:22:46+00:00" + "time": "2024-05-31T14:49:08+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v6.4.7", + "version": "v6.4.8", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "d84384f3f67de3cb650db64d685d70395dacfc3f" + "reference": "8d7507f02b06e06815e56bb39aa0128e3806208b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/d84384f3f67de3cb650db64d685d70395dacfc3f", - "reference": "d84384f3f67de3cb650db64d685d70395dacfc3f", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/8d7507f02b06e06815e56bb39aa0128e3806208b", + "reference": "8d7507f02b06e06815e56bb39aa0128e3806208b", "shasum": "" }, "require": { @@ -11015,7 +11024,7 @@ "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/event-dispatcher/tree/v6.4.7" + "source": "https://github.com/symfony/event-dispatcher/tree/v6.4.8" }, "funding": [ { @@ -11031,7 +11040,7 @@ "type": "tidelift" } ], - "time": "2024-04-18T09:22:46+00:00" + "time": "2024-05-31T14:49:08+00:00" }, { "name": "symfony/event-dispatcher-contracts", @@ -11111,23 +11120,25 @@ }, { "name": "symfony/filesystem", - "version": "v6.4.7", + "version": "v6.4.8", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "78dde75f8f6dbbca4ec436a4b0087f7af02076d4" + "reference": "4d37529150e7081c51b3c5d5718c55a04a9503f3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/78dde75f8f6dbbca4ec436a4b0087f7af02076d4", - "reference": "78dde75f8f6dbbca4ec436a4b0087f7af02076d4", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/4d37529150e7081c51b3c5d5718c55a04a9503f3", + "reference": "4d37529150e7081c51b3c5d5718c55a04a9503f3", "shasum": "" }, "require": { "php": ">=8.1", "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-mbstring": "~1.8", - "symfony/process": "^5.4|^6.4" + "symfony/polyfill-mbstring": "~1.8" + }, + "require-dev": { + "symfony/process": "^5.4|^6.4|^7.0" }, "type": "library", "autoload": { @@ -11155,7 +11166,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/filesystem/tree/v6.4.7" + "source": "https://github.com/symfony/filesystem/tree/v6.4.8" }, "funding": [ { @@ -11171,20 +11182,20 @@ "type": "tidelift" } ], - "time": "2024-04-18T09:22:46+00:00" + "time": "2024-05-31T14:49:08+00:00" }, { "name": "symfony/finder", - "version": "v6.4.7", + "version": "v6.4.8", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "511c48990be17358c23bf45c5d71ab85d40fb764" + "reference": "3ef977a43883215d560a2cecb82ec8e62131471c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/511c48990be17358c23bf45c5d71ab85d40fb764", - "reference": "511c48990be17358c23bf45c5d71ab85d40fb764", + "url": "https://api.github.com/repos/symfony/finder/zipball/3ef977a43883215d560a2cecb82ec8e62131471c", + "reference": "3ef977a43883215d560a2cecb82ec8e62131471c", "shasum": "" }, "require": { @@ -11219,7 +11230,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v6.4.7" + "source": "https://github.com/symfony/finder/tree/v6.4.8" }, "funding": [ { @@ -11235,20 +11246,20 @@ "type": "tidelift" } ], - "time": "2024-04-23T10:36:43+00:00" + "time": "2024-05-31T14:49:08+00:00" }, { "name": "symfony/http-foundation", - "version": "v6.4.7", + "version": "v6.4.8", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "b4db6b833035477cb70e18d0ae33cb7c2b521759" + "reference": "27de8cc95e11db7a50b027e71caaab9024545947" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/b4db6b833035477cb70e18d0ae33cb7c2b521759", - "reference": "b4db6b833035477cb70e18d0ae33cb7c2b521759", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/27de8cc95e11db7a50b027e71caaab9024545947", + "reference": "27de8cc95e11db7a50b027e71caaab9024545947", "shasum": "" }, "require": { @@ -11296,7 +11307,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v6.4.7" + "source": "https://github.com/symfony/http-foundation/tree/v6.4.8" }, "funding": [ { @@ -11312,20 +11323,20 @@ "type": "tidelift" } ], - "time": "2024-04-18T09:22:46+00:00" + "time": "2024-05-31T14:49:08+00:00" }, { "name": "symfony/http-kernel", - "version": "v6.4.7", + "version": "v6.4.8", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "b7b5e6cdef670a0c82d015a966ffc7e855861a98" + "reference": "6c519aa3f32adcfd1d1f18d923f6b227d9acf3c1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/b7b5e6cdef670a0c82d015a966ffc7e855861a98", - "reference": "b7b5e6cdef670a0c82d015a966ffc7e855861a98", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/6c519aa3f32adcfd1d1f18d923f6b227d9acf3c1", + "reference": "6c519aa3f32adcfd1d1f18d923f6b227d9acf3c1", "shasum": "" }, "require": { @@ -11410,7 +11421,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.7" + "source": "https://github.com/symfony/http-kernel/tree/v6.4.8" }, "funding": [ { @@ -11426,20 +11437,20 @@ "type": "tidelift" } ], - "time": "2024-04-29T11:24:44+00:00" + "time": "2024-06-02T16:06:25+00:00" }, { "name": "symfony/mailer", - "version": "v6.4.7", + "version": "v6.4.8", "source": { "type": "git", "url": "https://github.com/symfony/mailer.git", - "reference": "2c446d4e446995bed983c0b5bb9ff837e8de7dbd" + "reference": "76326421d44c07f7824b19487cfbf87870b37efc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mailer/zipball/2c446d4e446995bed983c0b5bb9ff837e8de7dbd", - "reference": "2c446d4e446995bed983c0b5bb9ff837e8de7dbd", + "url": "https://api.github.com/repos/symfony/mailer/zipball/76326421d44c07f7824b19487cfbf87870b37efc", + "reference": "76326421d44c07f7824b19487cfbf87870b37efc", "shasum": "" }, "require": { @@ -11490,7 +11501,7 @@ "description": "Helps sending emails", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/mailer/tree/v6.4.7" + "source": "https://github.com/symfony/mailer/tree/v6.4.8" }, "funding": [ { @@ -11506,20 +11517,20 @@ "type": "tidelift" } ], - "time": "2024-04-18T09:22:46+00:00" + "time": "2024-05-31T14:49:08+00:00" }, { "name": "symfony/mime", - "version": "v6.4.7", + "version": "v6.4.8", "source": { "type": "git", "url": "https://github.com/symfony/mime.git", - "reference": "decadcf3865918ecfcbfa90968553994ce935a5e" + "reference": "618597ab8b78ac86d1c75a9d0b35540cda074f33" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/decadcf3865918ecfcbfa90968553994ce935a5e", - "reference": "decadcf3865918ecfcbfa90968553994ce935a5e", + "url": "https://api.github.com/repos/symfony/mime/zipball/618597ab8b78ac86d1c75a9d0b35540cda074f33", + "reference": "618597ab8b78ac86d1c75a9d0b35540cda074f33", "shasum": "" }, "require": { @@ -11575,7 +11586,7 @@ "mime-type" ], "support": { - "source": "https://github.com/symfony/mime/tree/v6.4.7" + "source": "https://github.com/symfony/mime/tree/v6.4.8" }, "funding": [ { @@ -11591,20 +11602,20 @@ "type": "tidelift" } ], - "time": "2024-04-18T09:22:46+00:00" + "time": "2024-06-01T07:50:16+00:00" }, { "name": "symfony/options-resolver", - "version": "v7.0.7", + "version": "v7.1.1", "source": { "type": "git", "url": "https://github.com/symfony/options-resolver.git", - "reference": "23cc173858776ad451e31f053b1c9f47840b2cfa" + "reference": "47aa818121ed3950acd2b58d1d37d08a94f9bf55" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/options-resolver/zipball/23cc173858776ad451e31f053b1c9f47840b2cfa", - "reference": "23cc173858776ad451e31f053b1c9f47840b2cfa", + "url": "https://api.github.com/repos/symfony/options-resolver/zipball/47aa818121ed3950acd2b58d1d37d08a94f9bf55", + "reference": "47aa818121ed3950acd2b58d1d37d08a94f9bf55", "shasum": "" }, "require": { @@ -11642,7 +11653,7 @@ "options" ], "support": { - "source": "https://github.com/symfony/options-resolver/tree/v7.0.7" + "source": "https://github.com/symfony/options-resolver/tree/v7.1.1" }, "funding": [ { @@ -11658,7 +11669,7 @@ "type": "tidelift" } ], - "time": "2024-04-18T09:29:19+00:00" + "time": "2024-05-31T14:57:53+00:00" }, { "name": "symfony/polyfill-ctype", @@ -12526,16 +12537,16 @@ }, { "name": "symfony/process", - "version": "v6.4.7", + "version": "v6.4.8", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "cdb1c81c145fd5aa9b0038bab694035020943381" + "reference": "8d92dd79149f29e89ee0f480254db595f6a6a2c5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/cdb1c81c145fd5aa9b0038bab694035020943381", - "reference": "cdb1c81c145fd5aa9b0038bab694035020943381", + "url": "https://api.github.com/repos/symfony/process/zipball/8d92dd79149f29e89ee0f480254db595f6a6a2c5", + "reference": "8d92dd79149f29e89ee0f480254db595f6a6a2c5", "shasum": "" }, "require": { @@ -12567,7 +12578,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v6.4.7" + "source": "https://github.com/symfony/process/tree/v6.4.8" }, "funding": [ { @@ -12583,20 +12594,20 @@ "type": "tidelift" } ], - "time": "2024-04-18T09:22:46+00:00" + "time": "2024-05-31T14:49:08+00:00" }, { "name": "symfony/psr-http-message-bridge", - "version": "v6.4.7", + "version": "v6.4.8", "source": { "type": "git", "url": "https://github.com/symfony/psr-http-message-bridge.git", - "reference": "e8adf6b1b46d9115f5d9247fa74bbefc459680c0" + "reference": "23a162bd446b93948a2c2f6909d80ad06195be10" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/psr-http-message-bridge/zipball/e8adf6b1b46d9115f5d9247fa74bbefc459680c0", - "reference": "e8adf6b1b46d9115f5d9247fa74bbefc459680c0", + "url": "https://api.github.com/repos/symfony/psr-http-message-bridge/zipball/23a162bd446b93948a2c2f6909d80ad06195be10", + "reference": "23a162bd446b93948a2c2f6909d80ad06195be10", "shasum": "" }, "require": { @@ -12650,7 +12661,7 @@ "psr-7" ], "support": { - "source": "https://github.com/symfony/psr-http-message-bridge/tree/v6.4.7" + "source": "https://github.com/symfony/psr-http-message-bridge/tree/v6.4.8" }, "funding": [ { @@ -12666,20 +12677,20 @@ "type": "tidelift" } ], - "time": "2024-04-18T09:22:46+00:00" + "time": "2024-05-31T14:51:39+00:00" }, { "name": "symfony/routing", - "version": "v6.4.7", + "version": "v6.4.8", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "276e06398f71fa2a973264d94f28150f93cfb907" + "reference": "8a40d0f9b01f0fbb80885d3ce0ad6714fb603a58" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/276e06398f71fa2a973264d94f28150f93cfb907", - "reference": "276e06398f71fa2a973264d94f28150f93cfb907", + "url": "https://api.github.com/repos/symfony/routing/zipball/8a40d0f9b01f0fbb80885d3ce0ad6714fb603a58", + "reference": "8a40d0f9b01f0fbb80885d3ce0ad6714fb603a58", "shasum": "" }, "require": { @@ -12733,7 +12744,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v6.4.7" + "source": "https://github.com/symfony/routing/tree/v6.4.8" }, "funding": [ { @@ -12749,20 +12760,20 @@ "type": "tidelift" } ], - "time": "2024-04-18T09:22:46+00:00" + "time": "2024-05-31T14:49:08+00:00" }, { "name": "symfony/serializer", - "version": "v6.4.7", + "version": "v6.4.8", "source": { "type": "git", "url": "https://github.com/symfony/serializer.git", - "reference": "73820ab43d12c2f29445080004054b0066082bf1" + "reference": "d6eda9966a3e5d1823c1cedf41bf98f8ed969d7c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/serializer/zipball/73820ab43d12c2f29445080004054b0066082bf1", - "reference": "73820ab43d12c2f29445080004054b0066082bf1", + "url": "https://api.github.com/repos/symfony/serializer/zipball/d6eda9966a3e5d1823c1cedf41bf98f8ed969d7c", + "reference": "d6eda9966a3e5d1823c1cedf41bf98f8ed969d7c", "shasum": "" }, "require": { @@ -12831,7 +12842,7 @@ "description": "Handles serializing and deserializing data structures, including object graphs, into array structures or other formats like XML and JSON.", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/serializer/tree/v6.4.7" + "source": "https://github.com/symfony/serializer/tree/v6.4.8" }, "funding": [ { @@ -12847,7 +12858,7 @@ "type": "tidelift" } ], - "time": "2024-04-23T09:00:49+00:00" + "time": "2024-05-31T14:49:08+00:00" }, { "name": "symfony/service-contracts", @@ -12934,16 +12945,16 @@ }, { "name": "symfony/string", - "version": "v6.4.7", + "version": "v6.4.8", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "ffeb9591c61f65a68d47f77d12b83fa530227a69" + "reference": "a147c0f826c4a1f3afb763ab8e009e37c877a44d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/ffeb9591c61f65a68d47f77d12b83fa530227a69", - "reference": "ffeb9591c61f65a68d47f77d12b83fa530227a69", + "url": "https://api.github.com/repos/symfony/string/zipball/a147c0f826c4a1f3afb763ab8e009e37c877a44d", + "reference": "a147c0f826c4a1f3afb763ab8e009e37c877a44d", "shasum": "" }, "require": { @@ -13000,7 +13011,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v6.4.7" + "source": "https://github.com/symfony/string/tree/v6.4.8" }, "funding": [ { @@ -13016,7 +13027,7 @@ "type": "tidelift" } ], - "time": "2024-04-18T09:22:46+00:00" + "time": "2024-05-31T14:49:08+00:00" }, { "name": "symfony/translation-contracts", @@ -13098,16 +13109,16 @@ }, { "name": "symfony/validator", - "version": "v6.4.7", + "version": "v6.4.8", "source": { "type": "git", "url": "https://github.com/symfony/validator.git", - "reference": "4761a08d161d823ec281151ade0905547e0502a7" + "reference": "dab2781371d54c86f6b25623ab16abb2dde2870c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/validator/zipball/4761a08d161d823ec281151ade0905547e0502a7", - "reference": "4761a08d161d823ec281151ade0905547e0502a7", + "url": "https://api.github.com/repos/symfony/validator/zipball/dab2781371d54c86f6b25623ab16abb2dde2870c", + "reference": "dab2781371d54c86f6b25623ab16abb2dde2870c", "shasum": "" }, "require": { @@ -13154,7 +13165,8 @@ "Symfony\\Component\\Validator\\": "" }, "exclude-from-classmap": [ - "/Tests/" + "/Tests/", + "/Resources/bin/" ] }, "notification-url": "https://packagist.org/downloads/", @@ -13174,7 +13186,7 @@ "description": "Provides tools to validate values", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/validator/tree/v6.4.7" + "source": "https://github.com/symfony/validator/tree/v6.4.8" }, "funding": [ { @@ -13190,20 +13202,20 @@ "type": "tidelift" } ], - "time": "2024-04-28T10:38:38+00:00" + "time": "2024-06-02T15:48:50+00:00" }, { "name": "symfony/var-dumper", - "version": "v6.4.7", + "version": "v6.4.8", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "7a9cd977cd1c5fed3694bee52990866432af07d7" + "reference": "ad23ca4312395f0a8a8633c831ef4c4ee542ed25" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/7a9cd977cd1c5fed3694bee52990866432af07d7", - "reference": "7a9cd977cd1c5fed3694bee52990866432af07d7", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/ad23ca4312395f0a8a8633c831ef4c4ee542ed25", + "reference": "ad23ca4312395f0a8a8633c831ef4c4ee542ed25", "shasum": "" }, "require": { @@ -13259,7 +13271,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v6.4.7" + "source": "https://github.com/symfony/var-dumper/tree/v6.4.8" }, "funding": [ { @@ -13275,20 +13287,20 @@ "type": "tidelift" } ], - "time": "2024-04-18T09:22:46+00:00" + "time": "2024-05-31T14:49:08+00:00" }, { "name": "symfony/var-exporter", - "version": "v7.0.7", + "version": "v7.1.1", "source": { "type": "git", "url": "https://github.com/symfony/var-exporter.git", - "reference": "cdecc0022e40e90340ba1a59a3d5ccf069777078" + "reference": "db82c2b73b88734557cfc30e3270d83fa651b712" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-exporter/zipball/cdecc0022e40e90340ba1a59a3d5ccf069777078", - "reference": "cdecc0022e40e90340ba1a59a3d5ccf069777078", + "url": "https://api.github.com/repos/symfony/var-exporter/zipball/db82c2b73b88734557cfc30e3270d83fa651b712", + "reference": "db82c2b73b88734557cfc30e3270d83fa651b712", "shasum": "" }, "require": { @@ -13335,7 +13347,7 @@ "serialize" ], "support": { - "source": "https://github.com/symfony/var-exporter/tree/v7.0.7" + "source": "https://github.com/symfony/var-exporter/tree/v7.1.1" }, "funding": [ { @@ -13351,20 +13363,20 @@ "type": "tidelift" } ], - "time": "2024-04-18T09:29:19+00:00" + "time": "2024-05-31T14:57:53+00:00" }, { "name": "symfony/yaml", - "version": "v6.4.7", + "version": "v6.4.8", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "53e8b1ef30a65f78eac60fddc5ee7ebbbdb1dee0" + "reference": "52903de178d542850f6f341ba92995d3d63e60c9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/53e8b1ef30a65f78eac60fddc5ee7ebbbdb1dee0", - "reference": "53e8b1ef30a65f78eac60fddc5ee7ebbbdb1dee0", + "url": "https://api.github.com/repos/symfony/yaml/zipball/52903de178d542850f6f341ba92995d3d63e60c9", + "reference": "52903de178d542850f6f341ba92995d3d63e60c9", "shasum": "" }, "require": { @@ -13407,7 +13419,7 @@ "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v6.4.7" + "source": "https://github.com/symfony/yaml/tree/v6.4.8" }, "funding": [ { @@ -13423,7 +13435,7 @@ "type": "tidelift" } ], - "time": "2024-04-28T10:28:08+00:00" + "time": "2024-05-31T14:49:08+00:00" }, { "name": "t4web/composer-lock-parser", @@ -16563,16 +16575,16 @@ }, { "name": "phpstan/phpdoc-parser", - "version": "1.29.0", + "version": "1.29.1", "source": { "type": "git", "url": "https://github.com/phpstan/phpdoc-parser.git", - "reference": "536889f2b340489d328f5ffb7b02bb6b183ddedc" + "reference": "fcaefacf2d5c417e928405b71b400d4ce10daaf4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/536889f2b340489d328f5ffb7b02bb6b183ddedc", - "reference": "536889f2b340489d328f5ffb7b02bb6b183ddedc", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/fcaefacf2d5c417e928405b71b400d4ce10daaf4", + "reference": "fcaefacf2d5c417e928405b71b400d4ce10daaf4", "shasum": "" }, "require": { @@ -16604,9 +16616,9 @@ "description": "PHPDoc parser with support for nullable, intersection and generic types", "support": { "issues": "https://github.com/phpstan/phpdoc-parser/issues", - "source": "https://github.com/phpstan/phpdoc-parser/tree/1.29.0" + "source": "https://github.com/phpstan/phpdoc-parser/tree/1.29.1" }, - "time": "2024-05-06T12:04:23+00:00" + "time": "2024-05-31T08:52:43+00:00" }, { "name": "phpstan/phpstan", diff --git a/conf/cmi/core.base_field_override.node.announcement.promote.yml b/conf/cmi/core.base_field_override.node.announcement.promote.yml index ecaad512..aec89cc7 100644 --- a/conf/cmi/core.base_field_override.node.announcement.promote.yml +++ b/conf/cmi/core.base_field_override.node.announcement.promote.yml @@ -5,7 +5,7 @@ dependencies: config: - node.type.announcement _core: - default_config_hash: Dssk6_3sRlJ0urINRbHmfK7WCXlc3hHp1hVsZlAEv1w + default_config_hash: D2NSbMpN6bvWedxYXjiaLyxJ75VF9BpX3Se7DAPEs-o id: node.announcement.promote field_name: promote entity_type: node diff --git a/conf/cmi/core.base_field_override.node.announcement.status.yml b/conf/cmi/core.base_field_override.node.announcement.status.yml index e7708eb6..5f47b1f5 100644 --- a/conf/cmi/core.base_field_override.node.announcement.status.yml +++ b/conf/cmi/core.base_field_override.node.announcement.status.yml @@ -5,7 +5,7 @@ dependencies: config: - node.type.announcement _core: - default_config_hash: r22i8pbP859SWpdwmCB98aKCb1vHeMgmdBWNOsS_az0 + default_config_hash: R3niw3Nz1u8dG1f6SvWkLE2s6sZijZo7SM0KKqfQX3U id: node.announcement.status field_name: status entity_type: node diff --git a/conf/cmi/core.base_field_override.node.announcement.title.yml b/conf/cmi/core.base_field_override.node.announcement.title.yml index 0e175083..9a767359 100644 --- a/conf/cmi/core.base_field_override.node.announcement.title.yml +++ b/conf/cmi/core.base_field_override.node.announcement.title.yml @@ -5,7 +5,7 @@ dependencies: config: - node.type.announcement _core: - default_config_hash: v0rg9ztfYRnKz2PXAcGD_Q52rTcPbwqaZLw3tXWd4rM + default_config_hash: quT0ukX0qoC-tZdXznzL15peakfXQ7GYM0MGmFxh-pA id: node.announcement.title field_name: title entity_type: node diff --git a/conf/cmi/core.entity_form_display.node.announcement.default.yml b/conf/cmi/core.entity_form_display.node.announcement.default.yml index b9dd98da..29aea730 100644 --- a/conf/cmi/core.entity_form_display.node.announcement.default.yml +++ b/conf/cmi/core.entity_form_display.node.announcement.default.yml @@ -19,7 +19,7 @@ dependencies: - select2 - text _core: - default_config_hash: 0ewsu2ZhpNhAo4t7wkUgEa9ABQAkcsF7IXtR-kFeDUg + default_config_hash: qqQi0rDViTGi7MGzX_kBdLCh98Fa5KYWqDcNxHrl8gs id: node.announcement.default targetEntityType: node bundle: announcement diff --git a/conf/cmi/core.entity_form_display.paragraph.contact_card.default.yml b/conf/cmi/core.entity_form_display.paragraph.contact_card.default.yml index c5a9bdaf..abbfd6a9 100644 --- a/conf/cmi/core.entity_form_display.paragraph.contact_card.default.yml +++ b/conf/cmi/core.entity_form_display.paragraph.contact_card.default.yml @@ -18,7 +18,7 @@ dependencies: - paragraphs - telephone _core: - default_config_hash: x5bpTMOF34jWh_MqPyiP2618Yr5g6KheOGUq5eud2QM + default_config_hash: 2fg4jQrKOkMM-2FA9Rr6hYBXxtU9NVZNa2Gsy0eALnk id: paragraph.contact_card.default targetEntityType: paragraph bundle: contact_card diff --git a/conf/cmi/core.entity_form_display.paragraph.contact_card_listing.default.yml b/conf/cmi/core.entity_form_display.paragraph.contact_card_listing.default.yml index eebb376c..c9f4387e 100644 --- a/conf/cmi/core.entity_form_display.paragraph.contact_card_listing.default.yml +++ b/conf/cmi/core.entity_form_display.paragraph.contact_card_listing.default.yml @@ -11,7 +11,7 @@ dependencies: - paragraphs - text _core: - default_config_hash: sPm2P2zYUuVEU5UQbnL2ROTmL0jWzUI3IUw6bgFGzj8 + default_config_hash: 6UAF8Xo1cGIMeGvuto1CsviXZv9bM5TyzySNPwKmqDg id: paragraph.contact_card_listing.default targetEntityType: paragraph bundle: contact_card_listing diff --git a/conf/cmi/core.entity_form_display.paragraph.social_media_link.default.yml b/conf/cmi/core.entity_form_display.paragraph.social_media_link.default.yml index 0aa4cf99..54dd8820 100644 --- a/conf/cmi/core.entity_form_display.paragraph.social_media_link.default.yml +++ b/conf/cmi/core.entity_form_display.paragraph.social_media_link.default.yml @@ -10,7 +10,7 @@ dependencies: - hdbt_admin_tools - link _core: - default_config_hash: BzfvGsHIC_c0aNhpt5fjgtz76eqpJy7Q8UpK7Rdebso + default_config_hash: 9cHPe-6B9QVqhtw7PEphvzDiAxto678Cm5TZhSjGQh0 id: paragraph.social_media_link.default targetEntityType: paragraph bundle: social_media_link diff --git a/conf/cmi/core.entity_view_display.helfi_news.helfi_news.default.yml b/conf/cmi/core.entity_view_display.helfi_news.helfi_news.default.yml index 9d9e0879..5d9ce724 100644 --- a/conf/cmi/core.entity_view_display.helfi_news.helfi_news.default.yml +++ b/conf/cmi/core.entity_view_display.helfi_news.helfi_news.default.yml @@ -31,9 +31,12 @@ content: region: content hidden: groups: true + groups_uuid: true neighbourhoods: true + neighbourhoods_uuid: true node_url: true published_at: true search_api_excerpt: true short_title: true tags: true + tags_uuid: true diff --git a/conf/cmi/core.entity_view_display.helfi_news.helfi_news.medium_teaser.yml b/conf/cmi/core.entity_view_display.helfi_news.helfi_news.medium_teaser.yml index fce68584..af736f5c 100644 --- a/conf/cmi/core.entity_view_display.helfi_news.helfi_news.medium_teaser.yml +++ b/conf/cmi/core.entity_view_display.helfi_news.helfi_news.medium_teaser.yml @@ -33,9 +33,12 @@ content: region: content hidden: groups: true + groups_uuid: true neighbourhoods: true + neighbourhoods_uuid: true node_url: true published_at: true search_api_excerpt: true short_title: true tags: true + tags_uuid: true diff --git a/conf/cmi/core.entity_view_display.node.announcement.default.yml b/conf/cmi/core.entity_view_display.node.announcement.default.yml index 6c4463aa..b5198fc8 100644 --- a/conf/cmi/core.entity_view_display.node.announcement.default.yml +++ b/conf/cmi/core.entity_view_display.node.announcement.default.yml @@ -16,7 +16,7 @@ dependencies: - text - user _core: - default_config_hash: LQ9K_wCbd758UCcNEORQvFUQ7gNJddkukiwwYHrZv4c + default_config_hash: yhUvsmuub4c7O7-jhnKmh4Q5QZpDn_zwcl0EJD3z17Y id: node.announcement.default targetEntityType: node bundle: announcement diff --git a/conf/cmi/core.entity_view_display.node.announcement.teaser.yml b/conf/cmi/core.entity_view_display.node.announcement.teaser.yml index 1531031d..46a1f91c 100644 --- a/conf/cmi/core.entity_view_display.node.announcement.teaser.yml +++ b/conf/cmi/core.entity_view_display.node.announcement.teaser.yml @@ -15,7 +15,7 @@ dependencies: - text - user _core: - default_config_hash: OwH532HYBVjDOUW0iJnoDWc2yFGZwwGJnAZEmZPjLCA + default_config_hash: EH9tM7S3I7tq20rwclKyzoJoFIGyrjEm_vQ17UwEsNI id: node.announcement.teaser targetEntityType: node bundle: announcement diff --git a/conf/cmi/core.entity_view_display.paragraph.contact_card.default.yml b/conf/cmi/core.entity_view_display.paragraph.contact_card.default.yml index 553beec2..d9749e1c 100644 --- a/conf/cmi/core.entity_view_display.paragraph.contact_card.default.yml +++ b/conf/cmi/core.entity_view_display.paragraph.contact_card.default.yml @@ -19,7 +19,7 @@ dependencies: - image - telephone _core: - default_config_hash: X5x-5vSXj4FHXf2NNNyzzwVH7xlQUk6wGBYjejfb-iQ + default_config_hash: Dh9FHJy0cVaGBQZ1e997O3R9tdvlwEjQxwNZJlFZxP4 id: paragraph.contact_card.default targetEntityType: paragraph bundle: contact_card diff --git a/conf/cmi/core.entity_view_display.paragraph.contact_card_listing.default.yml b/conf/cmi/core.entity_view_display.paragraph.contact_card_listing.default.yml index 931e8801..9a41ec7c 100644 --- a/conf/cmi/core.entity_view_display.paragraph.contact_card_listing.default.yml +++ b/conf/cmi/core.entity_view_display.paragraph.contact_card_listing.default.yml @@ -11,7 +11,7 @@ dependencies: - entity_reference_revisions - text _core: - default_config_hash: Ji3RAEFsZwMfCcpI7yeMxRf4WgA9tgw1ZwgWajHbEUc + default_config_hash: Zc18URhrtd1X9T8JjpUGhdpETBSDWgzrZF5Il2qFCbU id: paragraph.contact_card_listing.default targetEntityType: paragraph bundle: contact_card_listing diff --git a/conf/cmi/core.entity_view_display.paragraph.social_media_link.default.yml b/conf/cmi/core.entity_view_display.paragraph.social_media_link.default.yml index 66879d3f..f3df854a 100644 --- a/conf/cmi/core.entity_view_display.paragraph.social_media_link.default.yml +++ b/conf/cmi/core.entity_view_display.paragraph.social_media_link.default.yml @@ -10,7 +10,7 @@ dependencies: - hdbt_admin_tools - link _core: - default_config_hash: 3cRI5TbNqV68nkWG4yIl_I6iqqYeWmdA_XtlHEkRIgE + default_config_hash: ev1SgFjJ5Hpldnoe4L20HCAJDpvl6Q5_ldGYSe92F1c id: paragraph.social_media_link.default targetEntityType: paragraph bundle: social_media_link diff --git a/conf/cmi/core.extension.yml b/conf/cmi/core.extension.yml index 6757dd35..1fd15d89 100644 --- a/conf/cmi/core.extension.yml +++ b/conf/cmi/core.extension.yml @@ -45,6 +45,7 @@ module: helfi_ckeditor: 0 helfi_eu_cookie_compliance: 0 helfi_global_announcement: 0 + helfi_hakuvahti: 0 helfi_image_styles: 0 helfi_media: 0 helfi_media_chart: 0 diff --git a/conf/cmi/eu_cookie_compliance.cookie_category.essential.yml b/conf/cmi/eu_cookie_compliance.cookie_category.essential.yml index 968f9780..d768ff3d 100644 --- a/conf/cmi/eu_cookie_compliance.cookie_category.essential.yml +++ b/conf/cmi/eu_cookie_compliance.cookie_category.essential.yml @@ -3,11 +3,11 @@ langcode: en status: true dependencies: { } _core: - default_config_hash: AQHnqzBrsjCueWYDa6NdV6bYEo3y-fsbMp1zE1XxxEQ + default_config_hash: oVn5Apol-q10_G1LoTbTJNj-k-1eYvCbO4vGiUF09t4 id: essential label: 'Essential cookies' description: - value: '

Essential cookies help to make the website usable by allowing basic functions, navigating the page and using the protected areas of the site. The website will not work properly without these cookies and their consent is not required.

NameProviderPurpose of the cookieValidityType
cookiehubcookiehub.comUsed by CookieHub to store information about whether visitors have given or declined the use of cookie categories used on the hel.fi site.365 days 
cookie-agreedhel.fiUsed by hel.fi Drupal to store information about whether visitors have given or declined the use of cookie categories used on the hel.fi site.100 days 
cookie-agreed-versionhel.fiUsed by hel.fi Drupal to store information about what version of the cookie consent the user has agreed to.100 days 
cookie-agreed-categorieshel.fiUsed by hel.fi Drupal to store information about what cookie categories the user has agreed to.100 days 
SSESS*hel.fiA cookie related to the operation of the content management system.23 days 
AWSELBCORSsiteimproveanalytics.ioThe cookie is related to a load distribution function used to direct requests to servers with the least traffic.SessionThird party
mtm_cookie_consentkartta.hel.fiA technical cookie that stores information about how you responded to the notice in the cookie banner about the use of cookies.10950 days 
JSESSIONID

helsinkikanava.fi

coh-chat-app-prod.eu-de.mybluemix.net

The cookie is an obligatory cookie that facilitates visiting the website.SessionThird party
JSESSIONIDcoh-chat-app-prod.ow6i4n9pdzm.eu-de.codeengine.appdomain.cloudUsed for chat app functionality. Its value is used to access session data on server of the application.SessionThird party
COOKIE_SUPPORThelsinkikanava.fiThe cookie facilitates managing cookies on the website.365 daysThird party
GUEST_LANGUAGE_IDhelsinkikanava.fiThis cookie is generated by the Liferay, its function is to store the language preferences.365 daysThird party
helfi-settingshel.fiUsed by hel.fi Drupal to store information about closed announcements and accordions'' state.-Local storage
' + value: '

Essential cookies help to make the website usable by allowing basic functions, navigating the page and using the protected areas of the site. The website will not work properly without these cookies and their consent is not required.

NameProviderPurpose of the cookieValidityType
cookiehubcookiehub.comUsed by CookieHub to store information about whether visitors have given or declined the use of cookie categories used on the hel.fi site.365 days 
cookie-agreedhel.fiUsed by hel.fi Drupal to store information about whether visitors have given or declined the use of cookie categories used on the hel.fi site.100 days 
cookie-agreed-versionhel.fiUsed by hel.fi Drupal to store information about what version of the cookie consent the user has agreed to.100 days 
cookie-agreed-categorieshel.fiUsed by hel.fi Drupal to store information about what cookie categories the user has agreed to.100 days 
cookie-agreedavustukset.hel.fiUsed by avustukset.hel.fi Drupal to store information about whether visitors have given or declined the use of cookie categories used on the avustukset.hel.fi site.100 days 
cookie-agreed-versionavustukset.hel.fiUsed by avustukset.hel.fi Drupal to store information about what version of the cookie consent the user has agreed to.100 days 
cookie-agreed-categoriesavustukset.hel.fiUsed by avustukset.hel.fi Drupal to store information about what cookie categories the user has agreed to.100 days 
SSESS*hel.fiA cookie related to the operation of the content management system.23 days 
SSESS*avustukset.hel.fiA cookie related to the operation of the content management system.23 days 
AWSELBCORSsiteimproveanalytics.ioThe cookie is related to a load distribution function used to direct requests to servers with the least traffic.SessionThird party
mtm_cookie_consentkartta.hel.fiA technical cookie that stores information about how you responded to the notice in the cookie banner about the use of cookies.10950 days 
JSESSIONID

helsinkikanava.fi

coh-chat-app-prod.eu-de.mybluemix.net

The cookie is an obligatory cookie that facilitates visiting the website.SessionThird party
JSESSIONIDcoh-chat-app-prod.ow6i4n9pdzm.eu-de.codeengine.appdomain.cloudUsed for chat app functionality. Its value is used to access session data on server of the application.SessionThird party
COOKIE_SUPPORThelsinkikanava.fiThe cookie facilitates managing cookies on the website.365 daysThird party
GUEST_LANGUAGE_IDhelsinkikanava.fiThis cookie is generated by the Liferay, its function is to store the language preferences.365 daysThird party
helfi-settingshel.fiUsed by hel.fi Drupal to store information about closed announcements and accordions'' state.-Local storage
Drupal.visitor.autologout_loginavustukset.hel.fiUsed by avustukset.hel.fi Drupal to automatically logout user after a period of inactivity.365 days 
' format: full_html checkbox_default_state: required weight: -9 diff --git a/conf/cmi/eu_cookie_compliance.cookie_category.preference.yml b/conf/cmi/eu_cookie_compliance.cookie_category.preference.yml index eadfcbb8..30cb3521 100644 --- a/conf/cmi/eu_cookie_compliance.cookie_category.preference.yml +++ b/conf/cmi/eu_cookie_compliance.cookie_category.preference.yml @@ -3,11 +3,11 @@ langcode: en status: true dependencies: { } _core: - default_config_hash: BwKDK32cXZ8tG-wXieYydXADp4Me--qV4Szfv-lnHh0 + default_config_hash: wwt5AyVnGkL_AxTa10uXAzOVI_a51Rhkc7LZtHkYTFE id: preference label: Preference description: - value: '

Preference cookies modify the visuals and functions of the website based on the user''s previous sessions.

NameProviderPurpose of the cookieValidityType
httpskartta.hel.fi.SWCulturekartta.hel.fiThe City''s map service cookie saves the language in which the service is used.1826 days 
icareus-devicehelsinkikanava.fiThe Helsinki Channel video server cookie facilitates including videos as part of the website''s content.365 daysThird party
VISITOR_INFO1_LIVEyoutube.comThe YouTube cookie selects the old or new video player depending on the connection speed.180 daysThird party
CONSENTyoutube.comUsed by Google to store user consent preferences5947 days, 15 hoursThird party
' + value: '

Preference cookies modify the visuals and functions of the website based on the user''s previous sessions.

NameProviderPurpose of the cookieValidityType
httpskartta.hel.fi.SWCulturekartta.hel.fiThe City''s map service cookie saves the language in which the service is used.1826 days 
icareus-devicehelsinkikanava.fiThe Helsinki Channel video server cookie facilitates including videos as part of the website''s content.365 daysThird party
VISITOR_INFO1_LIVEyoutube.comThe YouTube cookie selects the old or new video player depending on the connection speed.180 daysThird party
CONSENTyoutube.comUsed by Google to store user consent preferences5947 days, 15 hoursThird party
activeTabhel.fiUsed for storing active tab data when user is using high school search.Session 
activeContenthel.fiUsed for storing active content data when user is using high school search.Session 
' format: full_html checkbox_default_state: unchecked weight: -8 diff --git a/conf/cmi/eu_cookie_compliance.cookie_category.statistics.yml b/conf/cmi/eu_cookie_compliance.cookie_category.statistics.yml index 6c92abdb..11dad826 100644 --- a/conf/cmi/eu_cookie_compliance.cookie_category.statistics.yml +++ b/conf/cmi/eu_cookie_compliance.cookie_category.statistics.yml @@ -3,11 +3,11 @@ langcode: en status: true dependencies: { } _core: - default_config_hash: glZBG2i_IAny_s6qkmpwkGc78p03E6A2hHGJHWAfbfw + default_config_hash: vfx2dT2Gn9ght_4rgTxtoMRgtOrfQ1zaMfLrnOOdoWs id: statistics label: Statistics description: - value: '

The information collected by statistics cookies is used for developing the website.

NameProviderPurpose of the cookieValidityType
nmstathel.fiThe Siteimprove statistics cookie collects information about the use of the website.1000 days 
_pk_id.*hel.fiMatomo Analytics - used to store a few details about the user such as the unique visitor ID393 days 
_pk_ses.141.89f6hel.fi-1 hour 
_pk_id.*kartta.hel.fiMatomo Analytics - used to store a few details about the user such as the unique visitor ID393 days 
_pk_ses.*kartta.hel.fiMatomo Analytics - short lived cookies used to temporarily store data for the visit1 hour 
_pk_id.*palvelukartta.hel.fiMatomo Analytics - used to store a few details about the user such as the unique visitor ID393 days 
_pk_ses.*palvelukartta.hel.fiMatomo Analytics - short lived cookies used to temporarily store data for the visit1 hour 
rnsbidreactandshare.com

A record related to the operation of the 

Askem

 react buttons.

-Local storage
rnsbid_tsreactandshare.com

A record related to the operation of the 

Askem

 react buttons.

-Local storage
rns_reaction_*reactandshare.com

A record related to the operation of the 

Askem

 react buttons.

-Local storage
YSCyoutube.comThe YouTube cookie facilitates including videos as part of the website''s content.SessionThird party
' + value: '

The information collected by statistics cookies is used for developing the website.

NameProviderPurpose of the cookieValidityType
nmstathel.fiThe Siteimprove statistics cookie collects information about the use of the website.1000 days 
_pk_id.*hel.fiMatomo Analytics - used to store a few details about the user such as the unique visitor ID393 days 
_pk_ses.141.89f6hel.fi-1 hour 
_pk_id.*kartta.hel.fiMatomo Analytics - used to store a few details about the user such as the unique visitor ID393 days 
_pk_ses.*kartta.hel.fiMatomo Analytics - short lived cookies used to temporarily store data for the visit1 hour 
_pk_id.*palvelukartta.hel.fiMatomo Analytics - used to store a few details about the user such as the unique visitor ID393 days 
_pk_ses.*palvelukartta.hel.fiMatomo Analytics - short lived cookies used to temporarily store data for the visit1 hour 
_pk_id.*avustukset.hel.fiMatomo Analytics - used to store a few details about the user such as the unique visitor ID393 days 
_pk_ses.*avustukset.hel.fiMatomo Analytics - short lived cookies used to temporarily store data for the visit1 hour 
rnsbidreactandshare.com

A record related to the operation of the 

Askem

 react buttons.

-Local storage
rnsbid_tsreactandshare.com

A record related to the operation of the 

Askem

 react buttons.

-Local storage
rns_reaction_*reactandshare.com

A record related to the operation of the 

Askem

 react buttons.

-Local storage
YSCyoutube.comThe YouTube cookie facilitates including videos as part of the website''s content.SessionThird party
' format: full_html checkbox_default_state: unchecked weight: -7 diff --git a/conf/cmi/external_entities.external_entity_type.helfi_news.yml b/conf/cmi/external_entities.external_entity_type.helfi_news.yml index ad5b6f8b..8d055cb5 100644 --- a/conf/cmi/external_entities.external_entity_type.helfi_news.yml +++ b/conf/cmi/external_entities.external_entity_type.helfi_news.yml @@ -8,8 +8,8 @@ id: helfi_news label: 'Helfi: News' label_plural: 'Helfi: News' description: '' -generate_aliases: false read_only: true +generate_aliases: false field_mapper_id: jsonpath field_mapper_config: field_mappings: diff --git a/conf/cmi/external_entities.external_entity_type.helfi_news_groups.yml b/conf/cmi/external_entities.external_entity_type.helfi_news_groups.yml index fa823e30..b08154e9 100644 --- a/conf/cmi/external_entities.external_entity_type.helfi_news_groups.yml +++ b/conf/cmi/external_entities.external_entity_type.helfi_news_groups.yml @@ -8,8 +8,8 @@ id: helfi_news_groups label: 'Helfi: News groups' label_plural: 'Helfi: News groups' description: 'Retrieves news groups taxonomy terms from Helfi' -generate_aliases: null read_only: true +generate_aliases: null field_mapper_id: jsonpath field_mapper_config: field_mappings: diff --git a/conf/cmi/external_entities.external_entity_type.helfi_news_neighbourhoods.yml b/conf/cmi/external_entities.external_entity_type.helfi_news_neighbourhoods.yml index 3a73ed70..aab85e4c 100644 --- a/conf/cmi/external_entities.external_entity_type.helfi_news_neighbourhoods.yml +++ b/conf/cmi/external_entities.external_entity_type.helfi_news_neighbourhoods.yml @@ -8,8 +8,8 @@ id: helfi_news_neighbourhoods label: 'Helfi: News neighbourhoods' label_plural: 'Helfi: News neighbourhoods' description: 'Retrieves news neighbourhoods taxonomy terms from Helfi' -generate_aliases: null read_only: true +generate_aliases: null field_mapper_id: jsonpath field_mapper_config: field_mappings: diff --git a/conf/cmi/external_entities.external_entity_type.helfi_news_tags.yml b/conf/cmi/external_entities.external_entity_type.helfi_news_tags.yml index 407e3fd4..ff1d8789 100644 --- a/conf/cmi/external_entities.external_entity_type.helfi_news_tags.yml +++ b/conf/cmi/external_entities.external_entity_type.helfi_news_tags.yml @@ -8,8 +8,8 @@ id: helfi_news_tags label: 'Helfi: News tags' label_plural: 'Helfi: News tags' description: 'Retrieves news tags taxonomy terms from Helfi' -generate_aliases: null read_only: true +generate_aliases: null field_mapper_id: jsonpath field_mapper_config: field_mappings: diff --git a/conf/cmi/field.field.node.announcement.body.yml b/conf/cmi/field.field.node.announcement.body.yml index 22f0762b..653324b7 100644 --- a/conf/cmi/field.field.node.announcement.body.yml +++ b/conf/cmi/field.field.node.announcement.body.yml @@ -13,7 +13,7 @@ third_party_settings: allowed_formats: - minimal _core: - default_config_hash: HSTIidPRZ7nvH0u914u-3ghCj6hqbgiKqfU-3SHZaUw + default_config_hash: Mtj80_3n9B_Cp3lZV3Gt3piePm-DngKy9n8RFft-Y7E id: node.announcement.body field_name: body entity_type: node diff --git a/conf/cmi/field.field.node.announcement.field_announcement_all_pages.yml b/conf/cmi/field.field.node.announcement.field_announcement_all_pages.yml index 4280af17..0b24c2f5 100644 --- a/conf/cmi/field.field.node.announcement.field_announcement_all_pages.yml +++ b/conf/cmi/field.field.node.announcement.field_announcement_all_pages.yml @@ -6,7 +6,7 @@ dependencies: - field.storage.node.field_announcement_all_pages - node.type.announcement _core: - default_config_hash: RtRz18gmNe_RH0gVc6OxdCOeZAtClvLVtBzN0KECLdM + default_config_hash: IYd6zMCob_ntOvt7akvgZ3BNxveMfFqnrn4-mNqLjvg id: node.announcement.field_announcement_all_pages field_name: field_announcement_all_pages entity_type: node diff --git a/conf/cmi/field.field.node.announcement.field_announcement_content_pages.yml b/conf/cmi/field.field.node.announcement.field_announcement_content_pages.yml index 650885cf..7db6316d 100644 --- a/conf/cmi/field.field.node.announcement.field_announcement_content_pages.yml +++ b/conf/cmi/field.field.node.announcement.field_announcement_content_pages.yml @@ -8,7 +8,7 @@ dependencies: - node.type.landing_page - node.type.page _core: - default_config_hash: aLsAogLp6kU_alQPMVOkRw2Q6TdLwmqkpfZnfZgUf5k + default_config_hash: JPt7qeyq-PRJLAqRiAtUr-fkTHds7uqQMCgAGr45kcY id: node.announcement.field_announcement_content_pages field_name: field_announcement_content_pages entity_type: node diff --git a/conf/cmi/field.field.node.announcement.field_announcement_link.yml b/conf/cmi/field.field.node.announcement.field_announcement_link.yml index 83c419c9..1f828493 100644 --- a/conf/cmi/field.field.node.announcement.field_announcement_link.yml +++ b/conf/cmi/field.field.node.announcement.field_announcement_link.yml @@ -8,7 +8,7 @@ dependencies: module: - link _core: - default_config_hash: YUs0Svz_ND7z2Uscv_gCYGphNkHbvxzPJtlbAEh2zWc + default_config_hash: hxnNuA1IldwKifv6mR9CY1dYzXsnJiCDZL_BRhuk2ws id: node.announcement.field_announcement_link field_name: field_announcement_link entity_type: node diff --git a/conf/cmi/field.field.node.announcement.field_announcement_title.yml b/conf/cmi/field.field.node.announcement.field_announcement_title.yml index cae80c7e..11bf02b8 100644 --- a/conf/cmi/field.field.node.announcement.field_announcement_title.yml +++ b/conf/cmi/field.field.node.announcement.field_announcement_title.yml @@ -6,7 +6,7 @@ dependencies: - field.storage.node.field_announcement_title - node.type.announcement _core: - default_config_hash: f0piVjyoLRnZfc5fbRP6BdQ6_iMw7az35Req0V6Z4mg + default_config_hash: 2--yQuHyv8YxbVGfR8Z1OVhUaSuscODMl84KbI_9MPE id: node.announcement.field_announcement_title field_name: field_announcement_title entity_type: node @@ -14,7 +14,7 @@ bundle: announcement label: 'Announcement title' description: 'This title is only available to users of assistive technology. ' required: true -translatable: false +translatable: true default_value: { } default_value_callback: '' settings: { } diff --git a/conf/cmi/field.field.node.announcement.field_announcement_type.yml b/conf/cmi/field.field.node.announcement.field_announcement_type.yml index 491eb553..de76a0b4 100644 --- a/conf/cmi/field.field.node.announcement.field_announcement_type.yml +++ b/conf/cmi/field.field.node.announcement.field_announcement_type.yml @@ -8,7 +8,7 @@ dependencies: module: - options _core: - default_config_hash: dPoQO7dLdwVVq0jvknyw-lgEVIwamTG8Mbt7F2xiwG8 + default_config_hash: gOT9BA0ts7QunTBMgEEAZH6lbJvRCIk-9AHYF8SBMug id: node.announcement.field_announcement_type field_name: field_announcement_type entity_type: node diff --git a/conf/cmi/field.field.paragraph.contact_card.field_contact_description.yml b/conf/cmi/field.field.paragraph.contact_card.field_contact_description.yml index 4517fef2..9e7dcc43 100644 --- a/conf/cmi/field.field.paragraph.contact_card.field_contact_description.yml +++ b/conf/cmi/field.field.paragraph.contact_card.field_contact_description.yml @@ -6,7 +6,7 @@ dependencies: - field.storage.paragraph.field_contact_description - paragraphs.paragraphs_type.contact_card _core: - default_config_hash: xLCMITRNRMNPkfQQHfzDz85KEhPfgtx7zP-BD44H87c + default_config_hash: Dh0gGBY-nP4YdaYyh__GfTfnX8mm8EA5L9L7Qi8G7cc id: paragraph.contact_card.field_contact_description field_name: field_contact_description entity_type: paragraph diff --git a/conf/cmi/field.field.paragraph.contact_card.field_contact_image.yml b/conf/cmi/field.field.paragraph.contact_card.field_contact_image.yml index e312e270..8ace9e46 100644 --- a/conf/cmi/field.field.paragraph.contact_card.field_contact_image.yml +++ b/conf/cmi/field.field.paragraph.contact_card.field_contact_image.yml @@ -8,7 +8,7 @@ dependencies: module: - image _core: - default_config_hash: sOLrPDsbRP5wYUh0gv1Uy2KfIo5rtwxJkf7Tde5oa8g + default_config_hash: OwkKC_jXvLDFDw1_kbW7VDJmW4Y5tKbQlyx1NsWhczQ id: paragraph.contact_card.field_contact_image field_name: field_contact_image entity_type: paragraph diff --git a/conf/cmi/field.field.paragraph.contact_card.field_contact_image_photographer.yml b/conf/cmi/field.field.paragraph.contact_card.field_contact_image_photographer.yml index ebb5e0f1..06a04e0f 100644 --- a/conf/cmi/field.field.paragraph.contact_card.field_contact_image_photographer.yml +++ b/conf/cmi/field.field.paragraph.contact_card.field_contact_image_photographer.yml @@ -6,7 +6,7 @@ dependencies: - field.storage.paragraph.field_contact_image_photographer - paragraphs.paragraphs_type.contact_card _core: - default_config_hash: n9vL7tbqlek5PXuaXhoVR2X3P0wnBeXNanYOdnBEm7E + default_config_hash: zQkyIvZbiH-vf14P6k4hd_k5rZHjnw7EnPYqjSm_4LU id: paragraph.contact_card.field_contact_image_photographer field_name: field_contact_image_photographer entity_type: paragraph diff --git a/conf/cmi/field.field.paragraph.contact_card.field_contact_name.yml b/conf/cmi/field.field.paragraph.contact_card.field_contact_name.yml index 64fd1315..184ea971 100644 --- a/conf/cmi/field.field.paragraph.contact_card.field_contact_name.yml +++ b/conf/cmi/field.field.paragraph.contact_card.field_contact_name.yml @@ -6,7 +6,7 @@ dependencies: - field.storage.paragraph.field_contact_name - paragraphs.paragraphs_type.contact_card _core: - default_config_hash: cb1qwxln15g87pS1D3_rYPlIJ7isdRe566VLCe78-tc + default_config_hash: ew2onjTmZxiDUhkYkxq5x8LbLWfc3FKDnepT_JC54T8 id: paragraph.contact_card.field_contact_name field_name: field_contact_name entity_type: paragraph diff --git a/conf/cmi/field.field.paragraph.contact_card.field_contact_social_media.yml b/conf/cmi/field.field.paragraph.contact_card.field_contact_social_media.yml index 554c18d0..0c1f22fd 100644 --- a/conf/cmi/field.field.paragraph.contact_card.field_contact_social_media.yml +++ b/conf/cmi/field.field.paragraph.contact_card.field_contact_social_media.yml @@ -9,7 +9,7 @@ dependencies: module: - entity_reference_revisions _core: - default_config_hash: ZqgrD2xFyv-VKitZqJ7VFPkatRSGyeyOgLwnW-C1Hss + default_config_hash: xodW2s0PCtCqEqzgu2EOm4dU3Z1DVbLHoOhrigD2CnU id: paragraph.contact_card.field_contact_social_media field_name: field_contact_social_media entity_type: paragraph diff --git a/conf/cmi/field.field.paragraph.contact_card.field_contact_title.yml b/conf/cmi/field.field.paragraph.contact_card.field_contact_title.yml index 7cbfaeca..3b14649d 100644 --- a/conf/cmi/field.field.paragraph.contact_card.field_contact_title.yml +++ b/conf/cmi/field.field.paragraph.contact_card.field_contact_title.yml @@ -6,7 +6,7 @@ dependencies: - field.storage.paragraph.field_contact_title - paragraphs.paragraphs_type.contact_card _core: - default_config_hash: pbFbrbO2unkgfSmtKMvjmixhJIx4Ac1sZ3r7u77lIC4 + default_config_hash: '-SasDGw5s3qiyeFZ_Wllzxaxka2ql_gOWkf7YHr4tZk' id: paragraph.contact_card.field_contact_title field_name: field_contact_title entity_type: paragraph diff --git a/conf/cmi/field.field.paragraph.contact_card.field_email.yml b/conf/cmi/field.field.paragraph.contact_card.field_email.yml index 5b311ba0..5d04c905 100644 --- a/conf/cmi/field.field.paragraph.contact_card.field_email.yml +++ b/conf/cmi/field.field.paragraph.contact_card.field_email.yml @@ -6,7 +6,7 @@ dependencies: - field.storage.paragraph.field_email - paragraphs.paragraphs_type.contact_card _core: - default_config_hash: _xvHnCphxLiUITT0SlJRNoljxH8hjVmfsORDmo8CTQs + default_config_hash: N34i8KLWZx9opefyFIrDsdKskMh7pr0jL8PtLJ522y4 id: paragraph.contact_card.field_email field_name: field_email entity_type: paragraph diff --git a/conf/cmi/field.field.paragraph.contact_card.field_phone_number.yml b/conf/cmi/field.field.paragraph.contact_card.field_phone_number.yml index 6f324dcf..bd337482 100644 --- a/conf/cmi/field.field.paragraph.contact_card.field_phone_number.yml +++ b/conf/cmi/field.field.paragraph.contact_card.field_phone_number.yml @@ -8,7 +8,7 @@ dependencies: module: - telephone _core: - default_config_hash: Q7QBL5f_bFJW0oAIKyU0HH41vkPlouFNHyTipn_K4q4 + default_config_hash: rX-J5mAKCM_YSa4ghl1uVPQzewYTCu2HwUSKbD2iV8E id: paragraph.contact_card.field_phone_number field_name: field_phone_number entity_type: paragraph diff --git a/conf/cmi/field.field.paragraph.contact_card_listing.field_contact_card.yml b/conf/cmi/field.field.paragraph.contact_card_listing.field_contact_card.yml index 19c74b78..b4e9fd04 100644 --- a/conf/cmi/field.field.paragraph.contact_card_listing.field_contact_card.yml +++ b/conf/cmi/field.field.paragraph.contact_card_listing.field_contact_card.yml @@ -9,7 +9,7 @@ dependencies: module: - entity_reference_revisions _core: - default_config_hash: KQMfZ0H61OpPP_Mbzo50RsVfQYhVst3vpN-IDT7mQeo + default_config_hash: 3GutpjkTnKU4rinwpJOf42HxS6ri8jasSEZTZ07KLLM id: paragraph.contact_card_listing.field_contact_card field_name: field_contact_card entity_type: paragraph diff --git a/conf/cmi/field.field.paragraph.contact_card_listing.field_description.yml b/conf/cmi/field.field.paragraph.contact_card_listing.field_description.yml index 77f75c42..2c503f80 100644 --- a/conf/cmi/field.field.paragraph.contact_card_listing.field_description.yml +++ b/conf/cmi/field.field.paragraph.contact_card_listing.field_description.yml @@ -13,7 +13,7 @@ third_party_settings: allowed_formats: - minimal _core: - default_config_hash: 54apkr-SUH-gN-iSmegZXnw0vux_R9kbXcZ30h0m3r4 + default_config_hash: FHLEUI_URTUrI6G-qdrGMxbB0-DVgFzWc6DH02B-YyM id: paragraph.contact_card_listing.field_description field_name: field_description entity_type: paragraph diff --git a/conf/cmi/field.field.paragraph.contact_card_listing.field_title.yml b/conf/cmi/field.field.paragraph.contact_card_listing.field_title.yml index f7fa50f8..feb80873 100644 --- a/conf/cmi/field.field.paragraph.contact_card_listing.field_title.yml +++ b/conf/cmi/field.field.paragraph.contact_card_listing.field_title.yml @@ -6,7 +6,7 @@ dependencies: - field.storage.paragraph.field_title - paragraphs.paragraphs_type.contact_card_listing _core: - default_config_hash: wVwE7xrXuQ3BymCdqpyrTEoV_pKubFHD709zQ7JDZW4 + default_config_hash: e8mz47LkKc-TXoRDaDWTU1fqodqgYtdOb9UNTH2ZQXI id: paragraph.contact_card_listing.field_title field_name: field_title entity_type: paragraph diff --git a/conf/cmi/field.field.paragraph.social_media_link.field_icon.yml b/conf/cmi/field.field.paragraph.social_media_link.field_icon.yml index c4e830da..af2c918e 100644 --- a/conf/cmi/field.field.paragraph.social_media_link.field_icon.yml +++ b/conf/cmi/field.field.paragraph.social_media_link.field_icon.yml @@ -8,7 +8,7 @@ dependencies: module: - hdbt_admin_tools _core: - default_config_hash: wqE_Zq3v_7AaVAV9KOkhWdkkT_SJTl-Z7wNW6DxFaXI + default_config_hash: 6qoTRQenhDa-3il9N5FeuRabMpPs-pEC6TGGIVaBAWo id: paragraph.social_media_link.field_icon field_name: field_icon entity_type: paragraph diff --git a/conf/cmi/field.field.paragraph.social_media_link.field_social_media_link.yml b/conf/cmi/field.field.paragraph.social_media_link.field_social_media_link.yml index 1e15222c..482d00ee 100644 --- a/conf/cmi/field.field.paragraph.social_media_link.field_social_media_link.yml +++ b/conf/cmi/field.field.paragraph.social_media_link.field_social_media_link.yml @@ -8,7 +8,7 @@ dependencies: module: - link _core: - default_config_hash: DOik0FFgb6rq9pXcXg05RFp5ZOMu0igzbeinzXnN3mw + default_config_hash: S5GBy8AwPiqgEgiZ9oWCjcgRojOalISJi8-TTJB7MOg id: paragraph.social_media_link.field_social_media_link field_name: field_social_media_link entity_type: paragraph diff --git a/conf/cmi/field.storage.node.field_announcement_all_pages.yml b/conf/cmi/field.storage.node.field_announcement_all_pages.yml index b4dc1d43..4593ec82 100644 --- a/conf/cmi/field.storage.node.field_announcement_all_pages.yml +++ b/conf/cmi/field.storage.node.field_announcement_all_pages.yml @@ -5,7 +5,7 @@ dependencies: module: - node _core: - default_config_hash: LsD3UPsFoSxY8nFIcmW-sgkCUhOmDnLVDzg0BJI3ByU + default_config_hash: yO_5u-O2qVlxYqv0OSvZ-fw4TOm1MfZkudaGjGO-Jys id: node.field_announcement_all_pages field_name: field_announcement_all_pages entity_type: node diff --git a/conf/cmi/field.storage.node.field_announcement_content_pages.yml b/conf/cmi/field.storage.node.field_announcement_content_pages.yml index e426aa6d..926f4599 100644 --- a/conf/cmi/field.storage.node.field_announcement_content_pages.yml +++ b/conf/cmi/field.storage.node.field_announcement_content_pages.yml @@ -5,7 +5,7 @@ dependencies: module: - node _core: - default_config_hash: chOATecdXJp6o82FA-yfX0VBi9VOMEvQnOeZkA4wKXU + default_config_hash: lkdj4KLS9JL7fi511OhyHIUs3gS_MViJhSQ7ReY134o id: node.field_announcement_content_pages field_name: field_announcement_content_pages entity_type: node diff --git a/conf/cmi/field.storage.node.field_announcement_link.yml b/conf/cmi/field.storage.node.field_announcement_link.yml index dbc8a7c0..6f2d381f 100644 --- a/conf/cmi/field.storage.node.field_announcement_link.yml +++ b/conf/cmi/field.storage.node.field_announcement_link.yml @@ -6,7 +6,7 @@ dependencies: - link - node _core: - default_config_hash: OR0XN-SZbrNKigZ4aGPUaCTuwjX0bur0rhx0ISjGG0Q + default_config_hash: Gz5p2c1-HDGNGT6y1UwESq2Ewf7RtaSWQAiX2jda4gg id: node.field_announcement_link field_name: field_announcement_link entity_type: node diff --git a/conf/cmi/field.storage.node.field_announcement_title.yml b/conf/cmi/field.storage.node.field_announcement_title.yml index 8e2fa33a..e25df081 100644 --- a/conf/cmi/field.storage.node.field_announcement_title.yml +++ b/conf/cmi/field.storage.node.field_announcement_title.yml @@ -5,7 +5,7 @@ dependencies: module: - node _core: - default_config_hash: dDVMTZxf5aD5P9HjLJX_6ThWFSclPORpZMThR3dd_XY + default_config_hash: AKbr46UAh7EMTjtotH7pa4jYdLYpNexYcb6EXIn3zaE id: node.field_announcement_title field_name: field_announcement_title entity_type: node diff --git a/conf/cmi/field.storage.node.field_announcement_type.yml b/conf/cmi/field.storage.node.field_announcement_type.yml index 744bc8ee..3d7d9055 100644 --- a/conf/cmi/field.storage.node.field_announcement_type.yml +++ b/conf/cmi/field.storage.node.field_announcement_type.yml @@ -6,7 +6,7 @@ dependencies: - node - options _core: - default_config_hash: xr9VH9mT3ysZiWD_r1Fqf4vC1YN4ROd_OVdg-ALQCcg + default_config_hash: Ts2OHUdKbEs_D1DphKqUxunVfNP05pTOjKqxlwSxwE8 id: node.field_announcement_type field_name: field_announcement_type entity_type: node diff --git a/conf/cmi/field.storage.paragraph.field_contact_card.yml b/conf/cmi/field.storage.paragraph.field_contact_card.yml index 48cf7aa3..83b20c02 100644 --- a/conf/cmi/field.storage.paragraph.field_contact_card.yml +++ b/conf/cmi/field.storage.paragraph.field_contact_card.yml @@ -9,7 +9,7 @@ dependencies: config: - paragraphs.paragraphs_type.contact_card_listing _core: - default_config_hash: hrjTJNnrxG5N3Ui9q7IAhEBLr4FburA9QNAA1X0FhTo + default_config_hash: sxsov8gX2d8W5EtYAetHF5YPMEo-dv3zF2G1GyVhzAA id: paragraph.field_contact_card field_name: field_contact_card entity_type: paragraph diff --git a/conf/cmi/field.storage.paragraph.field_contact_description.yml b/conf/cmi/field.storage.paragraph.field_contact_description.yml index 84d1d814..9bbafd44 100644 --- a/conf/cmi/field.storage.paragraph.field_contact_description.yml +++ b/conf/cmi/field.storage.paragraph.field_contact_description.yml @@ -5,7 +5,7 @@ dependencies: module: - paragraphs _core: - default_config_hash: h8k3-JFE3HxS1yyyweppUr448WgNYGgkn-ostZDPY28 + default_config_hash: SPmm6kbu-b4d9kpczR9qmbPCDyGdhlC35cLqKxL1jzQ id: paragraph.field_contact_description field_name: field_contact_description entity_type: paragraph diff --git a/conf/cmi/field.storage.paragraph.field_contact_image.yml b/conf/cmi/field.storage.paragraph.field_contact_image.yml index f413b34d..9b654b64 100644 --- a/conf/cmi/field.storage.paragraph.field_contact_image.yml +++ b/conf/cmi/field.storage.paragraph.field_contact_image.yml @@ -7,7 +7,7 @@ dependencies: - image - paragraphs _core: - default_config_hash: gl2Ity8hzAzQLkLCRKS6Wy1P_1elNLoSFZ_a-MvKwhM + default_config_hash: ufHUbh8N1YbfD5U--myDh6Rml9fFKTygpnSDCxAa7UY id: paragraph.field_contact_image field_name: field_contact_image entity_type: paragraph diff --git a/conf/cmi/field.storage.paragraph.field_contact_image_photographer.yml b/conf/cmi/field.storage.paragraph.field_contact_image_photographer.yml index 49e70398..8a76634a 100644 --- a/conf/cmi/field.storage.paragraph.field_contact_image_photographer.yml +++ b/conf/cmi/field.storage.paragraph.field_contact_image_photographer.yml @@ -5,7 +5,7 @@ dependencies: module: - paragraphs _core: - default_config_hash: jMW-iPd-4s81UwA8b0EIQK_fqMQLRbg7gsXAeCx1lB8 + default_config_hash: tfY7PZwmiZT1CsUylIRsHyLZn65daCX1XCqRK11vBlU id: paragraph.field_contact_image_photographer field_name: field_contact_image_photographer entity_type: paragraph diff --git a/conf/cmi/field.storage.paragraph.field_contact_name.yml b/conf/cmi/field.storage.paragraph.field_contact_name.yml index 605782a0..d61d005e 100644 --- a/conf/cmi/field.storage.paragraph.field_contact_name.yml +++ b/conf/cmi/field.storage.paragraph.field_contact_name.yml @@ -5,7 +5,7 @@ dependencies: module: - paragraphs _core: - default_config_hash: cxqH3G2yMa9sTvI6ENjvZk1vIAE_uFp-Z6mnsfjiLDo + default_config_hash: A032gdTRWWrmCerd1aRiQTw52vyzL6fJxI7O2o7jVwk id: paragraph.field_contact_name field_name: field_contact_name entity_type: paragraph diff --git a/conf/cmi/field.storage.paragraph.field_contact_social_media.yml b/conf/cmi/field.storage.paragraph.field_contact_social_media.yml index 737f2c6b..c4b39d8a 100644 --- a/conf/cmi/field.storage.paragraph.field_contact_social_media.yml +++ b/conf/cmi/field.storage.paragraph.field_contact_social_media.yml @@ -9,7 +9,7 @@ dependencies: config: - paragraphs.paragraphs_type.contact_card _core: - default_config_hash: JHpZWWkBGCdrVGR6FpM2u4rbduOL4NCt2ihnVsSkYRc + default_config_hash: UYKFGpEoIgQv-DMBoqBQdJ9SPpY75VRVvFTZkBzDRQU id: paragraph.field_contact_social_media field_name: field_contact_social_media entity_type: paragraph diff --git a/conf/cmi/field.storage.paragraph.field_contact_title.yml b/conf/cmi/field.storage.paragraph.field_contact_title.yml index 6e8a8631..5a664a2e 100644 --- a/conf/cmi/field.storage.paragraph.field_contact_title.yml +++ b/conf/cmi/field.storage.paragraph.field_contact_title.yml @@ -5,7 +5,7 @@ dependencies: module: - paragraphs _core: - default_config_hash: _uv2pKqlaeB79BQhntyZEkDpOfYAuhfWn5PsuQuk7Dg + default_config_hash: 4RuROMLy2lZ3Z-cXCFU9NQ34_ZjVUKdDxDrw-pTXtWY id: paragraph.field_contact_title field_name: field_contact_title entity_type: paragraph diff --git a/conf/cmi/field.storage.paragraph.field_email.yml b/conf/cmi/field.storage.paragraph.field_email.yml index 7fd760c0..09fcbf36 100644 --- a/conf/cmi/field.storage.paragraph.field_email.yml +++ b/conf/cmi/field.storage.paragraph.field_email.yml @@ -5,7 +5,7 @@ dependencies: module: - paragraphs _core: - default_config_hash: wH9j0RJnfdNOEzdjEltVOVetWDDW6JTgR_cMyFcD8YY + default_config_hash: 76XUNX8CNC1fRG7IdYnWrq_0iMEDAaTYC7d-ruvQS9w id: paragraph.field_email field_name: field_email entity_type: paragraph diff --git a/conf/cmi/field.storage.paragraph.field_phone_number.yml b/conf/cmi/field.storage.paragraph.field_phone_number.yml index 42299f9e..f9540ab3 100644 --- a/conf/cmi/field.storage.paragraph.field_phone_number.yml +++ b/conf/cmi/field.storage.paragraph.field_phone_number.yml @@ -6,7 +6,7 @@ dependencies: - paragraphs - telephone _core: - default_config_hash: kxmWRH9TJh5fRoM_YvyuycrIfHCulYKplVTkFm9DXAM + default_config_hash: FpqnAQk0N9aoEI3kPw3iK5PMIaGVotLJ2TvaWkRwJ80 id: paragraph.field_phone_number field_name: field_phone_number entity_type: paragraph diff --git a/conf/cmi/field.storage.paragraph.field_social_media_link.yml b/conf/cmi/field.storage.paragraph.field_social_media_link.yml index b7af6b51..f87ef346 100644 --- a/conf/cmi/field.storage.paragraph.field_social_media_link.yml +++ b/conf/cmi/field.storage.paragraph.field_social_media_link.yml @@ -9,7 +9,7 @@ dependencies: config: - paragraphs.paragraphs_type.social_media_link _core: - default_config_hash: '-njlxNwWIC8XUfPK115lFcUTt2_i0Lm6ldsKWrh6Ge8' + default_config_hash: '-0LmNgYvCF2uSCRumV1h6jB7ItcQYBgzg9okv9Rf7KA' id: paragraph.field_social_media_link field_name: field_social_media_link entity_type: paragraph diff --git a/conf/cmi/helfi_navigation.settings.yml b/conf/cmi/helfi_navigation.settings.yml new file mode 100644 index 00000000..4bae770b --- /dev/null +++ b/conf/cmi/helfi_navigation.settings.yml @@ -0,0 +1 @@ +global_navigation_enabled: false diff --git a/conf/cmi/language.content_settings.node.announcement.yml b/conf/cmi/language.content_settings.node.announcement.yml index 4c65223e..c52c6830 100644 --- a/conf/cmi/language.content_settings.node.announcement.yml +++ b/conf/cmi/language.content_settings.node.announcement.yml @@ -10,7 +10,7 @@ third_party_settings: content_translation: enabled: true _core: - default_config_hash: xzUi5sokV_KKyy_tkejxorDJN2VUjQzCtCKgXepWWxM + default_config_hash: j0gdhUGkHvcMO-o9H-rL6Qt9xh3ELUaJXeE5XVnyHi0 id: node.announcement target_entity_type_id: node target_bundle: announcement diff --git a/conf/cmi/language/fi/eu_cookie_compliance.cookie_category.essential.yml b/conf/cmi/language/fi/eu_cookie_compliance.cookie_category.essential.yml index 2ac84c9a..7bdeb019 100644 --- a/conf/cmi/language/fi/eu_cookie_compliance.cookie_category.essential.yml +++ b/conf/cmi/language/fi/eu_cookie_compliance.cookie_category.essential.yml @@ -1,4 +1,4 @@ description: - value: '

Välttämättömät evästeet auttavat tekemään verkkosivustosta käyttökelpoisen sallimalla perustoimintoja, kuten sivulla siirtymisen ja sivuston suojattujen alueiden käytön. Verkkosivusto ei toimi kunnolla ilman näitä evästeitä eikä niihin tarvita suostumusta.

NimiTarjoajaTarkoitusVoimassaTyyppi
cookiehubCookiehubMahdollistaa evästehallinnan hel.fi sivuilla.365 päivää 
cookie-agreedhel.fiSivusto käyttää tätä evästettä tietojen tallentamiseen siitä, ovatko kävijät antaneet hyväksyntänsä tai kieltäytyneet evästeiden käytöstä.100 päivää 
cookie-agreed-versionhel.fiTähän evästeeseen tallennetaan käyttäjän hyväksymän evästeselosteen versio.100 päivää 
cookie-agreed-categorieshel.fiTähän evästeeseen on tallennettu käyttäjän hyväksymät evästekategoriat.100 päivää 
SSESS*hel.fiSisällönhallintajärjestelmän toimintaan liittyvä eväste.23 päivää 
AWSELBCORSsiteimproveanalytics.ioEväste liittyy palvelinten kuormanjakotoiminnallisuuteen, jolla ohjataan pyynnöt vähimmällä käytöllä olevalle palvelimille.IstuntoKolmas osapuoli
mtm_cookie_consentkartta.hel.fiTekninen eväste johon talletetaan tieto valinnastasi evästeiden käytöstä kertovan bannerin kohdalla10950 päivää 
JSESSIONID

helsinkikanava.fi

coh-chat-app-prod.eu-de.mybluemix.net

Sivuston pakollinen eväste mahdollistaa kävijän vierailun sivustolla.IstuntoKolmas osapuoli
JSESSIONIDcoh-chat-app-prod.ow6i4n9pdzm.eu-de.codeengine.appdomain.cloudKäytetään chat-sovellustoiminnallisuutta varten. Evästettä käytetään sovelluksen palvelimella olevan istuntotiedon hakemiseen.IstuntoKolmas osapuoli
COOKIE_SUPPORThelsinkikanava.fiMahdollistaa evästeiden hallinnan sivustolla.365 päivääKolmas osapuoli
GUEST_LANGUAGE_IDhelsinkikanava.fiTämän evästeen on luonut Liferay, se tallentaa kieliasetukset.365 päivääKolmas osapuoli
helfi-settingshel.fiSivusto käyttää tätä tietuetta tietojen tallentamiseen siitä, mitä poikkeusilmoituksia on suljettu ja mikä on avattavien sisältöalueiden tila.-Paikallinen muisti
' + value: '

Välttämättömät evästeet auttavat tekemään verkkosivustosta käyttökelpoisen sallimalla perustoimintoja, kuten sivulla siirtymisen ja sivuston suojattujen alueiden käytön. Verkkosivusto ei toimi kunnolla ilman näitä evästeitä eikä niihin tarvita suostumusta.

NimiTarjoajaTarkoitusVoimassaTyyppi
cookiehubCookiehubMahdollistaa evästehallinnan hel.fi sivuilla.365 päivää 
cookie-agreedhel.fiSivusto käyttää tätä evästettä tietojen tallentamiseen siitä, ovatko kävijät antaneet hyväksyntänsä tai kieltäytyneet evästeiden käytöstä.100 päivää 
cookie-agreed-versionhel.fiTähän evästeeseen tallennetaan käyttäjän hyväksymän evästeselosteen versio.100 päivää 
cookie-agreed-categorieshel.fiTähän evästeeseen on tallennettu käyttäjän hyväksymät evästekategoriat.100 päivää 
cookie-agreedavustukset.hel.fiSivusto käyttää tätä evästettä tietojen tallentamiseen siitä, ovatko kävijät antaneet hyväksyntänsä tai kieltäytyneet evästeiden käytöstä.100 päivää 
cookie-agreed-versionavustukset.hel.fiTähän evästeeseen tallennetaan käyttäjän hyväksymän evästeselosteen versio.100 päivää 
cookie-agreed-categoriesavustukset.hel.fiTähän evästeeseen on tallennettu käyttäjän hyväksymät evästekategoriat.100 päivää 
SSESS*hel.fiSisällönhallintajärjestelmän toimintaan liittyvä eväste.23 päivää 
SSESS*avustukset.hel.fiSisällönhallintajärjestelmän toimintaan liittyvä eväste.23 päivää 
AWSELBCORSsiteimproveanalytics.ioEväste liittyy palvelinten kuormanjakotoiminnallisuuteen, jolla ohjataan pyynnöt vähimmällä käytöllä olevalle palvelimille.IstuntoKolmas osapuoli
mtm_cookie_consentkartta.hel.fiTekninen eväste johon talletetaan tieto valinnastasi evästeiden käytöstä kertovan bannerin kohdalla10950 päivää 
JSESSIONID

helsinkikanava.fi

coh-chat-app-prod.eu-de.mybluemix.net

Sivuston pakollinen eväste mahdollistaa kävijän vierailun sivustolla.IstuntoKolmas osapuoli
JSESSIONIDcoh-chat-app-prod.ow6i4n9pdzm.eu-de.codeengine.appdomain.cloudKäytetään chat-sovellustoiminnallisuutta varten. Evästettä käytetään sovelluksen palvelimella olevan istuntotiedon hakemiseen.IstuntoKolmas osapuoli
COOKIE_SUPPORThelsinkikanava.fiMahdollistaa evästeiden hallinnan sivustolla.365 päivääKolmas osapuoli
GUEST_LANGUAGE_IDhelsinkikanava.fiTämän evästeen on luonut Liferay, se tallentaa kieliasetukset.365 päivääKolmas osapuoli
helfi-settingshel.fiSivusto käyttää tätä tietuetta tietojen tallentamiseen siitä, mitä poikkeusilmoituksia on suljettu ja mikä on avattavien sisältöalueiden tila.-Paikallinen muisti
Drupal.visitor.autologout_loginavustukset.hel.fiKäytetään käyttäjän automaattiseen uloskirjautumiseen.365 päivää 
' format: full_html label: 'Välttämättömät toiminnalliset evästeet' diff --git a/conf/cmi/language/fi/eu_cookie_compliance.cookie_category.preference.yml b/conf/cmi/language/fi/eu_cookie_compliance.cookie_category.preference.yml index cfcd465b..58bceff4 100644 --- a/conf/cmi/language/fi/eu_cookie_compliance.cookie_category.preference.yml +++ b/conf/cmi/language/fi/eu_cookie_compliance.cookie_category.preference.yml @@ -1,4 +1,4 @@ label: Personointi description: - value: '

Mieltymysevästeet mukauttavat sivuston ulkoasua ja toimintaa käyttäjän aiemman käytön perusteella.

NimiTarjoajaTarkoitusVoimassaTyyppi
httpskartta.hel.fi.SWCulturekartta.hel.fiKaupungin karttapalvelun evästeeseen tallennetaan kieli, jolla palvelua käytetään.1826 päivää 
icareus-devicehelsinkikanava.fiHelsinki-kanavan videopalvelimen eväste.365 päivääKolmas osapuoli
VISITOR_INFO1_LIVEyoutube.comYouTuben eväste valitsee yhteyden nopeuden mukaan, joko vanhan tai uuden videosoittimen.180 päivääKolmas osapuoli
CONSENTyoutube.comGooglen eväste tallentaa kävijän evästehyväskynnän.5947 päivää, 15 tuntiaKolmas osapuoli
' + value: '

Mieltymysevästeet mukauttavat sivuston ulkoasua ja toimintaa käyttäjän aiemman käytön perusteella.

NimiTarjoajaTarkoitusVoimassaTyyppi
httpskartta.hel.fi.SWCulturekartta.hel.fiKaupungin karttapalvelun evästeeseen tallennetaan kieli, jolla palvelua käytetään.1826 päivää 
icareus-devicehelsinkikanava.fiHelsinki-kanavan videopalvelimen eväste.365 päivääKolmas osapuoli
VISITOR_INFO1_LIVEyoutube.comYouTuben eväste valitsee yhteyden nopeuden mukaan, joko vanhan tai uuden videosoittimen.180 päivääKolmas osapuoli
CONSENTyoutube.comGooglen eväste tallentaa kävijän evästehyväskynnän.5947 päivää, 15 tuntiaKolmas osapuoli
activeTabhel.fiKäytetään aktiivisten välilehtien tietojen tallentamiseen, kun käyttäjä käyttää lukioiden suodatushakua.Istunto 
activeContenthel.fiKäytetään aktiivisen sisältötietojen tallentamiseen, kun käyttäjä käyttää lukioiden hakua.Istunto 
' format: full_html diff --git a/conf/cmi/language/fi/eu_cookie_compliance.cookie_category.statistics.yml b/conf/cmi/language/fi/eu_cookie_compliance.cookie_category.statistics.yml index ed207fe2..6b5487f5 100644 --- a/conf/cmi/language/fi/eu_cookie_compliance.cookie_category.statistics.yml +++ b/conf/cmi/language/fi/eu_cookie_compliance.cookie_category.statistics.yml @@ -1,4 +1,4 @@ description: - value: '

Tilastointievästeiden keräämää tietoa käytetään verkkosivuston kehittämiseen.

NimiTarjoajaTarkoitusVoimassaTyyppi
nmstathel.fiSiteimproven tilastointieväste kerää tietoa kävijän sivujen käytöstä.1000 päivää 
_pk_id.*hel.fiMatomo-tilastointijärjestelmän eväste.393 päivää 
_pk_ses.141.89f6hel.fi-1 tunti 
_pk_id.*kartta.hel.fiMatomo-tilastointijärjestelmän eväste.393 päivää 
_pk_ses.*kartta.hel.fiMatomo-tilastointijärjestelmän eväste.1 tunti 
_pk_id.*palvelukartta.hel.fiMatomo-tilastointijärjestelmän eväste.393 päivää 
_pk_ses.*palvelukartta.hel.fiMatomo-tilastointijärjestelmän eväste.1 tunti 
rnsbidreactandshare.comAskem-reaktionappien toimintaan liittyvä tietue.-Paikallinen muisti
rnsbid_tsreactandshare.comAskem-reaktionappien toimintaan liittyvä tietue.-Paikallinen muisti
rns_reaction_*reactandshare.comAskem-reaktionappien toimintaan liittyvä tietue.-Paikallinen muisti
YSCyoutube.comYouTuben eväste mahdollistaa videoiden upottamisen sivustolle.IstuntoKolmas osapuoli
' + value: '

Tilastointievästeiden keräämää tietoa käytetään verkkosivuston kehittämiseen.

NimiTarjoajaTarkoitusVoimassaTyyppi
nmstathel.fiSiteimproven tilastointieväste kerää tietoa kävijän sivujen käytöstä.1000 päivää 
_pk_id.*hel.fiMatomo-tilastointijärjestelmän eväste.393 päivää 
_pk_ses.141.89f6hel.fi-1 tunti 
_pk_id.*kartta.hel.fiMatomo-tilastointijärjestelmän eväste.393 päivää 
_pk_ses.*kartta.hel.fiMatomo-tilastointijärjestelmän eväste.1 tunti 
_pk_id.*palvelukartta.hel.fiMatomo-tilastointijärjestelmän eväste.393 päivää 
_pk_ses.*palvelukartta.hel.fiMatomo-tilastointijärjestelmän eväste.1 tunti 
_pk_id.*avustukset.hel.fiMatomo-tilastointijärjestelmän eväste.393 päivää 
_pk_ses.*avustukset.hel.fiMatomo-tilastointijärjestelmän eväste.1 tunti 
rnsbidreactandshare.comAskem-reaktionappien toimintaan liittyvä tietue.-Paikallinen muisti
rnsbid_tsreactandshare.comAskem-reaktionappien toimintaan liittyvä tietue.-Paikallinen muisti
rns_reaction_*reactandshare.comAskem-reaktionappien toimintaan liittyvä tietue.-Paikallinen muisti
YSCyoutube.comYouTuben eväste mahdollistaa videoiden upottamisen sivustolle.IstuntoKolmas osapuoli
' format: full_html label: Tilastointi diff --git a/conf/cmi/language/fi/field.field.paragraph.contact_card.field_email.yml b/conf/cmi/language/fi/field.field.paragraph.contact_card.field_email.yml index 08c9f61a..7de94be4 100644 --- a/conf/cmi/language/fi/field.field.paragraph.contact_card.field_email.yml +++ b/conf/cmi/language/fi/field.field.paragraph.contact_card.field_email.yml @@ -1 +1 @@ -label: 'Lähetä sivu sähköpostitse' +label: Sähköposti diff --git a/conf/cmi/language/sv/eu_cookie_compliance.cookie_category.essential.yml b/conf/cmi/language/sv/eu_cookie_compliance.cookie_category.essential.yml index a0522db8..87ac818c 100644 --- a/conf/cmi/language/sv/eu_cookie_compliance.cookie_category.essential.yml +++ b/conf/cmi/language/sv/eu_cookie_compliance.cookie_category.essential.yml @@ -1,4 +1,4 @@ description: - value: '

Nödvändiga cookies hjälper till att göra webbplatsen användbar genom att tillåta grundläggande funktioner som att navigera på sidan och använda de skyddade områdena på webbplatsen. Webbplatsen fungerar inte korrekt utan dessa cookies och kräver inte samtycke.

NamnTjänsteleverantörCookie syfteGiltighetTyp
cookiehubcookiehub.comCookie möjliggör hantering av cookies på hel.fi webbplatsen.365 dagar 
cookie-agreedhel.fiCookie möjliggör hantering av cookies på webbplatsen.100 dagar 
cookie-agreed-versionhel.fiAnvänds för att lagra information om versionen av cookies samtycke som användaren har godkänt.100 dagar 
cookie-agreed-categorieshel.fiAnvänds för att lagra information om vilka cookie -kategorier användaren har godkänt.100 dagar 
SSESS*hel.fiEn cookie relaterad till driften av innehållshanteringssystemet.23 dagar 
AWSELBCORSsiteimproveanalytics.ioCookie är kopplad till funktionen för lastfördelning som styr begäran till en server med mindre belastning.sessionTredje part
mtm_cookie_consentkartta.hel.fiA technical cookie that stores information about how you responded to the notice in the cookie banner about the use of cookies.10950 dagar 
JSESSIONID

helsinkikanava.fi

coh-chat-app-prod.eu-de.mybluemix.net

Kakan är en obligatorisk kaka som gör det möjligt för besökaren att besöka webbplatsen.sessionTredje part
JSESSIONIDcoh-chat-app-prod.ow6i4n9pdzm.eu-de.codeengine.appdomain.cloudAnvänds för chattapplikationens funktionalitet. Dess värde används för att få tillgång till sessiondata på applikationens server.sessionTredje part
COOKIE_SUPPORThelsinkikanava.fiKakan möjliggör hanteringen av kakor på webbplatsen.365 dagarTredje part
GUEST_LANGUAGE_IDhelsinkikanava.fiDenna cookie genereras av Liferay, dess funktion är att lagra språkinställningarna.365 dagarTredje part
helfi-settingshel.fiAnvänds av hel.fi Drupal för att lagra information om stängda meddelanden och accordions'' tillstånd.-Lokalt minne
' + value: '

Nödvändiga cookies hjälper till att göra webbplatsen användbar genom att tillåta grundläggande funktioner som att navigera på sidan och använda de skyddade områdena på webbplatsen. Webbplatsen fungerar inte korrekt utan dessa cookies och kräver inte samtycke.

NamnTjänsteleverantörCookie syfteGiltighetTyp
cookiehubcookiehub.comCookie möjliggör hantering av cookies på hel.fi webbplatsen.365 dagar 
cookie-agreedhel.fiCookie möjliggör hantering av cookies på webbplatsen.100 dagar 
cookie-agreed-versionhel.fiAnvänds för att lagra information om versionen av cookies samtycke som användaren har godkänt.100 dagar 
cookie-agreed-categorieshel.fiAnvänds för att lagra information om vilka cookie -kategorier användaren har godkänt.100 dagar 
cookie-agreedavustukset.hel.fiCookie möjliggör hantering av cookies på webbplatsen.100 dagar 
cookie-agreed-versionavustukset.hel.fiAnvänds för att lagra information om versionen av cookies samtycke som användaren har godkänt.100 dagar 
cookie-agreed-categoriesavustukset.hel.fiAnvänds för att lagra information om vilka cookie -kategorier användaren har godkänt.100 dagar 
SSESS*hel.fiEn cookie relaterad till driften av innehållshanteringssystemet.23 dagar 
SSESS*avustukset.hel.fiEn cookie relaterad till driften av innehållshanteringssystemet.23 dagar 
AWSELBCORSsiteimproveanalytics.ioCookie är kopplad till funktionen för lastfördelning som styr begäran till en server med mindre belastning.sessionTredje part
mtm_cookie_consentkartta.hel.fiA technical cookie that stores information about how you responded to the notice in the cookie banner about the use of cookies.10950 dagar 
JSESSIONID

helsinkikanava.fi

coh-chat-app-prod.eu-de.mybluemix.net

Kakan är en obligatorisk kaka som gör det möjligt för besökaren att besöka webbplatsen.sessionTredje part
JSESSIONIDcoh-chat-app-prod.ow6i4n9pdzm.eu-de.codeengine.appdomain.cloudAnvänds för chattapplikationens funktionalitet. Dess värde används för att få tillgång till sessiondata på applikationens server.sessionTredje part
COOKIE_SUPPORThelsinkikanava.fiKakan möjliggör hanteringen av kakor på webbplatsen.365 dagarTredje part
GUEST_LANGUAGE_IDhelsinkikanava.fiDenna cookie genereras av Liferay, dess funktion är att lagra språkinställningarna.365 dagarTredje part
helfi-settingshel.fiAnvänds av hel.fi Drupal för att lagra information om stängda meddelanden och accordions'' tillstånd.-Lokalt minne
Drupal.visitor.autologout_loginavustukset.hel.fiAnvänds av avustukset.hel.fi Drupal för att automatiskt logga ut användare efter en period av inaktivitet.365 dagar 
' format: full_html label: 'Nödvändiga funktionella cookies' diff --git a/conf/cmi/language/sv/eu_cookie_compliance.cookie_category.preference.yml b/conf/cmi/language/sv/eu_cookie_compliance.cookie_category.preference.yml index b1314484..de0ec699 100644 --- a/conf/cmi/language/sv/eu_cookie_compliance.cookie_category.preference.yml +++ b/conf/cmi/language/sv/eu_cookie_compliance.cookie_category.preference.yml @@ -1,4 +1,4 @@ label: Preferens description: - value: '

Preferenscookies ändrar webbplatsens utseende och funktioner enligt användarens tidigare användning.

NamnTjänsteleverantörCookie syfteGiltighetTyp
httpskartta.hel.fi.SWCulturekartta.hel.fiI kakan på stadens kaktjänst sparas det språk som användaren använder i tjänsten.1826 dagar 
icareus-devicehelsinkikanava.fiHelsinki-kanavas kaka gör det möjligt att göra videor till en del av innehållet på webbplatsen.365 dagarTredje part
VISITOR_INFO1_LIVEyoutube.comYouTubes kaka väljer antingen den nya eller gamla videospelaren enligt förbindelsens hastighet.180 dagarTredje part
CONSENTyoutube.comAnvänds av Google för att lagra inställningar för användarens samtycke5947 dagar, 15 timmarTredje part

 

' + value: '

Preferenscookies ändrar webbplatsens utseende och funktioner enligt användarens tidigare användning.

NamnTjänsteleverantörCookie syfteGiltighetTyp
httpskartta.hel.fi.SWCulturekartta.hel.fiI kakan på stadens kaktjänst sparas det språk som användaren använder i tjänsten.1826 dagar 
icareus-devicehelsinkikanava.fiHelsinki-kanavas kaka gör det möjligt att göra videor till en del av innehållet på webbplatsen.365 dagarTredje part
VISITOR_INFO1_LIVEyoutube.comYouTubes kaka väljer antingen den nya eller gamla videospelaren enligt förbindelsens hastighet.180 dagarTredje part
CONSENTyoutube.comAnvänds av Google för att lagra inställningar för användarens samtycke.5947 dagar, 15 timmarTredje part
activeTabhel.fiAnvänds för att lagra aktiv flikdata när användaren använder gymnasiesökning.Session 
activeContenthel.fiAnvänds för att lagra aktivt innehållsdata när användaren använder gymnasiesökning.Session 

 

' format: full_html diff --git a/conf/cmi/language/sv/eu_cookie_compliance.cookie_category.statistics.yml b/conf/cmi/language/sv/eu_cookie_compliance.cookie_category.statistics.yml index e142011a..a6ad5344 100644 --- a/conf/cmi/language/sv/eu_cookie_compliance.cookie_category.statistics.yml +++ b/conf/cmi/language/sv/eu_cookie_compliance.cookie_category.statistics.yml @@ -1,4 +1,4 @@ description: - value: '

De uppgifter statistikkakorna samlar in används för att utveckla webbplatsen.

NamnTjänsteleverantörCookie syfteGiltighetTyp
nmstathel.fiSiteimproves kaka samlar information om hur webbplatsen används.1000 dagar 
_pk_id.*hel.fiMatomo-statistiksystemets kaka samlar information om hur webbplatsen används.393 dagar 
_pk_ses.141.89f6hel.fi-1 timme 
_pk_id.*kartta.hel.fiMatomo-statistiksystemets kaka samlar information om hur webbplatsen används.393 dagar 
_pk_ses.*kartta.hel.fiMatomo-statistiksystemets kaka samlar information om hur webbplatsen används.1 timme 
_pk_id.*palvelukartta.hel.fiMatomo-statistiksystemets kaka samlar information om hur webbplatsen används.393 dagar 
_pk_ses.*palvelukartta.hel.fiMatomo-statistiksystemets kaka samlar information om hur webbplatsen används.1 timme 
rnsbidreactandshare.com

En post relaterad till driften av reaktionsknappen 

Askem

.

-Lokalt minne
rnsbid_tsreactandshare.com

En post relaterad till driften av reaktionsknappen 

Askem

.

-Lokalt minne
rns_reaction_*reactandshare.com

En post relaterad till driften av reaktionsknappen 

Askem

.

-Lokalt minne
YSCyoutube.comYouTubes kaka gör det möjligt att göra videor till en del av innehållet på webbplatsen.sessionTredje part

 

' + value: '

De uppgifter statistikkakorna samlar in används för att utveckla webbplatsen.

NamnTjänsteleverantörCookie syfteGiltighetTyp
nmstathel.fiSiteimproves kaka samlar information om hur webbplatsen används.1000 dagar 
_pk_id.*hel.fiMatomo-statistiksystemets kaka samlar information om hur webbplatsen används.393 dagar 
_pk_ses.141.89f6hel.fi-1 timme 
_pk_id.*kartta.hel.fiMatomo-statistiksystemets kaka samlar information om hur webbplatsen används.393 dagar 
_pk_ses.*kartta.hel.fiMatomo-statistiksystemets kaka samlar information om hur webbplatsen används.1 timme 
_pk_id.*palvelukartta.hel.fiMatomo-statistiksystemets kaka samlar information om hur webbplatsen används.393 dagar 
_pk_ses.*palvelukartta.hel.fiMatomo-statistiksystemets kaka samlar information om hur webbplatsen används.1 timme 
_pk_id.*avustukset.hel.fiMatomo-statistiksystemets kaka samlar information om hur webbplatsen används.393 dagar 
_pk_ses.*avustukset.hel.fiMatomo-statistiksystemets kaka samlar information om hur webbplatsen används.1 timme 
rnsbidreactandshare.com

En post relaterad till driften av reaktionsknappen 

Askem

.

-Lokalt minne
rnsbid_tsreactandshare.com

En post relaterad till driften av reaktionsknappen 

Askem

.

-Lokalt minne
rns_reaction_*reactandshare.com

En post relaterad till driften av reaktionsknappen 

Askem

.

-Lokalt minne
YSCyoutube.comYouTubes kaka gör det möjligt att göra videor till en del av innehållet på webbplatsen.sessionTredje part

 

' format: full_html label: Statistik diff --git a/conf/cmi/language/sv/field.field.paragraph.contact_card.field_email.yml b/conf/cmi/language/sv/field.field.paragraph.contact_card.field_email.yml index 308b7c5f..effe0ce3 100644 --- a/conf/cmi/language/sv/field.field.paragraph.contact_card.field_email.yml +++ b/conf/cmi/language/sv/field.field.paragraph.contact_card.field_email.yml @@ -1 +1 @@ -label: 'Skicka via e-post' +label: E-post diff --git a/conf/cmi/node.type.announcement.yml b/conf/cmi/node.type.announcement.yml index 8dea5a59..f9d409f4 100644 --- a/conf/cmi/node.type.announcement.yml +++ b/conf/cmi/node.type.announcement.yml @@ -23,7 +23,7 @@ third_party_settings: unpublish_required: false unpublish_revision: false _core: - default_config_hash: P4jQ_d783n9xOHEWbuu_QH5pOhcM796VtW4DyKcTshw + default_config_hash: k-VdWbiJkFID9ruTM9Dc5eynPOdDlRjcf2j1oL7EZb0 name: Announcement type: announcement description: 'Content type for announcements that can be used to show notifications, attentions and alerts on different pages.' diff --git a/conf/cmi/paragraphs.paragraphs_type.contact_card.yml b/conf/cmi/paragraphs.paragraphs_type.contact_card.yml index d506234b..03178c20 100644 --- a/conf/cmi/paragraphs.paragraphs_type.contact_card.yml +++ b/conf/cmi/paragraphs.paragraphs_type.contact_card.yml @@ -3,7 +3,7 @@ langcode: en status: true dependencies: { } _core: - default_config_hash: 0Ng7ejlufHeGq2qBB2CGx6ppTc7Jvp17xuSTYck4Kg4 + default_config_hash: lZXTgSTApijmDirf3cF_FApjQ5LhbWbCvdp-CZCr9V0 id: contact_card label: 'Contact card' icon_uuid: null diff --git a/conf/cmi/paragraphs.paragraphs_type.contact_card_listing.yml b/conf/cmi/paragraphs.paragraphs_type.contact_card_listing.yml index f0f97f45..d5fd3b25 100644 --- a/conf/cmi/paragraphs.paragraphs_type.contact_card_listing.yml +++ b/conf/cmi/paragraphs.paragraphs_type.contact_card_listing.yml @@ -8,7 +8,7 @@ third_party_settings: paragraphs_library: allow_library_conversion: true _core: - default_config_hash: Jj7N3_BQ1xCrNmGX_ehTrhS1yeNFjcLAheUwGyjBtW8 + default_config_hash: f3zSLeDLGTEtb6evhrJPGCEKq7Hd3AkV614GpPz9yQ0 id: contact_card_listing label: 'Contact card listing' icon_uuid: null diff --git a/conf/cmi/paragraphs.paragraphs_type.social_media_link.yml b/conf/cmi/paragraphs.paragraphs_type.social_media_link.yml index 57053499..2ba7e3f3 100644 --- a/conf/cmi/paragraphs.paragraphs_type.social_media_link.yml +++ b/conf/cmi/paragraphs.paragraphs_type.social_media_link.yml @@ -3,7 +3,7 @@ langcode: en status: true dependencies: { } _core: - default_config_hash: O5xf9wOwKSAh88H1rnkoppQV-VCePrxHd3AAJV8gfm4 + default_config_hash: KLJV5dyPk_-iCZ9Dakg0kEoyz9ApkyXcx9W8R56ahIo id: social_media_link label: 'Social media link' icon_uuid: null diff --git a/pipelines/drupal-production.yml b/pipelines/drupal-production.yml new file mode 100644 index 00000000..3e4d4fce --- /dev/null +++ b/pipelines/drupal-production.yml @@ -0,0 +1,37 @@ +# Continuous integration (CI) triggers cause a pipeline to run whenever you push +# an update to the specified branches or you push specified tags. +trigger: none + +# Pull request (PR) triggers cause a pipeline to run whenever a pull request is +# opened with one of the specified target branches, or when updates are made to +# such a pull request. +# +# GitHub creates a new ref when a pull request is created. The ref points to a +# merge commit, which is the merged code between the source and target branches +# of the pull request. +# +# Opt out of pull request validation +pr: none + +# By default, use self-hosted agents +pool: Default + +resources: + repositories: + # Azure DevOps repository + - repository: helfi-rekry-pipelines + type: git + # Azure DevOps project/repository + name: helfi-rekry/helfi-rekry-pipelines + +extends: + # Filename in Azure DevOps Repository + template: components/drupal/pipelines/drupal-production.yml@helfi-rekry-pipelines + # parameters: + # Application build arguments and config map values as key value pairs. + # Does not contain all buildArguments or configMap values, the rest located in helfi-rekry-pipelines + # The values here will override the values defined in the helfi-rekry-pipelines repository + # buildArgs: + # DEBUG: 1 + # configMap: # pod environment variables + # DEBUG: 1 diff --git a/pipelines/drupal-staging.yml b/pipelines/drupal-staging.yml new file mode 100644 index 00000000..b56fc205 --- /dev/null +++ b/pipelines/drupal-staging.yml @@ -0,0 +1,47 @@ +# Continuous integration (CI) triggers cause a pipeline to run whenever you push +# an update to the specified branches or you push specified tags. +trigger: + batch: true + branches: + include: + - main + paths: + exclude: + - '*.md' + - '.github/' + - 'pipelines/drupal-production.yml' + - 'pipelines/drupal-test.yml' + +# Pull request (PR) triggers cause a pipeline to run whenever a pull request is +# opened with one of the specified target branches, or when updates are made to +# such a pull request. +# +# GitHub creates a new ref when a pull request is created. The ref points to a +# merge commit, which is the merged code between the source and target branches +# of the pull request. +# +# Opt out of pull request validation +pr: none + +# By default, use self-hosted agents +pool: Default + +resources: + repositories: + # Azure DevOps repository + - repository: helfi-rekry-pipelines + type: git + # Azure DevOps project/repository + name: helfi-rekry/helfi-rekry-pipelines + +extends: + # Filename in Azure DevOps Repository + template: components/drupal/pipelines/drupal-staging.yml@helfi-rekry-pipelines + # parameters: + # Application build arguments and config map values as key value pairs. + # Does not contain all buildArguments or configMap values, the rest located in helfi-rekry-pipelines + # The values here will override the values defined in the helfi-rekry-pipelines repository + # buildArgs: + # DEBUG: 1 + # configMap: # pod environment variables + # DEBUG: 1 diff --git a/pipelines/drupal-test.yml b/pipelines/drupal-test.yml new file mode 100644 index 00000000..1b1ec850 --- /dev/null +++ b/pipelines/drupal-test.yml @@ -0,0 +1,47 @@ +# Continuous integration (CI) triggers cause a pipeline to run whenever you push +# an update to the specified branches or you push specified tags. +trigger: + batch: true + branches: + include: + - dev + paths: + exclude: + - '*.md' + - '.github/' + - 'pipelines/drupal-production.yml' + - 'pipelines/drupal-staging.yml' + +# Pull request (PR) triggers cause a pipeline to run whenever a pull request is +# opened with one of the specified target branches, or when updates are made to +# such a pull request. +# +# GitHub creates a new ref when a pull request is created. The ref points to a +# merge commit, which is the merged code between the source and target branches +# of the pull request. +# +# Opt out of pull request validation +pr: none + +# By default, use self-hosted agents +pool: Default + +resources: + repositories: + # Azure DevOps repository + - repository: helfi-rekry-pipelines + type: git + # Azure DevOps project/repository + name: helfi-rekry/helfi-rekry-pipelines + +extends: + # Filename in Azure DevOps Repository + template: components/drupal/pipelines/drupal-test.yml@helfi-rekry-pipelines + # parameters: + # Application build arguments and config map values as key value pairs. + # Does not contain all buildArguments or configMap values, the rest located in helfi-rekry-pipelines + # The values here will override the values defined in the helfi-rekry-pipelines repository + # buildArgs: + # DEBUG: 1 + # configMap: # pod environment variables + # DEBUG: 1 diff --git a/public/modules/custom/helfi_hakuvahti/helfi_hakuvahti.info.yml b/public/modules/custom/helfi_hakuvahti/helfi_hakuvahti.info.yml new file mode 100644 index 00000000..b4659746 --- /dev/null +++ b/public/modules/custom/helfi_hakuvahti/helfi_hakuvahti.info.yml @@ -0,0 +1,7 @@ +name: helfi_hakuvahti +type: module +description: 'Drupal-integration for hakuvahti.' +package: Custom +core_version_requirement: ^10 +'interface translation project': helfi_hakuvahti +'interface translation server pattern': modules/custom/helfi_hakuvahti/translations/%language.po diff --git a/public/modules/custom/helfi_hakuvahti/helfi_hakuvahti.module b/public/modules/custom/helfi_hakuvahti/helfi_hakuvahti.module new file mode 100644 index 00000000..b9086c6a --- /dev/null +++ b/public/modules/custom/helfi_hakuvahti/helfi_hakuvahti.module @@ -0,0 +1,36 @@ + [ + 'variables' => [ + 'title' => NULL, + 'message' => NULL, + 'button_text' => NULL, + 'action_url' => NULL, + 'id' => NULL, + 'form_id' => NULL, + ], + ], + 'hakuvahti_confirmation' => [ + 'variables' => [ + 'title' => NULL, + 'message' => NULL, + 'link_text' => NULL, + 'link_url' => NULL, + ], + ], + ]; +} diff --git a/public/modules/custom/helfi_hakuvahti/helfi_hakuvahti.routing.yml b/public/modules/custom/helfi_hakuvahti/helfi_hakuvahti.routing.yml new file mode 100644 index 00000000..2332fc4f --- /dev/null +++ b/public/modules/custom/helfi_hakuvahti/helfi_hakuvahti.routing.yml @@ -0,0 +1,21 @@ +helfi_hakuvahti.subscribe: + path: '/hakuvahti/subscribe' + defaults: + _title: 'Subscribe saved search' + _controller: '\Drupal\helfi_hakuvahti\Controller\HelfiHakuvahtiSubscribeController::post' + requirements: + _permission: 'access content' +helfi_hakuvahti.confirm: + path: '/hakuvahti/confirm' + defaults: + _title: 'Confirm saved search' + _controller: '\Drupal\helfi_hakuvahti\Controller\HelfiHakuvahtiController::confirm' + requirements: + _permission: 'access content' +helfi_hakuvahti.unsubscribe: + path: '/hakuvahti/unsubscribe' + defaults: + _title: 'Are you sure you wish to delete the saved search?' + _controller: '\Drupal\helfi_hakuvahti\Controller\HelfiHakuvahtiController::unsubscribe' + requirements: + _permission: 'access content' diff --git a/public/modules/custom/helfi_hakuvahti/src/Controller/HelfiHakuvahtiController.php b/public/modules/custom/helfi_hakuvahti/src/Controller/HelfiHakuvahtiController.php new file mode 100644 index 00000000..5bbf5a81 --- /dev/null +++ b/public/modules/custom/helfi_hakuvahti/src/Controller/HelfiHakuvahtiController.php @@ -0,0 +1,287 @@ +requestStack->getCurrentRequest(); + $hash = $request->query->get('hash'); + $subscription = $request->query->get('subscription'); + + return $this->isFormSubmitted() + ? $this->handleConfirmFormSubmission($hash, $subscription) + : $this->buildConfirmForm(); + } + + /** + * Handles the form submission for confirming a subscription. + * + * @param string $hash + * The hash parameter. + * @param string $subscription + * The subscription parameter. + * + * @return array + * A render array for the confirmation result. + */ + private function handleConfirmFormSubmission(string $hash, string $subscription): array { + return $this->sendConfirmationRequest($hash, $subscription) + ? $this->buildConfirmationSuccess() + : $this->buildConfirmationFailure(); + } + + /** + * Builds the form for confirming a saved search. + * + * @return array + * A render array for the confirmation form. + */ + private function buildConfirmForm(): array { + return [ + '#type' => 'form', + '#id' => 'hakuvahti_confirm_form', + '#form_id' => 'hakuvahti_confirm_form', + '#theme' => 'hakuvahti_form', + '#title' => $this->t('Confirm saved search', [], ['context' => 'Hakuvahti']), + '#message' => $this->t('Please confirm the saved search to receive notifications. Click on the button below.', [], ['context' => 'Hakuvahti']), + '#button_text' => $this->t('Confirm saved search', [], ['context' => 'Hakuvahti']), + '#action_url' => $this->getFormActionUrl(), + ]; + } + + /** + * Builds the confirmation success message. + * + * @return array + * A render array for the confirmation success message. + */ + private function buildConfirmationSuccess(): array { + return [ + '#theme' => 'hakuvahti_confirmation', + '#title' => $this->t('Search saved successfully', [], ['context' => 'Hakuvahti']), + '#message' => $this->t('You will receive an email notification of any new results matching your saved search criteria. You can delete the saved search via the cancellation link in the email messages.', [], ['context' => 'Hakuvahti']), + ]; + } + + /** + * Builds the confirmation failure message. + * + * @return array + * A render array for the confirmation failure message. + */ + private function buildConfirmationFailure(): array { + return [ + '#theme' => 'hakuvahti_confirmation', + '#title' => $this->t('Confirmation failed', [], ['context' => 'Hakuvahti']), + '#message' => $this->t('Confirming saved search failed. Please try again.', [], ['context' => 'Hakuvahti']), + ]; + } + + /** + * Sends a confirmation request to the Hakuvahti server. + * + * @param string $subscriptionHash + * The subscription hash. + * @param string $subscriptionId + * The subscription ID. + * + * @return bool + * TRUE if the confirmation request was successful, FALSE otherwise. + */ + protected function sendConfirmationRequest(string $subscriptionHash, string $subscriptionId): bool { + $csrfTokenService = $this->container->get('csrf_token'); + $httpClient = new Client([ + 'headers' => [ + 'Content-Type' => 'application/json', + 'token' => $csrfTokenService->get('session'), + ], + ]); + + try { + $response = $httpClient->get(getenv('HAKUVAHTI_URL') . "/subscription/confirm/{$subscriptionId}/{$subscriptionHash}"); + return $response->getBody()->getContents() !== ''; + } + catch (RequestException $exception) { + return FALSE; + } + } + + /** + * Handles the unsubscription from a saved search. + * + * @return array + * A render array for the unsubscription form. + */ + public function unsubscribe(): array { + $request = $this->requestStack->getCurrentRequest(); + $hash = $request->query->get('hash'); + $subscription = $request->query->get('subscription'); + + return $this->isFormSubmitted() + ? $this->handleUnsubscribeFormSubmission($hash, $subscription) + : $this->buildUnsubscribeForm(); + } + + /** + * Handles the form submission for unsubscribing from a subscription. + * + * @param string $hash + * The hash parameter. + * @param string $subscription + * The subscription parameter. + * + * @return array + * A render array for the unsubscription result. + */ + private function handleUnsubscribeFormSubmission(string $hash, string $subscription): array { + return $this->sendUnsubscribeRequest($hash, $subscription) + ? $this->buildUnsubscribeConfirmation() + : $this->buildUnsubscribeFailedSubmission(); + } + + /** + * Builds the form for unsubscribing from a saved search. + * + * @return array + * A render array for the unsubscription form. + */ + private function buildUnsubscribeForm(): array { + return [ + '#type' => 'form', + '#id' => 'hakuvahti_unsubscribe_form', + '#form_id' => 'hakuvahti_unsubscribe_form', + '#theme' => 'hakuvahti_form', + '#title' => $this->t('Are you sure you wish to delete the saved search?', [], ['context' => 'Hakuvahti']), + '#message' => $this->t('Please confirm that you wish to delete the saved search. If you have other searches saved on the City website, this link will not delete them.', [], ['context' => 'Hakuvahti']), + '#button_text' => $this->t('Delete saved search', [], ['context' => 'Hakuvahti']), + '#action_url' => $this->getFormActionUrl(), + ]; + } + + /** + * Builds the unsubscription confirmation message. + * + * @return array + * A render array for the unsubscription confirmation message. + */ + private function buildUnsubscribeConfirmation(): array { + return [ + '#theme' => 'hakuvahti_confirmation', + '#title' => $this->t('The saved search has been deleted', [], ['context' => 'Hakuvahti']), + '#message' => $this->t('You can save more searches at any time.', [], ['context' => 'Hakuvahti']), + '#link_text' => $this->t('Return to open jobs front page', [], ['context' => 'Hakuvahti']), + '#link_url' => Url::fromUri('internal:/'), + ]; + } + + /** + * Builds the unsubscription failure message. + * + * @return array + * A render array for the unsubscription failure message. + */ + private function buildUnsubscribeFailedSubmission(): array { + return [ + '#theme' => 'hakuvahti_confirmation', + '#title' => $this->t('Deleting failed', [], ['context' => 'Hakuvahti']), + '#message' => $this->t('Deleting saved search failed. Please try again.', [], ['context' => 'Hakuvahti']), + ]; + } + + /** + * Sends an unsubscribe request to the Hakuvahti server. + * + * @param string $hash + * The hash parameter. + * @param string $subscription + * The subscription parameter. + * + * @return bool + * TRUE if the unsubscription request was successful, FALSE otherwise. + */ + protected function sendUnsubscribeRequest(string $hash, string $subscription): bool { + $csrfTokenService = $this->container->get('csrf_token'); + $httpClient = new Client([ + 'headers' => [ + 'Content-Type' => 'application/json', + 'token' => $csrfTokenService->get('session'), + ], + ]); + + try { + $response = $httpClient->delete(getenv('HAKUVAHTI_URL') . "/subscription/delete/{$subscription}/{$hash}"); + return $response->getStatusCode() >= 200 && $response->getStatusCode() < 300; + } + catch (RequestException $exception) { + return FALSE; + } + } + + /** + * Gets the form action URL. + * + * @return string + * The form action URL. + */ + protected function getFormActionUrl(): string { + return $this->requestStack->getCurrentRequest()->getUri(); + } + + /** + * Checks if the form is submitted. + * + * @return bool + * TRUE if the form is submitted, FALSE otherwise. + */ + protected function isFormSubmitted(): bool { + return $this->requestStack->getCurrentRequest()->isMethod('POST'); + } + +} diff --git a/public/modules/custom/helfi_hakuvahti/src/Controller/HelfiHakuvahtiSubscribeController.php b/public/modules/custom/helfi_hakuvahti/src/Controller/HelfiHakuvahtiSubscribeController.php new file mode 100644 index 00000000..b0fbdb60 --- /dev/null +++ b/public/modules/custom/helfi_hakuvahti/src/Controller/HelfiHakuvahtiSubscribeController.php @@ -0,0 +1,124 @@ +elastic_query); + $elasticQueryObject = json_decode($elasticQuery); + + // Free text search. + $query = $elasticQueryObject->query->bool->must[1]->bool->should[1]->combined_fields->query ?? NULL; + // Task area. + $taxonomyIds = array_merge($taxonomyIds, $elasticQueryObject->query->bool->must[2]->terms->task_area_external_id ?? []); + // Type of employment. + $taxonomyIds = array_merge($taxonomyIds, $elasticQueryObject->query->bool->must[3]->bool->should[1]->terms->employment_type_id ?? []); + + if (!empty($taxonomyIds)) { + $language = $obj->lang; + $terms = array_map(function ($term) use ($language) { + if ($term->hasTranslation($language)) { + $translated_term = $term->getTranslation($language); + return $translated_term->label(); + } + return $term->label(); + }, $this->_entityTypeManager->getStorage('taxonomy_term')->loadMultiple($taxonomyIds)); + } + + // We need to send just *something* if nothing is selected in filters. + if (empty($terms) && empty($query)) { + $terms[] = '*'; + } + + array_unshift($terms, $query); + + return implode(', ', array_filter($terms)); + } + + /** + * A method to handle the POST request for subscription. + * + * @return \Symfony\Component\HttpFoundation\JsonResponse + * The JSON response based on the subscription request. + */ + public function post(): JsonResponse { + $request = $this->requestStack->getCurrentRequest(); + $body = $request->getContent(FALSE); + $bodyObj = json_decode($body); + $bodyObj->lang = substr($bodyObj->query, 1, 2); + $bodyObj->search_description = $this->getSearchDescriptionTaxonomies($bodyObj); + + $token = $request->headers->get('token'); + + // FIXME: somehow, we would need to validate token from + // /session/token from react + // side, but there's just no way to match it at backend?! + // $csrfTokenService = $this->container->get('csrf_token'); + // $expectedToken = $csrfTokenService->get('session'); + // if ($this->csrfTokenService->validate($token, 'session') === FALSE) { + // + // }. + $client = new Client(); + $hakuvahtiServer = getenv('HAKUVAHTI_URL'); + $response = $client->request('POST', $hakuvahtiServer . '/subscription', [ + RequestOptions::JSON => $bodyObj, + RequestOptions::HEADERS => [ + 'token' => $token, + 'Content-Type' => 'application/json', + ], + ]); + + $statusCode = $response->getStatusCode(); + + if ($statusCode >= 200 && $statusCode < 300) { + return new JsonResponse(['success' => TRUE], Response::HTTP_OK); + } + else { + return new JsonResponse(['success' => FALSE, 'error' => $response->getBody()->getContents()], Response::HTTP_INTERNAL_SERVER_ERROR); + } + } + +} diff --git a/public/modules/custom/helfi_hakuvahti/translations/fi.po b/public/modules/custom/helfi_hakuvahti/translations/fi.po new file mode 100644 index 00000000..e2b023bc --- /dev/null +++ b/public/modules/custom/helfi_hakuvahti/translations/fi.po @@ -0,0 +1,67 @@ +msgid "" +msgstr "" + +msgctxt "Hakuvahti" +msgid "The saved search has been deleted" +msgstr "Hakuvahti on poistettu" + +msgctxt "Hakuvahti" +msgid "You can save more searches at any time." +msgstr "Voit koska tahansa tilata uusia hakuvahteja." + +msgctxt "Hakuvahti" +msgid "Return to open jobs front page" +msgstr "Palaa avoimien työpaikkojen etusivulle." + +msgctxt "Hakuvahti" +msgid "Deleting saved search failed. Please try again." +msgstr "Hakuvahdin poisto epäonnistui. Yritä uudelleen." + +msgctxt "Hakuvahti" +msgid "Please confirm that you wish to delete the saved search. If you have other searches saved on the City website, this link will not delete them." +msgstr "Vahvista, että haluat poistaa tämän hakuvahdin. Jos olet tehnyt muita hakuvahteja kaupungin verkkosivustolla, tämä ei poista niitä." + +msgctxt "Hakuvahti" +msgid "Delete saved search" +msgstr "Poista hakuvahti" + +msgctxt "Hakuvahti" +msgid "Search saved successfully" +msgstr "Hakuvahdin tilaus onnistui" + +msgctxt "Hakuvahti" +msgid "You will receive an email notification of any new results matching your saved search criteria. You can delete the saved search via the cancellation link in the email messages." +msgstr "Saat sähköpostia hakuvahdin uusista osumista. Voit halutessasi poistaa hakuvahdin sähköpostien peruutuslinkeistä." + +msgctxt "Hakuvahti" +msgid "Confirmation failed" +msgstr "Vahvistus epäonnistui." + +msgctxt "Hakuvahti" +msgid "Confirming saved search failed. Please try again." +msgstr "Hakuvahdin vahvistus epäonnistui. Yritä uudelleen." + +msgctxt "Hakuvahti" +msgid "Please confirm the saved search to receive notifications. Click on the button below." +msgstr "Vahvista hakuvahdin tilaus klikkaamalla alla olevaa painiketta." + +msgctxt "Hakuvahti" +msgid "Confirm saved search" +msgstr "Vahvista hakuvahti" + +msgctxt "Hakuvahti" +msgid "Are you sure you wish to delete the saved search?" +msgstr "Haluatko varmasti poistaa hakuvahdin?" + +msgctxt "Hakuvahti" +msgid "Deleting failed" +msgstr "Poistaminen epäonnistui" + +msgid "Subscribe saved search" +msgstr "Tilaa hakuvahti" + +msgid "Confirm saved search" +msgstr "Vahvista hakuvahti" + +msgid "Are you sure you wish to delete the saved search?" +msgstr "Haluatko varmasti poistaa hakuvahdin?" diff --git a/public/modules/custom/helfi_hakuvahti/translations/sv.po b/public/modules/custom/helfi_hakuvahti/translations/sv.po new file mode 100644 index 00000000..acd7651c --- /dev/null +++ b/public/modules/custom/helfi_hakuvahti/translations/sv.po @@ -0,0 +1,67 @@ +msgid "" +msgstr "" + +msgctxt "Hakuvahti" +msgid "The saved search has been deleted" +msgstr "Sökvakten har raderats" + +msgctxt "Hakuvahti" +msgid "You can save more searches at any time." +msgstr "Du kan när som helst beställa nya sökvakter." + +msgctxt "Hakuvahti" +msgid "Return to open jobs front page" +msgstr "Gå tillbaka till startsidan för lediga jobb." + +msgctxt "Hakuvahti" +msgid "Deleting saved search failed. Please try again." +msgstr "" + +msgctxt "Hakuvahti" +msgid "Please confirm that you wish to delete the saved search. If you have other searches saved on the City website, this link will not delete them." +msgstr "Bekräfta att du vill ta bort den här sökvakten. Om du har skapat andra sökvakter på stadens webbplats tar denna åtgärd inte bort dem." + +msgctxt "Hakuvahti" +msgid "Delete saved search" +msgstr "Radera sökvakten" + +msgctxt "Hakuvahti" +msgid "Search saved successfully" +msgstr "Beställningen av sökvakten lyckades" + +msgctxt "Hakuvahti" +msgid "You will receive an email notification of any new results matching your saved search criteria. You can delete the saved search via the cancellation link in the email messages." +msgstr "Du får e-post om sökvaktens nya träffar. Du kan ta bort sökvakten via avbeställningslänkarna i e-postmeddelandena." + +msgctxt "Hakuvahti" +msgid "Confirmation failed" +msgstr "Bekräftelse misslyckades" + +msgctxt "Hakuvahti" +msgid "Confirming saved search failed. Please try again." +msgstr "Bekräftelse av sparad sökning misslyckades. Försök igen." + +msgctxt "Hakuvahti" +msgid "Please confirm the saved search to receive notifications. Click on the button below." +msgstr "Bekräfta beställningen av sökvakten genom att klicka på knappen nedan." + +msgctxt "Hakuvahti" +msgid "Confirm saved search" +msgstr "Bekräfta sökvakten" + +msgctxt "Hakuvahti" +msgid "Are you sure you wish to delete the saved search?" +msgstr "Är du säker på att du vill ta bort sökvakten?" + +msgctxt "Hakuvahti" +msgid "Deleting failed" +msgstr "Radering misslyckades" + +msgid "Subscribe saved search" +msgstr "Beställ sökvakten" + +msgid "Confirm saved search" +msgstr "Bekräfta sökvakten" + +msgid "Are you sure you wish to delete the saved search?" +msgstr "Är du säker på att du vill ta bort sökvakten?" diff --git a/public/modules/custom/helfi_rekry_content/src/Entity/JobListing.php b/public/modules/custom/helfi_rekry_content/src/Entity/JobListing.php index 223250a4..338d86cf 100644 --- a/public/modules/custom/helfi_rekry_content/src/Entity/JobListing.php +++ b/public/modules/custom/helfi_rekry_content/src/Entity/JobListing.php @@ -31,7 +31,7 @@ public function getJobDescription() : string { */ public function getOrganizationName() : string { if (!$this->get('field_organization_override')->first()) { - return $this->get('field_organization_name')->value; + return $this->get('field_organization_name')->value ?? ''; } $storage = $this->entityTypeManager() @@ -41,11 +41,11 @@ public function getOrganizationName() : string { $organization_entity = $storage->load($this->get('field_organization_override')->first()->target_id); if (!$organization_entity->hasTranslation($this->get('langcode')->value)) { - return $organization_entity->getName(); + return $organization_entity->getName() ?? ''; } $translated_organization_entity = $organization_entity->getTranslation($this->get('langcode')->value); - return $translated_organization_entity->getName(); + return $translated_organization_entity->getName() ?? ''; } /** diff --git a/public/sites/default/all.settings.php b/public/sites/default/all.settings.php index 1ea638a8..d23b71f4 100644 --- a/public/sites/default/all.settings.php +++ b/public/sites/default/all.settings.php @@ -68,6 +68,7 @@ 'ELASTIC_PASSWORD', 'SENTRY_DSN_REACT', 'HELBIT_CLIENT_ID', + 'HAKUVAHTI_URL', ]; foreach ($additionalEnvVars as $var) { $preflight_checks['environmentVariables'][] = $var; diff --git a/public/themes/custom/hdbt_subtheme/dist/css/styles.min.css b/public/themes/custom/hdbt_subtheme/dist/css/styles.min.css index c2b81b4a..96cd17ca 100644 --- a/public/themes/custom/hdbt_subtheme/dist/css/styles.min.css +++ b/public/themes/custom/hdbt_subtheme/dist/css/styles.min.css @@ -1 +1 @@ -.job-listing__organization-name{--line-height: 1.5555555556;font-size:1.125rem;font-weight:400;line-height:var(--line-height);display:flex;margin-top:16px}@media(min-width: 768px){.job-listing__organization-name{margin-top:24px}}.organization{display:flex;margin-right:8px;position:relative}.organization::after{content:","}.organization:last-child{margin-right:0}.organization:last-child::after{display:none}.job-listing__item{padding-left:16px;padding-right:16px}@media(min-width: 768px){.job-listing__item{padding-left:32px;padding-right:32px}}.job-listing__link-wrapper{margin-top:16px}@media(min-width: 768px){.job-listing__link-wrapper{margin-top:24px}}.job-listing__link-wrapper.job-listing__link-wrapper--last{margin-top:32px}@media(min-width: 768px){.job-listing__link-wrapper.job-listing__link-wrapper--last{margin-top:48px}}.job-listing__link{width:100%}@media(min-width: 768px){.job-listing__link{width:auto}}.job-listing__job-description{--line-height: 1.5555555556;font-size:1.125rem;font-weight:400;line-height:var(--line-height);margin-top:16px}@media(min-width: 768px){.job-listing__job-description{margin-top:48px}}.job-listing__job-description p:first-child{margin-top:0}.job-listing__salary-class__content{--line-height: 1.5555555556;font-size:1.125rem;font-weight:400;line-height:var(--line-height)}.job-listing__sidebar{background-color:var(--hdbt-color-palette--secondary)}.job-listing__organization-information,.job-listing__city-description{padding:24px}.job-listing__image img{display:block;height:auto;max-width:100%;overflow:hidden}.job-listing__image .image-placeholder{padding-bottom:66.67%}.job-listing__organization,.job-listing__city-description-title{--line-height: 1.5;font-size:1rem;font-weight:700;line-height:var(--line-height);margin-top:0}@media(min-width: 992px){.job-listing__organization,.job-listing__city-description-title{--line-height: 1.5555555556;font-size:1.125rem;font-weight:700}}.job-listing__organization-description,.job-listing__city-description-text{--line-height: 1.5;font-size:1rem;font-weight:400;line-height:var(--line-height);margin-top:8px}.job-listing__organization-description p:first-child,.job-listing__city-description-text p:first-child{margin-top:0}.node--type-job-listing .component--remote-video{margin-top:32px}@media(min-width: 992px){.node--type-job-listing .component--remote-video{margin-top:48px}}.node--type-job-listing.node--view-mode-full .content-tags{margin-top:24px}.block--of-interest{background-color:#e6e6e6;padding:80px 0;margin-top:64px;margin-bottom:calc((50px + 48px)*-1)}.block--of-interest .block--of-interest__content-container{max-width:1296px;padding-left:16px;padding-right:16px;margin:auto}@media(min-width: 768px){.block--of-interest .block--of-interest__content-container{max-width:1328px}}@media(min-width: 768px){.block--of-interest .block--of-interest__content-container{padding-left:32px;padding-right:32px}}.block--of-interest h2{margin-bottom:48px;margin-top:0}.block--of-interest .block--of-interest__more-link{margin-top:48px}.component--job-listing-search{background-color:#f7f7f8}.layout-main-wrapper>*:last-child .component--job-listing-search:last-child{margin-bottom:-115px;padding-bottom:55px}.job-listing-search__result-actions{align-items:flex-end;display:flex;justify-content:space-between}.component--job-listing-search .component__container{padding-bottom:32px;padding-top:32px}@media(min-width: 768px){.component--job-listing-search .component__container{padding-bottom:64px;padding-top:64px}}.job-listing-search__count-container{--line-height: 1.5;font-size:1.25rem;font-weight:400;line-height:var(--line-height);margin-bottom:16px}@media(min-width: 992px){.job-listing-search__count-container{--line-height: 1.5;font-size:1.375rem;font-weight:400}}@media(min-width: 992px){.job-listing-search__count-container{margin-bottom:0}}.job-listing-search__count-container .job-listing-search__count{font-weight:700}.job-listing-search__sort{min-width:283px}.job-listing-search__result--list{margin-top:24px}@media(min-width: 768px){.job-listing-search__result--list{margin-top:32px}}.job-search-form{margin-bottom:32px}.job-search-form__title{margin-bottom:32px}@media(min-width: 992px){.job-search-form__dropdowns__upper{margin-left:-12px;margin-right:-12px;display:flex}.job-search-form__dropdowns__upper>*{margin-left:12px;margin-right:12px}}.job-search-form__dropdown li+li{margin-top:0}@media(min-width: 992px){.job-search-form__dropdown--upper{width:50%}}.job-search-form__filter{margin-bottom:16px;width:100%}@media(min-width: 992px){.job-search-form__filter{margin-bottom:24px}}.job-search-form__checkboxes{border:none;margin-bottom:16px;padding:0}@media(min-width: 992px){.job-search-form__checkboxes{display:flex}}fieldset .job-search-form__checkbox{--background-selected: var(--hdbt-color-black)}fieldset .job-search-form__checkbox:not(:first-of-type){margin-top:32px}@media(min-width: 992px){fieldset .job-search-form__checkbox:not(:first-of-type){margin-left:16px;margin-top:0}}.job-search-form__checkboxes-legend,.job-search__no-results__heading{--line-height: 1.5;font-size:1rem;font-weight:700;line-height:var(--line-height);margin-bottom:16px}@media(min-width: 992px){.job-search-form__checkboxes-legend,.job-search__no-results__heading{--line-height: 1.5555555556;font-size:1.125rem;font-weight:700}}.job-search-form__selections-container{list-style-type:none}button.job-search-form__remove-selection-button:not(:disabled){background-color:rgba(0,0,0,0);border:1px solid #000;border-radius:48px;padding:12px 20px 12px;--color-hover-focus: var(--hdbt-text-color);color:var(--hdbt-color-black)}button.job-search-form__remove-selection-button:not(:disabled):hover,button.job-search-form__remove-selection-button:not(:disabled):active{background-color:#000;border-color:#000;color:#fff}button.job-search-form__remove-selection-button:not(:disabled):focus,button.job-search-form__remove-selection-button:not(:disabled):active{border-color:#000;outline:2px solid #000;outline-offset:2px}.job-search-form__remove-selection-button span{padding:0}.job-search-form__selections-wrapper button.job-search-form__remove-selection-button>div{margin-right:0}.job-search-form__clear-all{margin-top:0}.job-search-form__clear-all .job-search-form__clear-all-button{--background-color-hover: transparent;--background-color-focus: transparent;--background-color-hover-focus: transparent;--border-color-hover: var(--hdbt-color-black);--border-color-focus: var(--hdbt-color-black);--border-color-hover-focus: var(--hdbt-color-black);--color: var(--hdbt-color-black);--color-hover: var(--hdbt-color-black);--color-focus: var(--hdbt-color-black);--color-hover-focus: var(--hdbt-color-black);--focus-outline-color: var(--hdbt-color-black)}.job-search__results-stats{margin-bottom:32px;margin-left:16px;margin-right:16px}@media(min-width: 992px){.job-search__results-stats{align-items:flex-end;display:flex;justify-content:space-between}} +.job-listing__organization-name{--line-height: 1.5555555556;font-size:1.125rem;font-weight:400;line-height:var(--line-height);display:flex;margin-top:16px}@media(min-width: 768px){.job-listing__organization-name{margin-top:24px}}.organization{display:flex;margin-right:8px;position:relative}.organization::after{content:","}.organization:last-child{margin-right:0}.organization:last-child::after{display:none}.job-listing__item{padding-left:16px;padding-right:16px}@media(min-width: 768px){.job-listing__item{padding-left:32px;padding-right:32px}}.job-listing__link-wrapper{margin-top:16px}@media(min-width: 768px){.job-listing__link-wrapper{margin-top:24px}}.job-listing__link-wrapper.job-listing__link-wrapper--last{margin-top:32px}@media(min-width: 768px){.job-listing__link-wrapper.job-listing__link-wrapper--last{margin-top:48px}}.job-listing__link{width:100%}@media(min-width: 768px){.job-listing__link{width:auto}}.job-listing__job-description{--line-height: 1.5555555556;font-size:1.125rem;font-weight:400;line-height:var(--line-height);margin-top:16px}@media(min-width: 768px){.job-listing__job-description{margin-top:48px}}.job-listing__job-description p:first-child{margin-top:0}.job-listing__salary-class__content{--line-height: 1.5555555556;font-size:1.125rem;font-weight:400;line-height:var(--line-height)}.job-listing__sidebar{background-color:var(--hdbt-color-palette--secondary)}.job-listing__organization-information,.job-listing__city-description{padding:24px}.job-listing__image img{display:block;height:auto;max-width:100%;overflow:hidden}.job-listing__image .image-placeholder{padding-bottom:66.67%}.job-listing__organization,.job-listing__city-description-title{--line-height: 1.5;font-size:1rem;font-weight:700;line-height:var(--line-height);margin-top:0}@media(min-width: 992px){.job-listing__organization,.job-listing__city-description-title{--line-height: 1.5555555556;font-size:1.125rem;font-weight:700}}.job-listing__organization-description,.job-listing__city-description-text{--line-height: 1.5;font-size:1rem;font-weight:400;line-height:var(--line-height);margin-top:8px}.job-listing__organization-description p:first-child,.job-listing__city-description-text p:first-child{margin-top:0}.node--type-job-listing .component--remote-video{margin-top:32px}@media(min-width: 992px){.node--type-job-listing .component--remote-video{margin-top:48px}}.node--type-job-listing.node--view-mode-full .content-tags{margin-top:24px}.block--of-interest{background-color:#e6e6e6;padding:80px 0;margin-top:64px;margin-bottom:calc((50px + 48px)*-1)}.block--of-interest .block--of-interest__content-container{max-width:1296px;padding-left:16px;padding-right:16px;margin:auto}@media(min-width: 768px){.block--of-interest .block--of-interest__content-container{max-width:1328px}}@media(min-width: 768px){.block--of-interest .block--of-interest__content-container{padding-left:32px;padding-right:32px}}.block--of-interest h2{margin-bottom:48px;margin-top:0}.block--of-interest .block--of-interest__more-link{margin-top:48px}.component--job-listing-search{background-color:#f7f7f8}.layout-main-wrapper>*:last-child .component--job-listing-search:last-child{margin-bottom:-115px;padding-bottom:55px}.job-listing-search__result-actions{align-items:flex-end;display:flex;justify-content:space-between}.component--job-listing-search .component__container{padding-bottom:32px;padding-top:32px}@media(min-width: 768px){.component--job-listing-search .component__container{padding-bottom:64px;padding-top:64px}}.job-listing-search__count-container{--line-height: 1.5;font-size:1.25rem;font-weight:400;line-height:var(--line-height);margin-bottom:16px}@media(min-width: 992px){.job-listing-search__count-container{--line-height: 1.5;font-size:1.375rem;font-weight:400}}@media(min-width: 992px){.job-listing-search__count-container{margin-bottom:0}}.job-listing-search__count-container .job-listing-search__count{font-weight:700}.job-listing-search__sort{min-width:283px}.job-listing-search__result--list{margin-top:24px}@media(min-width: 768px){.job-listing-search__result--list{margin-top:32px}}.job-search-form{margin-bottom:32px}.job-search-form__title{margin-bottom:32px}@media(min-width: 992px){.job-search-form__dropdowns__upper{margin-left:-12px;margin-right:-12px;display:flex}.job-search-form__dropdowns__upper>*{margin-left:12px;margin-right:12px}}.job-search-form__dropdown li+li{margin-top:0}@media(min-width: 992px){.job-search-form__dropdown--upper{width:50%}}.job-search-form__filter{margin-bottom:16px;width:100%}@media(min-width: 992px){.job-search-form__filter{margin-bottom:24px}}.job-search-form__checkboxes{border:none;margin-bottom:16px;padding:0}@media(min-width: 992px){.job-search-form__checkboxes{display:flex}}fieldset .job-search-form__checkbox{--background-selected: var(--hdbt-color-black)}fieldset .job-search-form__checkbox:not(:first-of-type){margin-top:32px}@media(min-width: 992px){fieldset .job-search-form__checkbox:not(:first-of-type){margin-left:16px;margin-top:0}}.job-search-form__checkboxes-legend,.job-search__no-results__heading{--line-height: 1.5;font-size:1rem;font-weight:700;line-height:var(--line-height);margin-bottom:16px}@media(min-width: 992px){.job-search-form__checkboxes-legend,.job-search__no-results__heading{--line-height: 1.5555555556;font-size:1.125rem;font-weight:700}}.job-search-form__selections-container{list-style-type:none}button.job-search-form__remove-selection-button:not(:disabled){background-color:rgba(0,0,0,0);border:1px solid #000;border-radius:48px;padding:12px 20px 12px;--color-hover-focus: var(--hdbt-text-color);color:var(--hdbt-color-black)}button.job-search-form__remove-selection-button:not(:disabled):hover,button.job-search-form__remove-selection-button:not(:disabled):active{background-color:#000;border-color:#000;color:#fff}button.job-search-form__remove-selection-button:not(:disabled):focus,button.job-search-form__remove-selection-button:not(:disabled):active{border-color:#000;outline:2px solid #000;outline-offset:2px}.job-search-form__remove-selection-button span{padding:0}.job-search-form__selections-wrapper button.job-search-form__remove-selection-button>div{margin-right:0}.job-search-form__clear-all{margin-top:0}.job-search-form__clear-all .job-search-form__clear-all-button{--background-color-hover: transparent;--background-color-focus: transparent;--background-color-hover-focus: transparent;--border-color-hover: var(--hdbt-color-black);--border-color-focus: var(--hdbt-color-black);--border-color-hover-focus: var(--hdbt-color-black);--color: var(--hdbt-color-black);--color-hover: var(--hdbt-color-black);--color-focus: var(--hdbt-color-black);--color-hover-focus: var(--hdbt-color-black);--focus-outline-color: var(--hdbt-color-black)}.job-search-form__search-monitor{margin-bottom:32px}.job-search-form__search-monitor div[role=heading]{flex:0 1 auto}.job-search-form__search-monitor{background-color:var(--color-fog-light);padding:32px}.job-search-form__search-monitor__heading{margin-top:0}.job-search-form__search-monitor__content>p{--line-height: 1.5555555556;font-size:1.125rem;font-weight:400;line-height:var(--line-height)}.job-search-form__search-monitor__content[aria-hidden=true]{display:none}.job-search-form__search-monitor__content__heading{margin-top:32px}.job-search-form__search-monitor__terms::after{content:"*";margin-left:8px}.job-search-form__search-monitor__error{margin-top:32px}.job-search__results-stats{margin-bottom:32px;margin-left:16px;margin-right:16px}@media(min-width: 992px){.job-search__results-stats{align-items:flex-end;display:flex;justify-content:space-between}}.hakuvahti-confirmation .components{margin-top:24px}.hakuvahti-confirmation p{--line-height: 1.5;font-size:1.25rem;font-weight:400;line-height:var(--line-height)}@media(min-width: 992px){.hakuvahti-confirmation p{--line-height: 1.5;font-size:1.375rem;font-weight:400}}.hakuvahti-confirmation p:first-child{margin-top:0}.hakuvahti-confirmation .page-divider{padding-left:0}.hakuvahti-confirmation .form-submit{margin-top:32px}@media(min-width: 768px){.hakuvahti-confirmation .form-submit{margin-top:64px}} diff --git a/public/themes/custom/hdbt_subtheme/package-lock.json b/public/themes/custom/hdbt_subtheme/package-lock.json index 86ad78ed..41dc7916 100644 --- a/public/themes/custom/hdbt_subtheme/package-lock.json +++ b/public/themes/custom/hdbt_subtheme/package-lock.json @@ -3343,9 +3343,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001596", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001596.tgz", - "integrity": "sha512-zpkZ+kEr6We7w63ORkoJ2pOfBwBkY/bJrG/UZ90qNb45Isblu8wzDgevEOrRL1r9dWayHjYiiyCMEXPn4DweGQ==", + "version": "1.0.30001621", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001621.tgz", + "integrity": "sha512-+NLXZiviFFKX0fk8Piwv3PfLPGtRqJeq2TiNoUff/qB5KJgwecJTvCXDpmlyP/eCI/GUEmp/h/y5j0yckiiZrA==", "funding": [ { "type": "opencollective", diff --git a/public/themes/custom/hdbt_subtheme/src/scss/06_components/__index.scss b/public/themes/custom/hdbt_subtheme/src/scss/06_components/__index.scss index 336d7260..884e9cda 100644 --- a/public/themes/custom/hdbt_subtheme/src/scss/06_components/__index.scss +++ b/public/themes/custom/hdbt_subtheme/src/scss/06_components/__index.scss @@ -1,3 +1,4 @@ @import 'pages/_index'; @import 'block/_index'; @import 'paragraphs/_index'; +@import 'forms/_index'; diff --git a/public/themes/custom/hdbt_subtheme/src/scss/06_components/forms/__index.scss b/public/themes/custom/hdbt_subtheme/src/scss/06_components/forms/__index.scss new file mode 100644 index 00000000..494772fc --- /dev/null +++ b/public/themes/custom/hdbt_subtheme/src/scss/06_components/forms/__index.scss @@ -0,0 +1 @@ +@import 'hakuvahti-confirmation'; diff --git a/public/themes/custom/hdbt_subtheme/src/scss/06_components/forms/_hakuvahti-confirmation.scss b/public/themes/custom/hdbt_subtheme/src/scss/06_components/forms/_hakuvahti-confirmation.scss new file mode 100644 index 00000000..3f3ae7da --- /dev/null +++ b/public/themes/custom/hdbt_subtheme/src/scss/06_components/forms/_hakuvahti-confirmation.scss @@ -0,0 +1,25 @@ +.hakuvahti-confirmation { + .components { + margin-top: $spacing-and-half; + } + + p { + @include font('lead'); + } + + p:first-child { + margin-top: 0; + } + + .page-divider { + padding-left: 0; + } + + .form-submit { + margin-top: $spacing-double; + + @include breakpoint($breakpoint-m) { + margin-top: $spacing-quadruple; + } + } +} diff --git a/public/themes/custom/hdbt_subtheme/src/scss/06_components/paragraphs/_job-listing-search.scss b/public/themes/custom/hdbt_subtheme/src/scss/06_components/paragraphs/_job-listing-search.scss index d73a9cee..2e8428fa 100644 --- a/public/themes/custom/hdbt_subtheme/src/scss/06_components/paragraphs/_job-listing-search.scss +++ b/public/themes/custom/hdbt_subtheme/src/scss/06_components/paragraphs/_job-listing-search.scss @@ -159,6 +159,47 @@ button.job-search-form__remove-selection-button:not(:disabled) { --focus-outline-color: var(--hdbt-color-black); } +.job-search-form__search-monitor { + margin-bottom: $spacing-double; + + div[role=heading] { + flex: 0 1 auto; + } +} + +.job-search-form__search-monitor { + background-color: var(--color-fog-light); + padding: $spacing-double; +} + +.job-search-form__search-monitor__heading { + margin-top: 0; +} + +.job-search-form__search-monitor__content { + > p { + @include font('body'); + } + + &[aria-hidden='true'] { + display: none; + } +} + +.job-search-form__search-monitor__content__heading { + margin-top: $spacing-double; +} + +// The terms are required but there is no indicator on the label. This is why the '*' is added here. +.job-search-form__search-monitor__terms::after { + content: '*'; + margin-left: $spacing-half; +} + +.job-search-form__search-monitor__error { + margin-top: $spacing-double; +} + .job-search__results-stats { margin-bottom: $spacing-double; margin-left: $spacing; diff --git a/public/themes/custom/hdbt_subtheme/templates/module/helfi_hakuvahti/form--hakuvahti-confirm-form.html.twig b/public/themes/custom/hdbt_subtheme/templates/module/helfi_hakuvahti/form--hakuvahti-confirm-form.html.twig new file mode 100644 index 00000000..d5db4b6e --- /dev/null +++ b/public/themes/custom/hdbt_subtheme/templates/module/helfi_hakuvahti/form--hakuvahti-confirm-form.html.twig @@ -0,0 +1 @@ +{% include "@hdbt_subtheme/module/helfi_hakuvahti/hakuvahti-action-wrapper.twig" with { content: children } %} diff --git a/public/themes/custom/hdbt_subtheme/templates/module/helfi_hakuvahti/form--hakuvahti-unsubscribe-form.html.twig b/public/themes/custom/hdbt_subtheme/templates/module/helfi_hakuvahti/form--hakuvahti-unsubscribe-form.html.twig new file mode 100644 index 00000000..d5db4b6e --- /dev/null +++ b/public/themes/custom/hdbt_subtheme/templates/module/helfi_hakuvahti/form--hakuvahti-unsubscribe-form.html.twig @@ -0,0 +1 @@ +{% include "@hdbt_subtheme/module/helfi_hakuvahti/hakuvahti-action-wrapper.twig" with { content: children } %} diff --git a/public/themes/custom/hdbt_subtheme/templates/module/helfi_hakuvahti/hakuvahti-action-wrapper.twig b/public/themes/custom/hdbt_subtheme/templates/module/helfi_hakuvahti/hakuvahti-action-wrapper.twig new file mode 100644 index 00000000..191d5060 --- /dev/null +++ b/public/themes/custom/hdbt_subtheme/templates/module/helfi_hakuvahti/hakuvahti-action-wrapper.twig @@ -0,0 +1,12 @@ +
+
+ {% embed "@hdbt/misc/component.twig" with { component_classes: 'component--hakuvahti-form'} %} + {% block component_content %} + {% if message %} + {% include "@hdbt_subtheme/module/helfi_hakuvahti/hakuvahti-message-wrapper.twig" with { message: message } %} + {% endif %} + {{ content }} + {% endblock component_content %} + {% endembed %} +
+
diff --git a/public/themes/custom/hdbt_subtheme/templates/module/helfi_hakuvahti/hakuvahti-confirmation.html.twig b/public/themes/custom/hdbt_subtheme/templates/module/helfi_hakuvahti/hakuvahti-confirmation.html.twig new file mode 100644 index 00000000..384d6aa0 --- /dev/null +++ b/public/themes/custom/hdbt_subtheme/templates/module/helfi_hakuvahti/hakuvahti-confirmation.html.twig @@ -0,0 +1,7 @@ +{% if link_text and link_url %} + {% set link %} +

{{ link_text }}

+ {% endset %} +{% endif %} + +{% include "@hdbt_subtheme/module/helfi_hakuvahti/hakuvahti-action-wrapper.twig" with { message: message, content: link, } %} diff --git a/public/themes/custom/hdbt_subtheme/templates/module/helfi_hakuvahti/hakuvahti-form.html.twig b/public/themes/custom/hdbt_subtheme/templates/module/helfi_hakuvahti/hakuvahti-form.html.twig new file mode 100644 index 00000000..04141008 --- /dev/null +++ b/public/themes/custom/hdbt_subtheme/templates/module/helfi_hakuvahti/hakuvahti-form.html.twig @@ -0,0 +1,6 @@ +{% block content %} + {% include "@hdbt_subtheme/module/helfi_hakuvahti/hakuvahti-message-wrapper.twig" with { message: message } %} +
+ +
+{% endblock %} diff --git a/public/themes/custom/hdbt_subtheme/templates/module/helfi_hakuvahti/hakuvahti-message-wrapper.twig b/public/themes/custom/hdbt_subtheme/templates/module/helfi_hakuvahti/hakuvahti-message-wrapper.twig new file mode 100644 index 00000000..6a851581 --- /dev/null +++ b/public/themes/custom/hdbt_subtheme/templates/module/helfi_hakuvahti/hakuvahti-message-wrapper.twig @@ -0,0 +1,2 @@ +

{{ message }}

+