blob: 63dc59463eb5560ec5abb741434dce911750fe7f [file] [log] [blame]
beccabroek309b5da2018-11-07 12:22:31 -06001window.angular && (function(angular) {
2 'use strict';
3
4 angular.module('app.common.directives').directive('certificate', [
5 'APIUtils',
6 function(APIUtils) {
7 return {
8 'restrict': 'E',
9 'template': require('./certificate.html'),
10 'scope': {'cert': '=', 'reload': '&'},
11 'controller': [
12 '$scope', 'APIUtils', 'toastService',
13 function($scope, APIUtils, toastService) {
14 var certificateType = 'PEM';
15 $scope.replaceCertificate = function(certificate) {
16 $scope.loading = true;
17 if (certificate.file.name.split('.').pop() !==
18 certificateType.toLowerCase()) {
19 toastService.error(
20 'Certificate must be replaced with a .pem file.');
21 return;
22 }
23 var file =
24 document
25 .getElementById(
26 'upload_' + certificate.Description + certificate.Id)
27 .files[0];
28 var reader = new FileReader();
29 reader.onloadend = function(e) {
30 var data = {};
31 data.CertificateString = e.target.result;
32 data.CertificateUri = {'@odata.id': certificate['@odata.id']};
33 data.CertificateType = certificateType;
34 APIUtils.replaceCertificate(data).then(
35 function(data) {
36 $scope.loading = false;
37 toastService.success(
38 certificate.Description + ' was replaced.');
39 $scope.reload();
40 },
41 function(error) {
42 console.log(error);
43 $scope.loading = false;
44 toastService.error(
45 'Unable to replace ' + certificate.Description);
46 });
47 };
48 reader.readAsBinaryString(file);
49 };
50 }
51 ]
52 };
53 }
54 ]);
55})(window.angular);