andryyy 2020-05-11 13:26:20 +02:00
commit 19c17f005c
3 changed files with 71 additions and 36 deletions

View File

@ -1,5 +1,6 @@
<html>
<head>
<meta name="x-apple-disable-message-reformatting" />
<style>
body {
font-family: Helvetica, Arial, Sans-Serif;
@ -15,12 +16,22 @@
border-bottom: 1px solid #ddd;
vertical-align: top;
}
td.fixed {
white-space: nowrap;
}
th {
background-color: #56B04C;
color: white;
}
tr:nth-child(even){background-color: #f2f2f2}
tr:nth-child(even) {
background-color: #f2f2f2;
}
/* mobile devices */
@media all and (max-width: 480px) {
.mob {
display: none;
}
}
</style>
</head>
<body>
@ -31,15 +42,15 @@
There are {{counter}} new messages waiting in quarantine:<br>
{% endif %}
<table>
<tr><th>Subject</th><th>Sender</th><th>Score</th><th>Arrived on</th>{% if quarantine_acl == 1 %}<th>Actions</th>{% endif %}</tr>
<tr><th>Subject</th><th>Sender</th><th class="mob">Score</th><th class="mob">Arrived on</th>{% if quarantine_acl == 1 %}<th>Actions</th>{% endif %}</tr>
{% for line in meta %}
<tr>
<td>{{ line.subject|e }}</td>
<td>{{ line.sender|e }}</td>
<td>{{ line.score }}</td>
<td>{{ line.created }}</td>
<td class="mob">{{ line.score }}</td>
<td class="mob">{{ line.created }}</td>
{% if quarantine_acl == 1 %}
<td><a href="https://{{ hostname }}/qhandler/release/{{ line.qhash }}">release</a> | <a href="https://{{ hostname }}/qhandler/delete/{{ line.qhash }}">delete</a></td>
<td class="fixed"><a href="https://{{ hostname }}/qhandler/release/{{ line.qhash }}">release</a> | <a href="https://{{ hostname }}/qhandler/delete/{{ line.qhash }}">delete</a></td>
{% endif %}
</tr>
{% endfor %}

View File

@ -4,26 +4,50 @@
body {
font-family: sans-serif;
}
div {
/* width based on text fill*/
display: inline-block;
}
#progressbar {
background-color: #f0f0f0;
border-radius: 0px;
padding: 0px;
width:50%;
color: #000;
background-color: #f1f1f1;
width: 100%;
}
{% if (percent >= 95) %}
#progressbar > div {
background-color: #ff9c9c;
color: #fff;
background-color: #FF0000;
text-align: center;
padding: 0.01em;
width: {{percent}}%;
height: 20px;
border-radius: 0px;
}
{% elif (percent < 95) and (percent >= 80) %}
#progressbar > div {
color: #fff;
background-color: #FF8C00;
text-align: center;
padding: 0.01em;
width: {{percent}}%;
}
{% else %}
#progressbar > div {
color: #fff;
background-color: #00B000;
text-align: center;
padding: 0.01em;
width: {{percent}}%;
}
{% endif %}
</style>
</head>
<body>
<div>
<p>Hi {{username}}!<br><br>
Your mailbox is now {{percent}}% full, please consider deleting old messages to still be able to receive new mails in the future.<br>
<div id="progressbar">
<div></div>
<div>{{percent}}%</div>
</div>
</p>
</div>
</body>
</html>

View File

@ -204,7 +204,7 @@
"no_record": "No record",
"oauth2_client_id": "Client ID",
"oauth2_client_secret": "Client secret",
"oauth2_info": "The OAuth2 implementation supports the grant type \"Authorization Code\" and issues refresh tokens.<br>\r\nThe server also automatically issues new refresh tokens, after a refresh token has been used.<br><br>\r\n→ The default scope is <i>profile</i>. Only mailbox users can be authenticated against OAuth2. If the scope parameter is omitted, it falls back to <i>profile</i>.<br>\r\n→ The <i>state</i> parameter is required to be sent by the client as part of the authorize request.<br><br>\r\nPathes for requests to the OAuth2 API: <br>\r\n<ul>\r\n <li>Authorization endpoint: <code>/oauth/authorize</code></li>\r\n <li>Token endpoint: <code>/oauth/token</code></li>\r\n <li>Resource page: <code>/oauth/profile</code></li>\r\n</ul>\r\nRegenerating the client secret will not expire existing authorization codes, but they will fail to renew their token.<br><br>\r\nRevoking client tokens will cause immediate termination of all active sessions. All clients need to re-authenticate.",
"oauth2_info": "The OAuth2 implementation supports the grant type \"Authorization Code\" and issues refresh tokens.<br>\r\nThe server also automatically issues new refresh tokens, after a refresh token has been used.<br><br>\r\n→ The default scope is <i>profile</i>. Only mailbox users can be authenticated against OAuth2. If the scope parameter is omitted, it falls back to <i>profile</i>.<br>\r\n→ The <i>state</i> parameter is required to be sent by the client as part of the authorize request.<br><br>\r\nPaths for requests to the OAuth2 API: <br>\r\n<ul>\r\n <li>Authorization endpoint: <code>/oauth/authorize</code></li>\r\n <li>Token endpoint: <code>/oauth/token</code></li>\r\n <li>Resource page: <code>/oauth/profile</code></li>\r\n</ul>\r\nRegenerating the client secret will not expire existing authorization codes, but they will fail to renew their token.<br><br>\r\nRevoking client tokens will cause immediate termination of all active sessions. All clients need to re-authenticate.",
"oauth2_redirect_uri": "Redirect URI",
"oauth2_renew_secret": "Generate new client secret",
"oauth2_revoke_tokens": "Revoke all client tokens",
@ -886,7 +886,7 @@
"app_name": "App name",
"app_passwds": "App passwords",
"apple_connection_profile": "Apple connection profile",
"apple_connection_profile_complete": "This connection profile includes IMAP and SMTP parameters as well as CalDAV (calendars) and CardDAV (contacts) pathes for an Apple device.",
"apple_connection_profile_complete": "This connection profile includes IMAP and SMTP parameters as well as CalDAV (calendars) and CardDAV (contacts) paths for an Apple device.",
"apple_connection_profile_mailonly": "This connection profile includes IMAP and SMTP configuration parameters for an Apple device.",
"change_password": "Change password",
"client_configuration": "Show configuration guides for email clients and smartphones",