fix in js

This commit is contained in:
Mateusz Gruszczyński 2025-02-27 07:32:54 +01:00
parent 0cc4f51c95
commit a0f21ac8e8

View File

@ -95,6 +95,14 @@
<p id="mass-firmware-timer">120 sekund</p>
</div>
<!-- Dynamiczny prompt dla masowego restartu firmware -->
<div id="mass-firmware-reboot-prompt" style="display:none; position:fixed; top:0; left:0; width:100%; height:100%; background:rgba(0,0,0,0.7); z-index:1100; color:white; text-align:center; padding-top:200px;">
<h3>Firmware update zakończony.</h3>
<p>Czy chcesz zrestartować wszystkie wybrane urządzenia?</p>
<button id="mass-firmware-reboot-btn" class="btn btn-danger">Restart urządzeń</button>
<button id="mass-firmware-cancel-btn" class="btn btn-secondary ms-2">Anuluj</button>
</div>
<script>
// Funkcja "Select all" zaznacza lub odznacza wszystkie checkboxy
document.getElementById('select-all').addEventListener('change', function() {
@ -114,14 +122,14 @@
return selected;
}
// Funkcja masowej aktualizacji systemu
// Masowa aktualizacja systemu
document.getElementById('mass-system-update-btn').addEventListener('click', function() {
var selectedDevices = getSelectedDeviceIds();
if(selectedDevices.length === 0) {
alert("Wybierz przynajmniej jedno urządzenie.");
return;
}
// Dla każdego urządzenia wykonaj update systemu asynchronicznie
// Wysyłamy update systemu dla każdego urządzenia asynchronicznie
selectedDevices.forEach(function(id) {
fetch("{{ url_for('update_device', device_id=0) }}".replace("0", id), { method: 'POST' })
.catch(function(error){ console.error('Błąd aktualizacji systemu dla urządzenia ' + id, error); });
@ -139,7 +147,7 @@
timerDisplay.textContent = timeLeft + ' sekund';
if(timeLeft <= 0){
clearInterval(interval);
// Po zakończeniu odliczania wykonaj force_check dla każdego wybranego urządzenia
// Po zakończeniu odliczania, dla każdego urządzenia wykonaj force_check
selectedDevices.forEach(function(id) {
fetch("{{ url_for('force_check', device_id=0) }}".replace("0", id), { method: 'GET' })
.catch(function(error){ console.error('Błąd force check dla urządzenia ' + id, error); });
@ -149,20 +157,25 @@
}, 1000);
});
// Funkcja masowej aktualizacji firmware
// Masowa aktualizacja firmware
document.getElementById('mass-firmware-update-btn').addEventListener('click', function() {
var selectedDevices = getSelectedDeviceIds();
if(selectedDevices.length === 0) {
alert("Wybierz przynajmniej jedno urządzenie.");
return;
}
// Dla każdego urządzenia wykonaj update firmware asynchronicznie
// Wysyłamy update firmware dla każdego urządzenia asynchronicznie
selectedDevices.forEach(function(id) {
fetch("{{ url_for('update_firmware', device_id=0) }}".replace("0", id), { method: 'POST' })
.catch(function(error){ console.error('Błąd aktualizacji firmware dla urządzenia ' + id, error); });
});
// Zapytaj użytkownika, czy chce zrestartować urządzenia
if(confirm("Firmware update zakończony. Czy chcesz teraz zrestartować wszystkie wybrane urządzenia?")) {
// Zamiast confirm() wyświetlamy dynamiczny prompt
var promptDiv = document.getElementById('mass-firmware-reboot-prompt');
promptDiv.style.display = 'block';
// Obsługa przycisku restartu w prompt
document.getElementById('mass-firmware-reboot-btn').addEventListener('click', function() {
promptDiv.style.display = 'none';
// Pokaż overlay z paskiem postępu dla reboot (2 minuty)
var overlay = document.getElementById('mass-firmware-update-overlay');
overlay.style.display = 'block';
@ -176,7 +189,7 @@
timerDisplay.textContent = timeLeft + ' sekund';
if(timeLeft <= 0){
clearInterval(interval);
// Po zakończeniu 2 minut wykonaj force_check dla każdego wybranego urządzenia
// Po zakończeniu odliczania, dla każdego urządzenia wykonaj force_check
selectedDevices.forEach(function(id) {
fetch("{{ url_for('force_check', device_id=0) }}".replace("0", id), { method: 'GET' })
.catch(function(error){ console.error('Błąd force check dla urządzenia ' + id, error); });
@ -184,9 +197,13 @@
location.reload();
}
}, 1000);
} else {
});
// Obsługa przycisku anulowania restartu w prompt
document.getElementById('mass-firmware-cancel-btn').addEventListener('click', function() {
alert("Restart został anulowany. Pamiętaj, że firmware update wymaga rebootu.");
}
promptDiv.style.display = 'none';
});
});
// Obsługa standardowego przycisku "Odśwież wybrane"
@ -197,14 +214,11 @@
alert("Wybierz przynajmniej jedno urządzenie.");
return;
}
// Dla każdego wybranego urządzenia wykonaj force_check
selectedDevices.forEach(function(id) {
fetch("{{ url_for('force_check', device_id=0) }}".replace("0", id), { method: 'GET' })
.catch(function(error){ console.error('Błąd force check dla urządzenia ' + id, error); });
});
// Po krótkiej chwili przeładuj stronę
setTimeout(function(){ location.reload(); }, 2000);
});
</script>
{% endblock %}