diff --git a/.github/workflows/pr.yaml b/.github/workflows/pr.yaml index f49785a..b1b2e5a 100644 --- a/.github/workflows/pr.yaml +++ b/.github/workflows/pr.yaml @@ -23,7 +23,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - php-versions: [ '8.1' ] + php-versions: [ '8.3' ] dependency-version: [ prefer-lowest, prefer-stable ] steps: - uses: actions/checkout@master @@ -55,7 +55,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - php-versions: [ '8.1' ] + php-versions: [ '8.3' ] dependency-version: [ prefer-lowest, prefer-stable ] steps: - uses: actions/checkout@master @@ -88,7 +88,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - php-versions: [ '8.1' ] + php-versions: [ '8.3' ] dependency-version: [ prefer-lowest, prefer-stable ] steps: - uses: actions/checkout@master diff --git a/CHANGELOG.md b/CHANGELOG.md index cc0fc3f..37cc89b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,11 @@ about writing changes to this log. ## [Unreleased] +## [1.4.0] 18.12.2024 + +* Normalized white space in filename. +* Added command for archiving submission. + ## [1.3.1] 09.12.2024 * Added webform ID to audit logging messages. @@ -51,7 +56,8 @@ about writing changes to this log. ## [1.0.0] 29.03.2023 -[Unreleased]: https://github.com/OS2Forms/os2forms_get_organized/compare/1.3.1...HEAD +[Unreleased]: https://github.com/OS2Forms/os2forms_get_organized/compare/1.4.0...HEAD +[1.4.0]: https://github.com/OS2Forms/os2forms_get_organized/compare/1.3.1...1.4.0 [1.3.1]: https://github.com/OS2Forms/os2forms_get_organized/compare/1.3.0...1.3.1 [1.3.0]: https://github.com/OS2Forms/os2forms_get_organized/compare/1.2.0...1.3.0 [1.2.0]: https://github.com/OS2Forms/os2forms_get_organized/compare/1.1.5...1.2.0 diff --git a/composer.json b/composer.json index 2e29561..849958c 100644 --- a/composer.json +++ b/composer.json @@ -18,7 +18,7 @@ } ], "require": { - "itk-dev/getorganized-api-client-php": "^1.2", + "itk-dev/getorganized-api-client-php": "^1.2.2", "drupal/webform": "^6.2", "drupal/advancedqueue": "^1.2", "symfony/options-resolver": "^5.4 || ^6.0", diff --git a/drush.services.yml b/drush.services.yml new file mode 100644 index 0000000..9114ab0 --- /dev/null +++ b/drush.services.yml @@ -0,0 +1,7 @@ +services: + drush_command_example.commands: + class: \Drupal\os2forms_get_organized\Commands\ArchiveCommands + tags: + - { name: drush.command } + arguments: + - '@Drupal\os2forms_get_organized\Helper\ArchiveHelper' diff --git a/src/Commands/ArchiveCommands.php b/src/Commands/ArchiveCommands.php new file mode 100644 index 0000000..8606fca --- /dev/null +++ b/src/Commands/ArchiveCommands.php @@ -0,0 +1,60 @@ +input(), $this->output()); + + /** @var \Drupal\webform\WebformSubmissionInterface|null $submission */ + $submission = WebformSubmission::load($submissionId); + + if (!$submission) { + $io->error(sprintf('Webform submission with id %s could not be found.', $submissionId)); + + return; + } + + try { + $handler = $submission->getWebform()->getHandler($handlerId); + } + catch (\Exception $e) { + $io->error($e->getMessage()); + + return; + } + + $handlerConfig = $handler->getConfiguration(); + + $this->archiveHelper->archive($submissionId, $handlerConfig['settings']); + + $io->success(sprintf('Successfully archived webform submission with id %s ', $submissionId)); + } + +} diff --git a/src/Helper/ArchiveHelper.php b/src/Helper/ArchiveHelper.php index 7f4b644..693cbe8 100644 --- a/src/Helper/ArchiveHelper.php +++ b/src/Helper/ArchiveHelper.php @@ -489,7 +489,10 @@ private function computeGetOrganizedFilename(string $filename, WebformSubmission $position = strrpos($filename, '.' . $fileExtension); // Inject the webform label and submission number at found position. - return substr_replace($filename, '-' . $webformLabel . '-' . $submissionNumber, $position, 0); + $filename = substr_replace($filename, '-' . $webformLabel . '-' . $submissionNumber, $position, 0); + + // Normalize white space. + return preg_replace('/[[:space:]]/', ' ', trim($filename)); } /**