MailHog/mailhog/templates/js/controllers.go

98 lines
2.2 KiB
Go
Raw Normal View History

2014-04-20 14:35:59 +00:00
package js
func Controllers() string {
return `
var mailhogApp = angular.module('mailhogApp', []);
2014-04-21 21:32:34 +00:00
mailhogApp.controller('MailCtrl', function ($scope, $http, $sce) {
$scope.cache = {};
2014-04-20 14:35:59 +00:00
$scope.refresh = function() {
$http.get('/api/v1/messages').success(function(data) {
$scope.messages = data;
});
}
$scope.refresh();
$scope.selectMessage = function(message) {
if($scope.cache[message.Id]) {
$scope.preview = $scope.cache[message.Id];
} else {
$scope.preview = message;
$http.get('/api/v1/messages/' + message.Id).success(function(data) {
$scope.cache[message.Id] = data;
data.previewHTML = $sce.trustAsHtml($scope.getMessageHTML(data));
$scope.preview = data;
preview = $scope.cache[message.Id];
});
}
}
2014-04-21 21:32:34 +00:00
$scope.getMessagePlain = function(message) {
var part;
if(message.MIME) {
for(var p in message.MIME.Parts) {
if(message.MIME.Parts[p].Headers["Content-Type"][0] == "text/plain") {
part = message.MIME.Parts[p];
break;
}
}
}
if(!part) part = message.Content;
return part.Body;
}
$scope.getMessageHTML = function(message) {
var part;
if(message.MIME) {
for(var p in message.MIME.Parts) {
if(message.MIME.Parts[p].Headers["Content-Type"][0] == "text/html") {
part = message.MIME.Parts[p];
break;
}
}
}
if(!part) part = message.Content;
return part.Body;
}
2014-04-20 14:35:59 +00:00
$scope.date = function(timestamp) {
return (new Date(timestamp)).toString();
};
$scope.deleteAll = function() {
$('#confirm-delete-all').modal('show');
}
2014-04-20 19:13:39 +00:00
$scope.getSource = function(message) {
var source = "";
$.each(message.Content.Headers, function(k, v) {
source += k + ": " + v + "\n";
});
source += "\n";
source += message.Content.Body;
return source;
}
2014-04-20 14:35:59 +00:00
$scope.deleteAllConfirm = function() {
$('#confirm-delete-all').modal('hide');
$http.post('/api/v1/messages/delete').success(function() {
$scope.refresh();
$scope.preview = null;
});
}
$scope.deleteOne = function(message) {
2014-04-20 16:09:06 +00:00
$http.post('/api/v1/messages/' + message.Id + '/delete').success(function() {
2014-04-20 14:35:59 +00:00
if($scope.preview._id == message._id) $scope.preview = null;
$scope.refresh();
});
}
});
`;
}