forked from openshift/origin-web-console
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathoscSourceSecrets.js
90 lines (83 loc) · 2.98 KB
/
oscSourceSecrets.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
"use strict";
angular.module("openshiftConsole")
.directive("oscSourceSecrets", function($uibModal, $filter, DataService, SecretsService) {
return {
restrict: 'E',
scope: {
pickedSecrets: "=model",
secretsByType: '=',
strategyType: '=',
type: "@",
displayType: "@",
namespace: "=",
alerts: '=',
serviceAccountToLink: '@?'
},
templateUrl: 'views/directives/osc-source-secrets.html',
link: function($scope) {
$scope.canAddSourceSecret = function() {
var lastSecret = _.last($scope.pickedSecrets);
switch ($scope.strategyType) {
case 'Custom':
return lastSecret.secretSource.name;
default:
return lastSecret.secret.name;
}
};
$scope.setLastSecretsName = function(secretName) {
var lastSecret = _.last($scope.pickedSecrets);
switch ($scope.strategyType) {
case 'Custom':
lastSecret.secretSource.name = secretName;
return;
default:
lastSecret.secret.name = secretName;
return;
}
};
$scope.addSourceSecret = function() {
switch ($scope.strategyType) {
case 'Custom':
$scope.pickedSecrets.push({secretSource: {name: ""}, mountPath: ""});
return;
default:
$scope.pickedSecrets.push({secret: {name: ""}, destinationDir: ""});
return;
}
};
$scope.removeSecret = function(index) {
if ($scope.pickedSecrets.length === 1) {
switch ($scope.strategyType) {
case 'Custom':
$scope.pickedSecrets = [{secretSource: {name: ""}, mountPath: ""}];
break;
default:
$scope.pickedSecrets = [{secret: {name: ""}, destinationDir: ""}];
}
} else {
$scope.pickedSecrets.splice(index,1);
}
$scope.secretsForm.$setDirty();
};
$scope.openCreateSecretModal = function() {
var modalInstance = $uibModal.open({
animation: true,
templateUrl: 'views/modals/create-secret.html',
controller: 'CreateSecretModalController',
scope: $scope
});
modalInstance.result.then(function(newSecret) {
DataService.list("secrets", {namespace: $scope.namespace}, function(secrets) {
var secretsByType = SecretsService.groupSecretsByType(secrets);
var secretNamesByType =_.mapValues(secretsByType, function(secrets) {return _.map(secrets, 'metadata.name');});
// Add empty option to the image/source secrets
$scope.secretsByType = _.each(secretNamesByType, function(secretsArray) {
secretsArray.unshift("");
});
$scope.setLastSecretsName(newSecret.metadata.name);
});
});
};
}
};
});