@@ -616,6 +617,10 @@ const currentEditScope = ref(null)
const permOptions = [{ label: 'Lesen', value: 'read' }, { label: 'Lesen+Schreiben', value: 'readwrite' }]
const ownCalendars = computed(() => calendars.value.filter(c => c.permission === 'owner'))
+// Beschreibbar = eigener Kalender ODER Freigabe mit Schreibrecht.
+const writableCalendars = computed(() =>
+ calendars.value.filter(c => c.permission === 'owner' || c.permission === 'readwrite')
+)
const exportableCalendars = computed(() => calendars.value)
// --- Calendar Import / Export ---
@@ -638,8 +643,8 @@ watch(showCalExportDialog, (v) => {
})
function triggerCalImport() {
- if (!ownCalendars.value.length) {
- toast.add({ severity: 'warn', summary: 'Kein eigener Kalender', life: 3000 })
+ if (!writableCalendars.value.length) {
+ toast.add({ severity: 'warn', summary: 'Kein beschreibbarer Kalender', life: 3000 })
return
}
calImportInput.value?.click()
@@ -650,7 +655,7 @@ function onCalImportFile(ev) {
ev.target.value = ''
if (!file) return
pendingImportFile.value = file
- importTargetCalId.value = ownCalendars.value[0]?.id
+ importTargetCalId.value = writableCalendars.value[0]?.id
showCalImportDialog.value = true
}
@@ -969,6 +974,10 @@ async function createCalendar() {
}
function openNewEvent(start, end, allDay = false) {
+ if (!writableCalendars.value.length) {
+ toast.add({ severity: 'warn', summary: 'Kein beschreibbarer Kalender vorhanden', life: 3000 })
+ return
+ }
editingEvent.value = null
const now = start || new Date()
const later = end || new Date(now.getTime() + 3600000)
@@ -976,7 +985,7 @@ function openNewEvent(start, end, allDay = false) {
summary: '',
description: '',
location: '',
- calendar_id: ownCalendars.value[0]?.id,
+ calendar_id: writableCalendars.value[0].id,
dtstart: toLocalISO(now, allDay),
dtend: toLocalISO(later, allDay),
all_day: allDay,
diff --git a/frontend/src/views/ContactsView.vue b/frontend/src/views/ContactsView.vue
index 7a699fc..f8b509f 100644
--- a/frontend/src/views/ContactsView.vue
+++ b/frontend/src/views/ContactsView.vue
@@ -8,7 +8,8 @@
-
+