diff options
author | Christopher Ng <chrng8@gmail.com> | 2024-04-16 11:02:49 -0700 |
---|---|---|
committer | Christopher Ng <chrng8@gmail.com> | 2024-04-16 11:02:49 -0700 |
commit | 7566eedaf8bfcd00a932e82c584475db7c7f1f97 (patch) | |
tree | 958e259233ad3d5686677379c9b9846a3116e773 | |
parent | 7208122d0a22a66d6ce7d793c3fd8df6cca59c00 (diff) |
fix: Open Viewer when clicking on photo in folder
Signed-off-by: Christopher Ng <chrng8@gmail.com>
-rw-r--r-- | lib/Controller/AlbumsController.php | 25 | ||||
-rw-r--r-- | src/views/AlbumContent.vue | 3 | ||||
-rw-r--r-- | src/views/Folders.vue | 3 |
3 files changed, 28 insertions, 3 deletions
diff --git a/lib/Controller/AlbumsController.php b/lib/Controller/AlbumsController.php index cf8b2bc5..6013da1e 100644 --- a/lib/Controller/AlbumsController.php +++ b/lib/Controller/AlbumsController.php @@ -30,6 +30,7 @@ use OCA\Photos\AppInfo\Application; use OCP\AppFramework\Controller; use OCP\AppFramework\Http; use OCP\AppFramework\Http\JSONResponse; +use OCP\Constants; use OCP\Files\File; use OCP\Files\Folder; use OCP\Files\IRootFolder; @@ -109,7 +110,7 @@ class AlbumsController extends Controller { 'mime' => $node->getMimetype(), 'size' => $node->getSize(), 'type' => $node->getType(), - 'permissions' => $node->getPermissions(), + 'permissions' => $this->formatPermissions($node->getPermissions()), 'hasPreview' => $this->previewManager->isAvailable($node), ]; } @@ -117,6 +118,28 @@ class AlbumsController extends Controller { return $result; } + private function formatPermissions(int $permissions): string { + $strPermissions = ''; + if ($permissions) { + if ($permissions & Constants::PERMISSION_CREATE) { + $strPermissions .= 'CK'; + } + if ($permissions & Constants::PERMISSION_READ) { + $strPermissions .= 'G'; + } + if ($permissions & Constants::PERMISSION_UPDATE) { + $strPermissions .= 'W'; + } + if ($permissions & Constants::PERMISSION_DELETE) { + $strPermissions .= 'D'; + } + if ($permissions & Constants::PERMISSION_SHARE) { + $strPermissions .= 'R'; + } + } + return $strPermissions; + } + private function scanCurrentFolder(Folder $folder, bool $shared): iterable { $nodes = $folder->getDirectoryListing(); diff --git a/src/views/AlbumContent.vue b/src/views/AlbumContent.vue index 8302d2fb..06f3ceaf 100644 --- a/src/views/AlbumContent.vue +++ b/src/views/AlbumContent.vue @@ -165,7 +165,7 @@ <script> import { mapActions } from 'vuex' -import { Folder, addNewFileMenuEntry, removeNewFileMenuEntry } from '@nextcloud/files' +import { Folder, addNewFileMenuEntry, removeNewFileMenuEntry, davParsePermissions } from '@nextcloud/files' import { getCurrentUser } from '@nextcloud/auth' import { NcActions, NcActionButton, NcButton, NcDialog, NcModal, NcEmptyContent, NcActionSeparator, NcLoadingIcon, isMobile } from '@nextcloud/vue' import { UploadPicker, getUploader } from '@nextcloud/upload' @@ -315,6 +315,7 @@ export default { ...this.album, owner: getCurrentUser()?.uid ?? '', source: this.album?.source ?? '', + permissions: davParsePermissions(this.album.permissions), }) }, }, diff --git a/src/views/Folders.vue b/src/views/Folders.vue index d45d782c..142cbbda 100644 --- a/src/views/Folders.vue +++ b/src/views/Folders.vue @@ -70,7 +70,7 @@ <script> import { mapGetters } from 'vuex' import { Upload, UploadPicker, getUploader } from '@nextcloud/upload' -import { Folder as NcFolder } from '@nextcloud/files' +import { Folder as NcFolder, davParsePermissions } from '@nextcloud/files' import { NcEmptyContent } from '@nextcloud/vue' import VirtualGrid from 'vue-virtual-grid' @@ -147,6 +147,7 @@ export default { return new NcFolder({ ...this.folder, source: decodeURI(this.folder.source), + permissions: davParsePermissions(this.folder.permissions), }) }, folderContent() { |