mirror of
https://github.com/FAUSheppy/flask-json-dream-website
synced 2025-12-09 17:18:33 +01:00
Initial
This commit is contained in:
18
templates/announcements.html
Normal file
18
templates/announcements.html
Normal file
@@ -0,0 +1,18 @@
|
||||
<div class="row">
|
||||
{% for a in announcements if a.get("active") %}
|
||||
<div class="col-md-4 text-dark">
|
||||
<div class="card mb-4 box-shadow bg-special">
|
||||
<div class="card-body">
|
||||
<h4>{{ a["parsed-time"].strftime("%d.%m.%y") }}</h4>
|
||||
<h2>{{ a["title"] }}</h2>
|
||||
<p>{{ a["description"] }}</p>
|
||||
<p>
|
||||
<a class="mt-3 btn btn-secondary float-right" href="/news?uid={{ a['uid'] }}" role="button">
|
||||
{% if a["link-title"] %} {{ a["link-title"] }} {% else %} Mehr.. {% endif %}
|
||||
</a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
43
templates/events.html
Normal file
43
templates/events.html
Normal file
@@ -0,0 +1,43 @@
|
||||
{% if events %}
|
||||
<div class="col grid-margin-md stretch-card d-flex_" style="font-size: x-large;">
|
||||
<div class="card bg-transparent border-0">
|
||||
<div class="card-body">
|
||||
<div class="d-flex justify-content-between"></div>
|
||||
{% for event in events %}
|
||||
<div class="moreDates" {% if loop.index > 3 %} style="display: none;" {% endif %}>
|
||||
<div class="row">
|
||||
<div class="pt-1 border-bottom {% if loop.index == 1 %} border-top {% endif %} col">
|
||||
<div class="d-flex justify-content-center align-items-center">
|
||||
<h1 class="mr-5 text-primary font-weight-bold text-info">{{ event["day"] }}</h1>
|
||||
<div>
|
||||
<p class="font-weight-bold mb-0 text-dark">{{ event["month"] }}</p>
|
||||
<p class="mb-2">{{ event["year"] }}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="pt-1 border-bottom {% if loop.index == 1 %} border-top {% endif %} col pl-3">
|
||||
<p class="text-dark font-weight-bold mb-0">
|
||||
{{ event["description"] }}
|
||||
{% if event.get("location") %} @{{ event["location"] }} {% endif %}
|
||||
</p>
|
||||
<p class="mb-0">{{ event["time"] }}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
{% if moreEvents %}
|
||||
<button id="moreDatesButton" class="float-right mt-3 btn btn-light" onClick=showAdditionalDates()>Mehr..</button>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- mehr Termine Button -->
|
||||
<script>
|
||||
function showAdditionalDates(){
|
||||
Array.from(document.getElementsByClassName("moreDates")).forEach(element => {
|
||||
element.style.display = "";
|
||||
});
|
||||
document.getElementById("moreDatesButton").style.display = "none"
|
||||
}
|
||||
</script>
|
||||
{% endif %}
|
||||
3
templates/footer.html
Normal file
3
templates/footer.html
Normal file
@@ -0,0 +1,3 @@
|
||||
<div class="footer-copyright text-center py-3 bg-dark" style="position: relative; bottom: 0;">
|
||||
<a style="color: rgba(255,255,255,.5);" href="/impressum">Impressum/Kontakt</a>
|
||||
</div>
|
||||
14
templates/head.html
Normal file
14
templates/head.html
Normal file
@@ -0,0 +1,14 @@
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<meta name="description" content="">
|
||||
<meta name="author" content="">
|
||||
<link rel="shortcut icon" href="/defaultFavicon.ico">
|
||||
|
||||
<!-- Bootstrap core CSS -->
|
||||
<link href="/static/css/bootstrap.min.css" rel="stylesheet">
|
||||
<link href="/static/site.css" rel="stylesheet">
|
||||
<link href="/static/toggle_button.css" rel="stylesheet">
|
||||
|
||||
<!-- Bootstrap core JS -->
|
||||
<script src="/static/js/jquery.min.js"></script>
|
||||
<script src="/static/js/bootstrap.min.js"></script>
|
||||
51
templates/impressum.html
Normal file
51
templates/impressum.html
Normal file
@@ -0,0 +1,51 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
|
||||
{% include 'head.html' %}
|
||||
|
||||
<title>{{ conf["siteTitle"] }}</title>
|
||||
|
||||
</head>
|
||||
<body style="background-color: #eae9e9">
|
||||
|
||||
{% include 'navbar.html' %}
|
||||
<div class="navbar navbar-default"></div>
|
||||
<div class="container h-100 mt-5">
|
||||
<h1>Impressum</h1>
|
||||
<div class="row impressum mt-5 pl-3">
|
||||
<div class="col-sm">
|
||||
<h4>Hello World</h4>
|
||||
<p>Organisation<br>
|
||||
Hello World: Hello World<br>
|
||||
Hello World: Hello World<br>
|
||||
Mail: <a href="mailto:noreply@example.com">
|
||||
noreply@example.com</a></p>
|
||||
<h4>Person</h4>
|
||||
<p>John Doe<br>
|
||||
Location<br> Postal City<br>
|
||||
Phone: 12345 6789 </p>
|
||||
</div>
|
||||
<div class="col-sm pr-5">
|
||||
<h4>Hello World</h4>
|
||||
<p>Jane Doe<br>
|
||||
Location<br> Postal City<br>
|
||||
<p>
|
||||
</p>
|
||||
<h4>Admin C/Hello World</h4>
|
||||
<p>
|
||||
Free Text
|
||||
</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="row impressum mt-5"></div>
|
||||
<div class="col-lg-12">
|
||||
{% include 'impressum_text.html' %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% include 'footer.html' %}
|
||||
</body>
|
||||
</html>
|
||||
21
templates/impressum_text.html
Normal file
21
templates/impressum_text.html
Normal file
@@ -0,0 +1,21 @@
|
||||
<h1>HTML Ipsum</h1>
|
||||
|
||||
<p><strong>Pellentesque habitant morbi tristique</strong> senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. <em>Aenean ultricies mi vitae est.</em> Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, <code>commodo vitae</code>, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. <a href="#">Donec non enim</a> in turpis pulvinar facilisis. Ut felis.</p>
|
||||
|
||||
<h2>Header Level 2</h2>
|
||||
|
||||
<ol>
|
||||
<li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</li>
|
||||
<li>Aliquam tincidunt mauris eu risus.</li>
|
||||
</ol>
|
||||
|
||||
<blockquote><p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus magna. Cras in mi at felis aliquet congue. Ut a est eget ligula molestie gravida. Curabitur massa. Donec eleifend, libero at sagittis mollis, tellus est malesuada tellus, at luctus turpis elit sit amet quam. Vivamus pretium ornare est.</p></blockquote>
|
||||
|
||||
<h3>Header Level 3</h3>
|
||||
|
||||
<ul>
|
||||
<li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</li>
|
||||
<li>Aliquam tincidunt mauris eu risus.</li>
|
||||
</ul>
|
||||
|
||||
<p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis. Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis luctus, metus</p>
|
||||
126
templates/index.html
Normal file
126
templates/index.html
Normal file
@@ -0,0 +1,126 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
|
||||
{% include 'head.html' %}
|
||||
|
||||
<title>{{ conf["siteTitle"] }}</title>
|
||||
|
||||
<!-- Load the Twitch embed script -->
|
||||
<!-- <script src="https://embed.twitch.tv/embed/v1.js"></script> -->
|
||||
<script src="https://sslrelay.atlantishq.de/twitch"></script>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<!-- NAVBAR -->
|
||||
{% include 'navbar.html' %}
|
||||
|
||||
<!-- Site wellcome header -->
|
||||
<header class="masthead">
|
||||
<div class="container h-50">
|
||||
<div class="row h-100 align-items-center">
|
||||
<div class="col-12 text-center">
|
||||
<div style="opacity: 0;"></div>
|
||||
<div class="mt-5" style="opacity: 0;"></div>
|
||||
<!--
|
||||
<h1 class="font-weight-light">{{ conf["siteWellcomeMsg"] }}</h1>
|
||||
<p class="lead">{{ conf["siteWellcomeMsgSub"] }}</p>
|
||||
-->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<!-- main links -->
|
||||
<div class="bg-secondary">
|
||||
<div class="container pb-2 pt-2">
|
||||
{% include 'events.html' %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- announcements -->
|
||||
{% if announcements %}
|
||||
<div class="bg-secondary">
|
||||
<div class="container pb-2 pt-2">
|
||||
{% include 'announcements.html' %}
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<!-- twitch -->
|
||||
{% if conf["twitch-channel"] %}
|
||||
<div class="bg-dark pb-4">
|
||||
<div class="container pt-5 text-color-special">
|
||||
|
||||
<div id="twitch-consent-placeholder" class="card bg-dark text-white">
|
||||
<img style="min-width: 80%; min-height: 200px;"
|
||||
class="card-img" src="/static/pictures/{{ conf['twitch-placeholder-img'] }}" >
|
||||
<div class="card-img-overlay">
|
||||
<label class="switch mt-3">
|
||||
<input id="toogle-twitch" class="custom-control-input"
|
||||
type="checkbox" onchange="handleToggle(this.id)">
|
||||
<span class="slider"></span>
|
||||
</label>
|
||||
<div class="switch-caption ml-3 mt-3" style="font-size: x-large;">
|
||||
Laden externe Inhalte von Twitch.tv zulassen
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Add a placeholder for the Twitch embed -->
|
||||
<div id="twitch-embed"></div>
|
||||
<script>
|
||||
document.getElementById("toogle-twitch").checked = false
|
||||
function handleToggle(id){
|
||||
if(document.getElementById(id).checked){
|
||||
createTwitchFrame()
|
||||
document.getElementById("twitch-consent-placeholder").style.display = "none";
|
||||
}else{
|
||||
document.getElementById("twitch-consent-placeholder").style.display = "";
|
||||
destroyTwitchFrame()
|
||||
}
|
||||
}
|
||||
|
||||
function createTwitchFrame(){
|
||||
options = { width: "100%", height: 480, channel: "{{ conf['twitch-channel'] }}" }
|
||||
new Twitch.Embed("twitch-embed", options);
|
||||
}
|
||||
|
||||
function destroyTwitchFrame(){
|
||||
window.location.reload()
|
||||
}
|
||||
</script>
|
||||
|
||||
|
||||
<!-- Create a Twitch.Embed object that will render within the "twitch-embed" root element. -->
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% for section in vereinSections %}
|
||||
<div class="{% if loop.index %2 == 1 %} bg-secondary {% else %} bg-dark {% endif %} pt-2 pb-2">
|
||||
<div class="container text-color-special">
|
||||
<div class="row" {% if loop.index %2 == 1 %} style="flex-direction: row-reverse;" {% endif %}>
|
||||
<div class="mt-3 col image-min-dimensions">
|
||||
<img class="img-responsive w-100" src="{{ section['picture'] }}">
|
||||
</div>
|
||||
<div class="mt-3 col text-min-dimensions">
|
||||
<h1>{{ section['title'] }}</h1>
|
||||
<p class="mt-3">
|
||||
{{ section["text"] }}
|
||||
</p>
|
||||
{% if section["moreInfoButtonText"] %}
|
||||
<button type=button
|
||||
onclick="window.location.href='{{ section['moreInfoButtonHref'] }}'"
|
||||
class="mt-3 btn btn-light">{{ section["moreInfoButtonText"] }}
|
||||
</button>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% include 'footer.html' %}
|
||||
</body>
|
||||
</html>
|
||||
61
templates/navbar.html
Normal file
61
templates/navbar.html
Normal file
@@ -0,0 +1,61 @@
|
||||
<nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
|
||||
<a class="navbar-brand" href="#"></a>
|
||||
|
||||
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbar"
|
||||
aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
|
||||
<span class="navbar-toggler-icon"></span>
|
||||
</button>
|
||||
|
||||
<div class="collapse navbar-collapse" id="navbar">
|
||||
|
||||
<!-- left side -->
|
||||
<ul class="navbar-nav mr-auto">
|
||||
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="/">Home</a>
|
||||
</li>
|
||||
|
||||
{% if conf["teamspeak-server"] %}
|
||||
<li class="nav-item right">
|
||||
<a class="nav-link" href="ts3server://{{ conf['teamspeak-server'] }}">Teamspeak</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
{% if conf["discord-server"] %}
|
||||
<li class="nav-item right">
|
||||
<a class="nav-link" href="{{ conf['discord-server'] }}">Discord</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
</ul>
|
||||
|
||||
<!-- right side -->
|
||||
<ul class="navbar-nav">
|
||||
|
||||
{% if conf["instragram"] %}
|
||||
<li class="nav-item right">
|
||||
<a class="nav-link" href="{{ conf['instragram'] }}">Instagram</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
{% if conf["facebook"] %}
|
||||
<li class="nav-item right">
|
||||
<a class="nav-link" href="{{ conf['facebook'] }}">Facebook</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
{% if conf["twitter"] %}
|
||||
<li>
|
||||
<a class="nav-link" href="{{ conf['twitter'] }}">Twitter</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</nav>
|
||||
<nav class="navbar navbar-dark bg-dark fake">
|
||||
<li class="navbar-nav">
|
||||
<a class="nav-link" href="#">placeholder</a>
|
||||
</li>
|
||||
</nav>
|
||||
28
templates/news.html
Normal file
28
templates/news.html
Normal file
@@ -0,0 +1,28 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
|
||||
{% include 'head.html' %}
|
||||
<title>{{ article["title"] }}</title>
|
||||
|
||||
</head>
|
||||
<body class="bg-special">
|
||||
<style>
|
||||
p{
|
||||
margin-top: 30px;
|
||||
}
|
||||
</style>
|
||||
{% include 'navbar.html' %}
|
||||
<div class="container mt-5 mb-5">
|
||||
<div class="row impressum mt-5"></div>
|
||||
<div class="col-lg-12" style="font-size: large;">
|
||||
<h3 mb-2>{{ article["parsed-time"].strftime("%d.%m. %Y") }}</h3>
|
||||
{{ article["markdown-content"] | safe }}
|
||||
<div class="pb-3"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% include 'footer.html' %}
|
||||
|
||||
</body>
|
||||
</html>
|
||||
34
templates/people.html
Normal file
34
templates/people.html
Normal file
@@ -0,0 +1,34 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
|
||||
<title>Menschen</title>
|
||||
{% include 'head.html' %}
|
||||
|
||||
</head>
|
||||
<body class="bg-special">
|
||||
|
||||
{% include 'navbar.html' %}
|
||||
|
||||
<div class="container mt-5 mb-5">
|
||||
{% for p in people if not p.get("inactive") %}
|
||||
<div class="row impressum mt-5">
|
||||
<div class="col text-min-dimensions">
|
||||
<h2>{{ p["title"] }}</h2>
|
||||
<h4>{{ p["subtitle"] }}</h4>
|
||||
<p>
|
||||
{{ p["text"] }}
|
||||
</p>
|
||||
</div>
|
||||
<div class="col image-min-dimensions">
|
||||
<img class="img-responsive w-100 image-max-dimensions"
|
||||
src="/static/pictures/{{ p['image'] }}"></img>
|
||||
</div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
|
||||
{% include 'footer.html' %}
|
||||
|
||||
</body>
|
||||
</html>
|
||||
23
templates/subpage_example.html
Normal file
23
templates/subpage_example.html
Normal file
@@ -0,0 +1,23 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
|
||||
{% include 'head.html' %}
|
||||
<title>Stammtisch</title>
|
||||
|
||||
</head>
|
||||
<body class="h-100 bg-special">
|
||||
|
||||
{% include 'navbar.html' %}
|
||||
<div class="container mt-5 mb-5 h-100">
|
||||
<div class="row impressum mt-5"></div>
|
||||
<div class="col-lg-12">
|
||||
{% include 'stammtisch_text.html' %}
|
||||
<div class="pb-3"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% include 'footer.html' %}
|
||||
|
||||
</body>
|
||||
</html>
|
||||
21
templates/subpage_example_text.html
Normal file
21
templates/subpage_example_text.html
Normal file
@@ -0,0 +1,21 @@
|
||||
<h1>HTML Ipsum</h1>
|
||||
|
||||
<p><strong>Pellentesque habitant morbi tristique</strong> senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. <em>Aenean ultricies mi vitae est.</em> Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, <code>commodo vitae</code>, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. <a href="#">Donec non enim</a> in turpis pulvinar facilisis. Ut felis.</p>
|
||||
|
||||
<h2>Header Level 2</h2>
|
||||
|
||||
<ol>
|
||||
<li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</li>
|
||||
<li>Aliquam tincidunt mauris eu risus.</li>
|
||||
</ol>
|
||||
|
||||
<blockquote><p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus magna. Cras in mi at felis aliquet congue. Ut a est eget ligula molestie gravida. Curabitur massa. Donec eleifend, libero at sagittis mollis, tellus est malesuada tellus, at luctus turpis elit sit amet quam. Vivamus pretium ornare est.</p></blockquote>
|
||||
|
||||
<h3>Header Level 3</h3>
|
||||
|
||||
<ul>
|
||||
<li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</li>
|
||||
<li>Aliquam tincidunt mauris eu risus.</li>
|
||||
</ul>
|
||||
|
||||
<p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis. Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis luctus, metus</p>
|
||||
Reference in New Issue
Block a user