155 lines
7.4 KiB
HTML
155 lines
7.4 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>Office Settings - Parking Manager</title>
|
|
<link rel="icon" type="image/svg+xml" href="/favicon.svg">
|
|
<link rel="stylesheet" href="/css/styles.css">
|
|
</head>
|
|
|
|
<body>
|
|
<aside class="sidebar">
|
|
<div class="sidebar-header">
|
|
<h1>Gestione Parcheggi</h1>
|
|
</div>
|
|
<nav class="sidebar-nav"></nav>
|
|
<div class="sidebar-footer">
|
|
<div class="user-menu">
|
|
<button class="user-button" id="userMenuButton">
|
|
<div class="user-avatar">
|
|
<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor"
|
|
stroke-width="2">
|
|
<path d="M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"></path>
|
|
<circle cx="12" cy="7" r="4"></circle>
|
|
</svg>
|
|
</div>
|
|
<div class="user-info">
|
|
<div class="user-name" id="userName">Caricamento...</div>
|
|
<div class="user-role" id="userRole">-</div>
|
|
</div>
|
|
</button>
|
|
<div class="user-dropdown" id="userDropdown" style="display: none;">
|
|
<a href="/profile" class="dropdown-item">Profilo</a>
|
|
<a href="/settings" class="dropdown-item">Impostazioni</a>
|
|
<hr class="dropdown-divider">
|
|
<button class="dropdown-item" id="logoutButton">Esci</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</aside>
|
|
|
|
<main class="main-content">
|
|
<header class="page-header">
|
|
<h2>Impostazioni Ufficio</h2>
|
|
</header>
|
|
|
|
<div class="content-wrapper">
|
|
|
|
<!-- Office Selection Card (Admin Only) -->
|
|
<div class="card" id="officeSelectionCard" style="margin-bottom: 1.5rem; display: none;">
|
|
<div style="display: flex; align-items: center; gap: 1rem;">
|
|
<label for="officeSelect" style="font-weight: 500; min-width: max-content;">Seleziona
|
|
Ufficio:</label>
|
|
<select id="officeSelect" class="form-select" style="flex: 1; max-width: 300px;">
|
|
<option value="">Seleziona Ufficio</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
|
|
<div id="settingsContent" style="display: none;">
|
|
|
|
<!-- Card 1: Batch Scheduling Settings -->
|
|
<div class="card">
|
|
<div class="card-header">
|
|
<h3>Schedulazione Automatica</h3>
|
|
</div>
|
|
<div class="card-body">
|
|
<form id="scheduleForm">
|
|
<div class="form-group">
|
|
<label class="toggle-label">
|
|
<span>Abilita Assegnazione Batch</span>
|
|
<label class="toggle-switch">
|
|
<input type="checkbox" id="bookingWindowEnabled">
|
|
<span class="toggle-slider"></span>
|
|
</label>
|
|
</label>
|
|
<small class="text-muted">Se abilitato, l'assegnazione dei posti avverrà solo dopo
|
|
l'orario
|
|
di cut-off del giorno precedente.</small>
|
|
</div>
|
|
|
|
<div class="form-group" id="cutoffTimeGroup">
|
|
<label>Orario di Cut-off (Giorno Precedente)</label>
|
|
<div style="display: flex; gap: 0.5rem; align-items: center;">
|
|
<select id="bookingWindowHour" style="width: 80px;">
|
|
<!-- Populated by JS -->
|
|
</select>
|
|
<span>:</span>
|
|
<select id="bookingWindowMinute" style="width: 80px;">
|
|
<option value="0">00</option>
|
|
<option value="15">15</option>
|
|
<option value="30">30</option>
|
|
<option value="45">45</option>
|
|
</select>
|
|
</div>
|
|
<small class="text-muted">Le presenze inserite prima di questo orario saranno messe in
|
|
attesa.</small>
|
|
</div>
|
|
|
|
<div class="form-actions">
|
|
<button type="submit" class="btn btn-dark">Salva Impostazioni</button>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Card 2: Testing Tools -->
|
|
<div class="card">
|
|
<div class="card-header"
|
|
style="display: flex; justify-content: space-between; align-items: center;">
|
|
<h3>Strumenti di Test</h3>
|
|
<span class="badge badge-warning">Testing Only</span>
|
|
</div>
|
|
<div class="card-body">
|
|
<p class="text-muted" style="margin-bottom: 1rem;">Usa questi strumenti per verificare il
|
|
funzionamento dell'assegnazione automatica.</p>
|
|
|
|
<div class="form-group">
|
|
<label>Range di Date di Test</label>
|
|
<div style="display: flex; gap: 1rem;">
|
|
<div>
|
|
<small>Da:</small>
|
|
<input type="date" id="testDateStart" class="form-control" style="width: 160px;">
|
|
</div>
|
|
<div>
|
|
<small>A (incluso):</small>
|
|
<input type="date" id="testDateEnd" class="form-control" style="width: 160px;">
|
|
</div>
|
|
</div>
|
|
<small class="text-muted">Lascia "A" vuoto per eseguire su un singolo giorno.</small>
|
|
</div>
|
|
|
|
<div style="display: flex; gap: 1rem; margin-top: 1rem;">
|
|
<button id="runAllocationBtn" class="btn btn-primary">
|
|
Esegui Assegnazione Ora
|
|
</button>
|
|
<button id="clearAssignmentsBtn" class="btn btn-danger">
|
|
Elimina Tutte le Assegnazioni
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
</div> <!-- End settingsContent -->
|
|
</div>
|
|
</main>
|
|
|
|
<script src="/js/api.js"></script>
|
|
<script src="/js/utils.js"></script>
|
|
<script src="/js/nav.js"></script>
|
|
<script src="/js/parking-settings.js"></script>
|
|
</body>
|
|
|
|
</html> |