Upload main.js via GUI
This commit is contained in:
9
main.js
9
main.js
@@ -342,6 +342,7 @@ function readCredentials() {
|
|||||||
|
|
||||||
/* ==================== BACKUP CONFIGURATION ==================== */
|
/* ==================== BACKUP CONFIGURATION ==================== */
|
||||||
let backupProviders = {}; // { [repoName]: provider instance }
|
let backupProviders = {}; // { [repoName]: provider instance }
|
||||||
|
const backupDoneSessions = new Map(); // { [sessionId]: timestamp }
|
||||||
|
|
||||||
function getBackupConfigPath() {
|
function getBackupConfigPath() {
|
||||||
return ppath.join(app.getPath('userData'), 'backup-config.json');
|
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)
|
// Auto-Backup vor Upload (wenn in Einstellungen aktiviert)
|
||||||
const autoBackupEnabled = Boolean(credentials && credentials.autoBackupEnabled);
|
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 backupTarget = String((credentials && credentials.backupPrefLocalFolder) || '').trim();
|
||||||
const emitStatus = (payload) => {
|
const emitStatus = (payload) => {
|
||||||
try { event.sender.send('pre-push-backup-status', payload); } catch (_) {}
|
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' });
|
emitStatus({ stage: 'backup-failed', repoName: backupRepoName, error: backupResult?.error || 'Unbekannter Fehler' });
|
||||||
return { ok: false, error: `Auto-Backup vor Upload fehlgeschlagen: ${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: 'backup-done', repoName: backupRepoName, filename: backupResult.filename || '' });
|
||||||
emitStatus({ stage: 'upload-start' });
|
emitStatus({ stage: 'upload-start' });
|
||||||
} catch (backupErr) {
|
} catch (backupErr) {
|
||||||
|
|||||||
Reference in New Issue
Block a user