diff options
Diffstat (limited to 'views')
| -rw-r--r-- | views/404.html | 14 | ||||
| -rw-r--r-- | views/danke.html | 13 | ||||
| -rw-r--r-- | views/familie.html | 277 | ||||
| -rw-r--r-- | views/index.html | 105 | ||||
| -rw-r--r-- | views/snippets/layout.html | 152 | ||||
| -rw-r--r-- | views/snippets/navbar.html | 31 |
6 files changed, 592 insertions, 0 deletions
diff --git a/views/404.html b/views/404.html new file mode 100644 index 0000000..a438fb5 --- /dev/null +++ b/views/404.html @@ -0,0 +1,14 @@ +{% extends "snippets/layout.html" %} + +{% block title "404 | Hochzeit" %} + +{% block main %} + +<div class="container"> + + <h1>404 - Page not Found</h1> + <p>Oh no! This page does not exist. Start over. Do not pass Go! Do not collect 200 dollars!</p> + +</div> + +{% endblock %} diff --git a/views/danke.html b/views/danke.html new file mode 100644 index 0000000..beb55e6 --- /dev/null +++ b/views/danke.html @@ -0,0 +1,13 @@ +{% extends "snippets/layout.html" %} + +{% block title "404 | Hochzeit" %} + +{% block main %} + +<div class="container"> + + <h1 style="color:green">Dankeschön für die Eintragung!</h1> + +</div> + +{% endblock %} diff --git a/views/familie.html b/views/familie.html new file mode 100644 index 0000000..83d1df7 --- /dev/null +++ b/views/familie.html @@ -0,0 +1,277 @@ +{% extends "snippets/layout.html" %} + +{% block title 'Hochzeit: f(m) { return "2023-04-01"; }' %} + +{% block css %} + .main { + margin-top: 4rem; + } + + .index-list > li { + margin-bottom: 1rem; + } + + body { + background-color: #1c1c1c; + } + + #footer { + background-color: #e1e1e1; + } + .string { + color: #ddd277; + } + .keyword { + color: #cd015f; + } + .tab-over-space { + margin-left: 2rem; + } + @media (max-width: 490px) { + .tab-over-space-on-mobile { + margin-left: 2rem; + } + } + .text-muted { + color: #808080 !important; + } + + fform { + padding: 1.5rem; + margin-right: 0; + margin-left: 0; + border-width: .2rem; + position:relative; + } + + .btn-submit { + background-color: #f07206; + border-color: #f07206; + } + .hidden { + display:none; + } +{% endblock %} + +{% block main %} + +<div class="container"> + + {% for person in data %} + {% if loop.first %} + Hallo + {% else %} + hallo + {% endif %} + + {% if not loop.last %} + {{ person.name }}, + {% else %} + {{ person.name }},<br> + {% endif %} + {% endfor %} + + <br> + + {% if data | length > 1 %} + <p>ihr seid herzlich zu unserer Hochzeit am <u><strong>1. April 2023</strong></u> eingeladen. Um uns unsere Planung zu erleichtern, haben wir ein paar wichtige Fragen an euch:</p> + {% else %} + <p>du bist herzlich zu unserer Hochzeit am <u><strong>1. April 2023</strong></u> eingeladen. Um uns unsere Planung zu erleichtern, haben wir ein paar wichtige Fragen an dich:</p> + {% endif %} + <br> + + {% if updated %} + <strong style=color:green>Dankeschön für die Eintragung!</strong> + <br> + <br> + {% endif %} + + <form method="GET" action="/submit"> + <h2> + {% if data | length > 1 %} + Kommt ihr zu unserer Hochzeit? + {% else %} + Kommst du zu unserer Hochzeit? + {% endif %} + </h2> + <div class="form-check form-check-inline"> + <input class="form-check-input" type="radio" name="zusage" id="zusage" value="zusage"> + <label class="form-check-label" for="zusage"> Ja!</label> + </div> + <div class="form-check form-check-inline"> + <input class="form-check-input" type="radio" name="zusage" id="zusage_absage" value="absage"> + <label class="form-check-label" for="zusage_absage"> + {% if data | length > 1 %} + Leider passt uns der Termin nicht + {% else %} + Leider passt mir der Termin nicht. + {% endif %} + </label> + </div> + {% if data | length > 1 %} + <div class="form-check form-check-inline"> + <input class="form-check-input" type="radio" name="zusage" id="zusage_teilweise" value="teilweise"> + <label class="form-check-label" for="zusage_teilweise"> + Teilweise + </label> + </div> + {% else %} + <div id="zusage_teilweise" class="hidden"></div> <!-- Javascript hasst mich --> + {% endif %} + + <br> + <br> + + {% if data | length > 1 %} + <div class="hidden" id="zusage_detail"> + {% for person in data %} + {{ person.name }}: + <br> + <div class="form-check form-check-inline"> + <input class="form-check-input" type="radio" name="{{ person.id }}_zusage" id="{{ person.id }}_zusage" value="zusage"> + <label class="form-check-label" for="{{ person.id }}_zusage"> Ja!</label> + </div> + <div class="form-check form-check-inline"> + <input class="form-check-input" type="radio" name="{{ person.id }}_zusage" id="{{ person.id }}_zusage_absage" value="absage"> + <label class="form-check-label" for="{{ person.id }}_zusage_absage"> Nein, ich komme nicht + </label> + </div> + + <br> + {% endfor %} + + <br> + + </div> + {% endif %} + + <h2> + {% if data | length > 1 %} + Kommt ihr mit dem Auto? + {% else %} + Kommst du mit dem Auto? + {% endif %} + </h2> + <div class="form-check form-check-inline"> + <input class="form-check-input" type="radio" name="auto" id="auto_zusage" value="zusage"> + <label class="form-check-label" for="auto_zusage"> + {% if data | length > 1 %} + Ja, wir kommen mit dem Atuo + {% else %} + Ja, ich kommt mit meinem Auto + {% endif %} + </label> + </div> + <div class="form-check form-check-inline"> + <input class="form-check-input" type="radio" name="auto" id="auto_zusage_absage" value="absage"> + <label class="form-check-label" for="auto_zusage_absage"> + {% if data | length > 1 %} + Nein, wir brauchen eventuell Plätze in freien Autos + {% else %} + Nein, ich brauche eventuell einen freien Platz in einem Auto + {% endif %} + </label> + </div> + <div class="form-check form-check-inline"> + <input class="form-check-input" type="radio" name="auto" id="auto_unbekannt" value="unbekannt"> + <label class="form-check-label" for="auto_unbekannt"> + {% if data | length > 1 %} + Wissen wir noch nicht + {% else %} + Weiß ich noch nicht + {% endif %} + </label> + </div> + + <br> + + <div class="hidden" id="auto_freie_plätze"> + <br> + <h2> + {% if data | length > 1 %} + Hättet ihr noch Plätze im Auto frei? Wenn ja, wie viele? + {% else %} + Hättest du noch Plätze im Auto frei? Wenn ja, wie viele? + {% endif %} + </h2> + <div class="form-group"> + <div class="form-row"> + <div class="col-xl-2 col-12 "> + <input type="number" class="form-control" name="plätze" id="plätze" aria-describedby="" value=0> + </div> + </div> + </div> + </div> + + <br> + <h2> + {% if data | length > 1 %} + Möchtet ihr vegetarisch oder mit Fleisch essen? + {% else %} + Möchtest du vegetarisch oder mit Fleisch essen? + {% endif %} + </h2> + {% for person in data %} + + {% if data | length > 1 %} + {{ person.name }}: + <br> + {% endif %} + + <div class="form-check form-check-inline"> + <input class="form-check-input" type="radio" name="{{ person.id }}_essenwahl" id="{{ person.id }}_mit_fleisch" value="mit_fleisch"> + <label class="form-check-label" for="{{ person.id }}_mit_fleisch"> Mit Fleisch (Ente)</label> + </div> + <div class="form-check form-check-inline"> + <input class="form-check-input" type="radio" name="{{ person.id }}_essenwahl" id="{{ person.id }}_ohne_fleisch" value="ohne_fleisch"> + <label class="form-check-label" for="{{ person.id }}_ohne_fleisch"> Vegetarisch + </label> + </div> + <!-- + <div class="form-check form-check-inline"> + <input class="form-check-input" type="radio" name="{{ person.id }}_essenwahl" id="{{ person.id }}_essen_egal" value="essen_egal"> + <label class="form-check-label" for="{{ person.id }}_essen_egal"> Egal + </label> + </div> + --> + + <br> + {% endfor %} + + <br> + <p><h2>Für das Abendessen steht ein Caterer bereit. Anstatt Geschenke wünschen wir uns einen Beitrag für einen Snack nach der kirchlichen Trauung, bzw. Beiträge zum Kaffee & Kuchen. + {% if data | length > 1 %} + Würdet ihr etwas mitbringen? + {% else %} + Würdest du etwas mitbringen? + {% endif %} + </h2></p> + <div class="form-row"> + <textarea class="col-12" rows=3 name="buffetbeitrag"></textarea> + </div> + <br> + + <p><h2>Wünsche oder Bemerkungen!</h2><span class="text-muted">(Zum Beispiel veganes Essen, gewünschte Musik oder ähnliches)</span></p> + <div class="form-row"> + <textarea class="col-12" rows=3 name="bemerkungsfeld"></textarea> + </div> + + <br> + <br> + <input type="hidden" name="familie" value="{{ data[0].familien_id }}"> + <button type="submit" class="btn btn-submit mb-2">Abschicken!</button> + </form> +</div> + +<script> +window.addEventListener("load",function() { + document.getElementById('zusage_teilweise').addEventListener("click", function(e){ + document.getElementById('zusage_detail').classList.remove("hidden"); + }); + document.getElementById('auto_zusage').addEventListener("click", function(e){ + document.getElementById('auto_freie_plätze').classList.remove("hidden"); + }); +}); +</script> + +{% endblock %} diff --git a/views/index.html b/views/index.html new file mode 100644 index 0000000..9744af8 --- /dev/null +++ b/views/index.html @@ -0,0 +1,105 @@ +{% extends "snippets/layout.html" %} + +{% block title "Hochzeit" %} + +{% block css %} + .main { + margin-top: 4rem; + } + + .index-list > li { + margin-bottom: 1rem; + } + + body { + background-color: #1c1c1c; + } + + #footer { + background-color: #e1e1e1; + } + .string { + color: #ddd277; + } + .keyword { + color: #cd015f; + } + .tab-over-space { + margin-left: 2rem; + } + @media (max-width: 490px) { + .tab-over-space-on-mobile { + margin-left: 2rem; + } + } + .text-muted { + color: #808080 !important; + } +{% endblock %} + +{% block main %} + +<div class="container"> + + <div class="quote"> + <code>[ <span class="keyword">Wann</span> => <span class="string">1. April 2023</span> ]</code>, + </div> + <div class="quote"> + <code>[ <span class="keyword">Wer</span> => <span class="string">Franziska <3 Maximilian</span> ]</code>, + </div> + <div class="quote"> + <code>[ <span class="keyword">Wieso</span> => <em class="string">(ノ◕ヮ◕)ノ*:・゚✧ ✧゚・: *ヽ(◕ヮ◕ヽ)</em> ]</code> + </div> + <ul class="list-unstyled text-left index-list"> + <li> + <span class="text-muted"># Mehr Details folgen in Kürze.</span> + </li> + </ul> + <!-- + <ul class="list-unstyled text-left index-list"> + <li> + <span class="text-muted"># Stuff I spent my free time on:</span> + <br> + <code> + <span class="keyword">while</span> lazy; <span class="keyword">do</span> + <br> + <a class="tab-over-space" href="/projects/" title="uncaught exception">Hobby => Projects()</a> + <br> + <span class="keyword">endwhile</span> + </code> + + </li> + <li> + <span class="text-muted"># <strike>Stupi</strike>.. serious things I needed to exist:</span> + <br> + <code> + <span class="keyword">while</span> crazy; <span class="keyword">do</span> + <br> + <span class="tab-over-space">eval(<span class="string">"</span><a href="/things/" title="don't eval my life. also eval is bad">my <strike>life…</strike> things</a><span class="string">"</span>)</span> + <br> + <span class="keyword">endwhile</span> + </code> + </li> + <li> + <span class="text-muted"># I have more hobbys besides sleep(10)</span> + <br> + <code> + <span class="keyword">if</span> interested; <span class="keyword">do</span> + <br> + <span class="tab-over-space"> + <a class="col-12 col-md-4" href="/about/" title="me.about() makes more sense">About.Me()</a> + <span class="keyword">or</span> + <a class="col-12 col-md-4 tab-over-space-on-mobile" href="https://www.fuselkoenig.de/kontakt/" title="don't tell me I forgot the semicolons">Contact.Me()</a></span> + <br> + <span class="keyword">endif</span> + </code> + </li> + <li> + </li> + </ul> + <code class="string">" syntax error: unexpected end of file</code> + --> + +</div> + +{% endblock %} diff --git a/views/snippets/layout.html b/views/snippets/layout.html new file mode 100644 index 0000000..7a93c0b --- /dev/null +++ b/views/snippets/layout.html @@ -0,0 +1,152 @@ +<!doctype html> +<head> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> + <meta name="description" content=" + {% block description %} + {% endblock %} + "> + <link rel='icon' href="data:image/x-icon;base64,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"> + {% block maincss %} + <!--link rel="stylesheet" href="/css/bootstrap.css"--> + <style>{{ maincss() }}</style> + {% endblock %} + <title> + {% block title %} + Hochzeit: f(m) { return "2023-04-01"; } + {% endblock %} + </title> + <style> + html { + width: 100%; + } + body { + background-color: #262626; + color: #e1e1e1; + } + .main { + margin-top: 4rem; + font-size: 1.5rem; + margin-bottom: 4rem; + } + @media (max-width: 992px) { + .main { + margin-top: 3rem !important; + margin-bottom: 4rem; + } + } + @media (min-width: 992px) { + .main { + margin-top: 8rem; + font-size: 2rem; + } + } + .main a { + color: #47ccfb; + text-decoration: underline; + } + h1 { + margin-bottom: 2rem; + } + .hidden { + visibility: hidden; + } + #footer { + width: 100%; + height: 60px; /* Set the fixed height of the footer here */ + line-height: 60px; /* Vertically center the text there */ + background-color: #f5f5f5; + } + .navbar { + background-color: #f5f5f5; + } + .navbar-brand { + color: #f07206 !important; + } + + /** + * ## Bottom Border Color in Navbar + */ + .navbar-nav .active { + border-bottom: 5px solid #f07206; + } + @media (max-width: 992px) { + .navbar-nav .active { + width: 30%; + } + } + + .quote { + margin-bottom: 3.5rem; + } + .flavor-text { + margin-bottom: 2rem; + font-family: SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace; + font-size: 1.5rem; + } + .flavor-text > h1 { + margin-bottom: 0; + } + h2::before { + content: "# "; + } + /* + h1,h2 { + color: #f07206; + font-family: SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace; + } + */ + .bg-dark { + background-color: #171717 !important; + } + .string { + color: #ddd277; + } + @media (min-width: 600px) { + .mobile { + display: none; + } + } + </style> + <style> + {% block css %} + {% endblock %} + </style> +</head> +<body class="d-flex flex-column min-vh-100"> + {% include("snippets/navbar.html") %} + +<main class="main"> + {% block main %} + {% endblock %} +</main> + +<footer id="footer" class="mt-auto bg-dark"> + <div class="container text-right"> + {% block footer %} + {% endblock %} + </div> +</footer> + +<script defer src="/js/jquery-3.5.1.min.js"></script> +<script defer src="/js/bootstrap.js"></script> + + +<!-- +<script type="text/javascript"> + var _paq = _paq || []; + /* tracker methods like "setCustomDimension" should be called before "trackPageView" */ + _paq.push(['trackPageView']); + _paq.push(['enableHeartBeatTimer', 5]); + _paq.push(['enableLinkTracking']); + (function() { + var u="//www.maximilianmoehring.com/"; + _paq.push(['setTrackerUrl', u+'jsx/']); + _paq.push(['setSiteId', '35']); + var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; + g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'jsx/'; s.parentNode.insertBefore(g,s); + })(); +</script> +--> + +</body> diff --git a/views/snippets/navbar.html b/views/snippets/navbar.html new file mode 100644 index 0000000..11e043e --- /dev/null +++ b/views/snippets/navbar.html @@ -0,0 +1,31 @@ +<nav class="navbar navbar-expand-md navbar-dark bg-dark shadow-sm"> + <div class="container"> + <code><a class="navbar-brand" href="/">Hochzeit: <span class="mobile"><br></span> f(m) { return "2023-04-01"; }</a></code> + <!-- + <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation"> + <span class="navbar-toggler-icon"></span> + </button> + --> + + <div class="collapse navbar-collapse" id="navbarSupportedContent"> + <!-- Left Side Of Navbar --> + <ul class="navbar-nav mr-auto"> + </ul> + + <!-- Right Side Of Navbar --> + <!-- + <ul class="navbar-nav ml-auto"> + <li class="nav-item"> + <a class="nav-link {{ is_active('/projects') }}" href="/projects/">/projects</a> + </li> + <li class="nav-item"> + <a class="nav-link {{ is_active('/things') }}" href="/things/">/things</a> + </li> + <li class="nav-item"> + <a class="nav-link {{ is_active('/about') }}" href="/about/">/about me</a> + </li> + </ul> + --> + </div> + </div> +</nav> |
