aboutsummaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
authorFerdinand Thiessen <opensource@fthiessen.de>2024-07-31 16:52:24 +0200
committernextcloud-command <nextcloud-command@users.noreply.github.com>2024-08-02 07:36:39 +0000
commit0535a95efbf5e23bf9fcb1226779dd07004890fa (patch)
treee321b6cb7b381541bdae2c1974913eabeaa59ff3 /apps
parent51aa19989c78f3333e7c55c991f4eac758a394e3 (diff)
downloadnextcloud-server-0535a95efbf5e23bf9fcb1226779dd07004890fa.tar.gz
nextcloud-server-0535a95efbf5e23bf9fcb1226779dd07004890fa.zip
fix(systemtags): Correctly set the display name for the Nextcloud node
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de> Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com> Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
Diffstat (limited to 'apps')
-rw-r--r--apps/systemtags/src/services/systemtags.ts33
1 files changed, 18 insertions, 15 deletions
diff --git a/apps/systemtags/src/services/systemtags.ts b/apps/systemtags/src/services/systemtags.ts
index 4e81ec7dce0..27a8b1c6874 100644
--- a/apps/systemtags/src/services/systemtags.ts
+++ b/apps/systemtags/src/services/systemtags.ts
@@ -19,33 +19,36 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
+import type { ContentsWithRoot } from '@nextcloud/files'
import type { FileStat, ResponseDataDetailed } from 'webdav'
import type { TagWithId } from '../types'
-import { Folder, type ContentsWithRoot, Permission, getDavNameSpaces, getDavProperties } from '@nextcloud/files'
-import { generateRemoteUrl } from '@nextcloud/router'
import { getCurrentUser } from '@nextcloud/auth'
-
+import { Folder, Permission, getDavNameSpaces, getDavProperties, davGetClient, davResultToNode, davRemoteURL, davRootPath } from '@nextcloud/files'
import { fetchTags } from './api'
-import { getClient } from '../../../files/src/services/WebdavClient'
-import { resultToNode } from '../../../files/src/services/Files'
+
+const rootPath = '/systemtags'
+
+const client = davGetClient()
+const resultToNode = (node: FileStat) => davResultToNode(node)
const formatReportPayload = (tagId: number) => `<?xml version="1.0"?>
<oc:filter-files ${getDavNameSpaces()}>
<d:prop>
${getDavProperties()}
</d:prop>
- <oc:filter-rules>
- <oc:systemtag>${tagId}</oc:systemtag>
- </oc:filter-rules>
+ <oc:filter-rules>
+ <oc:systemtag>${tagId}</oc:systemtag>
+ </oc:filter-rules>
</oc:filter-files>`
const tagToNode = function(tag: TagWithId): Folder {
return new Folder({
id: tag.id,
- source: generateRemoteUrl('dav/systemtags/' + tag.id),
- owner: getCurrentUser()?.uid as string,
- root: '/systemtags',
+ source: `${davRemoteURL}${rootPath}/${tag.id}`,
+ owner: String(getCurrentUser()?.uid ?? 'anonymous'),
+ root: rootPath,
+ displayname: tag.displayName,
permissions: Permission.READ,
attributes: {
...tag,
@@ -62,16 +65,16 @@ export const getContents = async (path = '/'): Promise<ContentsWithRoot> => {
return {
folder: new Folder({
id: 0,
- source: generateRemoteUrl('dav/systemtags'),
+ source: `${davRemoteURL}${rootPath}`,
owner: getCurrentUser()?.uid as string,
- root: '/systemtags',
+ root: rootPath,
permissions: Permission.NONE,
}),
contents: tagsCache.map(tagToNode),
}
}
- const tagId = parseInt(path.replace('/', ''), 10)
+ const tagId = parseInt(path.split('/', 2)[0])
const tag = tagsCache.find(tag => tag.id === tagId)
if (!tag) {
@@ -79,7 +82,7 @@ export const getContents = async (path = '/'): Promise<ContentsWithRoot> => {
}
const folder = tagToNode(tag)
- const contentsResponse = await getClient().getDirectoryContents('/', {
+ const contentsResponse = await client.getDirectoryContents(davRootPath, {
details: true,
// Only filter favorites if we're at the root
data: formatReportPayload(tagId),