Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions frontend/app/components/AdminUploadsTable.vue
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,10 @@
<template #header>
<div class="flex items-center justify-between gap-2">
<div class="min-w-0 flex-1">
<NuxtLink v-if="upload.download_url" :href="getDownloadUrl(upload)" target="_blank"
<a v-if="upload.download_url" :href="getDownloadUrl(upload)" target="_blank" rel="noopener noreferrer"
class="font-medium hover:underline break-all" :aria-label="upload.filename">
{{ upload.filename || 'Unnamed file' }}
</NuxtLink>
</a>
<span v-else class="font-medium break-all">{{ upload.filename || 'Unnamed file' }}</span>
<div class="text-xs text-muted mt-1">{{ upload.mimetype || 'Unknown type' }}</div>
</div>
Expand Down Expand Up @@ -86,10 +86,10 @@
<td class="px-4 py-3 text-sm">
<div class="space-y-1">
<UPopover mode="hover" :content="{ align: 'start' }" :ui="{ content: 'p-3' }">
<NuxtLink v-if="upload.download_url" :href="getDownloadUrl(upload)" target="_blank"
<a v-if="upload.download_url" :href="getDownloadUrl(upload)" target="_blank" rel="noopener noreferrer"
class="font-medium hover:underline break-all cursor-pointer" :aria-label="upload.filename">
{{ upload.filename || 'Unnamed file' }}
</NuxtLink>
</a>
<span v-else class="font-medium break-all cursor-default">{{ upload.filename || 'Unnamed file' }}</span>
<template #content>
<div class="space-y-3 text-sm min-w-64 max-w-96">
Expand Down
8 changes: 4 additions & 4 deletions frontend/app/components/UploadsTable.vue
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,10 @@
<span v-else>{{ row.status }}</span>
</UBadge>
</div>
<NuxtLink v-if="allowDownloads && row.download_url && row.status === 'completed'" :href="row.download_url" target="_blank"
<a v-if="allowDownloads && row.download_url && row.status === 'completed'" :href="row.download_url" target="_blank" rel="noopener noreferrer"
class="font-medium hover:underline break-all" :aria-label="row.filename">
{{ row.filename }}
</NuxtLink>
</a>
<span v-else class="font-medium break-all">{{ row.filename }}</span>
</div>
</div>
Expand Down Expand Up @@ -105,11 +105,11 @@
<td class="px-4 py-3 text-sm">{{ index+1 }}</td>
<td class="px-4 py-3 text-sm">
<UPopover mode="hover" :content="{ align: 'start' }" :ui="{ content: 'p-3' }">
<NuxtLink v-if="allowDownloads && row.download_url && row.status === 'completed'" :href="row.download_url" target="_blank"
<a v-if="allowDownloads && row.download_url && row.status === 'completed'" :href="row.download_url" target="_blank" rel="noopener noreferrer"
class="font-medium hover:underline break-all cursor-pointer px-2 py-1 rounded hover:bg-elevated/50 inline-block"
:aria-label="row.filename">
{{ row.filename }}
</NuxtLink>
</a>
<UButton v-else variant="ghost" color="neutral" size="xs" class="w-full justify-start break-all"
:aria-label="row.filename">
<span class="break-all text-left">{{ row.filename }}</span>
Expand Down
12 changes: 6 additions & 6 deletions frontend/app/pages/f/[token].vue
Original file line number Diff line number Diff line change
Expand Up @@ -87,12 +87,12 @@
<div class="flex items-start gap-3">
<UIcon :name="getFileIcon(upload.filename || '')" class="size-6 text-primary shrink-0 mt-0.5" />
<div class="min-w-0 flex-1">
<NuxtLink
<a
v-if="tokenInfo?.allow_public_downloads && upload.status === 'completed' && upload.download_url"
:to="upload.download_url"
:href="upload.download_url"
class="font-medium hover:underline break-all">
{{ upload.filename }}
</NuxtLink>
</a>
<span v-else class="font-medium break-all">
{{ upload.filename }}
</span>
Expand Down Expand Up @@ -174,11 +174,11 @@
<div class="flex items-center gap-2">
<UIcon :name="getFileIcon(upload.filename || '')" class="size-5 text-primary shrink-0" />
<span class="font-medium break-all">
<NuxtLink
<a
v-if="tokenInfo?.allow_public_downloads && upload.status === 'completed' && upload.download_url"
:to="upload.download_url">
:href="upload.download_url">
{{ upload.filename }}
</NuxtLink>
</a>
<span v-else>
{{ upload.filename }}
</span>
Expand Down
Loading