refactor: use unified manager design

Signed-off-by: Sebastian Krupinski <krupinski01@gmail.com>
This commit is contained in:
2026-06-28 14:53:11 -04:00
parent aa96aa4cb4
commit 6657b8a0db
4 changed files with 94 additions and 164 deletions
+5 -5
View File
@@ -2,7 +2,7 @@
import { ref, computed, watch } from 'vue'
import { useServicesStore } from '@ChronoManager/stores/servicesStore'
import { CollectionObject } from '@ChronoManager/models/collection'
import { ServiceObject } from '@ChronoManager/models/service'
import type { ServiceObject } from '@ChronoManager/models/service'
// Store
const servicesStore = useServicesStore()
@@ -74,11 +74,11 @@ const onOpen = async () => {
if (props.mode === 'edit') {
// Edit mode - find the service
editingCollectionService.value = services.value.find(s =>
s.provider === props.collection!.provider && s.identifier === props.collection!.service
`${s.provider}:${s.identifier}` === String(props.collection!.service)
) || null
} else {
// Create mode - use first service that can create
editingCollectionService.value = services.value.filter(s => s.capabilities?.CollectionCreate)[0] || null
editingCollectionService.value = services.value.find(s => s.capable('CollectionCreate')) || null
}
}
@@ -142,7 +142,7 @@ watch(() => props.modelValue, async (newValue) => {
<v-combobox v-show="mode === 'create' && services.length > 1"
v-model="editingCollectionService"
label="Service"
:items="services.filter(s => s.capabilities?.CollectionCreate)"
:items="services.filter(s => s.capable('CollectionCreate'))"
item-title="label"
item-value="identifier"
required
@@ -254,7 +254,7 @@ watch(() => props.modelValue, async (newValue) => {
<v-card-actions class="justify-space-between align-center">
<div>
<v-btn
v-if="mode === 'edit' && editingCollectionService?.capabilities?.CollectionDestroy"
v-if="mode === 'edit' && editingCollectionService?.capable('CollectionDelete')"
color="error"
variant="text"
@click="onDelete"