51 lines
2.3 KiB
Plaintext
51 lines
2.3 KiB
Plaintext
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<link rel="stylesheet" href="/assets/css/bootstrap.min.css">
|
|
<title>Sign In</title>
|
|
</head>
|
|
<body class="bg-light">
|
|
<div class="container">
|
|
<div class="row justify-content-center align-items-center" style="min-height:80vh;">
|
|
<div class="col-md-8 col-lg-5">
|
|
<div class="card shadow-sm">
|
|
<div class="card-body p-4">
|
|
<h3 class="card-title text-center mb-3">Sign in</h3>
|
|
|
|
<% if (typeof error !== 'undefined' && error) { %>
|
|
<div class="alert alert-danger" role="alert"><%= error %></div>
|
|
<% } %>
|
|
|
|
<form action="/login" method="post" novalidate>
|
|
<div class="mb-3">
|
|
<label for="username" class="form-label">Username</label>
|
|
<input id="username" name="username" type="text" class="form-control" required autofocus
|
|
value="<%= typeof username !== 'undefined' ? username : '' %>">
|
|
</div>
|
|
|
|
<div class="mb-3">
|
|
<label for="password" class="form-label">Password</label>
|
|
<input id="password" name="password" type="password" class="form-control" required>
|
|
</div>
|
|
|
|
<div class="mb-3 form-check">
|
|
<input id="remember" name="remember" type="checkbox" class="form-check-input">
|
|
<label class="form-check-label" for="remember">Remember me</label>
|
|
</div>
|
|
|
|
<button type="submit" class="btn btn-primary w-100">Sign in</button>
|
|
</form>
|
|
|
|
<p class="text-center text-muted small mt-3 mb-0">Return to <a href="/">home</a></p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<script src="/assets/js/jquery.min.js"></script>
|
|
<script src="/assets/js/bootstrap.bundle.min.js"></script>
|
|
</body>
|
|
</html> |