Merge pull request #18428 from nextcloud/bugfix/noid/empty-template
Return empty template for default creators
This commit is contained in:
commit
76895b6945
|
@ -40,7 +40,9 @@ use OCP\Files\IRootFolder;
|
|||
use OCP\Files\Node;
|
||||
use OCP\Files\NotFoundException;
|
||||
use OCP\IDBConnection;
|
||||
use OCP\IL10N;
|
||||
use OCP\IUserSession;
|
||||
use OCP\L10N\IFactory;
|
||||
use OCP\Security\ISecureRandom;
|
||||
use OCP\Share\IShare;
|
||||
|
||||
|
@ -61,17 +63,21 @@ class Manager implements IManager {
|
|||
private $random;
|
||||
private $userId;
|
||||
private $rootFolder;
|
||||
/** @var IL10N */
|
||||
private $l10n;
|
||||
|
||||
public function __construct(
|
||||
ISecureRandom $random,
|
||||
IDBConnection $connection,
|
||||
IUserSession $userSession,
|
||||
IRootFolder $rootFolder
|
||||
IRootFolder $rootFolder,
|
||||
IFactory $l10nFactory
|
||||
) {
|
||||
$this->random = $random;
|
||||
$this->connection = $connection;
|
||||
$this->userId = $userSession->getUser() ? $userSession->getUser()->getUID() : null;
|
||||
$this->rootFolder = $rootFolder;
|
||||
$this->l10n = $l10nFactory->get('core');
|
||||
}
|
||||
|
||||
public function registerDirectEditor(IEditor $directEditor): void {
|
||||
|
@ -88,9 +94,25 @@ class Manager implements IManager {
|
|||
}
|
||||
$templates = [];
|
||||
foreach ($this->editors[$editor]->getCreators() as $creator) {
|
||||
if ($creator instanceof ACreateFromTemplate && $creator->getId() === $type) {
|
||||
if ($creator->getId() === $type) {
|
||||
$templates = [
|
||||
'empty' => [
|
||||
'id' => 'empty',
|
||||
'title' => $this->l10n->t('Empty file'),
|
||||
'preview' => null
|
||||
]
|
||||
];
|
||||
|
||||
if ($creator instanceof ACreateFromTemplate) {
|
||||
$templates = $creator->getTemplates();
|
||||
}
|
||||
|
||||
$templates = array_map(function ($template) use ($creator) {
|
||||
$template['extension'] = $creator->getExtension();
|
||||
$template['mimetype'] = $creator->getMimetype();
|
||||
return $template;
|
||||
}, $templates);
|
||||
}
|
||||
}
|
||||
$return = [];
|
||||
$return['templates'] = $templates;
|
||||
|
|
|
@ -13,7 +13,9 @@ use OCP\DirectEditing\IToken;
|
|||
use OCP\Files\Folder;
|
||||
use OCP\Files\IRootFolder;
|
||||
use OCP\IDBConnection;
|
||||
use OCP\IL10N;
|
||||
use OCP\IUserSession;
|
||||
use OCP\L10N\IFactory;
|
||||
use OCP\Security\ISecureRandom;
|
||||
use PHPUnit\Framework\MockObject\MockObject;
|
||||
use Test\TestCase;
|
||||
|
@ -116,6 +118,12 @@ class ManagerTest extends TestCase {
|
|||
$this->userSession = $this->createMock(IUserSession::class);
|
||||
$this->rootFolder = $this->createMock(IRootFolder::class);
|
||||
$this->userFolder = $this->createMock(Folder::class);
|
||||
$this->l10n = $this->createMock(IL10N::class);
|
||||
|
||||
$l10nFactory = $this->createMock(IFactory::class);
|
||||
$l10nFactory->expects($this->once())
|
||||
->method('get')
|
||||
->willReturn($this->l10n);
|
||||
|
||||
|
||||
$this->rootFolder->expects($this->any())
|
||||
|
@ -123,7 +131,7 @@ class ManagerTest extends TestCase {
|
|||
->willReturn($this->userFolder);
|
||||
|
||||
$this->manager = new Manager(
|
||||
$this->random, $this->connection, $this->userSession, $this->rootFolder
|
||||
$this->random, $this->connection, $this->userSession, $this->rootFolder, $l10nFactory
|
||||
);
|
||||
|
||||
$this->manager->registerDirectEditor($this->editor);
|
||||
|
|
Loading…
Reference in New Issue