diff --git a/lib/AppInfo/Application.php b/lib/AppInfo/Application.php index 095ac6683..478464a01 100644 --- a/lib/AppInfo/Application.php +++ b/lib/AppInfo/Application.php @@ -30,11 +30,13 @@ use OCA\Forms\Capabilities; use OCA\Forms\FormsMigrator; +use OCA\Forms\Listener\BeforeTemplateRenderedListener; use OCA\Forms\Listener\UserDeletedListener; use OCP\AppFramework\App; use OCP\AppFramework\Bootstrap\IBootContext; use OCP\AppFramework\Bootstrap\IBootstrap; use OCP\AppFramework\Bootstrap\IRegistrationContext; +use OCP\AppFramework\Http\Events\BeforeTemplateRenderedEvent; use OCP\User\Events\UserDeletedEvent; class Application extends App implements IBootstrap { @@ -59,6 +61,7 @@ public function register(IRegistrationContext $context): void { $context->registerCapability(Capabilities::class); $context->registerEventListener(UserDeletedEvent::class, UserDeletedListener::class); $context->registerUserMigrator(FormsMigrator::class); + $context->registerEventListener(BeforeTemplateRenderedEvent::class, BeforeTemplateRenderedListener::class); } /** diff --git a/lib/Listener/BeforeTemplateRenderedListener.php b/lib/Listener/BeforeTemplateRenderedListener.php new file mode 100644 index 000000000..c82fa2ee4 --- /dev/null +++ b/lib/Listener/BeforeTemplateRenderedListener.php @@ -0,0 +1,26 @@ + */ +class BeforeTemplateRenderedListener implements IEventListener { + public function __construct(private IEventDispatcher $eventDispatcher) { + } + + public function handle(Event $event): void { + if (!($event instanceof BeforeTemplateRenderedEvent)) { + return; + } + + $isFormsResponse = $event->getResponse()->getApp() === \OCA\Forms\AppInfo\Application::APP_ID; + if ($isFormsResponse && class_exists(LoadEditor::class)) { + $this->eventDispatcher->dispatchTyped(new LoadEditor()); + } + } +} diff --git a/src/components/Questions/Question.vue b/src/components/Questions/Question.vue index 49d52c66e..2c108e364 100644 --- a/src/components/Questions/Question.vue +++ b/src/components/Questions/Question.vue @@ -127,16 +127,24 @@
-