Skip to content

Commit 1cfedbc

Browse files
authored
Merge pull request #4209 from nextcloud/feat/start-presentation-parameter
feat: `startPresentation` URL parameter
2 parents 1bed118 + d3fa91f commit 1cfedbc

File tree

4 files changed

+15
-1
lines changed

4 files changed

+15
-1
lines changed

lib/Listener/BeforeTemplateRenderedListener.php

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,18 @@
88
namespace OCA\Richdocuments\Listener;
99

1010
use OCA\Richdocuments\Service\CapabilitiesService;
11+
use OCA\Richdocuments\Service\InitialStateService;
1112
use OCP\AppFramework\Http\Events\BeforeTemplateRenderedEvent;
1213
use OCP\EventDispatcher\Event;
1314
use OCP\EventDispatcher\IEventListener;
15+
use OCP\IRequest;
1416

1517
/** @template-implements IEventListener<BeforeTemplateRenderedEvent|Event> */
1618
class BeforeTemplateRenderedListener implements IEventListener {
1719
public function __construct(
1820
private CapabilitiesService $capabilitiesService,
21+
private InitialStateService $initialStateService,
22+
private IRequest $request,
1923
) {
2024
}
2125

@@ -28,5 +32,8 @@ public function handle(Event $event): void {
2832
$event->getResponse()->addHeader('Cross-Origin-Opener-Policy', 'same-origin');
2933
$event->getResponse()->addHeader('Cross-Origin-Embedder-Policy', 'require-corp');
3034
}
35+
36+
$startPresentation = $this->request->getParam('startPresentation') === 'true';
37+
$this->initialStateService->providePresentation($startPresentation);
3138
}
3239
}

lib/Service/InitialStateService.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,10 @@ public function provideDocument(Wopi $wopi, array $params): void {
6060
$this->provideOptions();
6161
}
6262

63+
public function providePresentation(bool $startPresentation = false): void {
64+
$this->initialState->provideInitialState('startPresentation', $startPresentation);
65+
}
66+
6367
public function provideAdminSettings(): void {
6468
$this->initialState->provideInitialState('adminSettings', [
6569
'templatesAvailable' => $this->capabilitiesService->hasTemplateSource(),

src/helpers/url.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ const getWopiSrc = (fileId) => {
2929
return wopiurl
3030
}
3131

32-
const getWopiUrl = ({ fileId, title, readOnly, closeButton, revisionHistory, target = undefined }) => {
32+
const getWopiUrl = ({ fileId, title, readOnly, closeButton, revisionHistory, target = undefined, startPresentation = false }) => {
3333
// Only set the revision history parameter if the versions app is enabled
3434
revisionHistory = revisionHistory && window?.oc_appswebroots?.files_versions
3535

@@ -45,6 +45,7 @@ const getWopiUrl = ({ fileId, title, readOnly, closeButton, revisionHistory, tar
4545
+ (revisionHistory ? '&revisionhistory=1' : '')
4646
+ (readOnly ? '&permission=readonly' : '')
4747
+ (target ? '&target=' + encodeURIComponent(target) : '')
48+
+ (startPresentation ? '&startPresentation=1' : '')
4849
}
4950

5051
const getDocumentUrlFromTemplate = (templateId, fileName, fileDir, fillWithTemplate) => {

src/view/Office.vue

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -317,6 +317,7 @@ export default {
317317
318318
Config.update('urlsrc', data.urlSrc)
319319
Config.update('wopi_callback_url', loadState('richdocuments', 'wopi_callback_url', ''))
320+
Config.update('startPresentation', loadState('richdocuments', 'startPresentation', false))
320321
321322
const forceReadOnly = this.isEmbedded && !this.hasWidgetEditingEnabled
322323
@@ -327,6 +328,7 @@ export default {
327328
readOnly: forceReadOnly || version > 0,
328329
revisionHistory: !this.isPublic,
329330
closeButton: !Config.get('hideCloseButton') && !this.isEmbedded,
331+
startPresentation: Config.get('startPresentation'),
330332
})
331333
this.$set(this.formData, 'action', action)
332334
this.$set(this.formData, 'accessToken', data.token)

0 commit comments

Comments
 (0)