Prima importazione

This commit is contained in:
2026-07-05 10:55:40 +02:00
commit 457c3eacf6
23 changed files with 6384 additions and 0 deletions
+110
View File
@@ -0,0 +1,110 @@
<!DOCTYPE html>
<html lang="it">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="OTRS Turbo — Interfaccia moderna per gestione rapida ticket. Accesso diretto al database OTRS.">
<title>OTRS Turbo — Gestione Ticket Veloce</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap" rel="stylesheet">
<link rel="stylesheet" href="/css/style.css">
</head>
<body>
<!-- Sidebar Navigation -->
<nav class="sidebar" id="sidebar">
<div class="sidebar-brand">
<div class="brand-icon"></div>
<span class="brand-text">OTRS Turbo</span>
</div>
<ul class="nav-menu">
<li>
<a href="#/dashboard" class="nav-link active" data-view="dashboard" id="nav-dashboard">
<svg class="nav-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
<rect x="3" y="3" width="7" height="7" rx="1"/>
<rect x="14" y="3" width="7" height="7" rx="1"/>
<rect x="3" y="14" width="7" height="7" rx="1"/>
<rect x="14" y="14" width="7" height="7" rx="1"/>
</svg>
<span>Dashboard</span>
</a>
</li>
<li>
<a href="#/tickets" class="nav-link" data-view="tickets" id="nav-tickets">
<svg class="nav-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
<path d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2"/>
<rect x="9" y="3" width="6" height="4" rx="1"/>
<path d="M9 12h6M9 16h4"/>
</svg>
<span>Ticket</span>
<span class="nav-badge" id="open-ticket-count"></span>
</a>
</li>
<li>
<a href="#/tickets/new" class="nav-link" data-view="new-ticket" id="nav-new-ticket">
<svg class="nav-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
<circle cx="12" cy="12" r="10"/>
<path d="M12 8v8M8 12h8"/>
</svg>
<span>Nuovo Ticket</span>
</a>
</li>
</ul>
<div class="sidebar-footer">
<div class="sidebar-footer-info">
<div class="connection-dot" id="connection-status"></div>
<span class="connection-text" id="connection-text">Connessione DB...</span>
</div>
</div>
</nav>
<!-- Main Content -->
<main class="main-content" id="main-content">
<!-- Top Bar -->
<header class="topbar" id="topbar">
<div class="topbar-left" style="display:flex; align-items:center; gap:var(--space-md);">
<h1 class="page-title" id="page-title">Dashboard</h1>
<select class="form-select" id="active-agent-select" style="padding: 6px 32px 6px 12px; font-size: 0.85rem; height: 36px; min-width: 180px; margin: 0; background-position: right 10px center; border-color: var(--border-light);"></select>
</div>
<div class="topbar-right">
<div class="search-bar" id="global-search-container">
<svg class="search-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
<circle cx="11" cy="11" r="8"/>
<path d="M21 21l-4.35-4.35"/>
</svg>
<input type="text" class="search-input" id="global-search" placeholder="Cerca ticket (numero o titolo)..." />
</div>
<button class="btn btn-primary btn-sm" id="topbar-new-ticket" onclick="window.location.hash='#/tickets/new'">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" style="width:16px;height:16px;">
<path d="M12 5v14M5 12h14"/>
</svg>
Nuovo
</button>
</div>
</header>
<!-- View Container -->
<div class="view-container" id="view-container">
<!-- Dynamic content rendered here by JS -->
<div class="loading-screen" id="loading-screen">
<div class="spinner"></div>
<p>Caricamento...</p>
</div>
</div>
</main>
<!-- Toast Container -->
<div class="toast-container" id="toast-container"></div>
<!-- Scripts -->
<script src="/js/components/toast.js"></script>
<script src="/js/components/filters.js"></script>
<script src="/js/views/dashboard.js"></script>
<script src="/js/views/ticketList.js"></script>
<script src="/js/views/ticketDetail.js"></script>
<script src="/js/views/ticketCreate.js"></script>
<script src="/js/app.js"></script>
</body>
</html>