Use visible NAS upload storage and reconcile missing files
This commit is contained in:
@@ -146,8 +146,17 @@ function connect() {
|
||||
])
|
||||
socket.on(event, () => void refresh().catch(showError));
|
||||
}
|
||||
let errorTimer;
|
||||
export function showError(err) {
|
||||
error.value = err instanceof Error ? err.message : '처리 중 오류가 발생했습니다.';
|
||||
clearTimeout(errorTimer);
|
||||
const raw = err instanceof Error ? err.message : '처리 중 오류가 발생했습니다.';
|
||||
const message = /^(Failed to fetch|NetworkError|Load failed)$/i.test(raw)
|
||||
? '서버에 연결하지 못했어요. 잠시 후 다시 시도해 주세요.'
|
||||
: raw;
|
||||
error.value = message;
|
||||
errorTimer = setTimeout(() => {
|
||||
if (error.value === message) error.value = '';
|
||||
}, 5000);
|
||||
}
|
||||
export const refresh = createRefreshQueue(async () => {
|
||||
const snapshot = await api('/device/snapshot');
|
||||
@@ -523,6 +532,12 @@ export async function undoDelete(id) {
|
||||
await refresh();
|
||||
}
|
||||
export async function download(item) {
|
||||
try {
|
||||
await api(`/access/${item.accessId}`);
|
||||
} catch (err) {
|
||||
await refresh().catch(() => {});
|
||||
throw err;
|
||||
}
|
||||
const a = document.createElement('a');
|
||||
a.href = `/api/access/${item.accessId}/download`;
|
||||
a.download = item.file?.name ?? '';
|
||||
|
||||
Reference in New Issue
Block a user