Initial commit of the Asset Management System, including project structure, Docker configuration, database migrations, and core application files. Added user authentication, asset management features, and basic UI components.

This commit is contained in:
2025-08-22 21:41:02 +02:00
parent b43a98f0ec
commit 677f70a19c
52 changed files with 5186 additions and 2 deletions

42
app/Views/auth/login.php Normal file
View File

@@ -0,0 +1,42 @@
<div class="login-container">
<div class="login-box">
<div class="login-header">
<h2><?= $lang['login_title'] ?></h2>
<p>Asset Management System</p>
</div>
<form method="POST" action="/login" class="login-form">
<input type="hidden" name="csrf_token" value="<?= $csrfToken ?>">
<div class="form-group">
<label for="email"><?= $lang['login_email'] ?></label>
<input type="email" id="email" name="email" required class="form-control">
</div>
<div class="form-group">
<label for="password"><?= $lang['login_password'] ?></label>
<input type="password" id="password" name="password" required class="form-control">
</div>
<div class="form-group">
<label class="checkbox-label">
<input type="checkbox" name="remember" value="1">
<span class="checkmark"></span>
<?= $lang['login_remember'] ?>
</label>
</div>
<div class="form-group">
<button type="submit" class="btn btn-primary btn-block">
<?= $lang['login_submit'] ?>
</button>
</div>
</form>
<div class="login-footer">
<a href="/password/forgot" class="forgot-password">
<?= $lang['forgot_password'] ?>
</a>
</div>
</div>
</div>

View File

@@ -0,0 +1,97 @@
<!DOCTYPE html>
<html lang="<?= $locale ?>">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title><?= $lang['dashboard'] ?> - Asset Management System</title>
<!-- CSS -->
<link rel="stylesheet" href="/assets/css/style.css">
<!-- Favicon -->
<link rel="icon" type="image/x-icon" href="/assets/img/favicon.ico">
<!-- Security Headers -->
<meta http-equiv="X-Content-Type-Options" content="nosniff">
<meta http-equiv="X-Frame-Options" content="SAMEORIGIN">
<meta http-equiv="X-XSS-Protection" content="1; mode=block">
</head>
<body>
<!-- Header -->
<header class="header">
<div class="container">
<div class="header-content">
<div class="logo">
<h1>Asset Management</h1>
</div>
<?php if ($user): ?>
<nav class="nav">
<ul class="nav-list">
<li><a href="/dashboard" class="nav-link"><?= $lang['dashboard'] ?></a></li>
<li><a href="/assets" class="nav-link"><?= $lang['assets'] ?></a></li>
<li><a href="/inventories" class="nav-link"><?= $lang['inventory'] ?></a></li>
<li><a href="/reports" class="nav-link"><?= $lang['reports'] ?></a></li>
<?php if ($user['role'] === 'admin'): ?>
<li class="nav-dropdown">
<a href="#" class="nav-link"><?= $lang['master_data'] ?></a>
<ul class="nav-dropdown-menu">
<li><a href="/categories"><?= $lang['categories_nav'] ?></a></li>
<li><a href="/locations"><?= $lang['locations_nav'] ?></a></li>
<li><a href="/departments"><?= $lang['departments_nav'] ?></a></li>
</ul>
</li>
<li><a href="/users" class="nav-link"><?= $lang['users'] ?></a></li>
<?php endif; ?>
</ul>
</nav>
<div class="user-menu">
<span class="user-name"><?= htmlspecialchars($user['name']) ?></span>
<div class="user-dropdown">
<a href="#" class="user-link"><?= $user['name'] ?></a>
<ul class="user-dropdown-menu">
<li><a href="/settings"><?= $lang['settings'] ?></a></li>
<li><a href="/logout"><?= $lang['logout'] ?></a></li>
</ul>
</div>
</div>
<?php endif; ?>
</div>
</div>
</header>
<!-- Main Content -->
<main class="main">
<div class="container">
<!-- Flash Messages -->
<?php if (!empty($flashMessages)): ?>
<div class="flash-messages">
<?php foreach ($flashMessages as $type => $message): ?>
<div class="alert alert-<?= $type ?>">
<?= htmlspecialchars($message) ?>
<button type="button" class="alert-close" onclick="this.parentElement.remove()">&times;</button>
</div>
<?php endforeach; ?>
</div>
<?php endif; ?>
<!-- Page Content -->
<div class="content">
<?= $content ?>
</div>
</div>
</main>
<!-- Footer -->
<footer class="footer">
<div class="container">
<p>&copy; <?= date('Y') ?> Asset Management System. Alle Rechte vorbehalten.</p>
</div>
</footer>
<!-- JavaScript -->
<script src="/assets/js/app.js"></script>
</body>
</html>