Testversion 1
This commit is contained in:
45
backend/templates/base.html
Normal file
45
backend/templates/base.html
Normal file
@@ -0,0 +1,45 @@
|
||||
<!doctype html>
|
||||
<html lang="{{ lang }}">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<title>{{ t('brand') }}</title>
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
||||
<link href="https://fonts.googleapis.com/css2?family=Playfair+Display:wght@600;700&family=Source+Sans+3:wght@400;500;600&display=swap" rel="stylesheet" />
|
||||
<link rel="stylesheet" href="{{ url_for('static', filename='styles.css') }}" />
|
||||
</head>
|
||||
<body>
|
||||
<header class="topbar">
|
||||
<div>
|
||||
<a class="brand" href="{{ url_for('dashboard') if guest_name else url_for('landing') }}">{{ t('brand') }}</a>
|
||||
<div class="host">{{ request.host }}</div>
|
||||
</div>
|
||||
<div class="toolbar">
|
||||
<form method="post" action="{{ url_for('set_lang', code='de') }}">
|
||||
<button class="btn btn-ghost" type="submit">DE</button>
|
||||
</form>
|
||||
<form method="post" action="{{ url_for('set_lang', code='en') }}">
|
||||
<button class="btn btn-ghost" type="submit">EN</button>
|
||||
</form>
|
||||
{% if guest_name %}
|
||||
<form method="post" action="{{ url_for('logout') }}">
|
||||
<button class="btn btn-ghost" type="submit">{{ t('logout') }}</button>
|
||||
</form>
|
||||
{% endif %}
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<main class="container">
|
||||
{% with messages = get_flashed_messages() %}
|
||||
{% if messages %}
|
||||
{% for message in messages %}
|
||||
<p class="flash">{{ message }}</p>
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% endwith %}
|
||||
|
||||
{% block content %}{% endblock %}
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
||||
17
backend/templates/dashboard.html
Normal file
17
backend/templates/dashboard.html
Normal file
@@ -0,0 +1,17 @@
|
||||
{% extends 'base.html' %}
|
||||
{% block content %}
|
||||
<section class="card">
|
||||
<h1>{{ t('dashboard') }}</h1>
|
||||
<p>Hallo {{ guest_name }}.</p>
|
||||
</section>
|
||||
|
||||
<section class="card-grid">
|
||||
<a class="card link-card" href="{{ url_for('rsvp') }}">{{ t('rsvp') }}</a>
|
||||
<a class="card link-card" href="{{ url_for('upload') }}">{{ t('upload') }}</a>
|
||||
<a class="card link-card" href="{{ url_for('gallery') }}">{{ t('gallery') }}</a>
|
||||
<a class="card link-card" href="{{ url_for('info', page='schedule') }}">{{ t('schedule') }}</a>
|
||||
<a class="card link-card" href="{{ url_for('info', page='hotels') }}">{{ t('hotels') }}</a>
|
||||
<a class="card link-card" href="{{ url_for('info', page='taxi') }}">{{ t('taxi') }}</a>
|
||||
<a class="card link-card" href="{{ url_for('info', page='location') }}">{{ t('location') }}</a>
|
||||
</section>
|
||||
{% endblock %}
|
||||
20
backend/templates/gallery.html
Normal file
20
backend/templates/gallery.html
Normal file
@@ -0,0 +1,20 @@
|
||||
{% extends 'base.html' %}
|
||||
{% block content %}
|
||||
<section class="card">
|
||||
<h1>{{ t('gallery') }}</h1>
|
||||
{% if images %}
|
||||
<div class="gallery-grid">
|
||||
{% for image in images %}
|
||||
<figure class="gallery-item">
|
||||
<a href="{{ url_for('serve_upload', filename=image['filename']) }}" target="_blank" rel="noopener">
|
||||
<img src="{{ url_for('serve_upload', filename=image['filename']) }}" alt="Upload von {{ image['uploaded_by'] }}" loading="lazy" />
|
||||
</a>
|
||||
<figcaption>von {{ image['uploaded_by'] }}</figcaption>
|
||||
</figure>
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% else %}
|
||||
<p>Noch keine Bilder vorhanden.</p>
|
||||
{% endif %}
|
||||
</section>
|
||||
{% endblock %}
|
||||
31
backend/templates/info.html
Normal file
31
backend/templates/info.html
Normal file
@@ -0,0 +1,31 @@
|
||||
{% extends 'base.html' %}
|
||||
{% block content %}
|
||||
<section class="card">
|
||||
<h1>
|
||||
{% if page == 'schedule' %}{{ t('schedule') }}{% endif %}
|
||||
{% if page == 'hotels' %}{{ t('hotels') }}{% endif %}
|
||||
{% if page == 'taxi' %}{{ t('taxi') }}{% endif %}
|
||||
{% if page == 'location' %}{{ t('location') }}{% endif %}
|
||||
</h1>
|
||||
|
||||
{% if page == 'schedule' %}
|
||||
<p>15:00 Trauung, 17:00 Empfang, 19:00 Dinner.</p>
|
||||
{% elif page == 'hotels' %}
|
||||
<p>Empfehlungen folgen. Bitte frühzeitig buchen.</p>
|
||||
{% elif page == 'taxi' %}
|
||||
<p>Taxi-Service: 01234 / 567890 (24/7).</p>
|
||||
{% elif page == 'location' %}
|
||||
<p><strong>{{ location_name }}</strong></p>
|
||||
<p>{{ location_address }}</p>
|
||||
<div class="map-wrap">
|
||||
<iframe
|
||||
src="{{ google_maps_embed_url }}"
|
||||
loading="lazy"
|
||||
referrerpolicy="no-referrer-when-downgrade"
|
||||
allowfullscreen
|
||||
></iframe>
|
||||
</div>
|
||||
<a class="btn" href="{{ location_website_url }}" target="_blank" rel="noopener">{{ t('visit_location') }}</a>
|
||||
{% endif %}
|
||||
</section>
|
||||
{% endblock %}
|
||||
24
backend/templates/login.html
Normal file
24
backend/templates/login.html
Normal file
@@ -0,0 +1,24 @@
|
||||
{% extends 'base.html' %}
|
||||
{% block content %}
|
||||
<section class="hero card">
|
||||
<h1>{{ t('subtitle') }}</h1>
|
||||
<p>Passwortgeschützter Zugriff für unsere Gäste.</p>
|
||||
</section>
|
||||
|
||||
<section class="card form-card">
|
||||
<h2>{{ t('login') }}</h2>
|
||||
<form method="post" action="{{ url_for('login') }}" class="form-grid">
|
||||
<label>
|
||||
{{ t('name') }}
|
||||
<input type="text" name="name" required />
|
||||
</label>
|
||||
|
||||
<label>
|
||||
{{ t('event_password') }}
|
||||
<input type="password" name="event_password" required />
|
||||
</label>
|
||||
|
||||
<button class="btn" type="submit">{{ t('login_submit') }}</button>
|
||||
</form>
|
||||
</section>
|
||||
{% endblock %}
|
||||
24
backend/templates/rsvp.html
Normal file
24
backend/templates/rsvp.html
Normal file
@@ -0,0 +1,24 @@
|
||||
{% extends 'base.html' %}
|
||||
{% block content %}
|
||||
<section class="card form-card">
|
||||
<h1>{{ t('rsvp') }}</h1>
|
||||
<form method="post" class="form-grid">
|
||||
<label class="radio-row">
|
||||
<input type="radio" name="attending" value="yes" {% if guest and guest['attending'] == 1 %}checked{% endif %} />
|
||||
{{ t('attending') }}
|
||||
</label>
|
||||
|
||||
<label class="radio-row">
|
||||
<input type="radio" name="attending" value="no" {% if guest and guest['attending'] == 0 %}checked{% endif %} />
|
||||
{{ t('not_attending') }}
|
||||
</label>
|
||||
|
||||
<label>
|
||||
<input type="checkbox" name="plus_one" {% if guest and guest['plus_one'] == 1 %}checked{% endif %} />
|
||||
{{ t('plus_one') }}
|
||||
</label>
|
||||
|
||||
<button class="btn" type="submit">{{ t('save') }}</button>
|
||||
</form>
|
||||
</section>
|
||||
{% endblock %}
|
||||
13
backend/templates/upload.html
Normal file
13
backend/templates/upload.html
Normal file
@@ -0,0 +1,13 @@
|
||||
{% extends 'base.html' %}
|
||||
{% block content %}
|
||||
<section class="card form-card">
|
||||
<h1>{{ t('upload') }}</h1>
|
||||
<form method="post" enctype="multipart/form-data" class="form-grid">
|
||||
<label>
|
||||
{{ t('file') }}
|
||||
<input type="file" name="photo" accept=".jpg,.jpeg,.png" required />
|
||||
</label>
|
||||
<button class="btn" type="submit">{{ t('upload_submit') }}</button>
|
||||
</form>
|
||||
</section>
|
||||
{% endblock %}
|
||||
Reference in New Issue
Block a user