index.html 3.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. <!-- templates/index.html -->
  2. <!DOCTYPE html>
  3. <html lang="en">
  4. <head>
  5. <meta charset="UTF-8">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>KTVManager</title>
  8. <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
  9. <link rel="icon" type="image/png" href="{{ url_for('static', filename='favicon-96x96.png') }}" sizes="96x96" />
  10. <link rel="icon" type="image/svg+xml" href="{{ url_for('static', filename='favicon.svg') }}" />
  11. <link rel="shortcut icon" href="{{ url_for('static', filename='favicon.ico') }}" />
  12. <link rel="apple-touch-icon" sizes="180x180" href="{{ url_for('static', filename='apple-touch-icon.png') }}" />
  13. <meta name="apple-mobile-web-app-title" content="kTvManager" />
  14. <link rel="manifest" href="{{ url_for('static', filename='site.webmanifest') }}" />
  15. <link rel="stylesheet" href="{{ url_for('static', filename='styles.css') }}" />
  16. </head>
  17. <body>
  18. <!-- Navbar -->
  19. <nav class="navbar navbar-expand-lg navbar-dark bg-dark">
  20. <a class="navbar-brand" href="/">KTVManager</a>
  21. <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
  22. <span class="navbar-toggler-icon"></span>
  23. </button>
  24. <div class="collapse navbar-collapse" id="navbarNav">
  25. <ul class="navbar-nav ml-auto">
  26. <li class="nav-item">
  27. <a class="nav-link" href="/">Home</a>
  28. </li>
  29. <li class="nav-item">
  30. <a class="nav-link" href="/accounts">Accounts</a>
  31. </li>
  32. <li class="nav-item">
  33. <a class="nav-link" href="/urls">URLs</a>
  34. </li>
  35. </ul>
  36. </div>
  37. </nav>
  38. <!-- Main Content -->
  39. <main div class="container mt-5">
  40. <h1>Welcome to KTV Manager</h1>
  41. <!-- Login Form -->
  42. <form action="/login" method="post" class="mt-3">
  43. <div class="form-group">
  44. <label for="username">Username:</label>
  45. <input type="text" class="form-control" id="username" name="username" required>
  46. </div>
  47. <div class="form-group">
  48. <label for="password">Password:</label>
  49. <input type="password" class="form-control" id="password" name="password" required>
  50. </div>
  51. <button type="submit" class="btn btn-primary">Login</button>
  52. {% if error %}
  53. <div class="alert alert-danger mt-3">{{ error }}</div>
  54. {% endif %}
  55. </form>
  56. </div>
  57. </main>
  58. <footer class="bg-dark text-white text-center py-3 mt-5">
  59. <p></p>
  60. </footer>
  61. <script src="https://code.jquery.com/jquery-3.5.1.slim.min.js"></script>
  62. <script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.0.7/dist/umd/popper.min.js"></script>
  63. <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script>
  64. <script>
  65. if ('serviceWorker' in navigator) {
  66. navigator.serviceWorker.register('{{ url_for("static", filename="service-worker.js") }}')
  67. // .then(reg => {
  68. // console.log('Service worker:', reg);
  69. // .catch(err => {
  70. // console.log('Service worker:', err);
  71. // });
  72. }
  73. </script>
  74. </body>
  75. </html>