diff --git a/app/scripts/controllers/membership.js b/app/scripts/controllers/membership.js index 663271d36c..c051b7f219 100644 --- a/app/scripts/controllers/membership.js +++ b/app/scripts/controllers/membership.js @@ -70,6 +70,24 @@ angular $scope.newBinding.newRole = null; }; + var refreshServiceAccountsList = function(ctx) { + DataService + .list('serviceaccounts', ctx) + .then(function(resp) { + var serviceAccounts = _.keys(resp.by('metadata.name')).sort(); + angular.extend($scope, { + serviceAccounts: serviceAccounts, + refreshServiceAccounts: function(search) { + if(search && !_.includes($scope.serviceAccounts, search)) { + $scope.serviceAccounts = [search].concat(serviceAccounts); + } else { + $scope.serviceAccounts = serviceAccounts; + } + } + }); + }); + }; + var refreshRoleBindingList = function(toUpdateOnError) { DataService .list('rolebindings', requestContext, null , { @@ -159,6 +177,7 @@ angular }, selectTab: function(selected) { $scope.newBinding.kind = selected; + $scope.newBinding.name = ''; } }); @@ -219,15 +238,18 @@ angular $scope.user = resp; }); - DataService .list('projects', {}) .then(function(resp) { - var projects = _.map(resp.by('metadata.name'), function(project) { - return project.metadata.name; - }); + var projects = _.keys(resp.by('metadata.name')).sort(); angular.extend($scope, { projects: projects, + selectProject: function(projectName) { + $scope.newBinding.name = ''; + refreshServiceAccountsList({ + namespace: projectName + }); + }, refreshProjects: function(search) { if(search && !_.includes($scope.projects, search)) { $scope.projects = [search].concat(projects); @@ -243,6 +265,7 @@ angular .then(_.spread(function(project, context) { requestContext = context; refreshRoleBindingList(); + refreshServiceAccountsList(requestContext); angular.extend($scope, { project: project, subjectKinds: subjectKinds, @@ -364,5 +387,6 @@ angular } }); }); + })); }); diff --git a/app/styles/_membership.less b/app/styles/_membership.less index 2e98ff40bb..dc4838074b 100644 --- a/app/styles/_membership.less +++ b/app/styles/_membership.less @@ -41,9 +41,8 @@ min-width: 50%; } .word-break-all; - min-width: 225px; - max-width: 30%; - padding: 0 5px 10px 0; + width: 100%; + padding: 0 0px 10px 0; input { max-width: 150px; } @@ -71,7 +70,6 @@ width: 150px; } .select-role { - width: 150px; small { color: #999; } @@ -124,7 +122,9 @@ } } .col-name { - width: 30%; + min-width: 225px; + max-width: 30%; + padding: 0 5px 10px 0; input { max-width: 175px; } @@ -134,6 +134,9 @@ display: block; } } + .select-role { + width: 150px; + } } } } diff --git a/app/views/membership.html b/app/views/membership.html index 32bfae2266..72e4e13489 100644 --- a/app/views/membership.html +++ b/app/views/membership.html @@ -167,13 +167,16 @@

-
+
+ + autocorrect="off" autocapitalize="off" spellcheck="false"> + + + + + + @@ -207,31 +239,7 @@

-
- -
+
 
\n" + "\n" + "
\n" + - "
\n" + + "
\n" + "\n" + - "\n" + - "\n" + - "
\n" + - "
\n" + - "\n" + + "
\n" + + "
 
\n" + "
\n" + "
\n" + "\n" + diff --git a/dist/styles/main.css b/dist/styles/main.css index 31be2475fd..4a6394c299 100644 --- a/dist/styles/main.css +++ b/dist/styles/main.css @@ -5269,13 +5269,13 @@ a.subtle-link:active,a.subtle-link:focus,a.subtle-link:hover{color:#00659c;borde .membership .content-pane .col-heading h3,.membership .content-pane .item-row h3{margin:0} .membership .content-pane .item-row{padding:5px 10px 5px 5px;margin-bottom:20px} .membership .content-pane .col-heading{margin-bottom:20px} -.membership .content-pane .col-name{word-break:break-all;word-break:break-word;overflow-wrap:break-word;min-width:225px;max-width:30%;padding:0 5px 10px 0} +.membership .content-pane .col-name{word-break:break-all;word-break:break-word;overflow-wrap:break-word;width:100%;padding:0 0px 10px 0} .membership .content-pane .col-name.half-width{min-width:50%} .membership .content-pane .col-name input{max-width:150px} .membership .content-pane .col-name .new-project{margin-top:2px} .membership .content-pane .content-serviceaccount .form-new-role .col-roles{display:block} .membership .content-pane .input-name{width:150px;margin-bottom:5px} -.membership .content-pane .select-project,.membership .content-pane .select-role{width:150px} +.membership .content-pane .select-project{width:150px} .membership .content-pane .select-role small{color:#999} .membership .content-pane .select-role .active small{color:#c0e0f0} .membership .content-pane .col-add-role,.membership .content-pane .col-heading,.membership .content-pane .col-name,.membership .content-pane .col-roles,.membership .content-pane .item-row,.membership .content-pane [flex-collapse-fix],.membership .content-pane [flex]{flex-shrink:0;flex-basis:auto} @@ -5284,8 +5284,9 @@ a.subtle-link:active,a.subtle-link:focus,a.subtle-link:hover{color:#00659c;borde .membership .content-pane .col-heading,.membership .content-pane .item-row{border-bottom:none;margin-bottom:none} .membership .content-pane .item-row.highlight-hover:hover{background-color:#fafafa} .membership .content-pane .col-heading .col-add-role a{display:block;padding-left:10px} -.membership .content-pane .col-name{width:30%} +.membership .content-pane .col-name{min-width:225px;max-width:30%;padding:0 5px 10px 0} .membership .content-pane .col-name input{max-width:175px} +.membership .content-pane .select-role{width:150px} } .action-chip{margin:0 5px 2px 0;font-size:12px;display:flex;flex-direction:row} .action-chip .item{padding:.2em .6em .3em}