diff --git a/src/js/client.js b/src/js/client.js index cb89a4593..df30afa2a 100644 --- a/src/js/client.js +++ b/src/js/client.js @@ -2002,10 +2002,11 @@ angular.module('Application').service('Client', ['$http', '$interval', '$timeout }; // Email - Client.prototype.getMailEventLogs = function (search, page, perPage, callback) { + Client.prototype.getMailEventLogs = function (search, types, page, perPage, callback) { var config = { params: { page: page, + types: types, per_page: perPage, search: search } diff --git a/src/theme.scss b/src/theme.scss index 472ee55ec..5a3546311 100644 --- a/src/theme.scss +++ b/src/theme.scss @@ -484,6 +484,15 @@ multiselect { // Mail view // ---------------------------- +.maillog-filter { + display: inline-block; + + .form-control { + display: inline-block; + width: 200px; + } +} + .email-domain-list-item { display: block; text-decoration: none; @@ -1331,7 +1340,7 @@ footer { // Eventlog/Activity // ---------------------------- -.filter { +.eventlog-filter { display: inline-block; padding-left: 0; margin: 20px 0; diff --git a/src/views/activity.html b/src/views/activity.html index f4160ace2..23685bdbb 100644 --- a/src/views/activity.html +++ b/src/views/activity.html @@ -7,7 +7,7 @@
-
+
diff --git a/src/views/emails.html b/src/views/emails.html index 05f11bd33..34d15ebcc 100644 --- a/src/views/emails.html +++ b/src/views/emails.html @@ -92,17 +92,24 @@
-

Event Log - - - - - - -

+

Event Log

-
+
+
+
+ + + +
+
+ + +
+
+
+ +

diff --git a/src/views/emails.js b/src/views/emails.js index c0f6c740e..bef5a4781 100644 --- a/src/views/emails.js +++ b/src/views/emails.js @@ -11,18 +11,37 @@ angular.module('Application').controller('EmailsController', ['$scope', '$locati $scope.user = Client.getUserInfo(); $scope.domains = []; + $scope.pageItemCount = [ + { name: 'Show 20 per page', value: 20 }, + { name: 'Show 50 per page', value: 50 }, + { name: 'Show 100 per page', value: 100 } + ]; + + $scope.activityTypes = [ + { name: 'Bounce', value: 'bounce' }, + { name: 'Deferred', value: 'deferred' }, + { name: 'Delivered', value: 'delivered' }, + { name: 'Denied', value: 'denied' }, + { name: 'Queued', value: 'queued' }, + { name: 'Received', value: 'received' }, + ]; + $scope.activity = { busy: true, eventLogs: [], activeEventLog: null, currentPage: 1, perPage: 20, + pageItems: $scope.pageItemCount[0], + selectedTypes: [], search: '', refresh: function () { $scope.activity.busy = true; - Client.getMailEventLogs($scope.activity.search, $scope.activity.currentPage, $scope.activity.perPage, function (error, result) { + var types = $scope.activity.selectedTypes.map(function (a) { return a.value; }).join(','); + + Client.getMailEventLogs($scope.activity.search, types, $scope.activity.currentPage, $scope.activity.pageItems.value, function (error, result) { if (error) return console.error('Failed to fetch mail eventlogs.', error); $scope.activity.busy = false; @@ -47,8 +66,8 @@ angular.module('Application').controller('EmailsController', ['$scope', '$locati else $scope.activity.activeEventLog = eventLog; }, - updateFilter: function () { - $scope.activity.currentPage = 1; + updateFilter: function (fresh) { + if (fresh) $scope.activity.currentPage = 1; $scope.activity.refresh(); } };