diff --git a/helfi_hakuvahti.info.yml b/helfi_hakuvahti.info.yml index 599e61b..52cbb81 100644 --- a/helfi_hakuvahti.info.yml +++ b/helfi_hakuvahti.info.yml @@ -4,4 +4,4 @@ description: 'Drupal-integration for hakuvahti.' package: HELfi core_version_requirement: ^10 || ^11 'interface translation project': helfi_hakuvahti -'interface translation server pattern': modules/custom/helfi_hakuvahti/translations/%language.po +'interface translation server pattern': modules/contrib/helfi_hakuvahti/translations/%language.po diff --git a/helfi_hakuvahti.routing.yml b/helfi_hakuvahti.routing.yml index ccfa9a5..fc6d5e2 100644 --- a/helfi_hakuvahti.routing.yml +++ b/helfi_hakuvahti.routing.yml @@ -8,23 +8,23 @@ helfi_hakuvahti.subscribe: helfi_hakuvahti.confirm: path: '/hakuvahti/confirm' defaults: - _title: 'Saved search confirmation' _controller: '\Drupal\helfi_hakuvahti\Controller\HakuvahtiController::confirm' + _title_callback: '\Drupal\helfi_hakuvahti\Controller\HakuvahtiController::getConfirmationTitle' requirements: _permission: 'access content' helfi_hakuvahti.renew: path: '/hakuvahti/renew' defaults: - _title: 'Renew saved search' _controller: '\Drupal\helfi_hakuvahti\Controller\HakuvahtiController::renew' + _title_callback: '\Drupal\helfi_hakuvahti\Controller\HakuvahtiController::getRenewTitle' requirements: _permission: 'access content' helfi_hakuvahti.unsubscribe: path: '/hakuvahti/unsubscribe' defaults: - _title: 'Saved search deletion' _controller: '\Drupal\helfi_hakuvahti\Controller\HakuvahtiController::unsubscribe' + _title_callback: '\Drupal\helfi_hakuvahti\Controller\HakuvahtiController::getUnsubscribeTitle' requirements: _permission: 'access content' diff --git a/src/Controller/HakuvahtiController.php b/src/Controller/HakuvahtiController.php index 8738a50..13014dd 100644 --- a/src/Controller/HakuvahtiController.php +++ b/src/Controller/HakuvahtiController.php @@ -27,6 +27,36 @@ public function __construct( ) { } + /** + * A controller callback for confirm route that provides the route title. + * + * @return \Drupal\Core\StringTranslation\TranslatableMarkup + * The translated route title. + */ + public function getConfirmationTitle() { + return $this->t('Saved search confirmation', [], ['context' => 'Hakuvahti']); + } + + /** + * A controller callback for renew route that provides the route title. + * + * @return \Drupal\Core\StringTranslation\TranslatableMarkup + * The translated route title. + */ + public function getRenewTitle() { + return $this->t('Renew saved search', [], ['context' => 'Hakuvahti']); + } + + /** + * A controller callback for unsubscribe route that provides the route title. + * + * @return \Drupal\Core\StringTranslation\TranslatableMarkup + * The translated route title. + */ + public function getUnsubscribeTitle() { + return $this->t('Saved search deletion', [], ['context' => 'Hakuvahti']); + } + /** * Handles the confirmation of a saved search. * @@ -53,6 +83,11 @@ public function confirm(Request $request): array { 'subscription' => $subscription, ], ]), + '#cache' => [ + 'contexts' => [ + 'url', + ], + ], ]; } diff --git a/tests/src/Kernel/HakuvahtiControllerTest.php b/tests/src/Kernel/HakuvahtiControllerTest.php index 2483bbb..7910d40 100644 --- a/tests/src/Kernel/HakuvahtiControllerTest.php +++ b/tests/src/Kernel/HakuvahtiControllerTest.php @@ -5,6 +5,7 @@ namespace Drupal\Tests\helfi_hakuvahti\Kernel; use Drupal\Core\Url; +use Drupal\helfi_hakuvahti\Controller\HakuvahtiController; use Drupal\KernelTests\KernelTestBase; use Drupal\Tests\helfi_api_base\Traits\ApiTestTrait; use Drupal\Tests\user\Traits\UserCreationTrait; @@ -109,6 +110,16 @@ public function testRenewAndUnsubscribeRoutes(string $route, array $tests): void } } + /** + * Tests page titles. + */ + public function testTitle() : void { + $sut = HakuvahtiController::create($this->container); + $this->assertEquals('Renew saved search', $sut->getRenewTitle()); + $this->assertEquals('Saved search deletion', $sut->getUnsubscribeTitle()); + $this->assertEquals('Saved search confirmation', $sut->getConfirmationTitle()); + } + /** * Process a request. * @@ -135,7 +146,7 @@ private function makeRequest(string $method, string $route, array $query = []): /** * Data provider for testRenewAndUnsubscribeRoutes. */ - private function dataProvider(): array { + public static function dataProvider(): array { return [ [ 'helfi_hakuvahti.renew', diff --git a/translations/fi.po b/translations/fi.po index 27f8a51..aade81e 100644 --- a/translations/fi.po +++ b/translations/fi.po @@ -117,8 +117,10 @@ msgctxt "Hakuvahti" msgid "Save a new search for jobs" msgstr "Tilaa uusi avoimien työpaikkojen hakuvahti" +msgctxt "Hakuvahti" msgid "Saved search confirmation" msgstr "Hakuvahdin vahvistaminen" +msgctxt "Hakuvahti" msgid "Saved search deletion" msgstr "Hakuvahdin poistaminen" diff --git a/translations/sv.po b/translations/sv.po index 94f17ac..3cd02b1 100644 --- a/translations/sv.po +++ b/translations/sv.po @@ -117,8 +117,10 @@ msgctxt "Hakuvahti" msgid "Save a new search for jobs" msgstr "Beställ en ny sökvakt för lediga jobb" +msgctxt "Hakuvahti" msgid "Saved search confirmation" msgstr "Bekräftelse av sökvakten" +msgctxt "Hakuvahti" msgid "Saved search deletion" msgstr "Radering av sökvakten"