From 4a88b1659058e411825c61b1a9b55c264bb4e34f Mon Sep 17 00:00:00 2001 From: jekuaitk Date: Fri, 1 May 2026 13:37:25 +0200 Subject: [PATCH 1/2] Added first, middle and last name webform elements --- CHANGELOG.md | 1 + .../src/Element/NemidFirstName.php | 64 +++++++++++++++++++ .../src/Element/NemidLastName.php | 64 +++++++++++++++++++ .../src/Element/NemidMiddleName.php | 64 +++++++++++++++++++ .../Plugin/WebformElement/NemidFirstName.php | 29 +++++++++ .../Plugin/WebformElement/NemidLastName.php | 29 +++++++++ .../Plugin/WebformElement/NemidMiddleName.php | 29 +++++++++ 7 files changed, 280 insertions(+) create mode 100644 modules/os2forms_nemid/src/Element/NemidFirstName.php create mode 100644 modules/os2forms_nemid/src/Element/NemidLastName.php create mode 100644 modules/os2forms_nemid/src/Element/NemidMiddleName.php create mode 100644 modules/os2forms_nemid/src/Plugin/WebformElement/NemidFirstName.php create mode 100644 modules/os2forms_nemid/src/Plugin/WebformElement/NemidLastName.php create mode 100644 modules/os2forms_nemid/src/Plugin/WebformElement/NemidMiddleName.php diff --git a/CHANGELOG.md b/CHANGELOG.md index ff239913..47c891af 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ before starting to add changes. Use example [placed in the end of the page](#exa ## [Unreleased] +- Added NemID first name, middle name and last name webform elements. - [PR-322](https://github.com/OS2Forms/os2forms/pull/322) Update Digital Post handler error messages. - [PR-320](https://github.com/OS2Forms/os2forms/pull/320) diff --git a/modules/os2forms_nemid/src/Element/NemidFirstName.php b/modules/os2forms_nemid/src/Element/NemidFirstName.php new file mode 100644 index 00000000..22be1147 --- /dev/null +++ b/modules/os2forms_nemid/src/Element/NemidFirstName.php @@ -0,0 +1,64 @@ + [ + [$class, 'processNemidFirstName'], + [$class, 'processAjaxForm'], + ], + '#element_validate' => [ + [$class, 'validateNemidFirstName'], + ], + '#pre_render' => [ + [$class, 'preRenderNemidFirstName'], + ], + '#theme' => 'input__os2forms_nemid_first_name', + ]; + } + + /** + * Processes a 'os2forms_nemid_first_name' element. + */ + public static function processNemidFirstName(&$element, FormStateInterface $form_state, &$complete_form) { + // Here you can add and manipulate your element's properties and callbacks. + return $element; + } + + /** + * Webform element validation handler for #type 'os2forms_nemid_first_name'. + */ + public static function validateNemidFirstName(&$element, FormStateInterface $form_state, &$complete_form) { + // Here you can add custom validation logic. + } + + /** + * {@inheritdoc} + */ + public static function preRenderNemidFirstName(array $element) { + $element = parent::prerenderNemidElementBase($element); + static::setAttributes($element, ['form-text', 'os2forms-nemid-first-name']); + return $element; + } + +} diff --git a/modules/os2forms_nemid/src/Element/NemidLastName.php b/modules/os2forms_nemid/src/Element/NemidLastName.php new file mode 100644 index 00000000..251b1144 --- /dev/null +++ b/modules/os2forms_nemid/src/Element/NemidLastName.php @@ -0,0 +1,64 @@ + [ + [$class, 'processNemidLastName'], + [$class, 'processAjaxForm'], + ], + '#element_validate' => [ + [$class, 'validateNemidLastName'], + ], + '#pre_render' => [ + [$class, 'preRenderNemidLastName'], + ], + '#theme' => 'input__os2forms_nemid_last_name', + ]; + } + + /** + * Processes a 'os2forms_nemid_last_name' element. + */ + public static function processNemidLastName(&$element, FormStateInterface $form_state, &$complete_form) { + // Here you can add and manipulate your element's properties and callbacks. + return $element; + } + + /** + * Webform element validation handler for #type 'os2forms_nemid_last_name'. + */ + public static function validateNemidLastName(&$element, FormStateInterface $form_state, &$complete_form) { + // Here you can add custom validation logic. + } + + /** + * {@inheritdoc} + */ + public static function preRenderNemidLastName(array $element) { + $element = parent::prerenderNemidElementBase($element); + static::setAttributes($element, ['form-text', 'os2forms-nemid-last-name']); + return $element; + } + +} diff --git a/modules/os2forms_nemid/src/Element/NemidMiddleName.php b/modules/os2forms_nemid/src/Element/NemidMiddleName.php new file mode 100644 index 00000000..48c038ec --- /dev/null +++ b/modules/os2forms_nemid/src/Element/NemidMiddleName.php @@ -0,0 +1,64 @@ + [ + [$class, 'processNemidMiddleName'], + [$class, 'processAjaxForm'], + ], + '#element_validate' => [ + [$class, 'validateNemidMiddleName'], + ], + '#pre_render' => [ + [$class, 'preRenderNemidMiddleName'], + ], + '#theme' => 'input__os2forms_nemid_middle_name', + ]; + } + + /** + * Processes a 'os2forms_nemid_middle_name' element. + */ + public static function processNemidMiddleName(&$element, FormStateInterface $form_state, &$complete_form) { + // Here you can add and manipulate your element's properties and callbacks. + return $element; + } + + /** + * Webform element validation handler for #type 'os2forms_nemid_middle_name'. + */ + public static function validateNemidMiddleName(&$element, FormStateInterface $form_state, &$complete_form) { + // Here you can add custom validation logic. + } + + /** + * {@inheritdoc} + */ + public static function preRenderNemidMiddleName(array $element) { + $element = parent::prerenderNemidElementBase($element); + static::setAttributes($element, ['form-text', 'os2forms-nemid-middle-name']); + return $element; + } + +} diff --git a/modules/os2forms_nemid/src/Plugin/WebformElement/NemidFirstName.php b/modules/os2forms_nemid/src/Plugin/WebformElement/NemidFirstName.php new file mode 100644 index 00000000..1f0b2468 --- /dev/null +++ b/modules/os2forms_nemid/src/Plugin/WebformElement/NemidFirstName.php @@ -0,0 +1,29 @@ + Date: Fri, 1 May 2026 13:46:12 +0200 Subject: [PATCH 2/2] Update CHANGELOG --- CHANGELOG.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 47c891af..da4b1baf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,7 +11,8 @@ before starting to add changes. Use example [placed in the end of the page](#exa ## [Unreleased] -- Added NemID first name, middle name and last name webform elements. +- [PR-325](https://github.com/OS2Forms/os2forms/pull/325) + Added NemID first name, middle name and last name webform elements. - [PR-322](https://github.com/OS2Forms/os2forms/pull/322) Update Digital Post handler error messages. - [PR-320](https://github.com/OS2Forms/os2forms/pull/320)