netgescon-master/netgescon-laravel/resources/views/components/menu/sections/footer.blade.php

86 lines
3.1 KiB
PHP

{{-- Footer Sidebar Fisso - Evita spostamenti --}}
<div class="p-2 border-top border-primary text-center position-relative" style="min-height: 60px;">
{{-- Indicatore di Status Fisso --}}
<div class="d-flex align-items-center justify-content-center mb-1">
<div class="status-indicator me-2" id="server-status">
<span class="badge bg-success" style="font-size: 0.6rem;">
<i class="fas fa-check-circle me-1"></i>Server Online
</span>
</div>
</div>
{{-- Info App --}}
<small class="text-muted" style="font-size: 0.65rem;">
© 2025 NetGesCon v2.1.0<br>
<a href="#" class="text-decoration-none small" onclick="openSupport()">Supporto</a>
<a href="#" class="text-decoration-none small" onclick="openContacts()">Contatti</a>
</small>
{{-- Progress Bar per operazioni in background (nascosta di default) --}}
<div id="background-progress" class="progress mt-1" style="height: 3px; display: none;">
<div class="progress-bar progress-bar-striped progress-bar-animated bg-primary"
role="progressbar" style="width: 0%"></div>
</div>
</div>
<style>
.status-indicator .badge {
animation: none !important;
padding: 0.2rem 0.4rem;
}
.status-indicator.updating .badge {
background-color: #ffc107 !important;
animation: pulse 1s infinite;
}
@keyframes pulse {
0% { opacity: 1; }
50% { opacity: 0.7; }
100% { opacity: 1; }
}
</style>
<script>
function openSupport() {
alert('Centro Assistenza NetGesCon\n\nEmail: supporto@netgescon.it\nTel: 06.123456789\nOrari: Lun-Ven 9:00-18:00');
}
function openContacts() {
alert('Contatti NetGesCon\n\nNetGesCon S.r.l.\nVia Roma 123, 00100 Roma\nP.IVA: 12345678901\ninfo@netgescon.it');
}
// Funzione per mostrare progress senza spostare la pagina
function showProgress(message = 'Elaborazione in corso...') {
const status = document.getElementById('server-status');
const progress = document.getElementById('background-progress');
status.classList.add('updating');
status.innerHTML = `<span class="badge bg-warning"><i class="fas fa-sync-alt fa-spin me-1"></i>${message}</span>`;
progress.style.display = 'block';
let width = 0;
const interval = setInterval(() => {
width += Math.random() * 10;
if (width >= 100) {
width = 100;
clearInterval(interval);
setTimeout(() => {
hideProgress();
}, 500);
}
progress.querySelector('.progress-bar').style.width = width + '%';
}, 100);
}
function hideProgress() {
const status = document.getElementById('server-status');
const progress = document.getElementById('background-progress');
status.classList.remove('updating');
status.innerHTML = '<span class="badge bg-success"><i class="fas fa-check-circle me-1"></i>Server Online</span>';
progress.style.display = 'none';
progress.querySelector('.progress-bar').style.width = '0%';
}
// Export funzioni per uso globale
window.showProgress = showProgress;
window.hideProgress = hideProgress;
</script>