Add the new team view page

This commit is contained in:
Joseph Schorr 2015-03-31 15:58:23 -04:00
parent 24b9fe5e48
commit bb81c05c03
5 changed files with 273 additions and 46 deletions

View file

@ -1,82 +1,120 @@
<div class="resource-view" resource="orgResource" error-message="'No matching organization'">
<div class="team-view cor-container">
<div class="organization-header" organization="organization" team-name="teamname">
<div ng-show="canEditMembers" class="side-controls">
<div class="hidden-xs">
<button class="btn btn-success"
id="showAddMember"
data-title="Add Team Member"
data-content-template="/static/directives/team-view-add.html"
data-placement="bottom-right"
bs-popover="bs-popover">
<i class="fa fa-plus"></i>
Add Team Member
</button>
</div>
</div>
<div class="resource-view team-view" resources="[orgResource, membersResource]"
error-message="'No matching organization or team found'">
<div class="page-content">
<div class="cor-title">
<span class="cor-title-link">
<a class="back-link" href="/organization/{{ organization.name }}?tab=teams">
<span class="avatar" size="24" data="organization.avatar" style="margin-right: 4px"></span>
{{ organization.name }}
</a>
</span>
<span class="cor-title-content">
<span class="avatar" data="team.avatar" size="32"></span>
<span class="team-name">{{ teamname }}</span>
</span>
</div>
<div class="resource-view" resource="membersResource" error-message="'No matching team found'">
<div class="description markdown-input" content="team.description" can-write="organization.is_admin"
content-changed="updateForDescription" field-title="'team description'"></div>
<div class="co-main-content-panel">
<div class="team-view-header">
<div ng-show="canEditMembers" class="side-controls">
<div class="hidden-xs">
<button class="btn btn-primary"
id="showAddMember"
data-title="Add Team Member"
data-content-template="/static/directives/team-view-add.html"
data-placement="bottom-right"
bs-popover="bs-popover">
<i class="fa fa-plus"></i>
Add Team Member
</button>
</div>
</div>
<div class="empty-message" ng-if="!members.length">
This team has no members
<div class="description markdown-input" content="team.description"
can-write="organization.is_admin"
content-changed="updateForDescription"
field-title="'team description'"></div>
</div>
<div class="empty-message" ng-if="members.length && !(members | filter:search).length">
No matching team members found
<div class="empty" ng-if="!members.length">
<div class="empty-primary-msg">This team has no members.</div>
<div class="empty-secondary-msg">
Click the "Add Team Member" button above to add or invite team members.
</div>
</div>
<table class="member-listing" style="margin-top: -20px" ng-show="members.length">
<!-- Members -->
<tr ng-if="(members | filter:search | filter: filterFunction(false, false)).length">
<td colspan="2"><div class="section-header">Team Members</div></td>
<table class="co-table no-lines" ng-if="members.length">
<thead>
<tr>
<td>Team Member</td>
<td class="options-col"></td>
</tr>
</thead>
<!-- Team Members -->
<tr class="co-table-header-row"
ng-if="(members | filter: filterFunction(false, false)).length">
<td colspan="3"><i class="fa fa-user"></i> Team Members</td>
</tr>
<tr ng-repeat="member in members | filter:search | filter: filterFunction(false, false) | orderBy: 'name'">
<tr class="indented-row"
ng-repeat="member in members | filter: filterFunction(false, false) | orderBy: 'name'">
<td class="user entity">
<span class="entity-reference" entity="member" namespace="organization.name" show-avatar="true" avatar-size="32"></span>
<span class="entity-reference" entity="member" namespace="organization.name"
show-avatar="true" avatar-size="24"></span>
</td>
<td>
<span class="delete-ui" delete-title="'Remove ' + member.name + ' from team'" button-title="'Remove'"
perform-delete="removeMember(member.name)" ng-if="canEditMembers"></span>
<span class="cor-options-menu" ng-if="canEditMembers">
<span class="cor-option" option-click="removeMember(member.name)">
<i class="fa fa-times"></i> Remove {{ member.name }}
</span>
</span>
</td>
</tr>
<!-- Robots -->
<tr ng-if="(members | filter:search | filter: filterFunction(false, true)).length">
<td colspan="2"><div class="section-header">Robot Accounts</div></td>
<!-- Robot Accounts -->
<tr class="co-table-header-row"
ng-if="(members | filter: filterFunction(false, true)).length">
<td colspan="3"><i class="fa fa-wrench"></i> Robot Accounts</td>
</tr>
<tr ng-repeat="member in members | filter:search | filter: filterFunction(false, true) | orderBy: 'name'">
<tr class="indented-row"
ng-repeat="member in members | filter: filterFunction(false, true) | orderBy: 'name'">
<td class="user entity">
<span class="entity-reference" entity="member" namespace="organization.name"></span>
</td>
<td>
<span class="delete-ui" delete-title="'Remove ' + member.name + ' from team'" button-title="'Remove'"
perform-delete="removeMember(member.name)" ng-if="canEditMembers"></span>
<span class="cor-options-menu" ng-if="canEditMembers">
<span class="cor-option" option-click="removeMember(member.name)">
<i class="fa fa-times"></i> Remove {{ member.name }}
</span>
</span>
</td>
</tr>
<!-- Invited -->
<tr ng-if="(members | filter:search | filter: filterFunction(true, false)).length">
<td colspan="2"><div class="section-header">Invited To Join</div></td>
<!-- Invitations -->
<tr class="co-table-header-row"
ng-if="(members | filter: filterFunction(true, false)).length">
<td colspan="3"><i class="fa ci-invite"></i> Invited to Join</td>
</tr>
<tr ng-repeat="member in members | filter:search | filter: filterFunction(true, false) | orderBy: 'name'">
<tr class="indented-row"
ng-repeat="member in members | filter: filterFunction(true, false) | orderBy: 'name'">
<td class="user entity">
<span ng-if="member.kind != 'invite'">
<span class="entity-reference" entity="member" namespace="organization.name" show-avatar="true" avatar-size="32"></span>
<span class="entity-reference" entity="member" namespace="organization.name" show-avatar="true" avatar-size="24"></span>
</span>
<span class="invite-listing" ng-if="member.kind == 'invite'">
<span class="avatar" size="32" data="member.avatar"></span>
<span class="avatar" size="24" data="member.avatar" style="margin-right: 6px;"></span>
{{ member.email }}
</span>
</td>
<td>
<span class="delete-ui" delete-title="'Revoke invite to join team'" button-title="'Revoke'"
perform-delete="revokeInvite(member)" ng-if="canEditMembers"></span>
<span class="cor-options-menu" ng-if="canEditMembers">
<span class="cor-option" option-click="revokeInvite(member)">
<i class="fa fa-times"></i> Revoke invite
</span>
</span>
</td>
</tr>
</table>