aggiunti trasferte, export excel, miglioramenti generali

This commit is contained in:
2026-02-04 12:55:04 +01:00
parent 17453f5d13
commit 5f4ef6faee
30 changed files with 1558 additions and 325 deletions

View File

@@ -87,7 +87,11 @@
</div>
<div class="legend-item">
<div class="legend-color status-absent"></div>
<span>Assente</span>
<span>Ferie</span>
</div>
<div class="legend-item">
<div class="legend-color status-business_trip"></div>
<span>Trasferta</span>
</div>
</div>
</div>
@@ -155,11 +159,35 @@
</div>
<!-- Exclusion Card -->
<div class="card" id="exclusionCard" style="margin-top: 2rem;">
<div class="card-header">
<h3>Esclusione Assegnazione</h3>
</div>
<div class="card-body">
<p class="text-muted" style="margin-bottom: 1rem;">
Puoi decidere di escluderti automaticamente dalla logica di assegnazione dei posti auto.
Le richieste di esclusione sono visibili agli amministratori.
</p>
<div id="exclusionStatusDisplay"
style="display: none; padding: 1rem; border-radius: 6px; margin-bottom: 1rem; background-color: #f3f4f6; border: 1px solid #e5e7eb;">
<!-- Filled by JS -->
</div>
<div style="display: flex; gap: 0.5rem;">
<button class="btn btn-dark" id="manageExclusionBtn">Gestisci Esclusione</button>
</div>
</div>
</div>
<div class="card parking-map-card" style="margin-top: 2rem;">
<h3>Mappa Parcheggio</h3>
<img src="/assets/parking-map.png" alt="Mappa Parcheggio"
style="width: 100%; height: auto; border-radius: 4px; border: 1px solid var(--border);">
</div>
</div> <!-- End parking-map-card -->
</div>
</main>
@@ -199,7 +227,11 @@
</button>
<button type="button" class="status-btn qe-status-btn" data-status="absent">
<div class="status-icon status-absent"></div>
<span>Assente</span>
<span>Ferie</span>
</button>
<button type="button" class="status-btn qe-status-btn" data-status="business_trip">
<div class="status-icon status-business_trip"></div>
<span>Trasferta</span>
</button>
<button type="button" class="status-btn qe-status-btn" data-status="clear">
<div class="status-icon"
@@ -241,7 +273,11 @@
</button>
<button class="status-btn" data-status="absent">
<div class="status-icon status-absent"></div>
<span>Assente</span>
<span>Ferie</span>
</button>
<button class="status-btn" data-status="business_trip">
<div class="status-icon status-business_trip"></div>
<span>Trasferta</span>
</button>
</div>
@@ -276,6 +312,59 @@
</div>
</div>
</div>
</div>
<!-- User Exclusion Modal -->
<div class="modal" id="userExclusionModal" style="display: none;">
<div class="modal-content modal-small">
<div class="modal-header">
<h3>Gestisci Esclusione</h3>
<button class="modal-close" id="closeUserExclusionModal">&times;</button>
</div>
<div class="modal-body">
<form id="userExclusionForm">
<div class="form-group">
<label style="font-weight: 500; margin-bottom: 0.5rem; display: block;">Durata
Esclusione</label>
<div style="display: flex; gap: 1rem; margin-bottom: 1rem;">
<label style="display: flex; align-items: center; gap: 0.5rem; cursor: pointer;">
<input type="radio" name="exclusionType" value="forever" checked>
<span>Tempo Indeterminato</span>
</label>
<label style="display: flex; align-items: center; gap: 0.5rem; cursor: pointer;">
<input type="radio" name="exclusionType" value="range">
<span>Periodo Specifico</span>
</label>
</div>
</div>
<div id="exclusionDateRange" style="display: none;">
<div class="form-group">
<label for="ueStartDate">Data Inizio</label>
<input type="date" id="ueStartDate" class="form-control">
</div>
<div class="form-group">
<label for="ueEndDate">Data Fine</label>
<input type="date" id="ueEndDate" class="form-control">
</div>
</div>
<div class="form-group">
<label for="ueNotes">Motivo (opzionale)</label>
<textarea id="ueNotes" class="form-control" rows="2"
placeholder="Es. Lavoro da remoto per un mese..."></textarea>
</div>
<div class="form-actions">
<button type="button" class="btn btn-danger" id="deleteExclusionBtn"
style="display: none; margin-right: auto;">Rimuovi</button>
<button type="button" class="btn btn-secondary" id="cancelUserExclusion">Annulla</button>
<button type="submit" class="btn btn-dark">Salva</button>
</div>
</form>
</div>
</div>
</div>