forked from openshift/origin-web-console
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathoscSecrets.js
76 lines (68 loc) · 2.45 KB
/
oscSecrets.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
"use strict";
angular.module("openshiftConsole")
.directive("oscSecrets", function($uibModal, $filter, DataService, SecretsService) {
return {
restrict: 'E',
scope: {
pickedSecrets: "=model",
secretsByType: '=',
namespace: "=",
displayType: "@",
type: "@",
alerts: '=',
disableInput: "=",
serviceAccountToLink: '@?',
allowMultipleSecrets: "=?" // false by default
},
templateUrl: 'views/directives/osc-secrets.html',
link: function($scope) {
$scope.canAddSourceSecret = function() {
if (!$scope.allowMultipleSecrets) {
return false;
}
var lastSecret = _.last($scope.pickedSecrets);
if (!lastSecret) {
return false;
}
return lastSecret.name;
};
$scope.setLastSecretsName = function(secretName) {
var lastSecret = _.last($scope.pickedSecrets);
lastSecret.name = secretName;
};
$scope.addSourceSecret = function() {
$scope.pickedSecrets.push({name: ""});
};
$scope.removeSecret = function(index) {
if ($scope.pickedSecrets.length === 1) {
$scope.pickedSecrets = [{name: ""}];
} else {
$scope.pickedSecrets.splice(index,1);
}
$scope.secretsForm.$setDirty();
};
$scope.openCreateSecretModal = function() {
$scope.newSecret = {};
var modalInstance = $uibModal.open({
animation: true,
backdrop: 'static',
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);
$scope.secretsForm.$setDirty();
});
});
};
}
};
});