ui progress db import
All checks were successful
Deploy Nyla Frontend to Production / deploy (push) Successful in 44s
Deploy Nyla Frontend to Integration / deploy (push) Successful in 1m27s

This commit is contained in:
ValueOn AG 2026-05-28 09:12:24 +02:00
parent 57319507bb
commit 275b5125c1

View file

@ -950,17 +950,34 @@ const MigrationTab: React.FC = () => {
// --- Restore: Validate (uploads file to server, streams to disk) ---
const importTokenRef = useRef('');
const [uploadProgress, setUploadProgress] = useState('');
const _validateFile = async (file: File) => {
setValidating(true);
setValidation(null);
setUploadProgress('');
importTokenRef.current = '';
const fileMb = (file.size / (1024 * 1024)).toFixed(1);
try {
const formData = new FormData();
formData.append('file', file);
const res = await api.post('/api/admin/database-health/migration/upload-import', formData, {
headers: { 'Content-Type': 'multipart/form-data' },
timeout: 0,
onUploadProgress: (e) => {
if (e.total) {
const pct = Math.round((e.loaded / e.total) * 100);
const loadedMb = (e.loaded / (1024 * 1024)).toFixed(1);
setUploadProgress(pct < 100
? t('Upload: {loaded} / {total} MB ({pct}%)', { loaded: loadedMb, total: fileMb, pct })
: t('Validierung laeuft ({total} MB)...', { total: fileMb }),
);
}
},
});
setUploadProgress('');
importTokenRef.current = res.data.token || '';
setValidation({
valid: res.data.valid,
@ -974,6 +991,7 @@ const MigrationTab: React.FC = () => {
systemObjectsFound: res.data.systemObjectsFound || [],
});
} catch (err: any) {
setUploadProgress('');
const detail = err?.response?.data?.detail;
setValidation({
valid: false, summary: [], systemObjectsFound: [],
@ -1221,7 +1239,7 @@ const MigrationTab: React.FC = () => {
{validating && (
<div className={styles.loadingContainer} style={{ padding: '1rem' }}>
<div className={styles.spinner} />
<span>{t('Validierung laeuft...')}</span>
<span>{uploadProgress || t('Validierung laeuft...')}</span>
</div>
)}