diff --git a/js/script.js b/js/script.js index 1847229..06dcdf2 100644 --- a/js/script.js +++ b/js/script.js @@ -189,7 +189,7 @@ View.prototype = { this._editableColor(note.color); this._editableShares(note.shared_with, note.shared_by); this._editableTags(note.tags); - this._editableAttachts(note.attachts); + this._editableAttachts(note.attachts, !note.is_shared); // Create medium div editor. this._isEditable(!note.is_shared); @@ -507,7 +507,7 @@ View.prototype = { preview_url: OC.generateUrl('core') + '/preview.png?file=' + encodeURI(datapath) + '&x=512&y=512', redirect_url: OC.generateUrl('/apps/files/?dir={dir}&scrollto={scrollto}', {dir: fileInfo.path, scrollto: fileInfo.name}) }); - self._editableAttachts(attachts); + self._editableAttachts(attachts, true); }).fail(() => { console.log("ERRORRR"); }); @@ -798,7 +798,7 @@ View.prototype = { $("#modal-note-div .note-tags").replaceWith(html); } }, - _editableAttachts: function(attachts) { + _editableAttachts: function(attachts, can_delete) { if (attachts === undefined) { return $("#modal-note-div .note-attach").toArray().map(function (value) { return { @@ -808,7 +808,7 @@ View.prototype = { }; }); } else { - var html = Handlebars.templates['attachts']({ attachts: attachts}); + var html = Handlebars.templates['attachts']({ attachts: attachts, can_delete: can_delete}); $("#modal-note-div .note-attachts").replaceWith(html); lozad('.attach-preview').observe(); diff --git a/js/templates/attachts.handlebars b/js/templates/attachts.handlebars index d1f1b90..63d04d3 100644 --- a/js/templates/attachts.handlebars +++ b/js/templates/attachts.handlebars @@ -4,7 +4,9 @@
-
+ {{#if ../can_delete}} +
+ {{/if}}
{{/each}}
\ No newline at end of file diff --git a/lib/Db/AttachMapper.php b/lib/Db/AttachMapper.php index 9fa896a..158b085 100644 --- a/lib/Db/AttachMapper.php +++ b/lib/Db/AttachMapper.php @@ -73,8 +73,7 @@ class AttachMapper extends QBMapper { * @param string $userId * @param int $noteId * @throws \OCP\AppFramework\Db\DoesNotExistException if not found - * @throws \OCP\AppFramework\Db\MultipleObjectsReturnedException if more than one result - * @return Note[] + * @return Attach[] */ public function findFromNote($userId, $noteId) { $qb = $this->db->getQueryBuilder(); @@ -86,4 +85,5 @@ class AttachMapper extends QBMapper { ); return $this->findEntities($qb); } + } diff --git a/lib/Service/FileService.php b/lib/Service/FileService.php index c2dbc06..6123392 100644 --- a/lib/Service/FileService.php +++ b/lib/Service/FileService.php @@ -57,13 +57,16 @@ class FileService { * @param int $fileId file id to show * @param int $sideSize side lenght to show */ - public function getPreviewUrl(int $fileId, int $sideSize): string { + public function getPreviewUrl(int $fileId, int $sideSize): ?string { $userFolder = $this->rootFolder->getUserFolder($this->userId); - $node = current($userFolder->getById($fileId)); - $path = $userFolder->getRelativePath($node->getPath()); + $file = current($userFolder->getById($fileId)); + + if (!($file instanceof File)) { + return null; + } return $this->urlGenerator->linkToRouteAbsolute('core.Preview.getPreview', [ - 'file' => $path, + 'file' => $userFolder->getRelativePath($file->getPath()), 'x' => $sideSize, 'y' => $sideSize ]); @@ -78,7 +81,7 @@ class FileService { $userFolder = $this->rootFolder->getUserFolder($this->userId); $file = current($userFolder->getById($fileId)); - if(!($file instanceof File)) { + if (!($file instanceof File)) { return null; } diff --git a/lib/Service/NoteService.php b/lib/Service/NoteService.php index 2bb9645..14c4b5f 100644 --- a/lib/Service/NoteService.php +++ b/lib/Service/NoteService.php @@ -114,12 +114,23 @@ class NoteService { // Insert attachts to response. foreach ($notes as $note) { - $attachts = $this->attachMapper->findFromNote($userId, $note->getId()); + $rAttachts = []; + $attachts = $this->attachMapper->findFromNote($note->getUserId(), $note->getId()); foreach ($attachts as $attach) { - $attach->setPreviewUrl($this->fileService->getPreviewUrl($attach->getFileId(), 512)); - $attach->setRedirectUrl($this->fileService->getRedirectToFileUrl($attach->getFileId())); + $previewUrl = $this->fileService->getPreviewUrl($attach->getFileId(), 512); + if (is_null($previewUrl)) + continue; + + $redirectUrl = $this->fileService->getRedirectToFileUrl($attach->getFileId()); + if (is_null($redirectUrl)) + continue; + + $attach->setPreviewUrl($previewUrl); + $attach->setRedirectUrl($redirectUrl); + + $rAttachts[] = $attach; } - $note->setAttachts($attachts); + $note->setAttachts($rAttachts); } return $notes;