Files
cloudron-box/src/views/emails.js
T

64 lines
2.1 KiB
JavaScript
Raw Normal View History

2020-02-11 21:06:34 +01:00
'use strict';
/* global angular:false */
/* global $:false */
angular.module('Application').controller('EmailsController', ['$scope', '$location', 'Client', function ($scope, $location, Client) {
Client.onReady(function () { if (!Client.getUserInfo().admin) $location.path('/'); });
$scope.ready = false;
$scope.config = Client.getConfig();
$scope.domains = [];
2020-02-11 22:07:58 -08:00
$scope.activity = {
eventlogs: [],
currentPage: 1,
perPage: 20,
fetchEventLogs: function () {
Client.getMailEventLogs($scope.activity.currentPage, $scope.activity.perPage, function (error, result) {
if (error) return console.error(error);
$scope.activity.eventlogs = result;
});
},
showNextPage: function () {
$scope.activity.currentPage++;
$scope.activity.fetchEventLogs();
},
showPrevPage: function () {
if ($scope.activity.currentPage > 1) $scope.activity.currentPage--;
else $scope.activity.currentPage = 1;
$scope.activity.fetchEventLogs();
}
};
2020-02-12 14:10:21 +01:00
function refreshDomainStatuses() {
$scope.domains.forEach(function (domain) {
Client.getMailStatusForDomain(domain.domain, function (error, result) {
if (error) return console.error('Failed to fetch mail status for domain', domain.domain, error);
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)
});
});
}
2020-02-11 21:06:34 +01:00
Client.onReady(function () {
Client.getDomains(function (error, domains) {
if (error) return console.error('Unable to get domain listing.', error);
$scope.domains = domains;
$scope.ready = true;
2020-02-11 22:07:58 -08:00
$scope.activity.fetchEventLogs();
2020-02-12 14:10:21 +01:00
refreshDomainStatuses();
2020-02-11 21:06:34 +01:00
});
});
$('.modal-backdrop').remove();
}]);