馃 distributed transcription service thistle.dunkirk.sh
at main 3.6 kB view raw
1<!DOCTYPE html> 2<html lang="en"> 3 4<head> 5 <meta charset="UTF-8"> 6 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 7 <title>Admin - Thistle</title> 8 <link rel="apple-touch-icon" sizes="180x180" href="../../public/favicon/apple-touch-icon.png"> 9 <link rel="icon" type="image/png" sizes="32x32" href="../../public/favicon/favicon-32x32.png"> 10 <link rel="icon" type="image/png" sizes="16x16" href="../../public/favicon/favicon-16x16.png"> 11 <link rel="manifest" href="../../public/favicon/site.webmanifest"> 12 <link rel="stylesheet" href="../styles/main.css"> 13 <link rel="stylesheet" href="../styles/admin.css"> 14</head> 15 16<body> 17 <header> 18 <div class="header-content"> 19 <a href="/" class="site-title"> 20 <img src="../../public/favicon/favicon-32x32.png" alt="Thistle logo"> 21 <span>Thistle</span> 22 </a> 23 <auth-component></auth-component> 24 </div> 25 </header> 26 27 <main> 28 <h1>Admin Dashboard</h1> 29 30 <div id="error-message" class="error hidden"></div> 31 32 <div id="loading" class="loading">Loading...</div> 33 34 <div id="content" class="hidden"> 35 <div class="stats"> 36 <div class="stat-card"> 37 <div class="stat-value" id="total-users">0</div> 38 <div class="stat-label">Total Users</div> 39 </div> 40 <div class="stat-card"> 41 <div class="stat-value" id="total-transcriptions">0</div> 42 <div class="stat-label">Total Transcriptions</div> 43 </div> 44 <div class="stat-card"> 45 <div class="stat-value" id="failed-transcriptions">0</div> 46 <div class="stat-label">Failed Transcriptions</div> 47 </div> 48 </div> 49 50 <div class="tabs"> 51 <button class="tab active" data-tab="pending">Pending Recordings</button> 52 <button class="tab" data-tab="transcriptions">Transcriptions</button> 53 <button class="tab" data-tab="users">Users</button> 54 <button class="tab" data-tab="classes">Classes</button> 55 </div> 56 57 <div id="pending-tab" class="tab-content active"> 58 <div class="section"> 59 <h2 class="section-title">Pending Recordings</h2> 60 <admin-pending-recordings></admin-pending-recordings> 61 </div> 62 </div> 63 64 <div id="transcriptions-tab" class="tab-content"> 65 <div class="section"> 66 <h2 class="section-title">All Transcriptions</h2> 67 <admin-transcriptions id="transcriptions-component"></admin-transcriptions> 68 </div> 69 </div> 70 71 <div id="users-tab" class="tab-content"> 72 <div class="section"> 73 <h2 class="section-title">All Users</h2> 74 <admin-users id="users-component"></admin-users> 75 </div> 76 </div> 77 78 <div id="classes-tab" class="tab-content"> 79 <div class="section"> 80 <h2 class="section-title">Manage Classes</h2> 81 <admin-classes></admin-classes> 82 </div> 83 </div> 84 </div> 85 </main> 86 87 <user-modal id="user-modal"></user-modal> 88 <transcript-modal id="transcript-modal"></transcript-modal> 89 90 <script type="module" src="../components/auth.ts"></script> 91 <script type="module" src="../components/admin-pending-recordings.ts"></script> 92 <script type="module" src="../components/admin-transcriptions.ts"></script> 93 <script type="module" src="../components/admin-users.ts"></script> 94 <script type="module" src="../components/admin-classes.ts"></script> 95 <script type="module" src="../components/user-modal.ts"></script> 96 <script type="module" src="../components/transcript-view-modal.ts"></script> 97 <script type="module" src="./admin.ts"></script> 98</body> 99 100</html>