You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
depot_django/templates/test.html

342 lines
11 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Container Depot Management System</title>
<style>
body {
background: linear-gradient(135deg, #0f4c81 0%, #1a6baf 100%);
min-height: 100vh;
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
margin: 0;
display: flex;
align-items: center;
justify-content: center;
padding: 1rem;
}
.wave {
position: absolute;
bottom: 0;
left: 0;
width: 100%;
height: 100px;
background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 320'%3E%3Cpath fill='%23ffffff' fill-opacity='0.3' d='M0,192L48,197.3C96,203,192,213,288,229.3C384,245,480,267,576,250.7C672,235,768,181,864,181.3C960,181,1056,235,1152,234.7C1248,235,1344,181,1392,154.7L1440,128L1440,320L1392,320C1344,320,1248,320,1152,320C1056,320,960,320,864,320C768,320,672,320,576,320C480,320,384,320,288,320C192,320,96,320,48,320L0,320Z'%3E%3C/path%3E%3C/svg%3E");
background-size: cover;
background-repeat: no-repeat;
z-index: -1;
}
.login-container {
background-color: white;
border-radius: 0.75rem;
box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
overflow: hidden;
max-width: 56rem;
width: 100%;
display: flex;
flex-direction: column;
animation: fadeIn 0.8s ease-in-out;
}
@media (min-width: 768px) {
.login-container {
flex-direction: row;
}
}
@keyframes fadeIn {
from { opacity: 0; transform: translateY(-20px); }
to { opacity: 1; transform: translateY(0); }
}
.login-form-section {
width: 100%;
padding: 2rem;
}
@media (min-width: 768px) {
.login-form-section {
width: 50%;
}
}
.info-section {
width: 100%;
background: linear-gradient(to bottom right, #2563eb, #1d4ed8);
padding: 2rem;
color: white;
display: flex;
flex-direction: column;
justify-content: space-between;
}
@media (min-width: 768px) {
.info-section {
width: 50%;
}
}
h1 {
font-size: 1.875rem;
font-weight: bold;
color: #1f2937;
margin-bottom: 0.5rem;
}
h2 {
font-size: 1.5rem;
font-weight: bold;
margin-bottom: 1.5rem;
}
.subtitle {
color: #4b5563;
margin-top: 0.5rem;
}
.form-group {
margin-bottom: 1.5rem;
}
label {
display: block;
font-size: 0.875rem;
font-weight: 500;
color: #374151;
margin-bottom: 0.25rem;
}
input[type="text"],
input[type="password"] {
width: 100%;
padding: 0.5rem 1rem;
border: 1px solid #d1d5db;
border-radius: 0.375rem;
outline: none;
box-sizing: border-box;
}
input[type="text"]:focus,
input[type="password"]:focus {
border-color: #3b82f6;
box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.2);
}
.remember-forgot {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 1.5rem;
}
.remember-me {
display: flex;
align-items: center;
}
.remember-me input {
margin-right: 0.5rem;
}
.forgot-password {
color: #2563eb;
text-decoration: none;
font-size: 0.875rem;
}
.forgot-password:hover {
color: #1d4ed8;
}
.submit-button {
width: 100%;
background-color: #2563eb;
color: white;
padding: 0.5rem 1rem;
border: none;
border-radius: 0.375rem;
cursor: pointer;
transition: background-color 0.2s;
}
.submit-button:hover {
background-color: #1d4ed8;
}
.feature-item {
display: flex;
align-items: flex-start;
margin-bottom: 1rem;
}
.feature-icon {
background-color: rgba(37, 99, 235, 0.5);
padding: 0.5rem;
border-radius: 9999px;
margin-right: 0.75rem;
}
.feature-text {
color: rgba(219, 234, 254, 0.9);
font-size: 0.875rem;
}
.version-info {
display: flex;
align-items: center;
gap: 0.5rem;
margin-top: 2rem;
font-size: 0.875rem;
}
#loginMessage {
text-align: center;
margin-top: 1rem;
display: none;
}
#loginMessage.error {
color: #ef4444;
}
#loginMessage.success {
color: #10b981;
}
</style>
</head>
<body>
<div class="wave"></div>
<div class="login-container">
<!-- Left side - Login Form -->
<div class="login-form-section">
<div>
<h1>Container Depot</h1>
<p class="subtitle">Sign in to access the management system</p>
</div>
<form id="loginForm">
<div class="form-group">
<label for="username">Username</label>
<input type="text" id="username" name="username" required>
</div>
<div class="form-group">
<label for="password">Password</label>
<input type="password" id="password" name="password" required>
</div>
<div class="remember-forgot">
<div class="remember-me">
<input type="checkbox" id="remember" name="remember">
<label for="remember">Remember me</label>
</div>
<a href="#" class="forgot-password">Forgot password?</a>
</div>
<div>
<button type="submit" class="submit-button">
Sign In
</button>
</div>
<div id="loginMessage"></div>
</form>
<div>
<p>Need help? Contact system administrator</p>
</div>
</div>
<!-- Right side - Info -->
<div class="info-section">
<div>
<h2>Container Depot Management System</h2>
<div>
<div class="feature-item">
<div class="feature-icon">
<svg xmlns="http://www.w3.org/2000/svg" class="icon" fill="none" viewBox="0 0 24 24" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 19l9 2-9-18-9 18 9-2zm0 0v-8" />
</svg>
</div>
<div>
<h3>Line Operators</h3>
<p class="feature-text">Manage container preinfo and expedition orders</p>
</div>
</div>
<div class="feature-item">
<div class="feature-icon">
<svg xmlns="http://www.w3.org/2000/svg" class="icon" fill="none" viewBox="0 0 24 24" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 12l2 2 4-4m5.618-4.016A11.955 11.955 0 0112 2.944a11.955 11.955 0 01-8.618 3.04A12.02 12.02 0 003 9c0 5.591 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.042-.133-2.052-.382-3.016z" />
</svg>
</div>
<div>
<h3>Barrier Staff</h3>
<p class="feature-text">Process container arrivals and departures</p>
</div>
</div>
<div class="feature-item">
<div class="feature-icon">
<svg xmlns="http://www.w3.org/2000/svg" class="icon" fill="none" viewBox="0 0 24 24" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 17v-2m3 2v-4m3 4v-6m2 10H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z" />
</svg>
</div>
<div>
<h3>Depot Management</h3>
<p class="feature-text">View inventory and generate reports</p>
</div>
</div>
</div>
</div>
<div>
<div class="version-info">
<svg xmlns="http://www.w3.org/2000/svg" class="icon" fill="none" viewBox="0 0 24 24" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 12h.01M12 12h.01M19 12h.01M6 12a1 1 0 11-2 0 1 1 0 012 0zm7 0a1 1 0 11-2 0 1 1 0 012 0zm7 0a1 1 0 11-2 0 1 1 0 012 0z" />
</svg>
<span>Version 1.0.0</span>
</div>
</div>
</div>
</div>
<script>
document.getElementById('loginForm').addEventListener('submit', function(e) {
e.preventDefault();
const username = document.getElementById('username').value;
const password = document.getElementById('password').value;
const messageDiv = document.getElementById('loginMessage');
if (username && password) {
messageDiv.textContent = "Logging in...";
messageDiv.classList.remove('hidden', 'error');
messageDiv.classList.add('success');
setTimeout(() => {
if (username === 'line_operator') {
window.location.href = '/line-operator-dashboard';
} else if (username === 'barrier') {
window.location.href = '/barrier-dashboard';
} else if (username === 'depot') {
window.location.href = '/depot-dashboard';
} else {
messageDiv.textContent = "Demo login: Use 'line_operator', 'barrier', or 'depot' as username";
messageDiv.classList.remove('success');
messageDiv.classList.add('info');
}
}, 1000);
} else {
messageDiv.textContent = "Please enter both username and password";
messageDiv.classList.remove('hidden', 'success');
messageDiv.classList.add('error');
}
});
</script>
</body>
</html>