fix: DataTable Button-Clicks mit .stop + Share-Link Debug-Logging

- Alle Buttons in der Datei-Tabelle haben jetzt @click.stop
  (Download, Teilen, Umbenennen, Loeschen) damit die DataTable
  den Click nicht verschluckt
- Debug-Logging in createShare() um Frontend-Fehler sichtbar zu machen

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Stefan Hacker 2026-04-11 19:46:38 +02:00
parent e1eb6a83ae
commit 1b716ae012
1 changed files with 12 additions and 6 deletions

View File

@ -81,23 +81,23 @@
v-if="!data.is_folder"
icon="pi pi-download"
text rounded size="small"
@click="downloadFile(data)"
@click.stop="downloadFile(data)"
/>
<Button
icon="pi pi-share-alt"
text rounded size="small"
@click="openShare(data)"
@click.stop="openShare(data)"
/>
<Button
icon="pi pi-pencil"
text rounded size="small"
@click="openRename(data)"
@click.stop="openRename(data)"
/>
<Button
icon="pi pi-trash"
text rounded size="small"
severity="danger"
@click="confirmDelete(data)"
@click.stop="confirmDelete(data)"
/>
</div>
</template>
@ -588,12 +588,17 @@ async function removeUserShare(permId) {
}
async function createShare() {
if (!shareFile.value) return
console.log('createShare called, shareFile:', shareFile.value?.id, 'permission:', shareLinkPermission.value)
if (!shareFile.value) {
console.error('shareFile is null')
return
}
shareLoading.value = true
try {
const opts = { permission: shareLinkPermission.value }
if (sharePassword.value) opts.password = sharePassword.value
if (shareExpiry.value) opts.expires_at = shareExpiry.value
console.log('Creating share link with opts:', opts)
await filesStore.createShareLink(shareFile.value.id, opts)
shareLinks.value = await filesStore.getShareLinks(shareFile.value.id)
sharePassword.value = ''
@ -601,7 +606,8 @@ async function createShare() {
shareLinkPermission.value = 'read'
toast.add({ severity: 'success', summary: 'Link erstellt', life: 3000 })
} catch (err) {
toast.add({ severity: 'error', summary: 'Fehler', detail: err.response?.data?.error, life: 5000 })
console.error('createShare error:', err)
toast.add({ severity: 'error', summary: 'Fehler', detail: err.response?.data?.error || String(err), life: 5000 })
} finally {
shareLoading.value = false
}