diff --git a/webadmin/src/js/client.js b/webadmin/src/js/client.js index 6766a3975..256721a59 100644 --- a/webadmin/src/js/client.js +++ b/webadmin/src/js/client.js @@ -451,14 +451,7 @@ angular.module('Application').service('Client', ['$http', 'md5', 'Notification', }; Client.prototype.setCertificate = function (certificateFile, keyFile, callback) { - var fd = new FormData(); - fd.append('certificate', certificateFile); - fd.append('key', keyFile); - - $http.post(client.apiOrigin + '/api/v1/settings/certificate', fd, { - headers: { 'Content-Type': undefined }, - transformRequest: angular.identity - }).success(function(data, status) { + $http.post(client.apiOrigin + '/api/v1/settings/certificate', { cert: certificateFile, key: keyFile }).success(function(data, status) { if (status !== 202) return callback(new ClientError(status, data)); callback(null); }).error(defaultErrorHandler(callback)); diff --git a/webadmin/src/views/settings.js b/webadmin/src/views/settings.js index a7ff06e92..28dbaffa9 100644 --- a/webadmin/src/views/settings.js +++ b/webadmin/src/views/settings.js @@ -90,22 +90,33 @@ angular.module('Application').controller('SettingsController', ['$scope', '$loca document.getElementById('certificateFileInput').onchange = function (event) { $scope.$apply(function () { - $scope.certificateFile = event.target.files[0]; + $scope.certificateFile = null; $scope.certificateFileName = event.target.files[0].name; + + var reader = new FileReader(); + reader.onload = function (result) { + if (!result.target || !result.target.result) return console.error('Unable to read local file'); + $scope.certificateFile = result.target.result; + }; + reader.readAsText(event.target.files[0]); }); }; document.getElementById('keyFileInput').onchange = function (event) { $scope.$apply(function () { - $scope.keyFile = event.target.files[0]; + $scope.keyFile = null; $scope.keyFileName = event.target.files[0].name; + + var reader = new FileReader(); + reader.onload = function (result) { + if (!result.target || !result.target.result) return console.error('Unable to read local file'); + $scope.keyFile = result.target.result; + }; + reader.readAsText(event.target.files[0]); }); }; $scope.setCertificate = function () { - if (!$scope.certificateFile) return console.log('Certificate not set'); - if (!$scope.keyFile) return console.log('Key not set'); - Client.setCertificate($scope.certificateFile, $scope.keyFile, function (error) { if (error) return console.error(error);