Skip to content

Commit b314d92

Browse files
authored
Merge pull request #2885 from nextcloud/fix/context-navigation-load-additional-entries
feat(navigation): add LoadAdditionalEntriesListener
2 parents a70517e + 2a83012 commit b314d92

3 files changed

Lines changed: 23 additions & 25 deletions

File tree

lib/AppInfo/Application.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
use OCA\Tables\Event\ViewDeletedEvent;
1818
use OCA\Tables\Listener\AddMissingIndicesListener;
1919
use OCA\Tables\Listener\AnalyticsDatasourceListener;
20-
use OCA\Tables\Listener\BeforeTemplateRenderedListener;
20+
use OCA\Tables\Listener\LoadAdditionalEntriesListener;
2121
use OCA\Tables\Listener\LoadAdditionalListener;
2222
use OCA\Tables\Listener\ReceiverCleanupListener;
2323
use OCA\Tables\Listener\TablesReferenceListener;
@@ -39,11 +39,11 @@
3939
use OCP\AppFramework\Bootstrap\IBootContext;
4040
use OCP\AppFramework\Bootstrap\IBootstrap;
4141
use OCP\AppFramework\Bootstrap\IRegistrationContext;
42-
use OCP\AppFramework\Http\Events\BeforeTemplateRenderedEvent;
4342
use OCP\Collaboration\Reference\RenderReferenceEvent;
4443
use OCP\Collaboration\Resources\LoadAdditionalScriptsEvent;
4544
use OCP\DB\Events\AddMissingIndicesEvent;
4645
use OCP\Group\Events\GroupDeletedEvent;
46+
use OCP\Navigation\Events\LoadAdditionalEntriesEvent;
4747
use OCP\User\Events\BeforeUserDeletedEvent;
4848
use OCP\User\Events\UserDeletedEvent;
4949
use Psr\Container\ContainerInterface;
@@ -85,7 +85,7 @@ public function register(IRegistrationContext $context): void {
8585
$context->registerEventListener(BeforeUserDeletedEvent::class, UserDeletedListener::class);
8686
$context->registerEventListener(DatasourceEvent::class, AnalyticsDatasourceListener::class);
8787
$context->registerEventListener(RenderReferenceEvent::class, TablesReferenceListener::class);
88-
$context->registerEventListener(BeforeTemplateRenderedEvent::class, BeforeTemplateRenderedListener::class);
88+
$context->registerEventListener(LoadAdditionalEntriesEvent::class, LoadAdditionalEntriesListener::class);
8989
$context->registerEventListener(LoadAdditionalScriptsEvent::class, LoadAdditionalListener::class);
9090
$context->registerEventListener(TableDeletedEvent::class, WhenTableDeletedAuditLogListener::class);
9191
$context->registerEventListener(ViewDeletedEvent::class, WhenViewDeletedAuditLogListener::class);

lib/Listener/BeforeTemplateRenderedListener.php renamed to lib/Listener/LoadAdditionalEntriesListener.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,15 @@
88
namespace OCA\Tables\Listener;
99

1010
use OCA\Tables\Service\ContextService;
11-
use OCP\AppFramework\Http\Events\BeforeTemplateRenderedEvent;
1211
use OCP\EventDispatcher\Event;
1312
use OCP\EventDispatcher\IEventListener;
1413
use OCP\IUserSession;
14+
use OCP\Navigation\Events\LoadAdditionalEntriesEvent;
1515

1616
/**
17-
* @template-implements IEventListener<Event|BeforeTemplateRenderedEvent>
17+
* @template-implements IEventListener<Event|LoadAdditionalEntriesEvent>
1818
*/
19-
class BeforeTemplateRenderedListener implements IEventListener {
19+
class LoadAdditionalEntriesListener implements IEventListener {
2020
public function __construct(
2121
protected IUserSession $userSession,
2222
protected ContextService $contextService,
@@ -27,7 +27,7 @@ public function __construct(
2727
* @inheritDoc
2828
*/
2929
public function handle(Event $event): void {
30-
if (!$event instanceof BeforeTemplateRenderedEvent) {
30+
if (!$event instanceof LoadAdditionalEntriesEvent) {
3131
return;
3232
}
3333

lib/Service/ContextService.php

Lines changed: 16 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -80,25 +80,23 @@ public function findForNavigation(string $userId): array {
8080
public function addToNavigation(string $userId): void {
8181
$contexts = $this->findForNavigation($userId);
8282
foreach ($contexts as $context) {
83-
$this->navigationManager->add(function () use ($context) {
84-
$iconRelPath = 'material/' . $context->getIcon() . '.svg';
85-
if (file_exists(__DIR__ . '/../../img/' . $iconRelPath)) {
86-
$iconUrl = $this->urlGenerator->imagePath(Application::APP_ID, $iconRelPath);
87-
} else {
88-
$iconUrl = $this->urlGenerator->imagePath('core', 'places/default-app-icon.svg');
89-
}
83+
$iconRelPath = 'material/' . $context->getIcon() . '.svg';
84+
if (file_exists(__DIR__ . '/../../img/' . $iconRelPath)) {
85+
$iconUrl = $this->urlGenerator->imagePath(Application::APP_ID, $iconRelPath);
86+
} else {
87+
$iconUrl = $this->urlGenerator->imagePath('core', 'places/default-app-icon.svg');
88+
}
89+
90+
$contextUrl = $this->urlGenerator->linkToRoute('tables.page.context', ['contextId' => $context->getId()]);
9091

91-
$contextUrl = $this->urlGenerator->linkToRoute('tables.page.context', ['contextId' => $context->getId()]);
92-
93-
return [
94-
'id' => Application::APP_ID . '_application_' . $context->getId(),
95-
'name' => $context->getName(),
96-
'href' => $contextUrl,
97-
'icon' => $iconUrl,
98-
'order' => 500,
99-
'type' => 'link',
100-
];
101-
});
92+
$this->navigationManager->add([
93+
'id' => Application::APP_ID . '_application_' . $context->getId(),
94+
'name' => $context->getName(),
95+
'href' => $contextUrl,
96+
'icon' => $iconUrl,
97+
'order' => 500,
98+
'type' => 'link',
99+
]);
102100
}
103101
}
104102

0 commit comments

Comments
 (0)