@@ -144,7 +144,12 @@ angular.module('kubernetesUI')
144
144
scope : {
145
145
containers : '='
146
146
} ,
147
- templateUrl : 'views/containers.html'
147
+ templateUrl : 'views/containers.html' ,
148
+ link : function ( $scope , element , attrs ) {
149
+ $scope . shouldMask = function ( name ) {
150
+ return name . toLowerCase ( ) . indexOf ( 'password' ) !== - 1 ;
151
+ } ;
152
+ }
148
153
}
149
154
} )
150
155
. directive ( "kubernetesObjectDescribeContainerStatuses" , function ( ) {
@@ -165,26 +170,19 @@ angular.module('kubernetesUI')
165
170
templateUrl : 'views/container-state.html'
166
171
} ;
167
172
} )
168
- . directive ( "collapseLongText " , function ( ) {
173
+ . directive ( "revealableText " , function ( ) {
169
174
return {
170
175
restrict : 'A' ,
171
- scope : {
172
- value : '@' ,
173
- enableCollapse : '=?' // not intended to be passed in, it will be set depending on jquery availability
174
- } ,
175
- controller : [ "$scope" , function ( $scope ) {
176
- // If jquery is available
177
- $scope . enableCollapse = ! ! window . $ ;
178
- } ] ,
179
176
link : function ( $scope , element , attrs ) {
180
- if ( $scope . enableCollapse ) {
181
- $ ( '.reveal-contents-link' , element ) . click ( function ( evt ) {
182
- $ ( this ) . hide ( ) ;
183
- $ ( '.reveal-contents' , element ) . show ( ) ;
184
- } ) ;
185
- }
186
- } ,
187
- templateUrl : 'views/_collapse-long-text.html'
177
+ element . addClass ( 'revealable' ) ;
178
+ $ ( element ) . on ( "mouseover" , function ( ) {
179
+ var clickable = element [ 0 ] . scrollWidth > element [ 0 ] . clientWidth || element . find ( ".masked" ) [ 0 ] ;
180
+ element . toggleClass ( "clickable" , clickable ) ;
181
+ } ) ;
182
+ $ ( element ) . on ( "click" , function ( ) {
183
+ element . toggleClass ( "revealed" ) ;
184
+ } ) ;
185
+ }
188
186
}
189
187
} )
190
188
. filter ( "isEmptyObj" , function ( ) {
@@ -196,28 +194,19 @@ angular.module('kubernetesUI')
196
194
angular . module ( 'kubernetesUI' ) . run ( [ '$templateCache' , function ( $templateCache ) {
197
195
'use strict' ;
198
196
199
- $templateCache . put ( 'views/_collapse-long-text.html' ,
200
- "<span ng-hide=\"enableCollapse && value.length > 120\">{{value}}</span>\n" +
201
- "<span ng-show=\"enableCollapse && value.length > 120\">\n" +
202
- " <span class=\"reveal-contents-link\" style=\"cursor: pointer;\" title=\"Expand\">{{value.substring(0, 120)}}<a href=\"javascript:;\">...</a></span>\n" +
203
- " <span style=\"display: none;\" class=\"reveal-contents\">{{value}}</span>\n" +
204
- "</span>"
205
- ) ;
206
-
207
-
208
197
$templateCache . put ( 'views/annotations.html' ,
209
198
" <h3>Annotations</h3>\n" +
210
199
" <span ng-if=\"!resource.metadata.annotations\"><em>none</em></span>\n" +
211
200
" <dl class=\"dl-horizontal\" ng-if=\"resource.metadata.annotations\">\n" +
212
201
" <dt ng-repeat-start=\"(annotationKey, annotationValue) in resource.metadata.annotations\" title=\"{{annotationKey}}\">{{annotationKey}}</dt>\n" +
213
- " <dd ng-repeat-end collapse-long- text value=\" {{annotationValue}}\"> </dd>\n" +
202
+ " <dd ng-repeat-end revealable- text> {{annotationValue}}</dd>\n" +
214
203
" </dl>"
215
204
) ;
216
205
217
206
218
207
$templateCache . put ( 'views/container-state.html' ,
219
208
"<span ng-if=\"containerState | isEmptyObj\"><em>none</em></span>\n" +
220
- "<span ng-repeat=\"(state, stateDescription) in containerState | limitTo: 1\">\n" +
209
+ "<span ng-repeat=\"(state, stateDescription) in containerState | limitTo: 1\" revealable-text >\n" +
221
210
" <span ng-switch=\"state\">\n" +
222
211
" <span ng-switch-when=\"waiting\">\n" +
223
212
" Waiting\n" +
@@ -243,7 +232,7 @@ angular.module('kubernetesUI').run(['$templateCache', function($templateCache) {
243
232
"<div ng-if=\"!containerStatuses\"><em>none</em></div>\n" +
244
233
"<dl ng-repeat=\"containerStatus in containerStatuses | orderBy:'name'\" class=\"dl-horizontal\">\n" +
245
234
" <dt>Name</dt>\n" +
246
- " <dd>{{containerStatus.name}}</dd>\n" +
235
+ " <dd revealable-text >{{containerStatus.name}}</dd>\n" +
247
236
" <dt>State</dt>\n" +
248
237
" <dd>\n" +
249
238
" <kubernetes-object-describe-container-state container-state=\"containerStatus.state\"></container-state>\n" +
@@ -264,9 +253,9 @@ angular.module('kubernetesUI').run(['$templateCache', function($templateCache) {
264
253
"<div ng-if=\"!containers.length\"><em>none</em></div>\n" +
265
254
"<dl class=\"dl-horizontal\" ng-repeat=\"container in containers\">\n" +
266
255
"<dt>Name</dt>\n" +
267
- "<dd>{{container.name}}</dd>\n" +
256
+ "<dd revealable-text >{{container.name}}</dd>\n" +
268
257
"<dt>Image</dt>\n" +
269
- "<dd>{{container.image}}</dd>\n" +
258
+ "<dd revealable-text >{{container.image}}</dd>\n" +
270
259
"<dt>Ports</dt>\n" +
271
260
"<dd>\n" +
272
261
" <div ng-if=\"!container.ports.length\"><em>none</em></div>\n" +
@@ -277,7 +266,7 @@ angular.module('kubernetesUI').run(['$templateCache', function($templateCache) {
277
266
"<dt>Env vars</dt>\n" +
278
267
"<dd>\n" +
279
268
" <div ng-if=\"!container.env.length\"><em>none</em></div>\n" +
280
- " <div ng-repeat=\"env in container.env | orderBy:'name'\" collapse-long- text value =\"{{ env.name}}= {{env.value}}\" ></div>\n" +
269
+ " <div ng-repeat=\"env in container.env | orderBy:'name'\" revealable- text>{{env.name}}=<span ng-class =\"{masked: shouldMask( env.name)}\"> {{env.value}}</span ></div>\n" +
281
270
"</dd>\n" +
282
271
"</dl>\n" +
283
272
"<div ng-if=\"$index != 0\" style=\"margin-bottom: 10px;\"></div>\n"
0 commit comments