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:
parent
e1eb6a83ae
commit
1b716ae012
|
|
@ -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
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue