mirror of
https://github.com/StefBuwalda/cal_counter.git
synced 2025-10-29 19:00:00 +00:00
Introduces a new add_meal_v2 blueprint with barcode scanning, item search, and improved meal logging UI. Adds user timezone support: login form now captures timezone, User model and database schema updated, and timezone is set on login. Refactors templates and forms to support these changes, and removes the old login template.
91 lines
3.4 KiB
HTML
91 lines
3.4 KiB
HTML
<!doctype html>
|
|
<html lang="en" data-bs-theme="dark">
|
|
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<title>{% block title %}My Flask App{% endblock %}</title>
|
|
|
|
<!-- Bootstrap 5 CDN -->
|
|
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.7/dist/css/bootstrap.min.css" rel="stylesheet">
|
|
</head>
|
|
|
|
<body class="bg-body-secondary">
|
|
<nav class="navbar navbar-expand-lg navbar-dark bg-dark mb-4">
|
|
<div class="container-fluid">
|
|
<a class="navbar-brand" href="{{ url_for('index') }}">CalCounter</a>
|
|
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav"
|
|
aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
|
|
<span class="navbar-toggler-icon"></span>
|
|
</button>
|
|
|
|
<div class="collapse navbar-collapse" id="navbarNav">
|
|
<div class="d-flex w-100">
|
|
<ul class="navbar-nav flex-grow-1">
|
|
<li class="nav-item">
|
|
<a class="nav-link" href="{{ url_for('user.daily_log') }}">Daily Log</a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a class="nav-link" href="{{ url_for('user.daily_log2') }}">Daily Log (new)</a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a class="nav-link" href="{{ url_for('user.dashboard') }}">Dashboard</a>
|
|
</li>
|
|
</ul>
|
|
<ul class="navbar-nav">
|
|
{% if current_user.is_authenticated %}
|
|
<li class="nav-item">
|
|
<a class="nav-link" href="{{ url_for('auth.logout') }}">Logout</a>
|
|
</li>
|
|
{% else %}
|
|
<li class="nav-item">
|
|
<a class="nav-link" href="{{ url_for('auth.login') }}">Login</a>
|
|
</li>
|
|
{% endif %}
|
|
<li class="nav-item">
|
|
<button id="toggleTheme" class="btn btn-outline-light">Toggle Theme</button>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</nav>
|
|
|
|
|
|
<div class="container">
|
|
{% with messages = get_flashed_messages() %}
|
|
{% if messages %}
|
|
<div class="alert alert-info">
|
|
{% for message in messages %}
|
|
<p>{{ message }}</p>
|
|
{% endfor %}
|
|
</div>
|
|
{% endif %}
|
|
{% endwith %}
|
|
|
|
{% block content %}
|
|
{% endblock %}
|
|
</div>
|
|
|
|
<script>
|
|
const html = document.documentElement;
|
|
const savedTheme = localStorage.getItem("theme");
|
|
if (savedTheme) {
|
|
html.setAttribute("data-bs-theme", savedTheme);
|
|
}
|
|
|
|
document.getElementById("toggleTheme").addEventListener("click", () => {
|
|
const current = html.getAttribute("data-bs-theme");
|
|
const next = current === "dark" ? "light" : "dark";
|
|
html.setAttribute("data-bs-theme", next);
|
|
localStorage.setItem("theme", next);
|
|
});
|
|
</script>
|
|
|
|
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js"></script>
|
|
|
|
{% block scripts %}
|
|
{% endblock %}
|
|
</body>
|
|
|
|
</html> |