Skip to content

Commit 65b96ce

Browse files
committed
EnvFrom Config Map and Secret Link
Setup for config map and secret details link
1 parent ec0a953 commit 65b96ce

File tree

4 files changed

+130
-40
lines changed

4 files changed

+130
-40
lines changed

app/scripts/directives/editEnvironmentFrom.js

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
'$attrs',
66
'$filter',
77
'keyValueEditorUtils',
8+
'SecretsService',
89
EditEnvironmentFrom
910
],
1011
bindings: {
@@ -18,7 +19,8 @@
1819

1920
function EditEnvironmentFrom($attrs,
2021
$filter,
21-
utils) {
22+
utils,
23+
SecretsService) {
2224
var ctrl = this;
2325

2426
var canI = $filter('canI');
@@ -27,6 +29,16 @@
2729

2830
ctrl.setFocusClass = 'edit-environment-from-set-focus-' + uniqueId;
2931

32+
ctrl.viewOverlayPanel = function(entry) {
33+
ctrl.decodedSecretData = SecretsService.decodeSecretData(entry.data);
34+
ctrl.overlayPaneEntryDetails = entry;
35+
ctrl.overlayPanelVisible = true;
36+
};
37+
38+
ctrl.closeOverlayPanel = function() {
39+
ctrl.overlayPanelVisible = false;
40+
};
41+
3042
var addEntry = function(entries, entry) {
3143
entries && entries.push(entry || {});
3244
};
@@ -61,7 +73,6 @@
6173
return humanizeKind(object.kind);
6274
};
6375

64-
//ctrl.uniqueForValue = utils.uniqueForValue;
6576
ctrl.dragControlListeners = {
6677
accept: function (sourceItemHandleScope, destSortableScope) {
6778
return sourceItemHandleScope.itemScope.sortableScope.$id === destSortableScope.$id;

app/views/directives/edit-environment-from.html

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,11 @@
6767
role="button"
6868
aria-label="Delete row"
6969
ng-click="$ctrl.deleteEntry($index, 1)"></a>
70+
<a
71+
ng-if="entry.selectedEnvFrom"
72+
href=""
73+
ng-click="$ctrl.viewOverlayPanel(entry.selectedEnvFrom)"
74+
class="pficon">View Details</a>
7075
</div>
7176
</div>
7277

@@ -78,4 +83,44 @@
7883
ng-click="$ctrl.onAddRow()">{{ $ctrl.addRowLink }}</a>
7984
</div>
8085
</div>
86+
87+
<overlay-panel class="add-config-to-application" show-panel="$ctrl.overlayPanelVisible" show-close="true" handle-close="$ctrl.closeOverlayPanel">
88+
<div class="dialog-title">
89+
<h3>Value Details</h3>
90+
</div>
91+
<div class="modal-body">
92+
<h4>{{$ctrl.overlayPaneEntryDetails.metadata.name}}
93+
<small class="muted">- {{$ctrl.overlayPaneEntryDetails.kind | humanizeKind : true}}</small></h4>
94+
95+
<div ng-if="!($ctrl.overlayPaneEntryDetails.data | hashSize)" class="empty-state-message text-center">
96+
The {{$ctrl.overlayPaneEntryDetails.kind | humanizeKind : true}} has no items.
97+
</div>
98+
99+
<div ng-if="$ctrl.overlayPaneEntryDetails.data | hashSize" class="table-responsive scroll-shadows-horizontal">
100+
<table class="table table-bordered table-bordered-columns config-map-table key-value-table">
101+
<tbody>
102+
<tr ng-repeat="(prop, value) in $ctrl.overlayPaneEntryDetails.data">
103+
<td class="key">{{prop}}</td>
104+
<td class="value">
105+
<truncate-long-text
106+
ng-if="$ctrl.overlayPaneEntryDetails.kind === 'ConfigMap'"
107+
content="value"
108+
limit="1024"
109+
newline-limit="20"
110+
expandable="true">
111+
</truncate-long-text>
112+
113+
<span ng-if="$ctrl.overlayPaneEntryDetails.kind === 'Secret'">&#42;&#42;&#42;&#42;&#42;</span>
114+
</td>
115+
</tr>
116+
</tbody>
117+
</table>
118+
</div>
119+
</div>
120+
<div class="modal-footer">
121+
<button ng-click="$ctrl.closeOverlayPanel()"
122+
type="button"
123+
class="btn btn-primary pull-right">Close</button>
124+
</div>
125+
</overlay-panel>
81126
</ng-form>

dist/scripts/scripts.js

Lines changed: 42 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -9094,84 +9094,88 @@ n[e.key] = e.value;
90949094
};
90959095
} ]), function() {
90969096
angular.module("openshiftConsole").component("editEnvironmentFrom", {
9097-
controller: [ "$attrs", "$filter", "keyValueEditorUtils", function(e, t, n) {
9098-
var a = this, r = t("canI"), o = t("humanizeKind"), i = _.uniqueId();
9099-
a.setFocusClass = "edit-environment-from-set-focus-" + i;
9100-
var s = function(e, t) {
9097+
controller: [ "$attrs", "$filter", "keyValueEditorUtils", "SecretsService", function(e, t, n, a) {
9098+
var r = this, o = t("canI"), i = t("humanizeKind"), s = _.uniqueId();
9099+
r.setFocusClass = "edit-environment-from-set-focus-" + s, r.viewOverlayPanel = function(e) {
9100+
r.decodedSecretData = a.decodeSecretData(e.data), r.overlayPaneEntryDetails = e, r.overlayPanelVisible = !0;
9101+
}, r.closeOverlayPanel = function() {
9102+
r.overlayPanelVisible = !1;
9103+
};
9104+
var c = function(e, t) {
91019105
e && e.push(t || {});
91029106
};
9103-
a.onAddRow = function() {
9104-
s(a.envFromEntries), n.setFocusOn("." + a.setFocusClass);
9105-
}, a.deleteEntry = function(e, t) {
9106-
a.envFromEntries && !a.envFromEntries.length || (a.envFromEntries.splice(e, t), !a.envFromEntries.length && a.addRowLink && s(a.envFromEntries), a.updateEntries(a.envFromEntries), a.editEnvironmentFromForm.$setDirty());
9107-
}, a.isEnvFromReadonly = function(e) {
9108-
return a.isReadonlyAny || !0 === e.isReadonlyValue || (e.secretRef || e.configMapRef) && !e.selectedEnvFrom || _.isEmpty(a.envFromSelectorOptions);
9109-
}, a.groupByKind = function(e) {
9110-
return o(e.kind);
9111-
}, a.dragControlListeners = {
9107+
r.onAddRow = function() {
9108+
c(r.envFromEntries), n.setFocusOn("." + r.setFocusClass);
9109+
}, r.deleteEntry = function(e, t) {
9110+
r.envFromEntries && !r.envFromEntries.length || (r.envFromEntries.splice(e, t), !r.envFromEntries.length && r.addRowLink && c(r.envFromEntries), r.updateEntries(r.envFromEntries), r.editEnvironmentFromForm.$setDirty());
9111+
}, r.isEnvFromReadonly = function(e) {
9112+
return r.isReadonlyAny || !0 === e.isReadonlyValue || (e.secretRef || e.configMapRef) && !e.selectedEnvFrom || _.isEmpty(r.envFromSelectorOptions);
9113+
}, r.groupByKind = function(e) {
9114+
return i(e.kind);
9115+
}, r.dragControlListeners = {
91129116
accept: function(e, t) {
91139117
return e.itemScope.sortableScope.$id === t.$id;
91149118
},
91159119
orderChanged: function() {
9116-
a.editEnvironmentFromForm.$setDirty();
9120+
r.editEnvironmentFromForm.$setDirty();
91179121
}
9118-
}, a.envFromObjectSelected = function(e, t, n) {
9119-
var r = {};
9122+
}, r.envFromObjectSelected = function(e, t, n) {
9123+
var a = {};
91209124
switch (n.kind) {
91219125
case "Secret":
9122-
r.secretRef = {
9126+
a.secretRef = {
91239127
name: n.metadata.name
9124-
}, delete a.envFromEntries[e].configMapRef;
9128+
}, delete r.envFromEntries[e].configMapRef;
91259129
break;
91269130

91279131
case "ConfigMap":
9128-
r.configMapRef = {
9132+
a.configMapRef = {
91299133
name: n.metadata.name
9130-
}, delete a.envFromEntries[e].secretRef;
9134+
}, delete r.envFromEntries[e].secretRef;
91319135
}
9132-
_.assign(a.envFromEntries[e], r), a.updateEntries(a.envFromEntries);
9133-
}, a.updateEntries = function(e) {
9134-
a.entries = _.filter(e, function(e) {
9136+
_.assign(r.envFromEntries[e], a), r.updateEntries(r.envFromEntries);
9137+
}, r.updateEntries = function(e) {
9138+
r.entries = _.filter(e, function(e) {
91359139
return e.secretRef || e.configMapRef;
91369140
});
91379141
};
9138-
var c = function(e) {
9139-
a.envFromEntries = e || [], a.envFromEntries.length || s(a.envFromEntries), _.each(a.envFromEntries, function(e) {
9140-
e && (e.configMapRef && !r("configmaps", "get") && (e.isReadonlyValue = !0), e.secretRef && !r("secrets", "get") && (e.isReadonlyValue = !0));
9142+
var l = function(e) {
9143+
r.envFromEntries = e || [], r.envFromEntries.length || c(r.envFromEntries), _.each(r.envFromEntries, function(e) {
9144+
e && (e.configMapRef && !o("configmaps", "get") && (e.isReadonlyValue = !0), e.secretRef && !o("secrets", "get") && (e.isReadonlyValue = !0));
91419145
});
9142-
}, l = function(e) {
9146+
}, u = function(e) {
91439147
var t;
91449148
switch (e.kind) {
91459149
case "ConfigMap":
9146-
t = _.find(a.envFromEntries, {
9150+
t = _.find(r.envFromEntries, {
91479151
configMapRef: {
91489152
name: e.metadata.name
91499153
}
91509154
});
91519155
break;
91529156

91539157
case "Secret":
9154-
t = _.find(a.envFromEntries, {
9158+
t = _.find(r.envFromEntries, {
91559159
secretRef: {
91569160
name: e.metadata.name
91579161
}
91589162
});
91599163
}
91609164
return t;
91619165
};
9162-
a.checkEntries = function(e, t) {
9163-
return e !== t && !!l(e);
9166+
r.checkEntries = function(e, t) {
9167+
return e !== t && !!u(e);
91649168
};
9165-
var u = function(e, t) {
9166-
a.cannotAdd = a.isReadonlyAny || _.isEmpty(t), t && _.each(t, function(e) {
9167-
var t = l(e);
9169+
var d = function(e, t) {
9170+
r.cannotAdd = r.isReadonlyAny || _.isEmpty(t), t && _.each(t, function(e) {
9171+
var t = u(e);
91689172
t && _.set(t, "selectedEnvFrom", e);
91699173
});
91709174
};
9171-
a.$onInit = function() {
9172-
c(a.entries), u(a.entries, a.envFromSelectorOptions), "cannotDelete" in e && (a.cannotDeleteAny = !0), "cannotSort" in e && (a.cannotSort = !0), "isReadonly" in e && (a.isReadonlyAny = !0), "showHeader" in e && (a.showHeader = !0), a.envFromEntries && !a.envFromEntries.length && s(a.envFromEntries);
9173-
}, a.$onChanges = function(e) {
9174-
e.entries && c(e.entries.currentValue), e.envFromSelectorOptions && u(a.envFromEntries, e.envFromSelectorOptions.currentValue);
9175+
r.$onInit = function() {
9176+
l(r.entries), d(r.entries, r.envFromSelectorOptions), "cannotDelete" in e && (r.cannotDeleteAny = !0), "cannotSort" in e && (r.cannotSort = !0), "isReadonly" in e && (r.isReadonlyAny = !0), "showHeader" in e && (r.showHeader = !0), r.envFromEntries && !r.envFromEntries.length && c(r.envFromEntries);
9177+
}, r.$onChanges = function(e) {
9178+
e.entries && l(e.entries.currentValue), e.envFromSelectorOptions && d(r.envFromEntries, e.envFromSelectorOptions.currentValue);
91759179
};
91769180
} ],
91779181
bindings: {

dist/scripts/templates.js

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6638,12 +6638,42 @@ angular.module('openshiftConsoleTemplates', []).run(['$templateCache', function(
66386638
"<div ng-if=\"!$ctrl.isReadonlyAny && !entry.isReadonlyValue\" class=\"environment-from-editor-button\">\n" +
66396639
"<span ng-if=\"!$ctrl.cannotSort && $ctrl.entries.length > 1\" class=\"fa fa-bars sort-row\" role=\"button\" aria-label=\"Move row\" aria-grabbed=\"false\" as-sortable-item-handle></span>\n" +
66406640
"<a ng-if=\"!$ctrl.cannotDeleteAny\" href=\"\" class=\"pficon pficon-close delete-row as-sortable-item-delete\" role=\"button\" aria-label=\"Delete row\" ng-click=\"$ctrl.deleteEntry($index, 1)\"></a>\n" +
6641+
"<a ng-if=\"entry.selectedEnvFrom\" href=\"\" ng-click=\"$ctrl.viewOverlayPanel(entry.selectedEnvFrom)\" class=\"pficon\">View Details</a>\n" +
66416642
"</div>\n" +
66426643
"</div>\n" +
66436644
"<div class=\"environment-from-entry form-group\" ng-if=\"!$ctrl.cannotAdd\">\n" +
66446645
"<a href=\"\" class=\"add-row-link\" role=\"button\" ng-click=\"$ctrl.onAddRow()\">{{ $ctrl.addRowLink }}</a>\n" +
66456646
"</div>\n" +
66466647
"</div>\n" +
6648+
"<overlay-panel class=\"add-config-to-application\" show-panel=\"$ctrl.overlayPanelVisible\" show-close=\"true\" handle-close=\"$ctrl.closeOverlayPanel\">\n" +
6649+
"<div class=\"dialog-title\">\n" +
6650+
"<h3>Value Details</h3>\n" +
6651+
"</div>\n" +
6652+
"<div class=\"modal-body\">\n" +
6653+
"<h4>{{$ctrl.overlayPaneEntryDetails.metadata.name}}\n" +
6654+
"<small class=\"muted\">- {{$ctrl.overlayPaneEntryDetails.kind | humanizeKind : true}}</small></h4>\n" +
6655+
"<div ng-if=\"!($ctrl.overlayPaneEntryDetails.data | hashSize)\" class=\"empty-state-message text-center\">\n" +
6656+
"The {{$ctrl.overlayPaneEntryDetails.kind | humanizeKind : true}} has no items.\n" +
6657+
"</div>\n" +
6658+
"<div ng-if=\"$ctrl.overlayPaneEntryDetails.data | hashSize\" class=\"table-responsive scroll-shadows-horizontal\">\n" +
6659+
"<table class=\"table table-bordered table-bordered-columns config-map-table key-value-table\">\n" +
6660+
"<tbody>\n" +
6661+
"<tr ng-repeat=\"(prop, value) in $ctrl.overlayPaneEntryDetails.data\">\n" +
6662+
"<td class=\"key\">{{prop}}</td>\n" +
6663+
"<td class=\"value\">\n" +
6664+
"<truncate-long-text ng-if=\"$ctrl.overlayPaneEntryDetails.kind === 'ConfigMap'\" content=\"value\" limit=\"1024\" newline-limit=\"20\" expandable=\"true\">\n" +
6665+
"</truncate-long-text>\n" +
6666+
"<span ng-if=\"$ctrl.overlayPaneEntryDetails.kind === 'Secret'\">&#42;&#42;&#42;&#42;&#42;</span>\n" +
6667+
"</td>\n" +
6668+
"</tr>\n" +
6669+
"</tbody>\n" +
6670+
"</table>\n" +
6671+
"</div>\n" +
6672+
"</div>\n" +
6673+
"<div class=\"modal-footer\">\n" +
6674+
"<button ng-click=\"$ctrl.closeOverlayPanel()\" type=\"button\" class=\"btn btn-primary pull-right\">Close</button>\n" +
6675+
"</div>\n" +
6676+
"</overlay-panel>\n" +
66476677
"</ng-form>"
66486678
);
66496679

0 commit comments

Comments
 (0)