Skip to content

Commit 54fb4c2

Browse files
authored
Merge pull request #23419 from nextcloud/backport/23350/stable20
[stable20] Inidicate preview availability in share api responses
2 parents ba201aa + 4baeaec commit 54fb4c2

File tree

6 files changed

+104
-5
lines changed

6 files changed

+104
-5
lines changed

apps/files_sharing/js/dist/files_sharing.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

apps/files_sharing/js/dist/files_sharing.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

apps/files_sharing/js/sharedfilelist.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -353,6 +353,7 @@
353353
id: share.file_source,
354354
icon: OC.MimeType.getIconUrl(share.mimetype),
355355
mimetype: share.mimetype,
356+
hasPreview: share.has_preview,
356357
tags: share.tags || []
357358
}
358359
if (share.item_type === 'folder') {

apps/files_sharing/lib/Controller/ShareAPIController.php

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@
6262
use OCP\IConfig;
6363
use OCP\IGroupManager;
6464
use OCP\IL10N;
65+
use OCP\IPreview;
6566
use OCP\IRequest;
6667
use OCP\IServerContainer;
6768
use OCP\IURLGenerator;
@@ -106,6 +107,8 @@ class ShareAPIController extends OCSController {
106107
private $serverContainer;
107108
/** @var IUserStatusManager */
108109
private $userStatusManager;
110+
/** @var IPreview */
111+
private $previewManager;
109112

110113
/**
111114
* Share20OCS constructor.
@@ -137,7 +140,8 @@ public function __construct(
137140
IConfig $config,
138141
IAppManager $appManager,
139142
IServerContainer $serverContainer,
140-
IUserStatusManager $userStatusManager
143+
IUserStatusManager $userStatusManager,
144+
IPreview $previewManager
141145
) {
142146
parent::__construct($appName, $request);
143147

@@ -153,6 +157,7 @@ public function __construct(
153157
$this->appManager = $appManager;
154158
$this->serverContainer = $serverContainer;
155159
$this->userStatusManager = $userStatusManager;
160+
$this->previewManager = $previewManager;
156161
}
157162

158163
/**
@@ -213,6 +218,7 @@ protected function formatShare(IShare $share, Node $recipientNode = null): array
213218
}
214219

215220
$result['mimetype'] = $node->getMimetype();
221+
$result['has_preview'] = $this->previewManager->isAvailable($node);
216222
$result['storage_id'] = $node->getStorage()->getId();
217223
$result['storage'] = $node->getStorage()->getCache()->getNumericStorageId();
218224
$result['item_source'] = $node->getId();

apps/files_sharing/tests/ApiTest.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@
4444
use OCP\AppFramework\OCS\OCSNotFoundException;
4545
use OCP\IConfig;
4646
use OCP\IL10N;
47+
use OCP\IPreview;
4748
use OCP\IRequest;
4849
use OCP\IServerContainer;
4950
use OCP\Share\IShare;
@@ -117,6 +118,7 @@ private function createOCS($userId) {
117118
$appManager = $this->createMock(IAppManager::class);
118119
$serverContainer = $this->createMock(IServerContainer::class);
119120
$userStatusManager = $this->createMock(IUserStatusManager::class);
121+
$previewManager = $this->createMock(IPreview::class);
120122

121123
return new ShareAPIController(
122124
self::APP_NAME,
@@ -131,7 +133,8 @@ private function createOCS($userId) {
131133
$config,
132134
$appManager,
133135
$serverContainer,
134-
$userStatusManager
136+
$userStatusManager,
137+
$previewManager
135138
);
136139
}
137140

0 commit comments

Comments
 (0)