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