Refactor folder relocation logic by adding hash verification step
This commit is contained in:
52
renderer.js
52
renderer.js
@@ -130,40 +130,6 @@ folders.forEach(folderObj => {
|
|||||||
if (e.target.closest('.pause-play-btn, .remove-btn')) return;
|
if (e.target.closest('.pause-play-btn, .remove-btn')) return;
|
||||||
|
|
||||||
// Nur wenn Folder fehlt
|
// Nur wenn Folder fehlt
|
||||||
if (folderObj.needsRelocation) {
|
|
||||||
// Öffne Ordner-Auswahldialog
|
|
||||||
const paths = await window.electronAPI.pickFolder(); // Sollte ein Array zurückgeben
|
|
||||||
const newPath = paths && paths[0];
|
|
||||||
if (!newPath) return;
|
|
||||||
|
|
||||||
// Prüfe auf gültiges Git-Repo
|
|
||||||
const isGit = await window.electronAPI.isGitRepo(newPath);
|
|
||||||
if (!isGit) {
|
|
||||||
alert('Das ist kein gültiges Git-Repository.');
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Folder umziehen
|
|
||||||
await window.electronAPI.relocateFolder(folderObj.path, newPath);
|
|
||||||
|
|
||||||
// UI aktualisieren
|
|
||||||
await renderSidebar();
|
|
||||||
// Ggf. neuen Ordner direkt selektieren:
|
|
||||||
const newFolderObj = (await window.electronAPI.getFolders())
|
|
||||||
.find(f => f.path === newPath);
|
|
||||||
if (newFolderObj) {
|
|
||||||
await window.electronAPI.setSelected(newFolderObj);
|
|
||||||
await renderContent(newFolderObj);
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Sonst Standardverhalten (Folder auswählen)
|
|
||||||
await window.electronAPI.setSelected(folderObj);
|
|
||||||
await renderSidebar();
|
|
||||||
await renderContent(folderObj);
|
|
||||||
});
|
|
||||||
|
|
||||||
if (folderObj.needsRelocation) {
|
if (folderObj.needsRelocation) {
|
||||||
// 1. Ordner wählen
|
// 1. Ordner wählen
|
||||||
const paths = await window.electronAPI.pickFolder();
|
const paths = await window.electronAPI.pickFolder();
|
||||||
@@ -192,8 +158,24 @@ folders.forEach(folderObj => {
|
|||||||
// 4. Folder umziehen
|
// 4. Folder umziehen
|
||||||
await window.electronAPI.relocateFolder(folderObj.path, newPath);
|
await window.electronAPI.relocateFolder(folderObj.path, newPath);
|
||||||
await renderSidebar();
|
await renderSidebar();
|
||||||
// ggf. noch weitere UI-Updates...
|
|
||||||
|
|
||||||
|
// Ggf. neuen Ordner direkt selektieren:
|
||||||
|
const newFolderObj = (await window.electronAPI.getFolders())
|
||||||
|
.find(f => f.path === newPath);
|
||||||
|
if (newFolderObj) {
|
||||||
|
await window.electronAPI.setSelected(newFolderObj);
|
||||||
|
await renderContent(newFolderObj);
|
||||||
}
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Sonst Standardverhalten (Folder auswählen)
|
||||||
|
await window.electronAPI.setSelected(folderObj);
|
||||||
|
await renderSidebar();
|
||||||
|
await renderContent(folderObj);
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user