Files
mold_cost_online_tool/app/templates/base.html
T
Gan, Jimmy 6c0d5a4e63 Initial commit: Clean Mold Cost Calculator application
- Flask-based mold cost calculation application
- PostgreSQL database with SQLAlchemy ORM
- Docker/Podman containerization
- Comprehensive documentation in docs/
- Clean, organized codebase without obsolete files
- Production-ready deployment configuration
- Enhanced pytest configuration with coverage reporting
- Master/Development branch structure
2025-06-24 02:30:09 +08:00

156 lines
5.2 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="csrf-token" content="{{ csrf_token() }}">
<title>{% block title %}{% endblock %} - Mold Cost Calculator</title>
<!-- Favicon -->
<link rel="icon" type="image/x-icon" href="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'><text y='.9em' font-size='90'>🧮</text></svg>">
<!-- Bootstrap CSS -->
<link href="{{ url_for('static', filename='css/bootstrap.min.css') }}" rel="stylesheet">
<!-- Bootstrap Icons -->
<link rel="stylesheet" href="{{ url_for('static', filename='css/bootstrap-icons.css') }}">
<!-- Custom Styles -->
<link href="{{ url_for('static', filename='css/style.css') }}" rel="stylesheet">
<!-- Custom Styles -->
<style>
:root {
--primary-color: #0d6efd;
--secondary-color: #6c757d;
--accent-color: #0d6efd;
--success-color: #198754;
--warning-color: #ffc107;
--danger-color: #dc3545;
--light-color: #f8f9fa;
--dark-color: #212529;
--text-color: #212529;
--text-muted: #6c757d;
--border-color: #dee2e6;
--shadow-color: rgba(0, 0, 0, 0.1);
}
body {
font-family: 'Inter', sans-serif;
line-height: 1.6;
color: var(--text-color);
background-color: #f8f9fa;
min-height: 100vh;
display: flex;
flex-direction: column;
}
.navbar {
background-color: var(--primary-color);
padding: 1rem 0;
box-shadow: 0 2px 4px var(--shadow-color);
position: sticky;
top: 0;
z-index: 1000;
}
.navbar-brand {
color: white;
text-decoration: none;
font-size: 1.5rem;
font-weight: 600;
}
.nav-link {
color: rgba(255, 255, 255, 0.9);
text-decoration: none;
padding: 0.5rem 1rem;
border-radius: 4px;
transition: all 0.3s ease;
}
.nav-link:hover {
color: white;
background-color: rgba(255, 255, 255, 0.2);
}
.nav-link.active {
color: white;
background-color: rgba(255, 255, 255, 0.2);
}
.main-content {
flex: 1;
padding: 2rem 0;
}
.footer {
background-color: var(--primary-color);
color: white;
padding: 1rem 0;
text-align: center;
margin-top: auto;
}
</style>
{% block head %}{% endblock %}
{% block styles %}{% endblock %}
</head>
<body>
<nav class="navbar navbar-expand-lg navbar-dark">
<div class="container">
<a class="navbar-brand" href="{{ url_for('main.home') }}">
<i class="bi bi-calculator me-2"></i>Mold Cost Calculator
</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNav">
<ul class="navbar-nav me-auto">
<li class="nav-item">
<a class="nav-link {% if request.endpoint == 'main.calculator' %}active{% endif %}"
href="{{ url_for('main.calculator') }}">
<i class="bi bi-calculator me-1"></i>Calculator
</a>
</li>
</ul>
{% if current_user.is_authenticated %}
<div class="d-flex align-items-center">
<span class="text-white me-3">
<i class="bi bi-person me-2"></i>{{ current_user.username }}
</span>
<a href="{{ url_for('auth.logout') }}" class="btn btn-outline-light">
<i class="bi bi-box-arrow-right me-2"></i>Logout
</a>
</div>
{% endif %}
</div>
</div>
</nav>
<main class="main-content">
<div class="container">
{% with messages = get_flashed_messages(with_categories=true) %}
{% if messages %}
{% for category, message in messages %}
<div class="alert alert-{{ category }}">{{ message }}</div>
{% endfor %}
{% endif %}
{% endwith %}
{% block content %}{% endblock %}
</div>
</main>
<footer class="footer">
<div class="container">
<p class="mb-0">PCT & Tooling. All rights reserved.</p>
</div>
</footer>
<!-- Bootstrap Bundle with Popper -->
<script src="{{ url_for('static', filename='js/bootstrap.bundle.min.js') }}"></script>
<!-- jQuery -->
<script src="{{ url_for('static', filename='js/jquery.min.js') }}"></script>
{% block scripts %}{% endblock %}
</body>
</html>