diff --git a/containers/libreportal/frontend/js/components/backup/backup-page.js b/containers/libreportal/frontend/js/components/backup/backup-page.js index eb72132..c4cfdb2 100644 --- a/containers/libreportal/frontend/js/components/backup/backup-page.js +++ b/containers/libreportal/frontend/js/components/backup/backup-page.js @@ -772,6 +772,7 @@ class BackupPage { Export Repository Passwords +
`; @@ -1280,18 +1281,17 @@ class BackupPage { KEEP_YEARLY: loc.keep_yearly }; + // Single .config-fields grid, exactly like /config's renderer — the grid + // (repeat(3, 1fr)) handles the row layout itself, and hidden fields + // (PATH_MODE/SSH/etc.) drop out cleanly without leaving column gaps. let html = '
'; - let inBlock = 0; for (const suffix of suffixes) { const def = BACKUP_LOC_FIELD_DEFS[suffix]; if (!def) continue; const key = `CFG_BACKUP_LOC_${idx}_${suffix}`; const value = (locValueLookup[suffix] ?? '').toString(); const fieldId = `config-${key}`; - // Three-up grouping mirrors /config's row layout. - if (inBlock > 0 && inBlock % 3 === 0) html += '
'; html += ConfigShared.generateField(fieldId, key, value, def.title, def.description, {}, {}); - inBlock++; } html += '
'; return html;