diff --git a/src/js/index.js b/src/js/index.js index 5b27e778e..be2119881 100644 --- a/src/js/index.js +++ b/src/js/index.js @@ -460,6 +460,14 @@ app.filter('prettyShortDate', function () { }; }); +app.filter('prettyEmailAddresses', function () { + return function prettyEmailAddresses(addresses) { + if (!addresses) return ''; + if (Array.isArray(addresses)) return addresses.map(function (a) { return a.slice(1, -1); }).join(', '); + return addresses.slice(1, -1); + }; +}); + app.filter('markdown2html', function () { var converter = new showdown.Converter({ extensions: [], diff --git a/src/views/emails.html b/src/views/emails.html index 768389d30..8d52658a3 100644 --- a/src/views/emails.html +++ b/src/views/emails.html @@ -96,21 +96,36 @@ - - - + + + + + - - - - - - - - - - + + + + + + + + + + + + + + + +
TimeTypeDetailsTimeTypeFromTo
{{ eventlog.ts }}{{ eventlog.type }}
{{ eventlog.raw.data | json }}
+ +
+ + + {{ eventlog.ts | prettyDate }}{{ eventlog.type }}{{ eventlog.mailFrom | prettyEmailAddresses }}{{ eventlog.rcptTo | prettyEmailAddresses }}
+
{{ eventlog.details | json }}
+
diff --git a/src/views/emails.js b/src/views/emails.js index 4f24e7d76..40c8530a4 100644 --- a/src/views/emails.js +++ b/src/views/emails.js @@ -12,14 +12,22 @@ angular.module('Application').controller('EmailsController', ['$scope', '$locati $scope.domains = []; $scope.activity = { - eventlogs: [], + busy: true, + eventLogs: [], + activeEventLog: null, currentPage: 1, - perPage: 20, + perPage: 1000, fetchEventLogs: function () { + $scope.activity.busy = true; + Client.getMailEventLogs($scope.activity.currentPage, $scope.activity.perPage, function (error, result) { - if (error) return console.error(error); - $scope.activity.eventlogs = result; + if (error) return console.error('Failed to fetch mail eventlogs.', error); + + $scope.activity.busy = false; + + // FIXME reverse should come from the server + $scope.activity.eventLogs = result.reverse(); }); }, @@ -32,10 +40,14 @@ angular.module('Application').controller('EmailsController', ['$scope', '$locati if ($scope.activity.currentPage > 1) $scope.activity.currentPage--; else $scope.activity.currentPage = 1; $scope.activity.fetchEventLogs(); + }, + + showEventLogDetails: function (eventLog) { + if ($scope.activity.activeEventLog === eventLog) $scope.activity.activeEventLog = null; + else $scope.activity.activeEventLog = eventLog; } }; - $scope.testEmail = { busy: false, error: {}, @@ -84,8 +96,6 @@ angular.module('Application').controller('EmailsController', ['$scope', '$locati domain.status = result; domain.statusOk = result.rbl.status && result.relay.status && result.dns.dkim.status && result.dns.dmarc.status && result.dns.mx.status && result.dns.ptr.status && result.dns.spf.status; - - console.log(domain) }); }); }