diff --git a/src/js/client.js b/src/js/client.js index 9f0943020..1cd7cdb7f 100644 --- a/src/js/client.js +++ b/src/js/client.js @@ -152,6 +152,12 @@ angular.module('Application').filter('prettyDate', function ($translate) { }; }); +angular.module('Application').filter('prettyFutureDate', function () { + return function prettyFutureDate(utc) { + return moment(utc).fromNow(); // this converts utc into browser timezone and not cloudron timezone! + }; +}); + angular.module('Application').filter('prettyLongDate', function () { return function prettyLongDate(utc) { return moment(utc).format('MMMM Do YYYY, h:mm:ss a'); // this converts utc into browser timezone and not cloudron timezone! @@ -2740,7 +2746,7 @@ angular.module('Application').service('Client', ['$http', '$interval', '$timeout } }; - get('/api/v1/mailserver/tempfail_queue', config, function (error, data, status) { + get('/api/v1/mailserver/queue', config, function (error, data, status) { if (error) return callback(error); if (status !== 200) return callback(new ClientError(status, data)); callback(null, data.queue); @@ -2748,7 +2754,7 @@ angular.module('Application').service('Client', ['$http', '$interval', '$timeout }; Client.prototype.delMailQueueItem = function (file, callback) { - del('/api/v1/mailserver/tempfail_queue/' + file, null, function (error, data, status) { + del('/api/v1/mailserver/queue/' + file, null, function (error, data, status) { if (error) return callback(error); if (status !== 200) return callback(new ClientError(status, data)); callback(null, data.usage); @@ -2756,7 +2762,7 @@ angular.module('Application').service('Client', ['$http', '$interval', '$timeout }; Client.prototype.resendMailQueueItem = function (file, callback) { - post('/api/v1/mailserver/tempfail_queue/' + file + '/resend', {}, null, function (error, data, status) { + post('/api/v1/mailserver/queue/' + file + '/resend', {}, null, function (error, data, status) { if (error) return callback(error); if (status !== 201) return callback(new ClientError(status, data)); callback(null, data.usage); diff --git a/src/translation/de.json b/src/translation/de.json index e38c8962f..686c0617a 100644 --- a/src/translation/de.json +++ b/src/translation/de.json @@ -196,7 +196,7 @@ } }, "users": { - "title": "User", + "title": "User Verzeichnis", "externalLdap": { "errorSelfSignedCert": "Server benutzt ein ungültiges selbst signiertes Zertifikat.", "bindPassword": "Bind Passwort (optional)", @@ -220,7 +220,7 @@ "subscriptionRequiredAction": "Abonnenement jetzt abschließen", "subscriptionRequired": "Diese Funktion ist nur im Abo enthalten.", "description": "Cloudron synchronisiert User und Gruppen aus dem externen LDAP- oder Active-Directory-Server. Passwörter beim Anmelden werden immer durch den externen Server validiert. Die Synchronisierung läuft nicht automatisch, sondern muss manuell gestartet werden.", - "title": "LDAP", + "title": "Verbinde ein externes Verzeichnis", "providerOther": "Sonstige", "providerDisabled": "Deaktiviert" }, @@ -280,7 +280,7 @@ "no2FASetup": "User hat 2FA nicht aktiviert.", "2FAIsSetup": "Hier kann das 2FA Setup des User's deaktiviert werden. Es kann anschließend im Profil vom User wieder eingerichtet werden.", "newLinkAction": "Wiederherstellungslink senden", - "resetLinkExplanation": "Hier kann ein neuer Link für die initiale User Aktivierung oder zum Passwort zurücksetzen erstellt werden. Dies macht den vorherigen Link ungültig.", + "resetLinkExplanation": "Sende einen Link zum Passwort zurücksetzen an {{ email }}.", "sendAction": "Mail senden", "descriptionEmail": "Link zum Zurücksetzen des Passworts senden", "descriptionLink": "Link zum Zurücksetzen des Passworts kopieren" diff --git a/src/translation/en.json b/src/translation/en.json index 0dd2513ac..ee878d424 100644 --- a/src/translation/en.json +++ b/src/translation/en.json @@ -749,11 +749,13 @@ }, "queue": { "title": "Email Queue", - "time": "Time", "mailFrom": "From", "rcptTo": "To", "details": "Details", - "empty": "Mail queue is empty" + "empty": "Mail queue is empty", + "discardTooltip": "Discard", + "queueTime": "Queue Time", + "resendTooltip": "Resend now" }, "action": { "queue": "Queue" diff --git a/src/translation/nl.json b/src/translation/nl.json index c2de93644..af5d0edcc 100644 --- a/src/translation/nl.json +++ b/src/translation/nl.json @@ -748,7 +748,11 @@ "enableAction": "Inschakelen" }, "queue": { - "title": "E-mail wachtrij" + "title": "E-mail wachtrij", + "mailFrom": "Van", + "rcptTo": "Aan", + "details": "Details", + "empty": "E-mail wachtrij is leeg" }, "action": { "queue": "Wachtrij" diff --git a/src/translation/ru.json b/src/translation/ru.json index ccbe957b9..8753253e7 100644 --- a/src/translation/ru.json +++ b/src/translation/ru.json @@ -1065,7 +1065,11 @@ "enableAction": "Включить" }, "queue": { - "title": "Очередь электронной почты" + "title": "Очередь электронной почты", + "rcptTo": "Отправитель", + "details": "Подробности", + "empty": "Очередь электронной почты пуста", + "mailFrom": "Получатель" }, "action": { "queue": "Очередь" diff --git a/src/views/emails-queue.html b/src/views/emails-queue.html index 5c3d2fec6..d3739eac2 100644 --- a/src/views/emails-queue.html +++ b/src/views/emails-queue.html @@ -34,11 +34,11 @@ - + - + @@ -54,13 +54,18 @@ - + - +
{{ 'emails.queue.time' | tr }}{{ 'emails.queue.queueTime' | tr }} {{ 'emails.queue.mailFrom' | tr }} {{ 'emails.queue.rcptTo' | tr }} {{ 'emails.queue.details' | tr }}{{ 'main.actions' | tr }}{{ 'main.actions' | tr }}
{{ item.ts | prettyDate }}{{ item.queueTime | prettyDate }} {{ (item.mailFrom | prettyEmailAddresses) || '-' }} {{ (item.rcptTo | prettyEmailAddresses) || '-' }}{{ item.messageId }} + Delivering + Retrying in {{ item.nextAttemptTime | prettyFutureDate }}. {{ item.attempts+1 }} attempt(s) so far. + Loading + - - + + +