Compare commits
5 commits
main
...
feature/cs
Author | SHA1 | Date | |
---|---|---|---|
Halfdan Mouritzen | 8e7291e5bf | ||
Halfdan Mouritzen | 04e4cc0cc6 | ||
Halfdan Mouritzen | a0bbc3adc0 | ||
Halfdan Mouritzen | 60d0503dbf | ||
Halfdan Mouritzen | 45467efa9e |
|
@ -25,15 +25,17 @@ p, h1, h2, h3, h4, h5, h6 {
|
||||||
/* Variables */
|
/* Variables */
|
||||||
:root {
|
:root {
|
||||||
/* Colors */
|
/* Colors */
|
||||||
--light : #fff;
|
--light : #ffffff;
|
||||||
--light-dust : #f6f6f6;
|
--light-dust : #fefef9;
|
||||||
--dust : #f1f1f1;
|
--dust : #f4f1ef;
|
||||||
--medium-dust : #dadada;
|
--medium-dust : #dadada;
|
||||||
--dark-dust : #bfbfbf;
|
--dark-dust : #bfbfbf;
|
||||||
--fade : #878787;
|
--fade : #878787;
|
||||||
--twilight : #4a4a4a;
|
--twilight : #4a4a4a;
|
||||||
--dark : #2a2a2a;
|
--dark : #2a2a2a;
|
||||||
|
--light-custard : #eee7d5;
|
||||||
--custard : #f0dcac;
|
--custard : #f0dcac;
|
||||||
|
--dark-custard : #d4c7a9;
|
||||||
--water : #a8f3f4;
|
--water : #a8f3f4;
|
||||||
--splash : #4b3aba;
|
--splash : #4b3aba;
|
||||||
|
|
||||||
|
@ -53,6 +55,7 @@ p, h1, h2, h3, h4, h5, h6 {
|
||||||
|
|
||||||
html, body {
|
html, body {
|
||||||
height : 100%;
|
height : 100%;
|
||||||
|
font-size : 1.05em;
|
||||||
}
|
}
|
||||||
|
|
||||||
h1, h2, h3, h4, h5, h6 {
|
h1, h2, h3, h4, h5, h6 {
|
||||||
|
@ -64,6 +67,14 @@ a {
|
||||||
font-weight : 500;
|
font-weight : 500;
|
||||||
color : var(--splash);
|
color : var(--splash);
|
||||||
text-decoration : none;
|
text-decoration : none;
|
||||||
|
cursor : pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
hr {
|
||||||
|
margin : var(--double-space) 0;
|
||||||
|
height : 0;
|
||||||
|
border : 0;
|
||||||
|
border-bottom : 1px solid var(--dark-custard);
|
||||||
}
|
}
|
||||||
|
|
||||||
body {
|
body {
|
||||||
|
@ -102,7 +113,7 @@ header > a.logout:hover {
|
||||||
}
|
}
|
||||||
|
|
||||||
aside {
|
aside {
|
||||||
padding : var(--double-space) var(--outer-space);
|
padding : 0 var(--outer-space) var(--double-space) var(--outer-space);
|
||||||
background : var(--light);
|
background : var(--light);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -141,7 +152,7 @@ aside > div > dl > dt {
|
||||||
|
|
||||||
nav {
|
nav {
|
||||||
display : block;
|
display : block;
|
||||||
border-bottom : 1px solid var(--dark-dust);
|
border-bottom : 1px solid var(--dark-custard);
|
||||||
background : var(--light);
|
background : var(--light);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -188,14 +199,14 @@ article {
|
||||||
padding : var(--double-space) var(--outer-space);
|
padding : var(--double-space) var(--outer-space);
|
||||||
}
|
}
|
||||||
|
|
||||||
article > div {
|
article > div.content-view {
|
||||||
background : var(--dust);
|
background : var(--dust);
|
||||||
padding : var(--double-space);
|
padding : var(--double-space);
|
||||||
margin-bottom : var(--double-space);
|
margin-bottom : var(--space);
|
||||||
}
|
}
|
||||||
|
|
||||||
div.content-view > h2 {
|
div.content-view > h2 {
|
||||||
margin : 0 0 var(--double-space) 0;
|
margin : 0 0 var(--space) 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
div.services {
|
div.services {
|
||||||
|
@ -236,22 +247,32 @@ button {
|
||||||
color : var(--light);
|
color : var(--light);
|
||||||
background : var(--splash);
|
background : var(--splash);
|
||||||
padding : var(--space) var(--double-space);
|
padding : var(--space) var(--double-space);
|
||||||
border-radius : 3px;
|
border-radius : var(--quarter-space);
|
||||||
opacity : 0.9;
|
opacity : 0.85;
|
||||||
cursor : pointer;
|
cursor : pointer;
|
||||||
text-align : center;
|
text-align : center;
|
||||||
border : 0;
|
border : 0;
|
||||||
font-weight : 600;
|
font-weight : 600;
|
||||||
letter-spacing : 0.03em;
|
|
||||||
text-decoration : none;
|
text-decoration : none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
button.small {
|
||||||
|
font-size : 0.78em;
|
||||||
|
padding : var(--half-space) var(--space);
|
||||||
|
}
|
||||||
|
|
||||||
div.services > div > a:hover,
|
div.services > div > a:hover,
|
||||||
a.button:hover,
|
a.button:hover,
|
||||||
button:hover {
|
button:hover {
|
||||||
opacity : 1.0;
|
opacity : 1.0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
button:disabled {
|
||||||
|
opacity : 0.6;
|
||||||
|
background : var(--twilight);
|
||||||
|
cursor : default;
|
||||||
|
}
|
||||||
|
|
||||||
article table {
|
article table {
|
||||||
width : 100%;
|
width : 100%;
|
||||||
border-spacing : 0;
|
border-spacing : 0;
|
||||||
|
@ -259,16 +280,47 @@ article table {
|
||||||
}
|
}
|
||||||
|
|
||||||
article table thead th {
|
article table thead th {
|
||||||
text-align : left;
|
background : var(--twilight);
|
||||||
|
color : var(--medium-dust);
|
||||||
|
}
|
||||||
|
|
||||||
|
article table thead th a {
|
||||||
|
color : var(--light);
|
||||||
|
}
|
||||||
|
|
||||||
|
article table thead th:first-child {
|
||||||
|
border-radius : var(--half-space) 0 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
article table thead th:last-child {
|
||||||
|
border-radius : 0 var(--half-space) 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
article table tbody {
|
||||||
|
background : var(--light-dust);
|
||||||
}
|
}
|
||||||
|
|
||||||
article table tbody tr:nth-child(odd) {
|
article table tbody tr:nth-child(odd) {
|
||||||
background : var(--medium-dust);
|
background : var(--light-custard);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
article table tbody tr:nth-child(odd) td {
|
||||||
|
border-top : 1px solid var(--dark-custard);
|
||||||
|
border-bottom : 1px solid var(--dark-custard);
|
||||||
|
}
|
||||||
|
|
||||||
|
article table tbody tr:last-child td {
|
||||||
|
border-bottom : var(--half-space) solid var(--twilight);
|
||||||
|
}
|
||||||
|
|
||||||
article table thead th,
|
article table thead th,
|
||||||
article table tbody td {
|
article table tbody td {
|
||||||
padding : var(--half-space);
|
padding : var(--space);
|
||||||
|
text-align : left;
|
||||||
|
}
|
||||||
|
|
||||||
|
article table#user_email_table tbody tr td:first-child {
|
||||||
|
text-align : center;
|
||||||
}
|
}
|
||||||
|
|
||||||
form > div {
|
form > div {
|
||||||
|
@ -281,7 +333,8 @@ form > div >label {
|
||||||
}
|
}
|
||||||
|
|
||||||
form > div > input[type="text"],
|
form > div > input[type="text"],
|
||||||
form > div > input[type="password"] {
|
form > div > input[type="password"],
|
||||||
|
input[type="email"] {
|
||||||
border : 2px solid var(--twilight);
|
border : 2px solid var(--twilight);
|
||||||
border-radius : 6px;
|
border-radius : 6px;
|
||||||
padding : 8px;
|
padding : 8px;
|
||||||
|
@ -289,6 +342,19 @@ form > div > input[type="password"] {
|
||||||
width : 100%;
|
width : 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
form fieldset {
|
||||||
|
border : 0;
|
||||||
|
padding : 0;
|
||||||
|
margin : 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
form div.buttonHolder {
|
||||||
|
}
|
||||||
|
|
||||||
|
form div.buttonHolder button {
|
||||||
|
display : inline-block;
|
||||||
|
}
|
||||||
|
|
||||||
#login {
|
#login {
|
||||||
height : 100%;
|
height : 100%;
|
||||||
display : flex;
|
display : flex;
|
||||||
|
@ -375,10 +441,48 @@ span.time_remaining {
|
||||||
display : flex;
|
display : flex;
|
||||||
justify-content : center;
|
justify-content : center;
|
||||||
list-style : none;
|
list-style : none;
|
||||||
padding : 0;
|
padding : var(--half-space) 0;
|
||||||
margin : 0;
|
margin : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.pagination > li {
|
.pagination > li {
|
||||||
margin : 0 6px;
|
margin : 0 var(--half-space);
|
||||||
|
}
|
||||||
|
|
||||||
|
.pagination > li:first-child {
|
||||||
|
margin-right : var(--double-space);
|
||||||
|
}
|
||||||
|
|
||||||
|
.pagination > li:last-child {
|
||||||
|
margin-left : var(--double-space);
|
||||||
|
}
|
||||||
|
|
||||||
|
.pagination .page-item {
|
||||||
|
border : 1px solid var(--fade);
|
||||||
|
padding : var(--quarter-space) var(--half-space);
|
||||||
|
border-radius : var(--half-space);
|
||||||
|
background : var(--light-dust);
|
||||||
|
font-size : 0.78em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pagination .page-link {
|
||||||
|
padding : var(--half-space);
|
||||||
|
color : var(--twilight);
|
||||||
|
}
|
||||||
|
|
||||||
|
.pagination .page-item.active {
|
||||||
|
background : var(--twilight);
|
||||||
|
}
|
||||||
|
|
||||||
|
.pagination .page-item.active .page-link {
|
||||||
|
color : var(--light-dust);
|
||||||
|
font-weight : bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pagination .page-item.disabled {
|
||||||
|
opacity : 0.6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pagination .page-item.disabled .page-link {
|
||||||
|
cursor : default;
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,115 +2,96 @@
|
||||||
|
|
||||||
{% load i18n %}
|
{% load i18n %}
|
||||||
|
|
||||||
{% block head_title %}{% trans "E-mail Addresses" %}{% endblock %}
|
{% block head_title %}{% trans "Email Addresses" %}{% endblock %}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
|
<div class="content-view">
|
||||||
|
<h2>{% trans "Email Addresses" %}</h2>
|
||||||
|
<p>Her kan du tilføje og ændre emailadresser tilknyttet din konto.</p>
|
||||||
|
<p>{% trans 'The following email addresses are associated with your account:' %}</p>
|
||||||
|
|
||||||
<div class="row">
|
<hr />
|
||||||
<div class="col-md-12">
|
|
||||||
|
|
||||||
<div class="panel panel-default">
|
{% if user.emailaddress_set.all %}
|
||||||
<div class="panel-heading">
|
<form action="{% url 'account_email' %}" class="email_list" method="post">
|
||||||
<h4>{% trans "E-mail Addresses" %}</h4>
|
{% csrf_token %}
|
||||||
</div>
|
<fieldset class="blockLabels">
|
||||||
<div class="panel-body">
|
<div class="buttonHolder">
|
||||||
|
<button class="small" type="submit" name="action_primary" style="float:right">+ Add Email</button>
|
||||||
|
<button class="small" disabled type="submit" id="action_primary" name="action_primary">Make Primary</button>
|
||||||
|
<button class="small" type="submit" name="action_send">Re-send Verification</button>
|
||||||
|
<button class="small" type="submit" name="action_remove">Remove</button>
|
||||||
|
</div>
|
||||||
|
<table class="table" id="user_email_table">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th></th>
|
||||||
|
<th>{% trans "Address" %}</th>
|
||||||
|
<th>{% trans "Status" %}</th>
|
||||||
|
<th>{% trans "Primary" %}</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
{% for emailaddress in user.emailaddress_set.all %}
|
||||||
|
<tr>
|
||||||
|
<label for="email_radio_{{ forloop.counter }}"
|
||||||
|
class="{% if emailaddress.primary %}primary_email{% endif %}">
|
||||||
|
<td>
|
||||||
|
<input
|
||||||
|
id="email_radio_{{ forloop.counter }}"
|
||||||
|
type="radio"
|
||||||
|
name="email"
|
||||||
|
value="{{ emailaddress.email }}"
|
||||||
|
{% if emailaddress.primary or user.emailaddress_set.count == 1 %}
|
||||||
|
checked="checked"
|
||||||
|
{% endif %}
|
||||||
|
class="{% if emailaddress.primary %}primary_email{% endif %}"
|
||||||
|
/>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
{{ emailaddress.email }}
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
{% if emailaddress.verified %}
|
||||||
|
<span class="label label-success">{% trans "Verified" %}</span>
|
||||||
|
{% else %}
|
||||||
|
<span class="label label-danger">{% trans "Unverified" %}</span>
|
||||||
|
{% endif %}
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
{% if emailaddress.primary %}
|
||||||
|
<span class="label label-primary">{% trans "Primary" %}</span>
|
||||||
|
{% endif %}
|
||||||
|
</td>
|
||||||
|
</label>
|
||||||
|
</tr>
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
{% if user.emailaddress_set.all %}
|
</tbody>
|
||||||
<p>{% trans 'The following e-mail addresses are associated with your account:' %}</p>
|
</table>
|
||||||
<form action="{% url 'account_email' %}" class="email_list"
|
</fieldset>
|
||||||
method="post">
|
</form>
|
||||||
{% csrf_token %}
|
{% else %}
|
||||||
<fieldset class="blockLabels">
|
<p>
|
||||||
|
<strong>{% trans 'Warning:' %}</strong>
|
||||||
<table class="table">
|
{% trans "You currently do not have any e-mail address set up. You should really add an e-mail address so you can receive notifications, reset your password, etc." %}
|
||||||
<thead>
|
</p>
|
||||||
<tr>
|
{% endif %}
|
||||||
<th></th>
|
<!--
|
||||||
<th>{% trans "Address" %}</th>
|
<hr />
|
||||||
<th>{% trans "Status" %}</th>
|
|
||||||
<th>{% trans "Primary" %}</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
|
|
||||||
{% for emailaddress in user.emailaddress_set.all %}
|
|
||||||
<tr class="ctrlHolder">
|
|
||||||
<label for="email_radio_{{ forloop.counter }}"
|
|
||||||
class="{% if emailaddress.primary %}primary_email{% endif %}">
|
|
||||||
<td>
|
|
||||||
<input
|
|
||||||
id="email_radio_{{ forloop.counter }}"
|
|
||||||
type="radio"
|
|
||||||
name="email"
|
|
||||||
value="{{ emailaddress.email }}"
|
|
||||||
{% if emailaddress.primary or user.emailaddress_set.count == 1 %}
|
|
||||||
checked="checked"
|
|
||||||
{% endif %}
|
|
||||||
/>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
{{ emailaddress.email }}
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
{% if emailaddress.verified %}
|
|
||||||
<span class="label label-success">Verified</span>
|
|
||||||
{% else %}
|
|
||||||
<span class="label label-danger">Unverified</span>
|
|
||||||
{% endif %}
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
{% if emailaddress.primary %}
|
|
||||||
<span class="label label-primary">Primary</span>{% endif %}
|
|
||||||
</td>
|
|
||||||
</label>
|
|
||||||
</tr>
|
|
||||||
{% endfor %}
|
|
||||||
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
<div class="buttonHolder">
|
|
||||||
<button class="btn btn-success" type="submit"
|
|
||||||
name="action_primary">Make Primary
|
|
||||||
</button>
|
|
||||||
<button class="btn btn-primary" type="submit"
|
|
||||||
name="action_send">Re-send Verification
|
|
||||||
</button>
|
|
||||||
<button class="btn btn-danger" type="submit"
|
|
||||||
name="action_remove">Remove
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</fieldset>
|
|
||||||
</form>
|
|
||||||
{% else %}
|
|
||||||
<p>
|
|
||||||
<strong>{% trans 'Warning:' %}</strong>
|
|
||||||
{% trans "You currently do not have any e-mail address set up. You should really add an e-mail address so you can receive notifications, reset your password, etc." %}
|
|
||||||
</p>
|
|
||||||
{% endif %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="panel panel-default">
|
|
||||||
<div class="panel-heading">
|
|
||||||
<h4>{% trans "Add E-mail" %}</h4>
|
|
||||||
</div>
|
|
||||||
<div class="panel-body">
|
|
||||||
<form method="post" action="{% url 'account_email' %}"
|
|
||||||
class="add_email">
|
|
||||||
{% csrf_token %}
|
|
||||||
{{ form.as_p }}
|
|
||||||
<button name="action_add" class="btn btn-success" type="submit">
|
|
||||||
{% trans "Add E-mail" %}
|
|
||||||
</button>
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
<h3>{% trans "Add E-mail" %}</h3>
|
||||||
|
<div class="panel-body">
|
||||||
|
<form method="post" action="{% url 'account_email' %}"
|
||||||
|
class="add_email">
|
||||||
|
{% csrf_token %}
|
||||||
|
{{ form.as_p }}
|
||||||
|
<button name="action_add" class="btn btn-success" type="submit">
|
||||||
|
{% trans "Add E-mail" %}
|
||||||
|
</button>
|
||||||
|
</form>
|
||||||
</div>
|
</div>
|
||||||
|
-->
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
|
@ -124,6 +105,15 @@
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let radio_actions = document.getElementsByName('email');
|
||||||
|
if (radio_actions.length) {
|
||||||
|
for (radio of radio_actions) {
|
||||||
|
radio.addEventListener("change", function (e) {
|
||||||
|
document.getElementById('action_primary').disabled = e.target.classList.contains('primary_email')
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
})();
|
})();
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
|
@ -13,20 +13,20 @@
|
||||||
</div>
|
</div>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<h2>Log in</h2>
|
<h2>Login</h2>
|
||||||
|
|
||||||
<form method="post" action="">
|
<form method="post" action="">
|
||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
<div>
|
<div>
|
||||||
<label for="id_username"
|
<label for="id_username"
|
||||||
class="visually-hidden">
|
class="visually-hidden">
|
||||||
{% trans "E-mail" %}
|
{% trans "Email" %}
|
||||||
</label>
|
</label>
|
||||||
<input type="text"
|
<input type="text"
|
||||||
id="id_username"
|
id="id_username"
|
||||||
name="login"
|
name="login"
|
||||||
class="form-control mb-lg-2"
|
class="form-control mb-lg-2"
|
||||||
placeholder="{% trans "E-mail" %}"
|
placeholder="{% trans "Email" %}"
|
||||||
required
|
required
|
||||||
autofocus>
|
autofocus>
|
||||||
</div>
|
</div>
|
||||||
|
@ -42,7 +42,7 @@
|
||||||
required>
|
required>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<button type="submit">{% trans "Sign in" %}</button>
|
<button type="submit">{% trans "Login" %}</button>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
<div>
|
<div>
|
||||||
|
@ -55,7 +55,7 @@
|
||||||
<div class="signup">
|
<div class="signup">
|
||||||
<img src="https://data.coop/static/img/logo_da.svg" alt="data.coop logo">
|
<img src="https://data.coop/static/img/logo_da.svg" alt="data.coop logo">
|
||||||
<div class="new_here">
|
<div class="new_here">
|
||||||
<h2> Are you new here? </h2>
|
<h2>{% trans "Are you new here?" %}</h2>
|
||||||
<a class="button" href="{% url "account_signup" %}">{% trans "Become a member" %}</a>
|
<a class="button" href="{% url "account_signup" %}">{% trans "Become a member" %}</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
Loading…
Reference in a new issue