aboutsummaryrefslogtreecommitdiffstats
path: root/apps/files/src
diff options
context:
space:
mode:
authorLouis Chemineau <louis@chmn.me>2025-01-13 14:54:18 +0100
committerLouis Chemineau <louis@chmn.me>2025-01-15 11:20:01 +0100
commitb1bc79394067ca3914ea3970e5d242f2e2bf405c (patch)
tree253b4b14962d35bacb19e75ebda46139c7eb2bd9 /apps/files/src
parent0f2dcfd0f184e05387e66515d697b54e708da887 (diff)
downloadnextcloud-server-b1bc79394067ca3914ea3970e5d242f2e2bf405c.tar.gz
nextcloud-server-b1bc79394067ca3914ea3970e5d242f2e2bf405c.zip
fix: Remove duplicate propfind call
This also was an XHR call which is not going through the end to end encryption proxy Signed-off-by: Louis Chemineau <louis@chmn.me>
Diffstat (limited to 'apps/files/src')
-rw-r--r--apps/files/src/services/FileInfo.js30
-rw-r--r--apps/files/src/services/FileInfo.ts35
-rw-r--r--apps/files/src/views/Sidebar.vue4
3 files changed, 37 insertions, 32 deletions
diff --git a/apps/files/src/services/FileInfo.js b/apps/files/src/services/FileInfo.js
deleted file mode 100644
index e576b426450..00000000000
--- a/apps/files/src/services/FileInfo.js
+++ /dev/null
@@ -1,30 +0,0 @@
-/**
- * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
- * SPDX-License-Identifier: AGPL-3.0-or-later
- */
-
-import axios from '@nextcloud/axios'
-import { davGetDefaultPropfind } from '@nextcloud/files'
-
-/**
- * @param {any} url -
- */
-export default async function(url) {
- const response = await axios({
- method: 'PROPFIND',
- url,
- data: davGetDefaultPropfind(),
- })
-
- // TODO: create new parser or use cdav-lib when available
- const file = OC.Files.getClient()._client.parseMultiStatus(response.data)
- // TODO: create new parser or use cdav-lib when available
- const fileInfo = OC.Files.getClient()._parseFileInfo(file[0])
-
- // TODO remove when no more legacy backbone is used
- fileInfo.get = (key) => fileInfo[key]
- fileInfo.isDirectory = () => fileInfo.mimetype === 'httpd/unix-directory'
- fileInfo.canEdit = () => Boolean(fileInfo.permissions & OC.PERMISSION_UPDATE)
-
- return fileInfo
-}
diff --git a/apps/files/src/services/FileInfo.ts b/apps/files/src/services/FileInfo.ts
new file mode 100644
index 00000000000..d4c587794f9
--- /dev/null
+++ b/apps/files/src/services/FileInfo.ts
@@ -0,0 +1,35 @@
+/**
+ * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+
+/* eslint-disable jsdoc/require-jsdoc */
+
+import type { Node } from '@nextcloud/files'
+
+export default function(node: Node) {
+ const fileInfo = new OC.Files.FileInfo({
+ id: node.fileid,
+ path: node.dirname,
+ name: node.basename,
+ mtime: node.mtime?.getTime(),
+ etag: node.attributes.etag,
+ size: node.size,
+ hasPreview: node.attributes.hasPreview,
+ isEncrypted: node.attributes.isEncrypted === 1,
+ isFavourited: node.attributes.favorite === 1,
+ mimetype: node.mime,
+ permissions: node.permissions,
+ mountType: node.attributes['mount-type'],
+ sharePermissions: node.attributes['share-permissions'],
+ shareAttributes: JSON.parse(node.attributes['share-attributes']),
+ type: node.type === 'file' ? 'file' : 'dir',
+ })
+
+ // TODO remove when no more legacy backbone is used
+ fileInfo.get = (key) => fileInfo[key]
+ fileInfo.isDirectory = () => fileInfo.mimetype === 'httpd/unix-directory'
+ fileInfo.canEdit = () => Boolean(fileInfo.permissions & OC.PERMISSION_UPDATE)
+
+ return fileInfo
+}
diff --git a/apps/files/src/views/Sidebar.vue b/apps/files/src/views/Sidebar.vue
index 1a1cd0cbc41..196d64990a6 100644
--- a/apps/files/src/views/Sidebar.vue
+++ b/apps/files/src/views/Sidebar.vue
@@ -487,10 +487,10 @@ export default {
this.loading = true
try {
- this.fileInfo = await FileInfo(this.davPath)
+ this.node = await fetchNode({ path: this.file })
+ this.fileInfo = FileInfo(this.node)
// adding this as fallback because other apps expect it
this.fileInfo.dir = this.file.split('/').slice(0, -1).join('/')
- this.node = await fetchNode({ path: (this.fileInfo.path + '/' + this.fileInfo.name).replace('//', '/') })
// DEPRECATED legacy views
// TODO: remove