同步功能更新
This commit is contained in:
1 parent
21f0dc2830
commit
1d2d16e710
11 files changed
+268
-2
No files matched your search
@@ -2,6 +2,7 @@
|
||||
import type { FileItem, FileListResponse } from '~/types/file'
|
||||
import type { LibraryStatsData } from '~/types/media'
|
||||
import { formatFileSize } from '~/composables/useFileSize'
|
||||
import SiteSyncSelectedDialog from '~/components/storage/SiteSyncSelectedDialog.vue'
|
||||
|
||||
const { isAuthenticated, handleAuthError } = useAuth()
|
||||
const toast = useToast()
|
||||
@@ -24,6 +25,7 @@ const stats = ref<LibraryStatsData | null>(null)
|
||||
const selectedKeys = ref<Set<string>>(new Set())
|
||||
const deleteModalOpen = ref(false)
|
||||
const batchTagOpen = ref(false)
|
||||
const syncOpen = ref(false)
|
||||
const deleteTargetKeys = ref<string[]>([])
|
||||
const deleting = ref(false)
|
||||
const previewOpen = ref(false)
|
||||
@@ -40,6 +42,7 @@ const activeUntaggedOnly = ref(false)
|
||||
const { viewMode } = useLibraryView('video')
|
||||
|
||||
const selectedCount = computed(() => selectedKeys.value.size)
|
||||
const syncKeys = computed(() => [...selectedKeys.value])
|
||||
|
||||
const backendItems = computed(() => [
|
||||
{ label: t('stats.filterStorageAll'), value: 'all' },
|
||||
@@ -246,6 +249,10 @@ function openBatchTags() {
|
||||
batchTagOpen.value = true
|
||||
}
|
||||
|
||||
function openSync() {
|
||||
syncOpen.value = true
|
||||
}
|
||||
|
||||
async function confirmBatchTags(tagIds: number[], action: 'add' | 'remove') {
|
||||
const keys = [...selectedKeys.value]
|
||||
if (!keys.length || !tagIds.length) return
|
||||
@@ -470,6 +477,16 @@ defineExpose({ refresh })
|
||||
:label="t('library.batchDelete')"
|
||||
@click="requestBatchDelete"
|
||||
/>
|
||||
<UButton
|
||||
v-if="selectedCount > 0"
|
||||
icon="i-lucide-cloud-upload"
|
||||
variant="outline"
|
||||
color="neutral"
|
||||
size="sm"
|
||||
:disabled="!selectedCount || loading"
|
||||
:label="t('storage.backup.syncSelectedAction')"
|
||||
@click="openSync"
|
||||
/>
|
||||
<div class="flex gap-0.5 rounded-lg border border-default p-0.5">
|
||||
<UButton
|
||||
icon="i-lucide-layout-grid"
|
||||
@@ -743,6 +760,12 @@ defineExpose({ refresh })
|
||||
@confirm="confirmBatchTags"
|
||||
/>
|
||||
|
||||
<SiteSyncSelectedDialog
|
||||
v-model:open="syncOpen"
|
||||
:keys="syncKeys"
|
||||
scope="video"
|
||||
/>
|
||||
|
||||
<VideoPreviewModal
|
||||
v-model:open="previewOpen"
|
||||
:item="previewItem"
|
||||
|
||||
Reference in new issue
Block a user