feat: collection move

Signed-off-by: Sebastian <krupinski01@gmail.com>
This commit is contained in:
2026-05-06 12:21:23 -04:00
parent 7f63c3383f
commit 47b3fbc9da
6 changed files with 148 additions and 10 deletions

View File

@@ -23,6 +23,7 @@ const emit = defineEmits<{
select: [folder: CollectionObject]
createFolder: [service: ServiceObject, parentFolder: CollectionObject | null]
editFolder: [service: ServiceObject, folder: CollectionObject]
moveFolder: [service: ServiceObject, folder: CollectionObject]
deleteFolder: [service: ServiceObject, folder: CollectionObject]
}>()
@@ -43,6 +44,10 @@ const getCurrentPageLevel = (service: ServiceObject): (string | number | null)[]
// Get folders for current page level
const getCurrentPageFolders = (service: ServiceObject): CollectionObject[] => {
if (service.identifier === null) {
return []
}
const level = getCurrentPageLevel(service)
const currentParent = level[level.length - 1]
return collectionsStore.collectionsInCollection(service.provider, service.identifier, currentParent)
@@ -54,6 +59,10 @@ const hasChildren = (folder: CollectionObject): boolean => {
}
const getServiceFolders = (service: ServiceObject): CollectionObject[] => {
if (service.identifier === null) {
return []
}
return collectionsStore.collectionsForService(service.provider, service.identifier)
}
@@ -132,6 +141,10 @@ const navigateBack = (service: ServiceObject) => {
// Get breadcrumb label for current page
const getCurrentBreadcrumb = (service: ServiceObject): string => {
if (service.identifier === null) {
return 'Folders'
}
const level = getCurrentPageLevel(service)
const currentParent = level[level.length - 1]
if (currentParent === null) return 'All Folders'
@@ -148,6 +161,10 @@ const getCurrentBreadcrumb = (service: ServiceObject): string => {
// Get current parent folder for dialog context
const getCurrentParentFolder = (service: ServiceObject): CollectionObject | null => {
if (service.identifier === null) {
return null
}
const level = getCurrentPageLevel(service)
const currentParent = level[level.length - 1]
if (currentParent === null) return null
@@ -276,6 +293,12 @@ const getCurrentParentFolder = (service: ServiceObject): CollectionObject | null
>
<v-list-item-title>New Subfolder</v-list-item-title>
</v-list-item>
<v-list-item
prepend-icon="mdi-folder-move"
@click="emit('moveFolder', group.service, folder)"
>
<v-list-item-title>Move Folder</v-list-item-title>
</v-list-item>
<v-list-item
v-if="canDeleteFolder(folder)"
prepend-icon="mdi-delete"
@@ -433,6 +456,12 @@ const getCurrentParentFolder = (service: ServiceObject): CollectionObject | null
>
<v-list-item-title>New Subfolder</v-list-item-title>
</v-list-item>
<v-list-item
prepend-icon="mdi-folder-move"
@click="emit('moveFolder', group.service, folder)"
>
<v-list-item-title>Move Folder</v-list-item-title>
</v-list-item>
<v-list-item
v-if="canDeleteFolder(folder)"
prepend-icon="mdi-delete"