diff --git a/frontend/src/components/drawer-pro/index.vue b/frontend/src/components/drawer-pro/index.vue index 93935d65f515..07705d6c5c84 100644 --- a/frontend/src/components/drawer-pro/index.vue +++ b/frontend/src/components/drawer-pro/index.vue @@ -3,6 +3,7 @@ v-model="localOpenPage" @close="handleClose" :destroy-on-close="true" + :before-close="beforeClose" :size="size" :close-on-press-escape="autoClose" :close-on-click-modal="autoClose" @@ -78,10 +79,14 @@ const props = defineProps({ type: Boolean, default: true, }, + confirmBeforeClose: { + type: Boolean, + default: false, + }, }); const slots = useSlots(); -const emit = defineEmits(['update:modelValue', 'close']); +const emit = defineEmits(['update:modelValue', 'close', 'beforeClose']); const size = computed(() => { switch (props.size) { @@ -112,10 +117,25 @@ const localOpenPage = computed({ }); const handleBack = () => { - if (props.back) { - props.back(); + if (props.confirmBeforeClose) { + const done = () => { + if (props.back) { + props.back(); + } else { + localOpenPage.value = false; + globalStore.isFullScreen = false; + emit('close'); + } + }; + emit('beforeClose', done); } else { - handleClose(); + if (props.back) { + props.back(); + } else { + localOpenPage.value = false; + globalStore.isFullScreen = false; + emit('close'); + } } }; @@ -125,6 +145,10 @@ const handleClose = () => { emit('close'); }; +const beforeClose = (done: () => void) => { + emit('beforeClose', done); +}; + function toggleFullscreen() { globalStore.isFullScreen = !globalStore.isFullScreen; } diff --git a/frontend/src/lang/modules/en.ts b/frontend/src/lang/modules/en.ts index 83fcc78a9245..b649b9922e16 100644 --- a/frontend/src/lang/modules/en.ts +++ b/frontend/src/lang/modules/en.ts @@ -1500,6 +1500,8 @@ const message = { setting: 'Setting', showHide: 'Show hidden files', noShowHide: 'Don’t show hidden files', + cancelUpload: 'Cancel Upload', + cancelUploadHelper: 'Whether to cancel the upload, after cancellation the upload list will be cleared.', }, ssh: { autoStart: 'Auto start', diff --git a/frontend/src/lang/modules/ja.ts b/frontend/src/lang/modules/ja.ts index ac8a2a6b0e0d..b65ffc0bc312 100644 --- a/frontend/src/lang/modules/ja.ts +++ b/frontend/src/lang/modules/ja.ts @@ -1444,6 +1444,8 @@ const message = { setting: '設定', showHide: '隠しファイルを表示', noShowHide: '隠しファイルを表示しない', + cancelUpload: 'アップロードをキャンセル', + cancelUploadHelper: 'アップロードをキャンセルするかどうか、キャンセル後、アップロードリストはクリアされます。', }, ssh: { autoStart: 'オートスタート', diff --git a/frontend/src/lang/modules/ko.ts b/frontend/src/lang/modules/ko.ts index 8dbc3abfe9f3..35ed3bc44362 100644 --- a/frontend/src/lang/modules/ko.ts +++ b/frontend/src/lang/modules/ko.ts @@ -1429,6 +1429,8 @@ const message = { setting: '설정', showHide: '숨김 파일 표시', noShowHide: '숨김 파일 숨기기', + cancelUpload: '업로드 취소', + cancelUploadHelper: '업로드를 취소할지 여부, 취소 후 업로드 목록이 비워집니다.', }, ssh: { autoStart: '자동 시작', diff --git a/frontend/src/lang/modules/ms.ts b/frontend/src/lang/modules/ms.ts index 40410574f637..d5100d6ed8c1 100644 --- a/frontend/src/lang/modules/ms.ts +++ b/frontend/src/lang/modules/ms.ts @@ -1486,6 +1486,9 @@ const message = { setting: 'tetapan', showHide: 'Tunjukkan fail tersembunyi', noShowHide: 'Jangan tunjukkan fail tersembunyi', + cancelUpload: 'Batalkan Muat Naik', + cancelUploadHelper: + 'Adakah hendak membatalkan muat naik, selepas pembatalan senarai muat naik akan dikosongkan.', }, ssh: { autoStart: 'Mula automatik', diff --git a/frontend/src/lang/modules/pt-br.ts b/frontend/src/lang/modules/pt-br.ts index cdb4b34a7301..cd9c7a65d12a 100644 --- a/frontend/src/lang/modules/pt-br.ts +++ b/frontend/src/lang/modules/pt-br.ts @@ -1474,6 +1474,8 @@ const message = { setting: 'configuração', showHide: 'Mostrar arquivos ocultos', noShowHide: 'Não mostrar arquivos ocultos', + cancelUpload: 'Cancelar Upload', + cancelUploadHelper: 'Deseja cancelar o upload, após o cancelamento, a lista de upload será limpa.', }, ssh: { autoStart: 'Início automático', diff --git a/frontend/src/lang/modules/ru.ts b/frontend/src/lang/modules/ru.ts index 16a96bb29073..d579289918a5 100644 --- a/frontend/src/lang/modules/ru.ts +++ b/frontend/src/lang/modules/ru.ts @@ -1475,6 +1475,8 @@ const message = { setting: 'настройка', showHide: 'Показывать скрытые файлы', noShowHide: 'Не показывать скрытые файлы', + cancelUpload: 'Отменить загрузку', + cancelUploadHelper: 'Отменить загрузку или нет, после отмены список загрузок будет очищен.', }, ssh: { autoStart: 'Автозапуск', diff --git a/frontend/src/lang/modules/tr.ts b/frontend/src/lang/modules/tr.ts index 34707783d644..92554c780ddf 100644 --- a/frontend/src/lang/modules/tr.ts +++ b/frontend/src/lang/modules/tr.ts @@ -1517,6 +1517,8 @@ const message = { setting: 'Ayar', showHide: 'Gizli dosyaları göster', noShowHide: 'Gizli dosyaları gösterme', + cancelUpload: 'Yüklemeyi İptal Et', + cancelUploadHelper: 'Yüklemeyi iptal etmek ister misiniz, iptal sonrası yükleme listesi temizlenecektir.', }, ssh: { autoStart: 'Otomatik başlat', diff --git a/frontend/src/lang/modules/zh-Hant.ts b/frontend/src/lang/modules/zh-Hant.ts index 63e84ffb5508..2e1f680f7994 100644 --- a/frontend/src/lang/modules/zh-Hant.ts +++ b/frontend/src/lang/modules/zh-Hant.ts @@ -1430,6 +1430,8 @@ const message = { setting: '设置', showHide: '顯示隱藏檔案', noShowHide: '不顯示隱藏檔案', + cancelUpload: '取消上傳', + cancelUploadHelper: '是否取消上傳,取消後將清空上傳列表', }, ssh: { autoStart: '開機自啟', diff --git a/frontend/src/lang/modules/zh.ts b/frontend/src/lang/modules/zh.ts index 24c228217eef..1a94fd4af67f 100644 --- a/frontend/src/lang/modules/zh.ts +++ b/frontend/src/lang/modules/zh.ts @@ -1425,6 +1425,8 @@ const message = { setting: '设置', showHide: '显示隐藏文件', noShowHide: '不显示隐藏文件', + cancelUpload: '取消上传', + cancelUploadHelper: '是否取消上传,取消后将清空上传列表', }, ssh: { autoStart: '开机自启', diff --git a/frontend/src/views/host/file-management/upload/index.vue b/frontend/src/views/host/file-management/upload/index.vue index 5eeb9674d4d6..d9ed1f2ceaf9 100644 --- a/frontend/src/views/host/file-management/upload/index.vue +++ b/frontend/src/views/host/file-management/upload/index.vue @@ -1,5 +1,11 @@