Title: Enhanced System Logs and UI Updates
🎉 New system logs have been implemented for improved monitoring and debugging capabilities. These include:
- admin.log
- admin_api.log
- app.log
- data_management.log
- drucker_steuerung.log
- energy_monitoring.log
- hardware_integration.log
- job_queue_system.log
- monitoring_analytics.log
- permissions.
This commit is contained in:
@@ -358,80 +358,234 @@ document.addEventListener('DOMContentLoaded', function() {
|
||||
|
||||
{% if active_tab == 'users' %}
|
||||
<!-- Benutzer Tab -->
|
||||
<div class="p-12">
|
||||
<div class="flex items-center justify-between mb-6">
|
||||
<h2 class="text-2xl font-bold text-slate-900 dark:text-white">Benutzerverwaltung</h2>
|
||||
<button id="add-user-btn" class="inline-flex items-center px-4 py-2 bg-gradient-to-r from-blue-500 to-blue-600 text-white rounded-xl hover:from-blue-600 hover:to-blue-700 transition-all duration-300 shadow-lg hover:shadow-xl">
|
||||
<svg class="w-5 h-5 mr-2" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 6v6m0 0v6m0-6h6m-6 0H6"/>
|
||||
</svg>
|
||||
Neuer Benutzer
|
||||
</button>
|
||||
<div class="p-8">
|
||||
<!-- Header mit Statistiken -->
|
||||
<div class="flex items-center justify-between mb-8">
|
||||
<div>
|
||||
<h2 class="text-3xl font-bold text-slate-900 dark:text-white mb-2">Granulare Benutzerverwaltung</h2>
|
||||
<p class="text-slate-600 dark:text-slate-400">Verwalten Sie Benutzer und deren Berechtigungen direkt im Admin Panel</p>
|
||||
</div>
|
||||
<div class="flex items-center space-x-4">
|
||||
<div class="bg-blue-50 dark:bg-blue-900/20 border border-blue-200 dark:border-blue-800 rounded-xl px-4 py-2">
|
||||
<div class="text-sm text-blue-600 dark:text-blue-400">Benutzer gesamt</div>
|
||||
<div class="text-2xl font-bold text-blue-800 dark:text-blue-300">{{ users|length }}</div>
|
||||
</div>
|
||||
<button id="add-user-btn" class="inline-flex items-center px-6 py-3 bg-gradient-to-r from-blue-500 to-blue-600 text-white rounded-xl hover:from-blue-600 hover:to-blue-700 transition-all duration-300 shadow-lg hover:shadow-xl">
|
||||
<svg class="w-5 h-5 mr-2" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 6v6m0 0v6m0-6h6m-6 0H6"/>
|
||||
</svg>
|
||||
Neuer Benutzer
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Filter und Suche -->
|
||||
<div class="bg-slate-50 dark:bg-slate-800/50 rounded-xl p-6 mb-8">
|
||||
<div class="flex flex-wrap items-center justify-between gap-4">
|
||||
<div class="flex items-center space-x-4">
|
||||
<div>
|
||||
<label class="block text-sm font-medium text-slate-700 dark:text-slate-300 mb-2">Suche</label>
|
||||
<input type="text" id="user-search" placeholder="Benutzer suchen..."
|
||||
class="px-4 py-2 border border-slate-300 dark:border-slate-600 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-transparent dark:bg-slate-700 dark:text-white">
|
||||
</div>
|
||||
<div>
|
||||
<label class="block text-sm font-medium text-slate-700 dark:text-slate-300 mb-2">Rolle</label>
|
||||
<select id="role-filter" class="px-4 py-2 border border-slate-300 dark:border-slate-600 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-transparent dark:bg-slate-700 dark:text-white">
|
||||
<option value="">Alle Rollen</option>
|
||||
<option value="admin">Administrator</option>
|
||||
<option value="user">Benutzer</option>
|
||||
</select>
|
||||
</div>
|
||||
<div>
|
||||
<label class="block text-sm font-medium text-slate-700 dark:text-slate-300 mb-2">Status</label>
|
||||
<select id="status-filter" class="px-4 py-2 border border-slate-300 dark:border-slate-600 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-transparent dark:bg-slate-700 dark:text-white">
|
||||
<option value="">Alle Status</option>
|
||||
<option value="active">Aktiv</option>
|
||||
<option value="inactive">Inaktiv</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="flex items-center space-x-2">
|
||||
<button id="bulk-actions-btn" class="px-4 py-2 bg-slate-200 dark:bg-slate-600 text-slate-700 dark:text-slate-300 rounded-lg hover:bg-slate-300 dark:hover:bg-slate-500 transition-colors">
|
||||
Massenaktionen
|
||||
</button>
|
||||
<button id="export-users-btn" class="px-4 py-2 bg-green-500 text-white rounded-lg hover:bg-green-600 transition-colors">
|
||||
Export
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Benutzer Tabelle -->
|
||||
<div class="overflow-x-auto">
|
||||
<table class="min-w-full divide-y divide-slate-200 dark:divide-slate-700">
|
||||
<thead class="bg-slate-50 dark:bg-slate-900/50">
|
||||
<tr>
|
||||
<th class="px-6 py-3 text-left text-xs font-medium text-slate-500 dark:text-slate-400 uppercase tracking-wider">Benutzer</th>
|
||||
<th class="px-6 py-3 text-left text-xs font-medium text-slate-500 dark:text-slate-400 uppercase tracking-wider">E-Mail</th>
|
||||
<th class="px-6 py-3 text-left text-xs font-medium text-slate-500 dark:text-slate-400 uppercase tracking-wider">Rolle</th>
|
||||
<th class="px-6 py-3 text-left text-xs font-medium text-slate-500 dark:text-slate-400 uppercase tracking-wider">Status</th>
|
||||
<th class="px-6 py-3 text-left text-xs font-medium text-slate-500 dark:text-slate-400 uppercase tracking-wider">Letzte Aktivität</th>
|
||||
<th class="px-6 py-3 text-left text-xs font-medium text-slate-500 dark:text-slate-400 uppercase tracking-wider">Aktionen</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody class="bg-white dark:bg-slate-800/50 divide-y divide-slate-200 dark:divide-slate-700">
|
||||
<!-- Erweiterte Benutzer-Management-Tabelle -->
|
||||
<div class="bg-white dark:bg-slate-800 rounded-xl shadow-lg overflow-hidden">
|
||||
<div class="overflow-x-auto">
|
||||
<table class="min-w-full divide-y divide-slate-200 dark:divide-slate-700">
|
||||
<thead class="bg-slate-50 dark:bg-slate-900/50">
|
||||
<tr>
|
||||
<th class="px-6 py-4 text-left">
|
||||
<input type="checkbox" id="select-all-users" class="rounded border-slate-300 text-blue-600 focus:ring-blue-500">
|
||||
</th>
|
||||
<th class="px-6 py-4 text-left text-xs font-medium text-slate-500 dark:text-slate-400 uppercase tracking-wider">Benutzer</th>
|
||||
<th class="px-6 py-4 text-left text-xs font-medium text-slate-500 dark:text-slate-400 uppercase tracking-wider">Kontakt</th>
|
||||
<th class="px-6 py-4 text-left text-xs font-medium text-slate-500 dark:text-slate-400 uppercase tracking-wider">Rolle & Status</th>
|
||||
<th class="px-6 py-4 text-left text-xs font-medium text-slate-500 dark:text-slate-400 uppercase tracking-wider">Berechtigungen</th>
|
||||
<th class="px-6 py-4 text-left text-xs font-medium text-slate-500 dark:text-slate-400 uppercase tracking-wider">Aktivität</th>
|
||||
<th class="px-6 py-4 text-left text-xs font-medium text-slate-500 dark:text-slate-400 uppercase tracking-wider">Schnellaktionen</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody class="bg-white dark:bg-slate-800 divide-y divide-slate-200 dark:divide-slate-700" id="users-table-body">
|
||||
{% for user in users %}
|
||||
<tr class="hover:bg-slate-50 dark:hover:bg-slate-700/50 transition-colors duration-200">
|
||||
<tr class="hover:bg-slate-50 dark:hover:bg-slate-700/50 transition-colors duration-200" data-user-id="{{ user.id }}">
|
||||
<!-- Checkbox -->
|
||||
<td class="px-6 py-4 whitespace-nowrap">
|
||||
<input type="checkbox" class="user-checkbox rounded border-slate-300 text-blue-600 focus:ring-blue-500" value="{{ user.id }}">
|
||||
</td>
|
||||
|
||||
<!-- Benutzer Info -->
|
||||
<td class="px-6 py-4 whitespace-nowrap">
|
||||
<div class="flex items-center">
|
||||
<div class="flex-shrink-0 h-10 w-10">
|
||||
<div class="h-10 w-10 rounded-full bg-gradient-to-br from-blue-500 to-purple-600 flex items-center justify-center text-white font-semibold">
|
||||
<div class="flex-shrink-0 h-12 w-12">
|
||||
<div class="h-12 w-12 rounded-full bg-gradient-to-br from-blue-500 to-purple-600 flex items-center justify-center text-white font-semibold text-lg">
|
||||
{{ user.username[0].upper() }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="ml-4">
|
||||
<div class="text-sm font-medium text-slate-900 dark:text-white">{{ user.username }}</div>
|
||||
<div class="text-sm text-slate-500 dark:text-slate-400">{{ user.name or 'Kein Name' }}</div>
|
||||
{% if user.department %}
|
||||
<div class="text-xs text-slate-400 dark:text-slate-500">{{ user.department }}</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
<td class="px-6 py-4 whitespace-nowrap text-sm text-slate-900 dark:text-white">{{ user.email }}</td>
|
||||
|
||||
<!-- Kontakt -->
|
||||
<td class="px-6 py-4 whitespace-nowrap">
|
||||
<span class="inline-flex px-2 py-1 text-xs font-semibold rounded-full {{ 'bg-purple-100 text-purple-800 dark:bg-purple-900 dark:text-purple-200' if user.is_admin else 'bg-green-100 text-green-800 dark:bg-green-900 dark:text-green-200' }}">
|
||||
{{ 'Administrator' if user.is_admin else 'Benutzer' }}
|
||||
</span>
|
||||
<div class="text-sm text-slate-900 dark:text-white">{{ user.email }}</div>
|
||||
{% if user.phone %}
|
||||
<div class="text-sm text-slate-500 dark:text-slate-400">{{ user.phone }}</div>
|
||||
{% endif %}
|
||||
</td>
|
||||
|
||||
<!-- Rolle & Status -->
|
||||
<td class="px-6 py-4 whitespace-nowrap">
|
||||
<span class="inline-flex items-center px-2 py-1 text-xs font-semibold rounded-full {{ 'bg-green-100 text-green-800 dark:bg-green-900 dark:text-green-200' if user.is_active else 'bg-red-100 text-red-800 dark:bg-red-900 dark:text-red-200' }}">
|
||||
<span class="w-2 h-2 mr-1 rounded-full {{ 'bg-green-400' if user.is_active else 'bg-red-400' }}"></span>
|
||||
{{ 'Aktiv' if user.is_active else 'Inaktiv' }}
|
||||
</span>
|
||||
<div class="space-y-2">
|
||||
<!-- Rolle -->
|
||||
<div>
|
||||
<select class="role-select text-xs px-2 py-1 rounded-full border-0 {{ 'bg-purple-100 text-purple-800 dark:bg-purple-900 dark:text-purple-200' if user.is_admin else 'bg-green-100 text-green-800 dark:bg-green-900 dark:text-green-200' }}"
|
||||
data-user-id="{{ user.id }}" onchange="updateUserRole({{ user.id }}, this.value)">
|
||||
<option value="user" {{ 'selected' if not user.is_admin else '' }}>Benutzer</option>
|
||||
<option value="admin" {{ 'selected' if user.is_admin else '' }}>Administrator</option>
|
||||
</select>
|
||||
</div>
|
||||
<!-- Status Toggle -->
|
||||
<div>
|
||||
<label class="inline-flex items-center">
|
||||
<input type="checkbox" class="status-toggle rounded border-slate-300 text-green-600 focus:ring-green-500"
|
||||
data-user-id="{{ user.id }}" {{ 'checked' if user.active else '' }}
|
||||
onchange="toggleUserStatus({{ user.id }}, this.checked)">
|
||||
<span class="ml-2 text-xs {{ 'text-green-700 dark:text-green-400' if user.active else 'text-red-700 dark:text-red-400' }}">
|
||||
{{ 'Aktiv' if user.active else 'Inaktiv' }}
|
||||
</span>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
<td class="px-6 py-4 whitespace-nowrap text-sm text-slate-500 dark:text-slate-400">
|
||||
{{ user.last_login | format_datetime if user.last_login else 'Nie' }}
|
||||
|
||||
<!-- Granulare Berechtigungen -->
|
||||
<td class="px-6 py-4 whitespace-nowrap">
|
||||
{% if user.is_admin %}
|
||||
<div class="inline-flex items-center px-3 py-1 rounded-full text-xs font-medium bg-purple-100 text-purple-800 dark:bg-purple-900 dark:text-purple-200">
|
||||
<svg class="w-4 h-4 mr-1" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 3l14 9-14 9V3z"/>
|
||||
</svg>
|
||||
Alle Rechte
|
||||
</div>
|
||||
{% else %}
|
||||
<div class="space-y-2">
|
||||
<!-- Jobs starten -->
|
||||
<div class="flex items-center">
|
||||
<input type="checkbox" class="permission-toggle rounded border-slate-300 text-blue-600 focus:ring-blue-500"
|
||||
data-user-id="{{ user.id }}" data-permission="can_start_jobs"
|
||||
{{ 'checked' if user.permissions and user.permissions.can_start_jobs else '' }}
|
||||
onchange="updateUserPermission({{ user.id }}, 'can_start_jobs', this.checked)">
|
||||
<span class="ml-2 text-xs text-slate-600 dark:text-slate-400">Jobs starten</span>
|
||||
</div>
|
||||
<!-- Genehmigung erforderlich -->
|
||||
<div class="flex items-center">
|
||||
<input type="checkbox" class="permission-toggle rounded border-slate-300 text-yellow-600 focus:ring-yellow-500"
|
||||
data-user-id="{{ user.id }}" data-permission="needs_approval"
|
||||
{{ 'checked' if user.permissions and user.permissions.needs_approval else '' }}
|
||||
onchange="updateUserPermission({{ user.id }}, 'needs_approval', this.checked)">
|
||||
<span class="ml-2 text-xs text-slate-600 dark:text-slate-400">Benötigt Genehmigung</span>
|
||||
</div>
|
||||
<!-- Jobs genehmigen -->
|
||||
<div class="flex items-center">
|
||||
<input type="checkbox" class="permission-toggle rounded border-slate-300 text-green-600 focus:ring-green-500"
|
||||
data-user-id="{{ user.id }}" data-permission="can_approve_jobs"
|
||||
{{ 'checked' if user.permissions and user.permissions.can_approve_jobs else '' }}
|
||||
onchange="updateUserPermission({{ user.id }}, 'can_approve_jobs', this.checked)">
|
||||
<span class="ml-2 text-xs text-slate-600 dark:text-slate-400">Jobs genehmigen</span>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
</td>
|
||||
<td class="px-6 py-4 whitespace-nowrap text-sm font-medium">
|
||||
<div class="flex space-x-2">
|
||||
<button class="edit-user-btn text-blue-600 hover:text-blue-900 dark:text-blue-400 dark:hover:text-blue-300 transition-colors" data-user-id="{{ user.id }}" title="Benutzer bearbeiten">
|
||||
<svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
|
||||
<!-- Aktivität -->
|
||||
<td class="px-6 py-4 whitespace-nowrap">
|
||||
<div class="text-sm text-slate-900 dark:text-white">
|
||||
{% if user.last_login %}
|
||||
Letzte Anmeldung:
|
||||
<div class="text-xs text-slate-500 dark:text-slate-400">{{ user.last_login.strftime('%d.%m.%Y %H:%M') if user.last_login else 'Nie' }}</div>
|
||||
{% else %}
|
||||
<span class="text-slate-500 dark:text-slate-400">Nie angemeldet</span>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% if user.last_activity %}
|
||||
<div class="text-xs text-slate-400 dark:text-slate-500 mt-1">
|
||||
Aktivität: {{ user.last_activity.strftime('%d.%m.%Y %H:%M') }}
|
||||
</div>
|
||||
{% endif %}
|
||||
</td>
|
||||
|
||||
<!-- Schnellaktionen -->
|
||||
<td class="px-6 py-4 whitespace-nowrap">
|
||||
<div class="flex items-center space-x-2">
|
||||
<!-- Benutzer bearbeiten -->
|
||||
<button class="edit-user-btn text-blue-600 hover:text-blue-900 dark:text-blue-400 dark:hover:text-blue-300 transition-colors p-1 rounded"
|
||||
data-user-id="{{ user.id }}" title="Benutzer bearbeiten">
|
||||
<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z"/>
|
||||
</svg>
|
||||
</button>
|
||||
{% if not user.is_admin %}
|
||||
<button class="permissions-user-btn text-green-600 hover:text-green-900 dark:text-green-400 dark:hover:text-green-300 transition-colors" data-user-id="{{ user.id }}" data-user-name="{{ user.username }}" title="Berechtigungen verwalten">
|
||||
<svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<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"/>
|
||||
|
||||
<!-- Passwort zurücksetzen -->
|
||||
<button class="reset-password-btn text-orange-600 hover:text-orange-900 dark:text-orange-400 dark:hover:text-orange-300 transition-colors p-1 rounded"
|
||||
data-user-id="{{ user.id }}" data-user-name="{{ user.username }}" title="Passwort zurücksetzen">
|
||||
<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 7a2 2 0 012 2m4 0a6 6 0 01-7.743 5.743L11 17H9v2H7v2H4a1 1 0 01-1-1v-2.586a1 1 0 01.293-.707l5.964-5.964A6 6 0 1121 9z"/>
|
||||
</svg>
|
||||
</button>
|
||||
|
||||
<!-- Als Benutzer anmelden (Impersonation) -->
|
||||
{% if not user.is_admin and current_user.is_admin %}
|
||||
<button class="impersonate-user-btn text-purple-600 hover:text-purple-900 dark:text-purple-400 dark:hover:text-purple-300 transition-colors p-1 rounded"
|
||||
data-user-id="{{ user.id }}" data-user-name="{{ user.username }}" title="Als Benutzer anmelden">
|
||||
<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z"/>
|
||||
</svg>
|
||||
</button>
|
||||
{% endif %}
|
||||
<button class="delete-user-btn text-red-600 hover:text-red-900 dark:text-red-400 dark:hover:text-red-300 transition-colors" data-user-id="{{ user.id }}" data-user-name="{{ user.username }}" title="Benutzer löschen">
|
||||
<svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
|
||||
<!-- Benutzer löschen -->
|
||||
{% if user.id != current_user.id %}
|
||||
<button class="delete-user-btn text-red-600 hover:text-red-900 dark:text-red-400 dark:hover:text-red-300 transition-colors p-1 rounded"
|
||||
data-user-id="{{ user.id }}" data-user-name="{{ user.username }}" title="Benutzer löschen">
|
||||
<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16"/>
|
||||
</svg>
|
||||
</button>
|
||||
{% endif %}
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
@@ -1,300 +1,374 @@
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% block title %}Impressum - Mercedes-Benz MYP{% endblock %}
|
||||
|
||||
{% block extra_css %}
|
||||
<style>
|
||||
body {
|
||||
background: var(--bg-primary);
|
||||
}
|
||||
|
||||
.clean-card {
|
||||
background: var(--bg-card);
|
||||
border: 1px solid var(--border-primary);
|
||||
border-radius: 12px;
|
||||
padding: 2rem;
|
||||
margin-bottom: 2rem;
|
||||
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
|
||||
.hero-section {
|
||||
background: linear-gradient(135deg, var(--mb-black) 0%, var(--mb-primary) 100%);
|
||||
color: white;
|
||||
padding: 4rem 0;
|
||||
margin-bottom: 3rem;
|
||||
}
|
||||
|
||||
.mercedes-logo {
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
background: white;
|
||||
border-radius: 50%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
margin: 0 auto 1.5rem;
|
||||
}
|
||||
|
||||
.info-table {
|
||||
width: 100%;
|
||||
border-collapse: collapse;
|
||||
}
|
||||
|
||||
.info-table td {
|
||||
padding: 0.75rem 0;
|
||||
border-bottom: 1px solid var(--border-primary);
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
.info-table td:first-child {
|
||||
font-weight: 600;
|
||||
color: var(--text-secondary);
|
||||
width: 140px;
|
||||
padding-right: 1rem;
|
||||
}
|
||||
|
||||
.info-table td:last-child {
|
||||
color: var(--text-primary);
|
||||
}
|
||||
|
||||
.info-table tr:last-child td {
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
.section-title {
|
||||
font-size: 1.5rem;
|
||||
font-weight: 700;
|
||||
color: var(--text-primary);
|
||||
margin-bottom: 1.5rem;
|
||||
border-bottom: 2px solid var(--mb-primary);
|
||||
padding-bottom: 0.5rem;
|
||||
}
|
||||
|
||||
.link-style {
|
||||
color: var(--mb-primary);
|
||||
text-decoration: none;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.link-style:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.project-box {
|
||||
background: linear-gradient(135deg, rgba(0, 115, 206, 0.05) 0%, rgba(0, 115, 206, 0.1) 100%);
|
||||
border-left: 4px solid var(--mb-primary);
|
||||
padding: 1.5rem;
|
||||
border-radius: 0 8px 8px 0;
|
||||
margin: 2rem 0;
|
||||
}
|
||||
|
||||
.nav-buttons {
|
||||
display: flex;
|
||||
gap: 1rem;
|
||||
flex-wrap: wrap;
|
||||
justify-content: center;
|
||||
margin-top: 2rem;
|
||||
}
|
||||
|
||||
@media (max-width: 768px) {
|
||||
.hero-section {
|
||||
padding: 2rem 0;
|
||||
}
|
||||
|
||||
.clean-card {
|
||||
padding: 1.5rem;
|
||||
margin-bottom: 1.5rem;
|
||||
}
|
||||
|
||||
.info-table td:first-child {
|
||||
width: 120px;
|
||||
font-size: 0.9rem;
|
||||
}
|
||||
|
||||
.nav-buttons {
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
{% endblock %}
|
||||
{% block title %}Impressum - Mercedes-Benz TBA Marienfelde{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<!-- Simple Hero -->
|
||||
<div class="hero-section">
|
||||
<div class="container mx-auto px-6 text-center">
|
||||
<div class="mercedes-logo">
|
||||
<svg class="w-8 h-8 text-black" fill="currentColor" viewBox="0 0 80 80">
|
||||
<path d="M58.6,4.5C53,1.6,46.7,0,40,0c-6.7,0-13,1.6-18.6,4.5v0C8.7,11.2,0,24.6,0,40c0,15.4,8.7,28.8,21.5,35.5C27,78.3,33.3,80,40,80c6.7,0,12.9-1.7,18.5-4.6C71.3,68.8,80,55.4,80,40C80,24.6,71.3,11.2,58.6,4.5z M4,40c0-13.1,7-24.5,17.5-30.9v0C26.6,6,32.5,4.2,39,4l-4.5,32.7L21.5,46.8v0L8.3,57.1C5.6,52,4,46.2,4,40z M58.6,70.8C53.1,74.1,46.8,76,40,76c-6.8,0-13.2-1.9-18.6-5.2c-4.9-2.9-8.9-6.9-11.9-11.7l11.9-4.9v0L40,46.6l18.6,7.5v0l12,4.9C67.6,63.9,63.4,67.9,58.6,70.8z M58.6,46.8L58.6,46.8l-12.9-10L41.1,4c6.3,0.2,12.3,2,17.4,5.1v0C69,15.4,76,26.9,76,40c0,6.2-1.5,12-4.3,17.1L58.6,46.8z"/>
|
||||
</svg>
|
||||
</div>
|
||||
<h1 class="text-4xl font-bold mb-4">Impressum</h1>
|
||||
<p class="text-xl opacity-90">Rechtliche Angaben gemäß § 5 TMG</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="container mx-auto px-6 max-w-4xl pb-12">
|
||||
<!-- Modernes Admin Panel Design für Impressum -->
|
||||
<div class="min-h-screen">
|
||||
|
||||
<!-- Anbieter -->
|
||||
<div class="clean-card">
|
||||
<h2 class="section-title">Anbieter</h2>
|
||||
<!-- Hero Header mit Gradient Background (nach Admin-Vorbild) -->
|
||||
<div class="relative overflow-hidden bg-gradient-to-r from-slate-900 via-blue-900 to-indigo-900 text-white rounded-3xl mx-4 mt-4">
|
||||
<div class="absolute inset-0 bg-black/20"></div>
|
||||
<div class="absolute inset-0 bg-gradient-to-r from-transparent via-white/5 to-transparent"></div>
|
||||
|
||||
<div class="grid md:grid-cols-2 gap-8">
|
||||
<div>
|
||||
<table class="info-table">
|
||||
<tr>
|
||||
<td>Unternehmen</td>
|
||||
<td>Mercedes-Benz AG</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Abteilung</td>
|
||||
<td>Technische Berufsausbildung (TBA)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Standort</td>
|
||||
<td>Marienfelde, Berlin</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Bereich</td>
|
||||
<td>Digitale Fertigung & 3D-Druck</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<table class="info-table">
|
||||
<tr>
|
||||
<td>Adresse</td>
|
||||
<td>
|
||||
Daimlerstraße 1<br>
|
||||
12277 Berlin<br>
|
||||
Deutschland
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Website</td>
|
||||
<td><a href="https://www.mercedes-benz.com" target="_blank" class="link-style">mercedes-benz.com</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Telefon</td>
|
||||
<td><a href="tel:+493075668000" class="link-style">+49 (0) 30 7566-8000</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
<!-- Live Status Indicator -->
|
||||
<div class="absolute top-4 right-4 flex items-center space-x-2">
|
||||
<div class="bg-white/10 backdrop-blur-sm border border-white/20 rounded-full px-3 py-1">
|
||||
<span class="text-sm font-medium">Rechtliche Angaben</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Projektverantwortlicher -->
|
||||
<div class="clean-card">
|
||||
<h2 class="section-title">Projektverantwortlicher</h2>
|
||||
|
||||
<div class="grid md:grid-cols-2 gap-8">
|
||||
<div>
|
||||
<table class="info-table">
|
||||
<tr>
|
||||
<td>Name</td>
|
||||
<td>Till Tomczak</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Position</td>
|
||||
<td>Fachinformatiker für digitale Vernetzung</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Projekt</td>
|
||||
<td>IHK-Projektarbeit: MYP System</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Status</td>
|
||||
<td>Auszubildender</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<table class="info-table">
|
||||
<tr>
|
||||
<td>E-Mail</td>
|
||||
<td><a href="mailto:till.tomczak@mercedes-benz.com" class="link-style">till.tomczak@mercedes-benz.com</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Ausbildung</td>
|
||||
<td>Mercedes-Benz AG - TBA Marienfelde</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Zweck</td>
|
||||
<td>Interne Systemschulung & 3D-Druck Management</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<!-- Animated Background Pattern -->
|
||||
<div class="absolute inset-0 opacity-10 rounded-3xl overflow-hidden">
|
||||
<div class="absolute inset-0" style="background-image: radial-gradient(circle at 25% 25%, white 2px, transparent 2px), radial-gradient(circle at 75% 75%, white 2px, transparent 2px); background-size: 50px 50px;"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Projekt Info -->
|
||||
<div class="project-box">
|
||||
<h3 class="text-xl font-bold mb-3" style="color: var(--text-primary);">MYP Platform - Das Projekt</h3>
|
||||
<p style="color: var(--text-secondary);">
|
||||
Das <strong>MYP System (Manage Your Printers)</strong> wurde als IHK-Projektarbeit für die Ausbildung zum
|
||||
Fachinformatiker für digitale Vernetzung entwickelt. Es dient der zentralen Verwaltung von 3D-Druckern
|
||||
in der Mercedes-Benz TBA Marienfelde mit Smart-Plug-Integration und Energiemonitoring.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<!-- Rechtliche Angaben -->
|
||||
<div class="clean-card">
|
||||
<h2 class="section-title">Rechtliche Angaben</h2>
|
||||
|
||||
<div class="grid md:grid-cols-2 gap-8">
|
||||
<div>
|
||||
<table class="info-table">
|
||||
<tr>
|
||||
<td>Registergericht</td>
|
||||
<td>Amtsgericht Stuttgart</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Handelsregister</td>
|
||||
<td>HRB 19360</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>USt-IdNr.</td>
|
||||
<td>DE811944017</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Steuernummer</td>
|
||||
<td>99073/00159</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<h4 class="font-semibold mb-3" style="color: var(--text-primary);">Vorstand Mercedes-Benz AG</h4>
|
||||
<div style="color: var(--text-secondary);">
|
||||
<p>Ola Källenius <span style="color: var(--text-muted);">(Vorsitzender)</span></p>
|
||||
<p>Jörg Burzer</p>
|
||||
<p>Renata Jungo Brüngger</p>
|
||||
<p>Sabine Kohleisen</p>
|
||||
<p>Harald Wilhelm</p>
|
||||
<div class="relative max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-16">
|
||||
<div class="text-center">
|
||||
<!-- Mercedes-Benz Logo -->
|
||||
<div class="inline-flex items-center justify-center w-20 h-20 bg-white/10 backdrop-blur-sm rounded-full mb-6 border border-white/20">
|
||||
<svg class="w-10 h-10 text-white" viewBox="0 0 80 80" fill="currentColor">
|
||||
<path d="M58.6,4.5C53,1.6,46.7,0,40,0c-6.7,0-13,1.6-18.6,4.5v0C8.7,11.2,0,24.6,0,40c0,15.4,8.7,28.8,21.5,35.5
|
||||
C27,78.3,33.3,80,40,80c6.7,0,12.9-1.7,18.5-4.6C71.3,68.8,80,55.4,80,40C80,24.6,71.3,11.2,58.6,4.5z M4,40
|
||||
c0-13.1,7-24.5,17.5-30.9v0C26.6,6,32.5,4.2,39,4l-4.5,32.7L21.5,46.8v0L8.3,57.1C5.6,52,4,46.2,4,40z M58.6,70.8
|
||||
C53.1,74.1,46.8,76,40,76c-6.8,0-13.2-1.9-18.6-5.2c-4.9-2.9-8.9-6.9-11.9-11.7l11.9-4.9v0L40,46.6l18.6,7.5v0l12,4.9
|
||||
C67.6,63.9,63.4,67.9,58.6,70.8z M58.6,46.8L58.6,46.8l-12.9-10L41.1,4c6.3,0.2,12.3,2,17.4,5.1v0C69,15.4,76,26.9,76,40
|
||||
c0,6.2-1.5,12-4.3,17.1L58.6,46.8z"/>
|
||||
</svg>
|
||||
</div>
|
||||
|
||||
<h1 class="text-5xl md:text-6xl font-bold mb-4 tracking-tight">
|
||||
<span class="bg-gradient-to-r from-white to-blue-200 bg-clip-text text-transparent">
|
||||
Impressum
|
||||
</span>
|
||||
</h1>
|
||||
<p class="text-xl md:text-2xl text-blue-100 max-w-3xl mx-auto leading-relaxed">
|
||||
Rechtliche Angaben gemäß § 5 TMG für das MYP System der TBA Marienfelde
|
||||
</p>
|
||||
|
||||
<!-- Real-Time Quick Actions -->
|
||||
<div class="flex flex-wrap justify-center gap-4 mt-8">
|
||||
<button class="inline-flex items-center px-6 py-3 bg-white/10 backdrop-blur-sm border border-white/20 rounded-xl text-white hover:bg-white/20 transition-all duration-300 hover:scale-105">
|
||||
<svg class="w-5 h-5 mr-2" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<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>
|
||||
DSGVO Konform
|
||||
</button>
|
||||
<button class="inline-flex items-center px-6 py-3 bg-white/10 backdrop-blur-sm border border-white/20 rounded-xl text-white hover:bg-white/20 transition-all duration-300 hover:scale-105">
|
||||
<svg class="w-5 h-5 mr-2" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 6.253v13m0-13C10.832 5.477 9.246 5 7.5 5S4.168 5.477 3 6.253v13C4.168 18.477 5.754 18 7.5 18s3.332.477 4.5 1.253m0-13C13.168 5.477 14.754 5 16.5 5c1.746 0 3.332.477 4.5 1.253v13C20.832 18.477 19.246 18 17.5 18c-1.746 0-3.332.477-4.5 1.253"/>
|
||||
</svg>
|
||||
§ 5 TMG
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Navigation -->
|
||||
<div class="clean-card">
|
||||
<div class="nav-buttons">
|
||||
<a href="{{ url_for('index') }}" class="btn-primary">Zur Startseite</a>
|
||||
<a href="{{ url_for('legal.privacy') }}" class="btn-success">Datenschutz</a>
|
||||
<a href="{{ url_for('legal.legal') }}" class="btn-secondary">Rechtliche Hinweise</a>
|
||||
{% if current_user.is_authenticated %}
|
||||
<a href="{{ url_for('dashboard') }}" class="btn-secondary">Dashboard</a>
|
||||
{% endif %}
|
||||
|
||||
<!-- Content Grid mit Glassmorphism Cards -->
|
||||
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-12">
|
||||
|
||||
<!-- Anbieter Section -->
|
||||
<div class="bg-white/60 dark:bg-slate-900/60 backdrop-blur-xl border border-slate-200/50 dark:border-slate-700/50 rounded-3xl p-8 mb-8 shadow-xl">
|
||||
<div class="flex items-center mb-6">
|
||||
<div class="w-12 h-12 bg-gradient-to-r from-blue-500 to-indigo-600 rounded-xl flex items-center justify-center mr-4">
|
||||
<svg class="w-6 h-6 text-white" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 21V5a2 2 0 00-2-2H7a2 2 0 00-2 2v16m14 0h2m-2 0h-4m-5 0H9m0 0H5m4 0V9a2 2 0 012-2h2a2 2 0 012 2v12"/>
|
||||
</svg>
|
||||
</div>
|
||||
<h2 class="text-3xl font-bold text-slate-900 dark:text-white">Anbieter</h2>
|
||||
</div>
|
||||
|
||||
<div class="grid md:grid-cols-2 gap-8">
|
||||
<div class="space-y-6">
|
||||
<div class="bg-white/40 dark:bg-slate-800/40 backdrop-blur-sm rounded-2xl p-6 border border-slate-200/30 dark:border-slate-700/30">
|
||||
<h3 class="text-lg font-semibold text-slate-900 dark:text-white mb-4">Unternehmen</h3>
|
||||
<div class="space-y-3">
|
||||
<div class="flex justify-between items-center">
|
||||
<span class="text-slate-600 dark:text-slate-400">Firma:</span>
|
||||
<span class="font-medium text-slate-900 dark:text-white">Mercedes-Benz AG</span>
|
||||
</div>
|
||||
<div class="flex justify-between items-center">
|
||||
<span class="text-slate-600 dark:text-slate-400">Abteilung:</span>
|
||||
<span class="font-medium text-slate-900 dark:text-white">TBA Marienfelde</span>
|
||||
</div>
|
||||
<div class="flex justify-between items-center">
|
||||
<span class="text-slate-600 dark:text-slate-400">Bereich:</span>
|
||||
<span class="font-medium text-slate-900 dark:text-white">3D-Druck Management</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="space-y-6">
|
||||
<div class="bg-white/40 dark:bg-slate-800/40 backdrop-blur-sm rounded-2xl p-6 border border-slate-200/30 dark:border-slate-700/30">
|
||||
<h3 class="text-lg font-semibold text-slate-900 dark:text-white mb-4">Kontakt</h3>
|
||||
<div class="space-y-3">
|
||||
<div class="flex justify-between items-center">
|
||||
<span class="text-slate-600 dark:text-slate-400">Adresse:</span>
|
||||
<div class="text-right">
|
||||
<div class="font-medium text-slate-900 dark:text-white">Daimlerstraße 1</div>
|
||||
<div class="font-medium text-slate-900 dark:text-white">12277 Berlin</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="flex justify-between items-center">
|
||||
<span class="text-slate-600 dark:text-slate-400">Website:</span>
|
||||
<a href="https://www.mercedes-benz.com" target="_blank" class="font-medium text-blue-600 dark:text-blue-400 hover:underline">mercedes-benz.com</a>
|
||||
</div>
|
||||
<div class="flex justify-between items-center">
|
||||
<span class="text-slate-600 dark:text-slate-400">Telefon:</span>
|
||||
<a href="tel:+493075668000" class="font-medium text-blue-600 dark:text-blue-400 hover:underline">+49 (0) 30 7566-8000</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Footer -->
|
||||
<div class="text-center py-6" style="color: var(--text-muted);">
|
||||
<p class="text-sm">
|
||||
Letzte Aktualisierung: 19.06.2025 | Mercedes-Benz AG TBA Marienfelde | MYP Platform v3.0.0
|
||||
</p>
|
||||
<!-- Projektverantwortlicher Section -->
|
||||
<div class="bg-white/60 dark:bg-slate-900/60 backdrop-blur-xl border border-slate-200/50 dark:border-slate-700/50 rounded-3xl p-8 mb-8 shadow-xl">
|
||||
<div class="flex items-center mb-6">
|
||||
<div class="w-12 h-12 bg-gradient-to-r from-emerald-500 to-teal-600 rounded-xl flex items-center justify-center mr-4">
|
||||
<svg class="w-6 h-6 text-white" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z"/>
|
||||
</svg>
|
||||
</div>
|
||||
<h2 class="text-3xl font-bold text-slate-900 dark:text-white">Projektverantwortlicher</h2>
|
||||
</div>
|
||||
|
||||
<div class="grid md:grid-cols-2 gap-8">
|
||||
<div class="space-y-6">
|
||||
<div class="bg-white/40 dark:bg-slate-800/40 backdrop-blur-sm rounded-2xl p-6 border border-slate-200/30 dark:border-slate-700/30">
|
||||
<h3 class="text-lg font-semibold text-slate-900 dark:text-white mb-4">Person</h3>
|
||||
<div class="space-y-3">
|
||||
<div class="flex justify-between items-center">
|
||||
<span class="text-slate-600 dark:text-slate-400">Name:</span>
|
||||
<span class="font-medium text-slate-900 dark:text-white">Till Tomczak</span>
|
||||
</div>
|
||||
<div class="flex justify-between items-center">
|
||||
<span class="text-slate-600 dark:text-slate-400">Position:</span>
|
||||
<span class="font-medium text-slate-900 dark:text-white">Fachinformatiker</span>
|
||||
</div>
|
||||
<div class="flex justify-between items-center">
|
||||
<span class="text-slate-600 dark:text-slate-400">Status:</span>
|
||||
<span class="inline-flex items-center px-3 py-1 rounded-full text-sm font-medium bg-blue-100 dark:bg-blue-900/30 text-blue-800 dark:text-blue-200">
|
||||
Auszubildender
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="space-y-6">
|
||||
<div class="bg-white/40 dark:bg-slate-800/40 backdrop-blur-sm rounded-2xl p-6 border border-slate-200/30 dark:border-slate-700/30">
|
||||
<h3 class="text-lg font-semibold text-slate-900 dark:text-white mb-4">Projekt</h3>
|
||||
<div class="space-y-3">
|
||||
<div class="flex justify-between items-center">
|
||||
<span class="text-slate-600 dark:text-slate-400">E-Mail:</span>
|
||||
<a href="mailto:till.tomczak@mercedes-benz.com" class="font-medium text-blue-600 dark:text-blue-400 hover:underline">till.tomczak@mercedes-benz.com</a>
|
||||
</div>
|
||||
<div class="flex justify-between items-center">
|
||||
<span class="text-slate-600 dark:text-slate-400">Projekt:</span>
|
||||
<span class="font-medium text-slate-900 dark:text-white">IHK-Projektarbeit</span>
|
||||
</div>
|
||||
<div class="flex justify-between items-center">
|
||||
<span class="text-slate-600 dark:text-slate-400">Zweck:</span>
|
||||
<span class="font-medium text-slate-900 dark:text-white">3D-Druck Management</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- MYP Projekt Highlight -->
|
||||
<div class="bg-gradient-to-r from-blue-50 via-indigo-50 to-purple-50 dark:from-slate-900 dark:via-blue-900/20 dark:to-indigo-900/20 rounded-3xl p-8 mb-8 border border-blue-200/50 dark:border-blue-700/30 relative overflow-hidden">
|
||||
<div class="absolute inset-0 bg-gradient-to-r from-blue-500/10 to-indigo-500/10 dark:from-blue-400/5 dark:to-indigo-400/5"></div>
|
||||
<div class="relative">
|
||||
<div class="flex items-center mb-6">
|
||||
<div class="w-16 h-16 bg-gradient-to-r from-blue-600 to-indigo-600 rounded-2xl flex items-center justify-center mr-6">
|
||||
<svg class="w-8 h-8 text-white" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19.428 15.428a2 2 0 00-1.022-.547l-2.387-.477a6 6 0 00-3.86.517l-.318.158a6 6 0 01-3.86.517L6.05 15.21a2 2 0 00-1.806.547M8 4h8l-1 1v5.172a2 2 0 00.586 1.414l5 5c1.26 1.26.367 3.414-1.415 3.414H4.828c-1.782 0-2.674-2.154-1.414-3.414l5-5A2 2 0 009 10.172V5L8 4z"/>
|
||||
</svg>
|
||||
</div>
|
||||
<div>
|
||||
<h2 class="text-3xl font-bold text-slate-900 dark:text-white mb-2">MYP Platform</h2>
|
||||
<p class="text-lg text-slate-600 dark:text-slate-400">Manage Your Printers - 3D-Druck Management System</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="prose prose-lg max-w-none">
|
||||
<p class="text-slate-700 dark:text-slate-300 leading-relaxed">
|
||||
Das <strong class="text-slate-900 dark:text-white">MYP System (Manage Your Printers)</strong> wurde als IHK-Projektarbeit für die Ausbildung zum
|
||||
Fachinformatiker für digitale Vernetzung entwickelt. Es dient der zentralen Verwaltung von 3D-Druckern
|
||||
in der Mercedes-Benz TBA Marienfelde mit Smart-Plug-Integration, Energiemonitoring und modernem Dashboard.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="grid grid-cols-1 md:grid-cols-3 gap-6 mt-8">
|
||||
<div class="flex items-center space-x-3 bg-white/50 dark:bg-slate-800/50 backdrop-blur-sm rounded-xl p-4">
|
||||
<div class="w-10 h-10 bg-green-500 rounded-lg flex items-center justify-center">
|
||||
<svg class="w-5 h-5 text-white" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z"/>
|
||||
</svg>
|
||||
</div>
|
||||
<div>
|
||||
<div class="font-semibold text-slate-900 dark:text-white">Smart Integration</div>
|
||||
<div class="text-sm text-slate-600 dark:text-slate-400">TP-Link Tapo Steuerung</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="flex items-center space-x-3 bg-white/50 dark:bg-slate-800/50 backdrop-blur-sm rounded-xl p-4">
|
||||
<div class="w-10 h-10 bg-blue-500 rounded-lg flex items-center justify-center">
|
||||
<svg class="w-5 h-5 text-white" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 10V3L4 14h7v7l9-11h-7z"/>
|
||||
</svg>
|
||||
</div>
|
||||
<div>
|
||||
<div class="font-semibold text-slate-900 dark:text-white">Energy Monitor</div>
|
||||
<div class="text-sm text-slate-600 dark:text-slate-400">Echtzeit Verbrauch</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="flex items-center space-x-3 bg-white/50 dark:bg-slate-800/50 backdrop-blur-sm rounded-xl p-4">
|
||||
<div class="w-10 h-10 bg-purple-500 rounded-lg flex items-center justify-center">
|
||||
<svg class="w-5 h-5 text-white" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 6V4m0 2a2 2 0 100 4m0-4a2 2 0 110 4m-6 8a2 2 0 100-4m0 4a2 2 0 100-4m0 4v2m0-6V4m6 6v10m6-2a2 2 0 100-4m0 4a2 2 0 100-4m0 4v2m0-6V4"/>
|
||||
</svg>
|
||||
</div>
|
||||
<div>
|
||||
<div class="font-semibold text-slate-900 dark:text-white">Modern Dashboard</div>
|
||||
<div class="text-sm text-slate-600 dark:text-slate-400">Real-Time Updates</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Rechtliche Angaben Section -->
|
||||
<div class="bg-white/60 dark:bg-slate-900/60 backdrop-blur-xl border border-slate-200/50 dark:border-slate-700/50 rounded-3xl p-8 mb-8 shadow-xl">
|
||||
<div class="flex items-center mb-6">
|
||||
<div class="w-12 h-12 bg-gradient-to-r from-amber-500 to-orange-600 rounded-xl flex items-center justify-center mr-4">
|
||||
<svg class="w-6 h-6 text-white" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<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>
|
||||
<h2 class="text-3xl font-bold text-slate-900 dark:text-white">Rechtliche Angaben</h2>
|
||||
</div>
|
||||
|
||||
<div class="grid md:grid-cols-2 gap-8">
|
||||
<div class="space-y-6">
|
||||
<div class="bg-white/40 dark:bg-slate-800/40 backdrop-blur-sm rounded-2xl p-6 border border-slate-200/30 dark:border-slate-700/30">
|
||||
<h3 class="text-lg font-semibold text-slate-900 dark:text-white mb-4">Handelsregister</h3>
|
||||
<div class="space-y-3">
|
||||
<div class="flex justify-between items-center">
|
||||
<span class="text-slate-600 dark:text-slate-400">Registergericht:</span>
|
||||
<span class="font-medium text-slate-900 dark:text-white">Amtsgericht Stuttgart</span>
|
||||
</div>
|
||||
<div class="flex justify-between items-center">
|
||||
<span class="text-slate-600 dark:text-slate-400">Handelsregister:</span>
|
||||
<span class="font-medium text-slate-900 dark:text-white">HRB 19360</span>
|
||||
</div>
|
||||
<div class="flex justify-between items-center">
|
||||
<span class="text-slate-600 dark:text-slate-400">USt-IdNr.:</span>
|
||||
<span class="font-medium text-slate-900 dark:text-white">DE811944017</span>
|
||||
</div>
|
||||
<div class="flex justify-between items-center">
|
||||
<span class="text-slate-600 dark:text-slate-400">Steuernummer:</span>
|
||||
<span class="font-medium text-slate-900 dark:text-white">99073/00159</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="space-y-6">
|
||||
<div class="bg-white/40 dark:bg-slate-800/40 backdrop-blur-sm rounded-2xl p-6 border border-slate-200/30 dark:border-slate-700/30">
|
||||
<h3 class="text-lg font-semibold text-slate-900 dark:text-white mb-4">Vorstand Mercedes-Benz AG</h3>
|
||||
<div class="space-y-2">
|
||||
<div class="flex items-center justify-between">
|
||||
<span class="font-medium text-slate-900 dark:text-white">Ola Källenius</span>
|
||||
<span class="inline-flex items-center px-2 py-1 rounded-full text-xs font-medium bg-blue-100 dark:bg-blue-900/30 text-blue-800 dark:text-blue-200">
|
||||
Vorsitzender
|
||||
</span>
|
||||
</div>
|
||||
<div class="text-slate-700 dark:text-slate-300">Jörg Burzer</div>
|
||||
<div class="text-slate-700 dark:text-slate-300">Renata Jungo Brüngger</div>
|
||||
<div class="text-slate-700 dark:text-slate-300">Sabine Kohleisen</div>
|
||||
<div class="text-slate-700 dark:text-slate-300">Harald Wilhelm</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Navigation Actions -->
|
||||
<div class="bg-white/60 dark:bg-slate-900/60 backdrop-blur-xl border border-slate-200/50 dark:border-slate-700/50 rounded-3xl p-8 mb-8 shadow-xl">
|
||||
<div class="flex items-center mb-6">
|
||||
<div class="w-12 h-12 bg-gradient-to-r from-violet-500 to-purple-600 rounded-xl flex items-center justify-center mr-4">
|
||||
<svg class="w-6 h-6 text-white" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13.828 10.172a4 4 0 00-5.656 0l-4 4a4 4 0 105.656 5.656l1.102-1.101m-.758-4.899a4 4 0 005.656 0l4-4a4 4 0 00-5.656-5.656l-1.1 1.1"/>
|
||||
</svg>
|
||||
</div>
|
||||
<h2 class="text-3xl font-bold text-slate-900 dark:text-white">Navigation</h2>
|
||||
</div>
|
||||
|
||||
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-4">
|
||||
<a href="{{ url_for('index') }}" class="inline-flex items-center justify-center px-6 py-3 bg-white/10 backdrop-blur-sm border border-white/20 rounded-xl text-slate-900 dark:text-white hover:bg-white/20 dark:hover:bg-slate-700/50 transition-all duration-300 hover:scale-105 group">
|
||||
<svg class="w-5 h-5 mr-2 group-hover:scale-110 transition-transform" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 12l2-2m0 0l7-7 7 7M5 10v10a1 1 0 001 1h3m10-11l2 2m-2-2v10a1 1 0 01-1 1h-3m-6 0a1 1 0 001-1v-4a1 1 0 011-1h2a1 1 0 011 1v4a1 1 0 001 1m-6 0h6"/>
|
||||
</svg>
|
||||
Startseite
|
||||
</a>
|
||||
|
||||
<a href="{{ url_for('legal.privacy') }}" class="inline-flex items-center justify-center px-6 py-3 bg-white/10 backdrop-blur-sm border border-white/20 rounded-xl text-slate-900 dark:text-white hover:bg-white/20 dark:hover:bg-slate-700/50 transition-all duration-300 hover:scale-105 group">
|
||||
<svg class="w-5 h-5 mr-2 group-hover:scale-110 transition-transform" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 15v2m-6 4h12a2 2 0 002-2v-6a2 2 0 00-2-2H6a2 2 0 00-2 2v6a2 2 0 002 2zm10-10V7a4 4 0 00-8 0v4h8z"/>
|
||||
</svg>
|
||||
Datenschutz
|
||||
</a>
|
||||
|
||||
<a href="{{ url_for('legal.legal') }}" class="inline-flex items-center justify-center px-6 py-3 bg-white/10 backdrop-blur-sm border border-white/20 rounded-xl text-slate-900 dark:text-white hover:bg-white/20 dark:hover:bg-slate-700/50 transition-all duration-300 hover:scale-105 group">
|
||||
<svg class="w-5 h-5 mr-2 group-hover:scale-110 transition-transform" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 6.253v13m0-13C10.832 5.477 9.246 5 7.5 5S4.168 5.477 3 6.253v13C4.168 18.477 5.754 18 7.5 18s3.332.477 4.5 1.253m0-13C13.168 5.477 14.754 5 16.5 5c1.746 0 3.332.477 4.5 1.253v13C20.832 18.477 19.246 18 17.5 18c-1.746 0-3.332.477-4.5 1.253"/>
|
||||
</svg>
|
||||
Rechtliches
|
||||
</a>
|
||||
|
||||
{% if current_user.is_authenticated %}
|
||||
<a href="{{ url_for('dashboard') }}" class="inline-flex items-center justify-center px-6 py-3 bg-white/10 backdrop-blur-sm border border-white/20 rounded-xl text-slate-900 dark:text-white hover:bg-white/20 dark:hover:bg-slate-700/50 transition-all duration-300 hover:scale-105 group">
|
||||
<svg class="w-5 h-5 mr-2 group-hover:scale-110 transition-transform" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 19v-6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2a2 2 0 002-2zm0 0V9a2 2 0 012-2h2a2 2 0 012 2v10m-6 0a2 2 0 002 2h2a2 2 0 002-2m0 0V5a2 2 0 012-2h2a2 2 0 012 2v14a2 2 0 01-2 2h-2a2 2 0 01-2-2z"/>
|
||||
</svg>
|
||||
Dashboard
|
||||
</a>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Footer mit Live Update -->
|
||||
<div class="text-center py-8 border-t border-slate-200/50 dark:border-slate-700/50">
|
||||
<div class="bg-white/30 dark:bg-slate-800/30 backdrop-blur-sm rounded-2xl p-6 inline-block">
|
||||
<div class="flex items-center justify-center space-x-4 text-slate-600 dark:text-slate-400">
|
||||
<div class="flex items-center space-x-2">
|
||||
<div class="w-2 h-2 bg-green-400 rounded-full animate-pulse"></div>
|
||||
<span class="text-sm font-medium">Live System</span>
|
||||
</div>
|
||||
<div class="w-px h-4 bg-slate-300 dark:bg-slate-600"></div>
|
||||
<div class="text-sm">
|
||||
Letzte Aktualisierung: <span class="font-medium">19.06.2025</span>
|
||||
</div>
|
||||
<div class="w-px h-4 bg-slate-300 dark:bg-slate-600"></div>
|
||||
<div class="text-sm">
|
||||
Mercedes-Benz AG TBA Marienfelde
|
||||
</div>
|
||||
<div class="w-px h-4 bg-slate-300 dark:bg-slate-600"></div>
|
||||
<div class="text-sm">
|
||||
MYP Platform <span class="font-mono font-semibold">v3.0.0</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
Reference in New Issue
Block a user