summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristopher Ng <chrng8@gmail.com>2024-04-16 11:02:49 -0700
committerChristopher Ng <chrng8@gmail.com>2024-04-16 11:02:49 -0700
commit7566eedaf8bfcd00a932e82c584475db7c7f1f97 (patch)
tree958e259233ad3d5686677379c9b9846a3116e773
parent7208122d0a22a66d6ce7d793c3fd8df6cca59c00 (diff)
fix: Open Viewer when clicking on photo in folder
Signed-off-by: Christopher Ng <chrng8@gmail.com>
-rw-r--r--lib/Controller/AlbumsController.php25
-rw-r--r--src/views/AlbumContent.vue3
-rw-r--r--src/views/Folders.vue3
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() {