<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Museum Visitor Guestbook</title> <!-- Bootstrap CSS --> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet"> <style> /* Scrolling marquee styles */ .scrolling-wrapper { overflow: hidden; white-space: nowrap; position: fixed; bottom: 0; width: 100%; background-color: #f8f9fa; border-top: 1px solid #dee2e6; } .scrolling-content { display: inline-block; padding: 10px; animation: scroll-left 20s linear infinite; } @keyframes scroll-left { 0% { transform: translateX(100%); } 100% { transform: translateX(-100%); } } </style> </head> <body> <div class="container mt-5 mb-5"> <h1 class="mb-4">Museum Visitor Guestbook</h1> <!-- Brief instructions for the form --> <div class="alert alert-info" role="alert"> Please fill in your details below. First name, last name, and location are required. Providing your email is optional, but it helps us follow up if needed. </div> {% if error %} <div class="alert alert-danger" role="alert"> {{ error }} </div> {% endif %} <form method="post" action="/" class="mb-4"> <div class="mb-3"> <label for="first_name" class="form-label">First Name(s):</label> <input type="text" class="form-control" id="first_name" name="first_name" required> </div> <div class="mb-3"> <label for="last_name" class="form-label">Last Name:</label> <input type="text" class="form-control" id="last_name" name="last_name" required> </div> <div class="mb-3"> <label for="email" class="form-label">Email (Optional):</label> <input type="email" class="form-control" id="email" name="email"> </div> <div class="mb-3"> <label for="location" class="form-label">Location:</label> <input type="text" class="form-control" id="location" name="location" required> </div> <!-- Comment field hidden by default --> <div class="mb-3" id="comment-field" style="display: none;"> <label for="comment" class="form-label">Comment (Optional):</label> <textarea class="form-control" id="comment" name="comment" rows="3"></textarea> </div> <button type="submit" class="btn btn-primary">Submit</button> </form> </div> <!-- Scrolling Guest Entries at the Bottom --> <div class="scrolling-wrapper"> <div class="scrolling-content"> {% for guest in guests %} <span class="me-4"> <strong>{{ guest[0] }}</strong> from {{ guest[1] }} </span> {% endfor %} </div> </div> <!-- JavaScript to reveal the comment field --> <script> document.addEventListener("DOMContentLoaded", function () { const firstNameInput = document.getElementById('first_name'); const lastNameInput = document.getElementById('last_name'); const locationInput = document.getElementById('location'); const commentField = document.getElementById('comment-field'); function checkFields() { if (firstNameInput.value.trim().length >= 3 && lastNameInput.value.trim().length >= 3 && locationInput.value.trim().length >= 3) { commentField.style.display = 'block'; } else { commentField.style.display = 'none'; } } firstNameInput.addEventListener('input', checkFields); lastNameInput.addEventListener('input', checkFields); locationInput.addEventListener('input', checkFields); }); </script> <!-- Bootstrap JS (optional) --> <script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.10.2/dist/umd/popper.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.min.js"></script> </body> </html>