Upload main.js via GUI
This commit is contained in:
9
main.js
9
main.js
@@ -342,6 +342,7 @@ function readCredentials() {
|
||||
|
||||
/* ==================== BACKUP CONFIGURATION ==================== */
|
||||
let backupProviders = {}; // { [repoName]: provider instance }
|
||||
const backupDoneSessions = new Map(); // { [sessionId]: timestamp }
|
||||
|
||||
function getBackupConfigPath() {
|
||||
return ppath.join(app.getPath('userData'), 'backup-config.json');
|
||||
@@ -1913,7 +1914,9 @@ ipcMain.handle('upload-and-push', async (event, data) => {
|
||||
|
||||
// Auto-Backup vor Upload (wenn in Einstellungen aktiviert)
|
||||
const autoBackupEnabled = Boolean(credentials && credentials.autoBackupEnabled);
|
||||
if (autoBackupEnabled && !data.skipBackup) {
|
||||
const uploadSessionId = String(data.uploadSessionId || '').trim();
|
||||
const shouldSkipBySession = Boolean(uploadSessionId && backupDoneSessions.has(uploadSessionId));
|
||||
if (autoBackupEnabled && !data.skipBackup && !shouldSkipBySession) {
|
||||
const backupTarget = String((credentials && credentials.backupPrefLocalFolder) || '').trim();
|
||||
const emitStatus = (payload) => {
|
||||
try { event.sender.send('pre-push-backup-status', payload); } catch (_) {}
|
||||
@@ -1937,6 +1940,10 @@ ipcMain.handle('upload-and-push', async (event, data) => {
|
||||
emitStatus({ stage: 'backup-failed', repoName: backupRepoName, error: backupResult?.error || 'Unbekannter Fehler' });
|
||||
return { ok: false, error: `Auto-Backup vor Upload fehlgeschlagen: ${backupResult?.error || 'Unbekannter Fehler'}` };
|
||||
}
|
||||
if (uploadSessionId) {
|
||||
backupDoneSessions.set(uploadSessionId, Date.now());
|
||||
setTimeout(() => backupDoneSessions.delete(uploadSessionId), 10 * 60 * 1000);
|
||||
}
|
||||
emitStatus({ stage: 'backup-done', repoName: backupRepoName, filename: backupResult.filename || '' });
|
||||
emitStatus({ stage: 'upload-start' });
|
||||
} catch (backupErr) {
|
||||
|
||||
Reference in New Issue
Block a user