Skip to content

Commit ee5a6b2

Browse files
Merge pull request #2436 from jhadvig/secret-watcher
Automatic merge from submit-queue. Add watcher to secrets browse page This is a follow up of #2421 @spadgett PTAL
2 parents 9387547 + d3570c9 commit ee5a6b2

File tree

4 files changed

+51
-19
lines changed

4 files changed

+51
-19
lines changed

app/scripts/controllers/secret.js

+31-4
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,12 @@
88
* Controller of the openshiftConsole
99
*/
1010
angular.module('openshiftConsole')
11-
.controller('SecretController', function ($routeParams, $filter, $scope, DataService, ProjectsService, SecretsService) {
11+
.controller('SecretController', function ($routeParams,
12+
$filter,
13+
$scope,
14+
DataService,
15+
ProjectsService,
16+
SecretsService) {
1217
$scope.projectName = $routeParams.project;
1318
$scope.secretName = $routeParams.secret;
1419
$scope.view = {
@@ -27,6 +32,20 @@ angular.module('openshiftConsole')
2732
}
2833
];
2934

35+
var watches = [];
36+
37+
var secretResolved = function(secret, action) {
38+
$scope.secret = secret;
39+
if (action === "DELETED") {
40+
$scope.alerts["deleted"] = {
41+
type: "warning",
42+
message: "This secret has been deleted."
43+
};
44+
return;
45+
}
46+
$scope.decodedSecretData = SecretsService.decodeSecretData($scope.secret.data);
47+
};
48+
3049
$scope.addToApplicationVisible = false;
3150

3251
$scope.addToApplication = function() {
@@ -48,13 +67,21 @@ angular.module('openshiftConsole')
4867

4968
DataService.get("secrets", $scope.secretName, context, { errorNotification: false }).then(
5069
function(secret) {
51-
$scope.secret = secret;
52-
$scope.decodedSecretData = SecretsService.decodeSecretData($scope.secret.data);
5370
$scope.loaded = true;
71+
secretResolved(secret);
72+
watches.push(DataService.watchObject("secrets", $scope.secretName, context, secretResolved));
5473
},
5574
function(e) {
5675
$scope.loaded = true;
57-
$scope.error = e;
76+
$scope.alerts["load"] = {
77+
type: "error",
78+
message: "The secret details could not be loaded.",
79+
details: $filter('getErrorDetails')(e)
80+
};
5881
});
82+
83+
$scope.$on('$destroy', function(){
84+
DataService.unwatchAll(watches);
85+
});
5986
}));
6087
});

app/views/browse/secret.html

+1-5
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,7 @@
44
<breadcrumbs breadcrumbs="breadcrumbs"></breadcrumbs>
55
<alerts alerts="alerts"></alerts>
66
<div ng-if="!loaded" class="mar-top-xl">Loading...</div>
7-
<div ng-if="loaded && error" class="empty-state-message text-center">
8-
<h2>The secret details could not be loaded.</h2>
9-
<p>{{error | getErrorDetails}}</p>
10-
</div>
11-
<div ng-if="loaded && !error">
7+
<div ng-if="secret">
128
<h1 class="contains-actions">
139
<div class="pull-right dropdown">
1410
<!--

dist/scripts/scripts.js

+18-5
Original file line numberDiff line numberDiff line change
@@ -6459,17 +6459,30 @@ title: "Secrets",
64596459
link: "project/" + e.project + "/browse/secrets"
64606460
}, {
64616461
title: n.secretName
6462-
} ], n.addToApplicationVisible = !1, n.addToApplication = function() {
6462+
} ];
6463+
var i = [], s = function(e, t) {
6464+
n.secret = e, "DELETED" !== t ? n.decodedSecretData = o.decodeSecretData(n.secret.data) : n.alerts.deleted = {
6465+
type: "warning",
6466+
message: "This secret has been deleted."
6467+
};
6468+
};
6469+
n.addToApplicationVisible = !1, n.addToApplication = function() {
64636470
n.secret.data && (n.addToApplicationVisible = !0);
64646471
}, n.closeAddToApplication = function() {
64656472
n.addToApplicationVisible = !1;
6466-
}, r.get(e.project).then(_.spread(function(e, t) {
6467-
n.project = e, n.context = t, a.get("secrets", n.secretName, t, {
6473+
}, r.get(e.project).then(_.spread(function(e, r) {
6474+
n.project = e, n.context = r, a.get("secrets", n.secretName, r, {
64686475
errorNotification: !1
64696476
}).then(function(e) {
6470-
n.secret = e, n.decodedSecretData = o.decodeSecretData(n.secret.data), n.loaded = !0;
6477+
n.loaded = !0, s(e), i.push(a.watchObject("secrets", n.secretName, r, s));
64716478
}, function(e) {
6472-
n.loaded = !0, n.error = e;
6479+
n.loaded = !0, n.alerts.load = {
6480+
type: "error",
6481+
message: "The secret details could not be loaded.",
6482+
details: t("getErrorDetails")(e)
6483+
};
6484+
}), n.$on("$destroy", function() {
6485+
a.unwatchAll(i);
64736486
});
64746487
}));
64756488
} ]), angular.module("openshiftConsole").controller("CreateSecretController", [ "$filter", "$location", "$routeParams", "$scope", "$window", "ApplicationGenerator", "AuthorizationService", "DataService", "Navigate", "ProjectsService", function(e, t, n, a, r, o, i, s, c, l) {

dist/scripts/templates.js

+1-5
Original file line numberDiff line numberDiff line change
@@ -3568,11 +3568,7 @@ angular.module('openshiftConsoleTemplates', []).run(['$templateCache', function(
35683568
"<breadcrumbs breadcrumbs=\"breadcrumbs\"></breadcrumbs>\n" +
35693569
"<alerts alerts=\"alerts\"></alerts>\n" +
35703570
"<div ng-if=\"!loaded\" class=\"mar-top-xl\">Loading...</div>\n" +
3571-
"<div ng-if=\"loaded && error\" class=\"empty-state-message text-center\">\n" +
3572-
"<h2>The secret details could not be loaded.</h2>\n" +
3573-
"<p>{{error | getErrorDetails}}</p>\n" +
3574-
"</div>\n" +
3575-
"<div ng-if=\"loaded && !error\">\n" +
3571+
"<div ng-if=\"secret\">\n" +
35763572
"<h1 class=\"contains-actions\">\n" +
35773573
"<div class=\"pull-right dropdown\">\n" +
35783574
"\n" +

0 commit comments

Comments
 (0)