husstanden/templates/login.html

256 lines
5.4 KiB
HTML
Raw Normal View History

2019-03-02 23:41:16 +01:00
{% set title = "Login" %}
{% extends "layout/bootstrap.html" %}
{% block content %}
2019-05-12 19:31:26 +02:00
<style>
html, body {
height: 100%;
2019-05-22 11:51:00 +02:00
scroll-behavior: smooth;
2019-05-12 19:31:26 +02:00
}
.main-head{
height: 150px;
background: #FFF;
}
.sidenav {
height: 100%;
background-color: #000;
overflow-x: hidden;
padding-top: 20px;
2019-05-12 20:36:06 +02:00
display: grid;
grid-template-rows: 25% 50% 25%;
height: 100%;
2019-05-22 11:51:00 +02:00
overflow: hidden;
2019-05-12 20:36:06 +02:00
}
.sidenav > div:nth-child(1n) {
grid-row-start: 1;
2019-05-12 19:31:26 +02:00
}
2019-05-12 20:36:06 +02:00
.sidenav > div:nth-child(2n) {
2019-05-22 11:51:00 +02:00
grid-row-start: 2;
align-self: center;
}
2019-05-12 20:36:06 +02:00
2019-05-22 11:51:00 +02:00
.sidenav > div:nth-child(3n) {
grid-row-start: 3;
2019-05-12 20:36:06 +02:00
align-self: end;
}
2019-05-12 19:31:26 +02:00
2019-05-22 11:51:00 +02:00
#main {
2019-05-12 19:31:26 +02:00
padding: 0px 10px;
display: grid;
grid-template-rows: 25% auto;
height: 100%;
}
2019-05-22 11:51:00 +02:00
#main > .col:nth-child(1n) {
2019-05-12 19:31:26 +02:00
grid-row-start: 1;
}
2019-05-22 11:51:00 +02:00
#main > .col:nth-child(2n) {
2019-05-12 19:31:26 +02:00
grid-row-start: 2;
}
2019-05-22 11:51:00 +02:00
#focus-login {
text-decoration: none;
color: #fff;
}
2019-05-12 19:31:26 +02:00
@media screen and (max-height: 450px) {
.sidenav {padding-top: 15px;}
}
@media screen and (max-width: 450px) {
.login-form{
margin-top: 10%;
}
.register-form{
margin-top: 10%;
}
}
@media screen and (min-width: 768px){
2019-05-22 11:51:00 +02:00
#main{
2019-05-12 19:31:26 +02:00
margin-left: 40%;
}
2019-05-22 11:51:00 +02:00
.sidenav {
2019-05-12 19:31:26 +02:00
width: 40%;
position: fixed;
z-index: 1;
top: 0;
left: 0;
}
2019-05-22 11:51:00 +02:00
#focus-login {
display: none;
}
2019-05-12 19:31:26 +02:00
}
.login-main-text{
padding: 60px;
color: #fff;
}
.login-main-text h2{
font-weight: 300;
}
.btn-black{
background-color: #000 !important;
color: #fff;
}
.hidable[aria-expanded="true"] {
display: none;
}
.toggle-form > form:nth-child(2n) {
display: none;
}
.toggle-form.toggled > form:nth-child(1n) {
display: none;
}
.toggle-form.toggled > form:nth-child(2n) {
display: block;
}
2019-05-12 20:36:06 +02:00
.lang-icon {
background-position: left;
background-size: contain;
width: 32px;
height: 24px;
color: white;
text-align: center;
font-size: 24px;
vertical-align: middle;
display: table-cell;
}
.lang-en {
background-image: url("{{ url_for('static', filename='const/img/flags/gb.svg') }}");
}
.lang-no {
background-image: url("{{ url_for('static', filename='const/img/flags/no.svg') }}");
}
.dropdown-menu {
background-color: #6c757d;
}
.dropdown-menu a {
color: white;
}
2019-05-12 19:31:26 +02:00
</style>
<script>
function toggleform(caller) {
let selectedDOM = caller;
do {
if (selectedDOM.classList.contains("toggle-form")){
let classes = selectedDOM.classList;
classes[classes.contains("toggled") ? "remove" : "add"]("toggled");
return;
}
selectedDOM = selectedDOM.parentElement;
} while (selectedDOM != null);
throw Error("Missing toggle-form class for self/parent(s)");
}
</script>
<div class="sidenav">
<div class="login-main-text">
2019-05-12 21:02:23 +02:00
<h2>Husstanden<br>{{ _("Login Page") }}</h2>
<p>{{ _("Login is required to use this service.") }}</p>
2019-03-02 23:41:16 +01:00
</div>
2019-05-22 11:51:00 +02:00
<div class="text-center mx-auto">
<a href="#main" class="display-1" id="focus-login">Login</a>
</div>
2019-05-12 20:36:06 +02:00
<div class="btn-group dropup m-2">
<div>
<div class="btn btn-secondary col d-flex m-1" data-toggle="dropdown" aria-expanded="false">
<div class="lang-icon lang-{{ session.lang }}"></div>
<div class="flex-grow-1"></div>
<span>{{ _("Language") }}</span>
<div class="flex-grow-1"></div>
</div>
<ul class="dropdown-menu">
<li>
<div class="row">
<a class="col d-flex m-1" href="?lang=en">
<div class="lang-icon lang-en"></div>
<div class="flex-grow-1"></div>
<span>{{ _("english") | title }}</span>
<div class="flex-grow-1"></div>
</a>
</div>
<div class="row">
<a class="col d-flex m-1" href="?lang=no">
<div class="lang-icon lang-no"></div>
<div class="flex-grow-1"></div>
<span>{{ _("norwegian") | title }}</span>
<div class="flex-grow-1"></div>
</a>
</div>
</li>
</ul>
</div>
</div>
2019-05-12 19:31:26 +02:00
</div>
2019-05-22 11:51:00 +02:00
<div id="main">
2019-05-12 19:31:26 +02:00
<div class="col pt-4">
{% with messages = get_flashed_messages(with_categories = true) %}
{% if messages %}
{% for category, message in messages %}
<div class="alert alert-{{ category }} fade in show" role="alert" style="margin-bottom:0px;padding:6px;">
<a href="#" class="close" data-dismiss="alert" aria-label="close" style="margin-left:10px;">&times;</a>
{{ message }}
</div>
2019-04-26 03:28:27 +02:00
{% endfor %}
{% endif %}
2019-05-12 19:31:26 +02:00
{% endwith %}
</div>
<div class="col col-md-6 col-sm-12">
<div class="login-form">
{% macro render_field(field) %}
<div class="form-group">
2019-05-12 21:02:23 +02:00
<label for="{{ field.label.field_id }}">{{ _(field.label.text) }}</label>
2019-05-12 19:31:26 +02:00
{{ field(**kwargs)|safe }}
{% if field.errors %}
<ul class=errors>
{% for error in field.errors %}
<li>{{ error }}</li>
{% endfor %}
</ul>
{% endif %}
</div>
2019-04-26 03:28:27 +02:00
{% endmacro %}
2019-05-12 19:31:26 +02:00
<div class="toggle-form false">
<form method="post">
{{ render_field(form.login.email) }}
{{ render_field(form.login.password) }}
2019-05-12 21:02:23 +02:00
<button class="btn btn-black">{{ _("Login") }}</button>
<span class="btn btn-secondary" onclick="toggleform(this)">{{ _("Register") }}</span>
2019-05-12 19:31:26 +02:00
</form>
<form method="post">
{{ render_field(form.register.email) }}
{{ render_field(form.register.password) }}
{{ render_field(form.register.confirm_password) }}
{{ render_field(form.register.firstname) }}
{{ render_field(form.register.surname) }}
{{ render_field(form.register.accept_tos) }}
2019-05-12 21:02:23 +02:00
<span class="btn btn-secondary" onclick="toggleform(this)">{{ _("Login") }}</span>
<button class="btn btn-black">{{ _("Register") }}</button>
2019-05-12 19:31:26 +02:00
</form>
2019-04-26 03:28:27 +02:00
</div>
</div>
</div>
2019-03-02 23:41:16 +01:00
</div>
{% endblock %}