blob: 63dc59463eb5560ec5abb741434dce911750fe7f [file] [log] [blame]
window.angular && (function(angular) {
'use strict';
angular.module('app.common.directives').directive('certificate', [
'APIUtils',
function(APIUtils) {
return {
'restrict': 'E',
'template': require('./certificate.html'),
'scope': {'cert': '=', 'reload': '&'},
'controller': [
'$scope', 'APIUtils', 'toastService',
function($scope, APIUtils, toastService) {
var certificateType = 'PEM';
$scope.replaceCertificate = function(certificate) {
$scope.loading = true;
if (certificate.file.name.split('.').pop() !==
certificateType.toLowerCase()) {
toastService.error(
'Certificate must be replaced with a .pem file.');
return;
}
var file =
document
.getElementById(
'upload_' + certificate.Description + certificate.Id)
.files[0];
var reader = new FileReader();
reader.onloadend = function(e) {
var data = {};
data.CertificateString = e.target.result;
data.CertificateUri = {'@odata.id': certificate['@odata.id']};
data.CertificateType = certificateType;
APIUtils.replaceCertificate(data).then(
function(data) {
$scope.loading = false;
toastService.success(
certificate.Description + ' was replaced.');
$scope.reload();
},
function(error) {
console.log(error);
$scope.loading = false;
toastService.error(
'Unable to replace ' + certificate.Description);
});
};
reader.readAsBinaryString(file);
};
}
]
};
}
]);
})(window.angular);