index.html 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>Squirrel Banking</title>
  7. <link rel="stylesheet" href="styles.css">
  8. <script src="app.js" defer></script>
  9. </head>
  10. <body>
  11. <!-- Placeholder where we will insert our app HTML based on route -->
  12. <div id="app">Loading...</div>
  13. <!-- Login page template -->
  14. <template id="login">
  15. <section class="login-page">
  16. <div class="login-container">
  17. <div class="login-title text-center">
  18. <span class="hide-xs">Squirrel</span>
  19. <img class="login-logo" src="logo.svg" alt="Squirrel Banking Logo">
  20. <span class="hide-xs">Banking</span>
  21. </div>
  22. <div class="login-content">
  23. <h2 class="text-center">Login</h2>
  24. <form id="loginForm" action="javascript:login()">
  25. <label for="username">Username</label>
  26. <input id="username" name="user" type="text" maxlength="20" required>
  27. <div id="loginError" class="error" role="alert"></div>
  28. <button>Login</button>
  29. </form>
  30. <p class="login-separator text-center"><span>OR</span></p>
  31. <h2 class="text-center">Register</h2>
  32. <form id="registerForm" action="javascript:register()">
  33. <label for="user">Username (required)</label>
  34. <input id="user" name="user" type="text" maxlength="20" required>
  35. <label for="currency">Currency (required)</label>
  36. <input id="currency" name="currency" type="text" maxlength="5" value="$" required>
  37. <label for="description">Description</label>
  38. <input id="description" name="description" type="text" maxlength="100">
  39. <label for="balance">Current balance</label>
  40. <input id="balance" name="balance" type="number" value="0">
  41. <div id="registerError" class="error" role="alert"></div>
  42. <button>Register</button>
  43. </form>
  44. </div>
  45. </div>
  46. </section>
  47. </template>
  48. <!-- Dashboard page template -->
  49. <template id="dashboard">
  50. <section class="dashboard-page">
  51. <header class="dashboard-header">
  52. <img class="dashboard-logo" src="logo.svg" alt="Squirrel Banking Logo">
  53. <h1 class="dashboard-title hide-xs">Squirrel Banking</span>
  54. <button onclick="logout()">Logout</button>
  55. </header>
  56. <div class="balance">
  57. <div>Balance</div>
  58. <span id="balance"></span>
  59. <span id="currency"></span>
  60. </div>
  61. <div class="dashboard-content">
  62. <div class="transactions-title">
  63. <h2 id="description"></h2>
  64. <button onclick="addTransaction()">Add transaction</button>
  65. </div>
  66. <table class="transactions-table" aria-label="Transactions">
  67. <thead>
  68. <tr>
  69. <th>Date</th>
  70. <th>Object</th>
  71. <th>Amount</th>
  72. </tr>
  73. </thead>
  74. <tbody id="transactions"></tbody>
  75. </table>
  76. </div>
  77. </section>
  78. <section id="transactionDialog" class="dialog">
  79. <div class="dialog-content">
  80. <h2 class="text-center">Add transaction</h2>
  81. <form id="transactionForm" action="javascript:void(0)">
  82. <label for="date">Date</label>
  83. <input id="date" name="date" type="date" required>
  84. <label for="object">Object</label>
  85. <input id="object" name="object" type="text" maxlength="50" required>
  86. <label for="amount">Amount (use negative value for debit)</label>
  87. <input id="amount" name="amount" type="number" value="0" step="any" required>
  88. <div id="transactionError" class="error" role="alert"></div>
  89. <div class="dialog-buttons">
  90. <button type="button" class="button-alt" formaction="javascript:cancelTransaction()" formnovalidate>Cancel</button>
  91. <button formaction="javascript:confirmTransaction()">OK</button>
  92. </div>
  93. </form>
  94. </div>
  95. </section>
  96. </template>
  97. <!-- Transaction row template -->
  98. <template id="transaction">
  99. <tr>
  100. <td></td>
  101. <td></td>
  102. <td></td>
  103. </tr>
  104. </template>
  105. </body>
  106. </html>