mirror of
https://github.com/nextcloud/richdocuments.git
synced 2025-12-18 05:20:43 +01:00
fix: Inject template fields via new BeforeGetTemplates events
Signed-off-by: Elizabeth Danzberger <lizzy7128@tutanota.de>
This commit is contained in:
parent
4fb597e5f4
commit
965c665ecf
7 changed files with 50 additions and 3 deletions
|
|
@ -43,6 +43,7 @@ return array(
|
|||
'OCA\\Richdocuments\\Listener\\AddContentSecurityPolicyListener' => $baseDir . '/../lib/Listener/AddContentSecurityPolicyListener.php',
|
||||
'OCA\\Richdocuments\\Listener\\AddFeaturePolicyListener' => $baseDir . '/../lib/Listener/AddFeaturePolicyListener.php',
|
||||
'OCA\\Richdocuments\\Listener\\BeforeFetchPreviewListener' => $baseDir . '/../lib/Listener/BeforeFetchPreviewListener.php',
|
||||
'OCA\\Richdocuments\\Listener\\BeforeGetTemplatesListener' => $baseDir . '/../lib/Listener/BeforeGetTemplatesListener.php',
|
||||
'OCA\\Richdocuments\\Listener\\BeforeTemplateRenderedListener' => $baseDir . '/../lib/Listener/BeforeTemplateRenderedListener.php',
|
||||
'OCA\\Richdocuments\\Listener\\FileCreatedFromTemplateListener' => $baseDir . '/../lib/Listener/FileCreatedFromTemplateListener.php',
|
||||
'OCA\\Richdocuments\\Listener\\LoadAdditionalListener' => $baseDir . '/../lib/Listener/LoadAdditionalListener.php',
|
||||
|
|
|
|||
|
|
@ -58,6 +58,7 @@ class ComposerStaticInitRichdocuments
|
|||
'OCA\\Richdocuments\\Listener\\AddContentSecurityPolicyListener' => __DIR__ . '/..' . '/../lib/Listener/AddContentSecurityPolicyListener.php',
|
||||
'OCA\\Richdocuments\\Listener\\AddFeaturePolicyListener' => __DIR__ . '/..' . '/../lib/Listener/AddFeaturePolicyListener.php',
|
||||
'OCA\\Richdocuments\\Listener\\BeforeFetchPreviewListener' => __DIR__ . '/..' . '/../lib/Listener/BeforeFetchPreviewListener.php',
|
||||
'OCA\\Richdocuments\\Listener\\BeforeGetTemplatesListener' => __DIR__ . '/..' . '/../lib/Listener/BeforeGetTemplatesListener.php',
|
||||
'OCA\\Richdocuments\\Listener\\BeforeTemplateRenderedListener' => __DIR__ . '/..' . '/../lib/Listener/BeforeTemplateRenderedListener.php',
|
||||
'OCA\\Richdocuments\\Listener\\FileCreatedFromTemplateListener' => __DIR__ . '/..' . '/../lib/Listener/FileCreatedFromTemplateListener.php',
|
||||
'OCA\\Richdocuments\\Listener\\LoadAdditionalListener' => __DIR__ . '/..' . '/../lib/Listener/LoadAdditionalListener.php',
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@ use OCA\Richdocuments\Db\WopiMapper;
|
|||
use OCA\Richdocuments\Listener\AddContentSecurityPolicyListener;
|
||||
use OCA\Richdocuments\Listener\AddFeaturePolicyListener;
|
||||
use OCA\Richdocuments\Listener\BeforeFetchPreviewListener;
|
||||
use OCA\Richdocuments\Listener\BeforeGetTemplatesListener;
|
||||
use OCA\Richdocuments\Listener\BeforeTemplateRenderedListener;
|
||||
use OCA\Richdocuments\Listener\FileCreatedFromTemplateListener;
|
||||
use OCA\Richdocuments\Listener\LoadAdditionalListener;
|
||||
|
|
@ -38,6 +39,7 @@ use OCP\AppFramework\Bootstrap\IRegistrationContext;
|
|||
use OCP\AppFramework\Http\Events\BeforeTemplateRenderedEvent;
|
||||
use OCP\Collaboration\Reference\RenderReferenceEvent;
|
||||
use OCP\Collaboration\Resources\LoadAdditionalScriptsEvent;
|
||||
use OCP\Files\Template\BeforeGetTemplatesEvent;
|
||||
use OCP\Files\Template\FileCreatedFromTemplateEvent;
|
||||
use OCP\Files\Template\RegisterTemplateCreatorEvent;
|
||||
use OCP\Preview\BeforePreviewFetchedEvent;
|
||||
|
|
@ -65,6 +67,7 @@ class Application extends App implements IBootstrap {
|
|||
$context->registerEventListener(BeforePreviewFetchedEvent::class, BeforeFetchPreviewListener::class);
|
||||
$context->registerEventListener(RenderReferenceEvent::class, ReferenceListener::class);
|
||||
$context->registerEventListener(BeforeTemplateRenderedEvent::class, BeforeTemplateRenderedListener::class);
|
||||
$context->registerEventListener(BeforeGetTemplatesEvent::class, BeforeGetTemplatesListener::class);
|
||||
$context->registerReferenceProvider(OfficeTargetReferenceProvider::class);
|
||||
$context->registerSensitiveMethods(WopiMapper::class, [
|
||||
'getPathForToken',
|
||||
|
|
|
|||
30
lib/Listener/BeforeGetTemplatesListener.php
Normal file
30
lib/Listener/BeforeGetTemplatesListener.php
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
<?php
|
||||
|
||||
namespace OCA\Richdocuments\Listener;
|
||||
|
||||
use OCA\Richdocuments\Service\TemplateFieldService;
|
||||
use OCP\EventDispatcher\Event;
|
||||
use OCP\EventDispatcher\IEventListener;
|
||||
use OCP\Files\Template\BeforeGetTemplatesEvent;
|
||||
|
||||
/** @template-implements IEventListener<BeforeGetTemplatesEvent|Event> */
|
||||
class BeforeGetTemplatesListener implements IEventListener {
|
||||
private TemplateFieldService $templateFieldService;
|
||||
|
||||
public function __construct(TemplateFieldService $templateFieldService) {
|
||||
$this->templateFieldService = $templateFieldService;
|
||||
}
|
||||
|
||||
public function handle(Event $event): void {
|
||||
if (!$event instanceof BeforeGetTemplatesEvent) {
|
||||
return;
|
||||
}
|
||||
|
||||
foreach($event->getTemplates() as $template) {
|
||||
$templateFileId = $template->jsonSerialize()["fileid"];
|
||||
$fields = $this->templateFieldService->extractFields($templateFileId);
|
||||
|
||||
$template->setFields($fields);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -10,8 +10,6 @@ namespace OCA\Richdocuments\Service;
|
|||
use OCA\Richdocuments\AppConfig;
|
||||
use OCP\Files\Node;
|
||||
use OCP\Http\Client\IClientService;
|
||||
use OCP\Files\Template\Field;
|
||||
use OCP\Files\Template\FieldType;
|
||||
|
||||
class TemplateFieldService {
|
||||
private IClientService $clientService;
|
||||
|
|
|
|||
|
|
@ -25,7 +25,11 @@ class CollaboraTemplateProvider implements ICustomTemplateProvider {
|
|||
/** @var ITemplateManager */
|
||||
private $coreTemplateManager;
|
||||
|
||||
public function __construct(TemplateManager $templateManager, IURLGenerator $urlGenerator, ITemplateManager $coreTemplateManager) {
|
||||
public function __construct(
|
||||
TemplateManager $templateManager,
|
||||
IURLGenerator $urlGenerator,
|
||||
ITemplateManager $coreTemplateManager
|
||||
) {
|
||||
$this->templateManager = $templateManager;
|
||||
$this->urlGenerator = $urlGenerator;
|
||||
$this->coreTemplateManager = $coreTemplateManager;
|
||||
|
|
|
|||
|
|
@ -82,6 +82,16 @@ namespace OCA\Files_Sharing\Event {
|
|||
}
|
||||
}
|
||||
|
||||
namespace OCP\Files\Template {
|
||||
use OCP\EventDispatcher\Event;
|
||||
|
||||
class BeforeGetTemplatesEvent extends Event {
|
||||
public function __construct(array $templates) {}
|
||||
|
||||
public function getTemplates(): array {}
|
||||
}
|
||||
}
|
||||
|
||||
class OC_Helper {
|
||||
public static function getFileTemplateManager() {
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue