diff --git a/src/js/client.js b/src/js/client.js
index 1ca4e2021..86d2601d5 100644
--- a/src/js/client.js
+++ b/src/js/client.js
@@ -2090,7 +2090,26 @@ angular.module('Application').service('Client', ['$http', '$interval', '$timeout
get('/api/v1/mailserver/usage', config, function (error, data, status) {
if (error) return callback(error);
if (status !== 200) return callback(new ClientError(status, data));
- callback(null, data.usage);
+ callback(null, data.usage);
+ });
+ };
+
+ Client.prototype.getMaxEmailSize = function (callback) {
+ var config = {};
+
+ get('/api/v1/mailserver/max_email_size', config, function (error, data, status) {
+ if (error) return callback(error);
+ if (status !== 200) return callback(new ClientError(status, data));
+ callback(null, data.size);
+ });
+ };
+
+ Client.prototype.setMaxEmailSize = function (size, callback) {
+ post('/api/v1/mailserver/max_email_size', { size: size }, null, function (error, data, status) {
+ if (error) return callback(error);
+ if (status !== 200) return callback(new ClientError(status, data));
+
+ callback(null);
});
};
diff --git a/src/views/emails.html b/src/views/emails.html
index 32b505924..5c7ae7946 100644
--- a/src/views/emails.html
+++ b/src/views/emails.html
@@ -44,7 +44,7 @@
@@ -188,7 +188,7 @@
Maximum email size
-
25MB
+
{{ maxEmailSize.currentSize | prettyDiskSize }}
Always allowed origins
@@ -277,6 +277,7 @@
+
{{ eventlog.ts | prettyDate }} |
@@ -295,6 +296,7 @@
Connection from {{ eventlog.remote.ip }} denied. {{ eventlog.details.message || eventlog.details.reason }}
Spam filter trained using mailbox content
+ Maximum email size was set to {{ eventlog.size | prettyDiskSize }}
|
diff --git a/src/views/emails.js b/src/views/emails.js
index dfc5e9b31..870284e79 100644
--- a/src/views/emails.js
+++ b/src/views/emails.js
@@ -102,8 +102,7 @@ angular.module('Application').controller('EmailsController', ['$scope', '$locati
show: function() {
$scope.maxEmailSize.busy = false;
$scope.maxEmailSize.error = null;
- $scope.maxEmailSize.size = 25 * 1024 * 1024;
- $scope.maxEmailSize.currentSize = 25 * 1024 * 1024;
+ $scope.maxEmailSize.size = $scope.maxEmailSize.currentSize;
$scope.maxEmailSizeChangeForm.$setUntouched();
$scope.maxEmailSizeChangeForm.$setPristine();
@@ -112,7 +111,18 @@ angular.module('Application').controller('EmailsController', ['$scope', '$locati
},
submit: function () {
- console.log('tbd');
+ $scope.maxEmailSize.busy = true;
+
+ Client.setMaxEmailSize($scope.maxEmailSize.size, function (error) {
+ $scope.maxEmailSize.busy = false;
+
+ if (error) return console.error(error);
+
+ $scope.maxEmailSize.currentSize = $scope.maxEmailSize.size;
+
+ $('#maxEmailSizeChangeModal').modal('hide');
+ });
+
}
};
@@ -217,6 +227,11 @@ angular.module('Application').controller('EmailsController', ['$scope', '$locati
});
});
+ Client.getMaxEmailSize(function (error, size) {
+ if (error) return console.error('Failed to get max email size', error);
+
+ $scope.maxEmailSize.currentSize = size;
+ });
});
}