diff options
author | Ferdinand Thiessen <opensource@fthiessen.de> | 2024-07-31 16:52:24 +0200 |
---|---|---|
committer | nextcloud-command <nextcloud-command@users.noreply.github.com> | 2024-08-02 07:36:39 +0000 |
commit | 0535a95efbf5e23bf9fcb1226779dd07004890fa (patch) | |
tree | e321b6cb7b381541bdae2c1974913eabeaa59ff3 /apps | |
parent | 51aa19989c78f3333e7c55c991f4eac758a394e3 (diff) | |
download | nextcloud-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.ts | 33 |
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), |