84 lines
2.8 KiB
JavaScript
84 lines
2.8 KiB
JavaScript
'use strict';
|
|
|
|
/* global $ */
|
|
/* global angular */
|
|
|
|
angular.module('Application').controller('EmailsEventlogController', ['$scope', '$location', '$translate', '$timeout', 'Client', function ($scope, $location, $translate, $timeout, Client) {
|
|
Client.onReady(function () { if (!Client.getUserInfo().isAtLeastAdmin) $location.path('/'); });
|
|
|
|
$scope.ready = false;
|
|
$scope.config = Client.getConfig();
|
|
$scope.user = Client.getUserInfo();
|
|
|
|
$scope.pageItemCount = [
|
|
{ name: $translate.instant('main.pagination.perPageSelector', { n: 20 }), value: 20 },
|
|
{ name: $translate.instant('main.pagination.perPageSelector', { n: 50 }), value: 50 },
|
|
{ name: $translate.instant('main.pagination.perPageSelector', { n: 100 }), 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: 'Quota', value: 'quota' },
|
|
{ name: 'Received', value: 'received' },
|
|
{ name: 'Spam', value: 'spam' },
|
|
];
|
|
|
|
$scope.activity = {
|
|
busy: true,
|
|
eventLogs: [],
|
|
activeEventLog: null,
|
|
currentPage: 1,
|
|
perPage: 20,
|
|
pageItems: $scope.pageItemCount[0],
|
|
selectedTypes: [],
|
|
search: '',
|
|
|
|
refresh: function () {
|
|
$scope.activity.busy = true;
|
|
|
|
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;
|
|
|
|
$scope.activity.eventLogs = result;
|
|
});
|
|
},
|
|
|
|
showNextPage: function () {
|
|
$scope.activity.currentPage++;
|
|
$scope.activity.refresh();
|
|
},
|
|
|
|
showPrevPage: function () {
|
|
if ($scope.activity.currentPage > 1) $scope.activity.currentPage--;
|
|
else $scope.activity.currentPage = 1;
|
|
$scope.activity.refresh();
|
|
},
|
|
|
|
showEventLogDetails: function (eventLog) {
|
|
if ($scope.activity.activeEventLog === eventLog) $scope.activity.activeEventLog = null;
|
|
else $scope.activity.activeEventLog = eventLog;
|
|
},
|
|
|
|
updateFilter: function (fresh) {
|
|
if (fresh) $scope.activity.currentPage = 1;
|
|
$scope.activity.refresh();
|
|
}
|
|
};
|
|
|
|
Client.onReady(function () {
|
|
$scope.ready = true;
|
|
|
|
$scope.activity.refresh();
|
|
});
|
|
|
|
$('.modal-backdrop').remove();
|
|
}]);
|