This commit is contained in:
MasterAcnolo
2025-07-02 22:24:46 +02:00
parent 751f3d5c3e
commit db654c5f82
27 changed files with 743 additions and 116 deletions

View File

@@ -1,3 +1,21 @@
/*
This file is part of Freedom Loader.
Copyright (C) 2025 MasterAcnolo
Freedom Loader is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License.
Freedom Loader is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
/*
Ce script attend que le DOM soit complètement chargé pour initialiser
l'affichage et la gestion du chemin de sauvegarde personnalisé.
@@ -9,15 +27,24 @@
de choisir un dossier via une boîte de dialogue native.
5. Met à jour l'affichage et la valeur cachée du chemin sélectionné.
*/
window.addEventListener("DOMContentLoaded", async () => {
const defaultPath = await window.electronAPI.getDefaultDownloadPath();
const savePathElem = document.getElementById("savePath");
if (savePathElem) {
savePathElem.textContent = defaultPath;
// 1Essayer de charger depuis le localStorage
let savedPath = localStorage.getItem("customDownloadPath");
// 2Sinon demander le chemin par défaut à l'API Electron
if (!savedPath) {
savedPath = await window.electronAPI.getDefaultDownloadPath();
}
// Vérifie si l'input caché existe déjà, sinon le crée et l'ajoute au formulaire
// 3 Afficher le chemin
if (savePathElem) {
savePathElem.textContent = savedPath;
}
// Créer l'input caché s'il n'existe pas déjà
let hidden = document.getElementById("savePathInput");
if (!hidden) {
hidden = document.createElement("input");
@@ -26,14 +53,19 @@ window.addEventListener("DOMContentLoaded", async () => {
hidden.id = "savePathInput";
document.getElementById("downloadForm").appendChild(hidden);
}
hidden.value = defaultPath;
hidden.value = savedPath;
// Gestion du clic sur le bouton pour changer le dossier de téléchargement
// Gestion du bouton de modification
document.getElementById("changePath").addEventListener("click", async () => {
const selectedPath = await window.electronAPI.selectDownloadFolder();
if (selectedPath) {
// Met à jour l'affichage
savePathElem.textContent = selectedPath;
hidden.value = selectedPath;
// Et le stocke en localStorage pour la prochaine fois
localStorage.setItem("customDownloadPath", selectedPath);
}
});
});