Skip to content

Commit a39d7b7

Browse files
committed
refactor(dav): inject l10n for placeholder titles
Signed-off-by: Jaggob <37583151+Jaggob@users.noreply.github.com>
1 parent 69d901e commit a39d7b7

File tree

3 files changed

+25
-12
lines changed

3 files changed

+25
-12
lines changed

lib/DAV/Calendar.php

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
use OCA\Deck\Db\Board;
1313
use OCA\Deck\Db\Card;
1414
use OCA\Deck\Db\Stack;
15+
use OCP\IL10N;
1516
use OCP\IRequest;
1617
use Sabre\CalDAV\CalendarQueryValidator;
1718
use Sabre\CalDAV\Xml\Property\SupportedCalendarComponentSet;
@@ -35,14 +36,17 @@ class Calendar extends ExternalCalendar {
3536
private $stack;
3637
/** @var IRequest|null */
3738
private $request;
39+
/** @var IL10N|null */
40+
private $l10n;
3841

39-
public function __construct(string $principalUri, string $calendarUri, Board $board, DeckCalendarBackend $backend, ?Stack $stack = null, ?IRequest $request = null) {
42+
public function __construct(string $principalUri, string $calendarUri, Board $board, DeckCalendarBackend $backend, ?Stack $stack = null, ?IRequest $request = null, ?IL10N $l10n = null) {
4043
parent::__construct('deck', $calendarUri);
4144

4245
$this->backend = $backend;
4346
$this->board = $board;
4447
$this->stack = $stack;
4548
$this->request = $request;
49+
$this->l10n = $l10n;
4650

4751
$this->principalUri = $principalUri;
4852
}
@@ -462,12 +466,12 @@ private function isDirectObjectReadRequest(): bool {
462466
}
463467

464468
private function translatePlaceholderTitle(string $text): string {
465-
if (!class_exists('\OC')) {
469+
if ($this->l10n === null) {
466470
return $text;
467471
}
468472

469473
try {
470-
return \OC::$server->getL10N('deck')->t($text);
474+
return $this->l10n->t($text);
471475
} catch (\Throwable $e) {
472476
return $text;
473477
}

lib/DAV/CalendarPlugin.php

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
use OCA\DAV\CalDAV\Integration\ICalendarProvider;
1212
use OCA\Deck\Db\Board;
1313
use OCA\Deck\Service\ConfigService;
14+
use OCP\IL10N;
1415
use OCP\IRequest;
1516
use Sabre\DAV\Exception\NotFound;
1617

@@ -24,11 +25,14 @@ class CalendarPlugin implements ICalendarProvider {
2425
private $calendarIntegrationEnabled;
2526
/** @var IRequest */
2627
private $request;
28+
/** @var IL10N */
29+
private $l10n;
2730

28-
public function __construct(DeckCalendarBackend $backend, ConfigService $configService, IRequest $request) {
31+
public function __construct(DeckCalendarBackend $backend, ConfigService $configService, IRequest $request, IL10N $l10n) {
2932
$this->backend = $backend;
3033
$this->configService = $configService;
3134
$this->request = $request;
35+
$this->l10n = $l10n;
3236
$this->calendarIntegrationEnabled = $configService->get('calendar');
3337
}
3438

@@ -47,14 +51,14 @@ public function fetchAllForCalendarHome(string $principalUri): array {
4751
$calendars = [];
4852
foreach ($boards as $board) {
4953
foreach ($this->backend->getStacks($board->getId()) as $stack) {
50-
$calendars[] = new Calendar($principalUri, 'stack-' . $stack->getId(), $board, $this->backend, $stack, $this->request);
54+
$calendars[] = new Calendar($principalUri, 'stack-' . $stack->getId(), $board, $this->backend, $stack, $this->request, $this->l10n);
5155
}
5256
}
5357
return $calendars;
5458
}
5559

5660
return array_map(function (Board $board) use ($principalUri) {
57-
return new Calendar($principalUri, 'board-' . $board->getId(), $board, $this->backend, null, $this->request);
61+
return new Calendar($principalUri, 'board-' . $board->getId(), $board, $this->backend, null, $this->request, $this->l10n);
5862
}, $boards);
5963
}
6064

@@ -100,7 +104,7 @@ private function resolveCalendar(string $principalUri, string $calendarUri): ?Ex
100104
if ($board === null) {
101105
return null;
102106
}
103-
return new Calendar($principalUri, $normalizedCalendarUri, $board, $this->backend, $stack, $this->request);
107+
return new Calendar($principalUri, $normalizedCalendarUri, $board, $this->backend, $stack, $this->request, $this->l10n);
104108
}
105109

106110
if (!$perListMode && str_starts_with($normalizedCalendarUri, 'board-')) {
@@ -109,7 +113,7 @@ private function resolveCalendar(string $principalUri, string $calendarUri): ?Ex
109113
if ($board === null) {
110114
return null;
111115
}
112-
return new Calendar($principalUri, $normalizedCalendarUri, $board, $this->backend, null, $this->request);
116+
return new Calendar($principalUri, $normalizedCalendarUri, $board, $this->backend, null, $this->request, $this->l10n);
113117
}
114118
} catch (NotFound $e) {
115119
// We can just return null if we have no matching board/stack

tests/unit/DAV/CalendarPluginTest.php

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
use OCA\Deck\Db\Board;
1111
use OCA\Deck\Db\Stack;
1212
use OCA\Deck\Service\ConfigService;
13+
use OCP\IL10N;
1314
use OCP\IRequest;
1415
use Test\TestCase;
1516

@@ -19,6 +20,7 @@ public function testHasCalendarInCalendarHomeNormalizesAppGeneratedBoardUri(): v
1920
$backend = $this->createMock(DeckCalendarBackend::class);
2021
$configService = $this->createMock(ConfigService::class);
2122
$request = $this->createMock(IRequest::class);
23+
$l10n = $this->createMock(IL10N::class);
2224

2325
$configService->method('get')->with('calendar')->willReturn(true);
2426
$configService->method('getCalDavListMode')->willReturn(ConfigService::SETTING_CALDAV_LIST_MODE_ROOT_TASKS);
@@ -31,7 +33,7 @@ public function testHasCalendarInCalendarHomeNormalizesAppGeneratedBoardUri(): v
3133
->method('getBoards')
3234
->willReturn([$board]);
3335

34-
$plugin = new CalendarPlugin($backend, $configService, $request);
36+
$plugin = new CalendarPlugin($backend, $configService, $request, $l10n);
3537

3638
$this->assertTrue(
3739
$plugin->hasCalendarInCalendarHome('principals/users/admin', 'app-generated--deck--board-2')
@@ -42,6 +44,7 @@ public function testGetCalendarInCalendarHomeNormalizesAppGeneratedStackUri(): v
4244
$backend = $this->createMock(DeckCalendarBackend::class);
4345
$configService = $this->createMock(ConfigService::class);
4446
$request = $this->createMock(IRequest::class);
47+
$l10n = $this->createMock(IL10N::class);
4548

4649
$configService->method('get')->with('calendar')->willReturn(true);
4750
$configService->method('getCalDavListMode')->willReturn(ConfigService::SETTING_CALDAV_LIST_MODE_PER_LIST_CALENDAR);
@@ -64,7 +67,7 @@ public function testGetCalendarInCalendarHomeNormalizesAppGeneratedStackUri(): v
6467
->method('getBoards')
6568
->willReturn([$board]);
6669

67-
$plugin = new CalendarPlugin($backend, $configService, $request);
70+
$plugin = new CalendarPlugin($backend, $configService, $request, $l10n);
6871

6972
$calendar = $plugin->getCalendarInCalendarHome('principals/users/admin', 'app-generated--deck--stack-5');
7073

@@ -75,6 +78,7 @@ public function testHasCalendarInCalendarHomeReturnsFalseForDisabledBoardUri():
7578
$backend = $this->createMock(DeckCalendarBackend::class);
7679
$configService = $this->createMock(ConfigService::class);
7780
$request = $this->createMock(IRequest::class);
81+
$l10n = $this->createMock(IL10N::class);
7882

7983
$configService->method('get')->with('calendar')->willReturn(true);
8084
$configService->method('getCalDavListMode')->willReturn(ConfigService::SETTING_CALDAV_LIST_MODE_ROOT_TASKS);
@@ -87,7 +91,7 @@ public function testHasCalendarInCalendarHomeReturnsFalseForDisabledBoardUri():
8791
->method('getBoards')
8892
->willReturn([$board]);
8993

90-
$plugin = new CalendarPlugin($backend, $configService, $request);
94+
$plugin = new CalendarPlugin($backend, $configService, $request, $l10n);
9195

9296
$this->assertFalse(
9397
$plugin->hasCalendarInCalendarHome('principals/users/admin', 'app-generated--deck--board-2')
@@ -98,6 +102,7 @@ public function testGetCalendarInCalendarHomeReturnsNullForDisabledStackBoard():
98102
$backend = $this->createMock(DeckCalendarBackend::class);
99103
$configService = $this->createMock(ConfigService::class);
100104
$request = $this->createMock(IRequest::class);
105+
$l10n = $this->createMock(IL10N::class);
101106

102107
$configService->method('get')->with('calendar')->willReturn(true);
103108
$configService->method('getCalDavListMode')->willReturn(ConfigService::SETTING_CALDAV_LIST_MODE_PER_LIST_CALENDAR);
@@ -118,7 +123,7 @@ public function testGetCalendarInCalendarHomeReturnsNullForDisabledStackBoard():
118123
->with(5)
119124
->willReturn($stack);
120125

121-
$plugin = new CalendarPlugin($backend, $configService, $request);
126+
$plugin = new CalendarPlugin($backend, $configService, $request, $l10n);
122127

123128
$this->assertNull(
124129
$plugin->getCalendarInCalendarHome('principals/users/admin', 'app-generated--deck--stack-5')

0 commit comments

Comments
 (0)