diff --git a/endpoints/api/team.py b/endpoints/api/team.py
index 47eeed1f4..3c0751a56 100644
--- a/endpoints/api/team.py
+++ b/endpoints/api/team.py
@@ -8,6 +8,7 @@ from auth.auth_context import get_authenticated_user
from auth import scopes
from data import model
from util.useremails import send_org_invite_email
+from util.gravatar import compute_hash
def add_or_invite_to_team(team, user=None, email=None, adder=None):
invite = model.add_or_invite_to_team(team, user, email, adder)
@@ -44,6 +45,7 @@ def member_view(member, invited=False):
'name': member.username,
'kind': 'user',
'is_robot': member.robot,
+ 'gravatar': compute_hash(member.email) if not member.robot else None,
'invited': invited,
}
@@ -55,6 +57,7 @@ def invite_view(invite):
return {
'email': invite.email,
'kind': 'invite',
+ 'gravatar': compute_hash(invite.email),
'invited': True
}
@@ -162,14 +165,15 @@ class TeamMemberList(ApiResource):
raise NotFound()
members = model.get_organization_team_members(team.id)
- data = {
- 'members': {m.username : member_view(m) for m in members},
- 'can_edit': edit_permission.can()
- }
+ invites = []
if args['includePending'] and edit_permission.can():
invites = model.get_organization_team_member_invites(team.id)
- data['pending'] = [invite_view(i) for i in invites]
+
+ data = {
+ 'members': [member_view(m) for m in members] + [invite_view(i) for i in invites],
+ 'can_edit': edit_permission.can()
+ }
return data
diff --git a/static/css/quay.css b/static/css/quay.css
index 20a81200f..4743b6e50 100644
--- a/static/css/quay.css
+++ b/static/css/quay.css
@@ -4593,4 +4593,48 @@ i.quay-icon {
.external-notification-view-element:hover .side-controls button {
border: 1px solid #eee;
-}
\ No newline at end of file
+}
+
+.member-listing {
+ width: 100%;
+}
+
+.member-listing .section-header {
+ color: #ccc;
+ margin-top: 20px;
+ margin-bottom: 10px;
+}
+
+.member-listing .gravatar {
+ vertical-align: middle;
+ margin-right: 10px;
+}
+
+.member-listing .entity-reference {
+ margin-bottom: 10px;
+ display: inline-block;
+}
+
+.organization-header .popover {
+ max-width: none !important;
+}
+
+.organization-header .popover.bottom-right .arrow:after {
+ border-bottom-color: #f7f7f7;
+ top: 2px;
+}
+
+.organization-header .popover-content {
+ font-size: 14px;
+ padding-top: 6px;
+}
+
+.organization-header .popover-content input {
+ background: white;
+}
+
+.organization-header .popover-content .help-text {
+ font-size: 13px;
+ color: #ccc;
+ margin-top: 10px;
+}
diff --git a/static/directives/entity-reference.html b/static/directives/entity-reference.html
index d01b100ee..ea65db875 100644
--- a/static/directives/entity-reference.html
+++ b/static/directives/entity-reference.html
@@ -7,15 +7,19 @@
-
+
{{entity.name}}
{{entity.name}}
-
-
+
+
+
+
+
+
{{ getPrefix(entity.name) }}+{{ getShortenedName(entity.name) }}
diff --git a/static/directives/entity-search.html b/static/directives/entity-search.html
index fec00b393..63abb1528 100644
--- a/static/directives/entity-search.html
+++ b/static/directives/entity-search.html
@@ -5,7 +5,7 @@
ng-click="lazyLoad()">
-