diff --git a/webadmin/src/views/settings.html b/webadmin/src/views/settings.html index dd1376519..39a63e1ba 100644 --- a/webadmin/src/views/settings.html +++ b/webadmin/src/views/settings.html @@ -152,32 +152,58 @@
- These certificates have to be wildcard certificates and will be used for all apps, which were not configured to use a specific certificate. -
-
-
+
+ +

This certificate has to be wildcard certificates and will be used for all apps, which were not configured to use a specific certificate.

-
- - + + - +
-
- - + + - +
- + +
+
+
+
+
+
+
+
+ +

This certificate will be used for this Settings application.

+
+
+ + + + + +
+
+
+
+ + + + + +
+
+
diff --git a/webadmin/src/views/settings.js b/webadmin/src/views/settings.js index 28dbaffa9..8cbe01df6 100644 --- a/webadmin/src/views/settings.js +++ b/webadmin/src/views/settings.js @@ -83,45 +83,50 @@ angular.module('Application').controller('SettingsController', ['$scope', '$loca }] }; - $scope.certificateFile = null; - $scope.certificateFileName = ''; - $scope.keyFile = null; - $scope.keyFileName = ''; - - document.getElementById('certificateFileInput').onchange = function (event) { - $scope.$apply(function () { - $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]); - }); + $scope.defaultCert = { + certificateFile: null, + certificateFileName: '', + keyFile: null, + keyFileName: '' }; - document.getElementById('keyFileInput').onchange = function (event) { - $scope.$apply(function () { - $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.adminCert = { + certificateFile: null, + certificateFileName: '', + keyFile: null, + keyFileName: '' }; - $scope.setCertificate = function () { - Client.setCertificate($scope.certificateFile, $scope.keyFile, function (error) { + function readFileLocally(obj, file, fileName) { + return function (event) { + $scope.$apply(function () { + obj[file] = null; + obj[fileName] = 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'); + obj[file] = result.target.result; + }; + reader.readAsText(event.target.files[0]); + }); + }; + } + + document.getElementById('defaultCertFileInput').onchange = readFileLocally($scope.defaultCert, 'certificateFile', 'certificateFileName'); + document.getElementById('defaultKeyFileInput').onchange = readFileLocally($scope.defaultCert, 'keyFile', 'keyFileName'); + document.getElementById('adminCertFileInput').onchange = readFileLocally($scope.adminCert, 'certificateFile', 'certificateFileName'); + document.getElementById('adminKeyFileInput').onchange = readFileLocally($scope.adminCert, 'keyFile', 'keyFileName'); + + $scope.setDefaultCert = function () { + Client.setCertificate($scope.defaultCert.certificateFile, $scope.defaultCert.keyFile, function (error) { if (error) return console.error(error); + }); + }; - // give nginx reconfigure some time and then force reload - window.setTimeout(window.location.reload.bind(window.location, true), 5000); + $scope.setAdminCert = function () { + Client.setAdminCertificate($scope.adminCert.certificateFile, $scope.adminCert.keyFile, function (error) { + if (error) return console.error(error); }); };