From 7d7cca39ccdb2cf90d80cc3d46f271418b44c614 Mon Sep 17 00:00:00 2001 From: Joseph Schorr Date: Fri, 15 Aug 2014 20:51:31 -0400 Subject: [PATCH] New team view interface --- endpoints/api/team.py | 14 ++-- static/css/quay.css | 46 +++++++++++- static/directives/entity-reference.html | 10 ++- static/directives/entity-search.html | 2 +- static/directives/team-view-add.html | 14 ++++ static/js/app.js | 6 +- static/js/controllers.js | 33 +++++++-- static/partials/team-view.html | 93 +++++++++++++++++-------- 8 files changed, 173 insertions(+), 45 deletions(-) create mode 100644 static/directives/team-view-add.html 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()"> -