/sentry/templates/sentry/teams/manage.html

https://github.com/tbarbugli/sentry · HTML · 170 lines · 166 code · 4 blank · 0 comment · 0 complexity · dc99e6f3badc0b26b5591bd5d9a9de58 MD5 · raw file

  1. {% extends "sentry/teams/list.html" %}
  2. {% load i18n %}
  3. {% load sentry_helpers %}
  4. {% load sentry_plugins %}
  5. {% block title %}{% blocktrans with team.name as name %}Manage Team: {{ name }}{% endblocktrans %} | {{ block.super }}{% endblock %}
  6. {% block breadcrumb %}
  7. <li class="divider">/</li>
  8. <li><a href="{% url sentry-manage-team team.slug %}">{{ team.name }}</a></li>
  9. {% endblock %}
  10. {% block main %}
  11. <section class="body">
  12. {% block inner %}
  13. <p>{% trans "Here you can edit team information, as well as control the access list for a team with fine-grained permissions." %}</p>
  14. {% if request.GET.success %}
  15. <div class="alert alert-success">{% trans "Changes to your team were saved successfully." %}</div>
  16. {% else %}
  17. {% if form.errors %}
  18. <div class="alert alert-error">{% trans "Please correct the errors below." %}</div>
  19. {% endif %}
  20. {% endif %}
  21. <form class="form-stacked" action="" method="post">
  22. {% csrf_token %}
  23. <fieldset>
  24. {% for field in form %}
  25. {% include "sentry/partial/_form_field.html" %}
  26. {% endfor %}
  27. </fieldset>
  28. <fieldset class="form-actions">
  29. <button type="submit" class="btn btn-primary">{% trans "Save Changes" %}</button>
  30. {% if can_remove_team %}
  31. <a href="{% url sentry-remove-team team.slug %}" class="btn btn-danger">{% trans "Remove Team" %}</a>
  32. {% else %}
  33. <a class="btn btn-danger disabled">{% trans "Cannot remove teams assigned to projects" %}</a>
  34. {% endif %}
  35. </fieldset>
  36. </form>
  37. <div class="page-header">
  38. {% if can_add_member %}
  39. <a href="{% url sentry-new-team-project team.slug %}" class="btn pull-right btn-primary">{% trans "New Project" %}</a>
  40. {% endif %}
  41. <h2>{% trans "Projects" %}</h2>
  42. </div>
  43. {% if project_list %}
  44. <table class="table table-bordered table-striped">
  45. <colgroup>
  46. <col/>
  47. <col width="90px"/>
  48. </colgroup>
  49. <thead>
  50. <tr>
  51. <th>{% trans "Project" %}</th>
  52. <th style="text-align:center">{% trans "Actions" %}</th>
  53. </tr>
  54. </thead>
  55. <tbody>
  56. {% for project in project_list %}
  57. <tr>
  58. <td>
  59. <a href="{% url sentry project.slug %}">{{ project.name }}</a><br>
  60. </td>
  61. <td style="text-align:center;">
  62. <a href="{% url sentry-manage-project project.slug %}" class="btn btn-small">{% trans "Edit" %}</a>
  63. </td>
  64. </tr>
  65. {% endfor %}
  66. </tbody>
  67. </table>
  68. {% else %}
  69. <p>{% trans "There are no projects managed by this team." %}</p>
  70. {% endif %}
  71. <div class="page-header">
  72. {% if can_add_member %}
  73. <a href="{% url sentry-new-team-member team.slug %}" class="btn pull-right btn-primary">{% trans "New Member" %}</a>
  74. {% endif %}
  75. <h2>{% trans "Members" %}</h2>
  76. </div>
  77. <ul class="nav nav-tabs">
  78. <li class="active"><a href="#members" data-toggle="tab">{% trans "Members" %}</a></li>
  79. <li><a href="#pending-members" data-toggle="tab">{% blocktrans with pending_member_list|length as count %}Pending ({{ count }}){% endblocktrans %}</a></li>
  80. </ul>
  81. <div class="tab-content">
  82. <div class="tab-pane active" id="members">
  83. <table class="table table-bordered table-striped">
  84. <colgroup>
  85. <col/>
  86. <col width="100px"/>
  87. <col width="90px"/>
  88. <col width="90px"/>
  89. </colgroup>
  90. <thead>
  91. <tr>
  92. <th>{% trans "User" %}</th>
  93. <th style="text-align:center">{% trans "Access" %}</th>
  94. <th colspan="2" style="text-align:center">{% trans "Actions" %}</th>
  95. </tr>
  96. </thead>
  97. <tbody>
  98. {% for member, user in member_list %}
  99. <tr>
  100. <td>
  101. <a href="{% url sentry-edit-team-member team.slug member.pk %}">{{ user.username }}</a><br>
  102. {{ user.email }}
  103. </td>
  104. <td style="text-align:center;">
  105. {{ member.get_type_display }}
  106. </td>
  107. {% if user == team.owner %}
  108. <td style="text-align:center;" colspan="2">
  109. <em>{% trans "unavailable for owner" %}</em>
  110. </td>
  111. {% else %}
  112. <td style="text-align:center;">
  113. <a href="{% url sentry-remove-team-member team.slug member.pk %}" class="btn btn-danger btn-small">{% trans "Remove" %}</a>
  114. </td>
  115. <td style="text-align:center;">
  116. {% if member.is_active %}
  117. <a href="{% url sentry-suspend-team-member team.slug member.pk %}" class="btn btn-small">{% trans "Suspend" %}</a>
  118. {% else %}
  119. <a href="{% url sentry-restore-team-member team.slug member.pk %}" class="btn btn-small">{% trans "Restore" %}</a>
  120. {% endif %}
  121. </td>
  122. {% endif %}
  123. </tr>
  124. {% endfor %}
  125. </tbody>
  126. </table>
  127. </div>
  128. <div class="tab-pane" id="pending-members">
  129. <table class="table table-bordered table-striped">
  130. <colgroup>
  131. <col/>
  132. <col width="100px"/>
  133. <col width="90px"/>
  134. <col width="90px"/>
  135. </colgroup>
  136. <thead>
  137. <tr>
  138. <th>{% trans "User" %}</th>
  139. <th style="text-align:center">{% trans "Access" %}</th>
  140. <th style="text-align:center" colspan="2">{% trans "Actions" %}</th>
  141. </tr>
  142. </thead>
  143. <tbody>
  144. {% for member, email in pending_member_list %}
  145. <tr>
  146. <td>
  147. {{ email }}
  148. </td>
  149. <td style="text-align:center;">
  150. {{ member.get_type_display }}
  151. </td>
  152. <td style="text-align:center;">
  153. <a href="{% url sentry-remove-pending-team-member team.slug member.pk %}" class="btn btn-small btn-danger">{% trans "Remove" %}</a>
  154. </td>
  155. <td style="text-align:center;">
  156. <a href="{% url sentry-reinvite-pending-team-member team.slug member.pk %}" class="btn btn-small">{% trans "Resend" %}</a>
  157. </td>
  158. </tr>
  159. {% endfor %}
  160. </tbody>
  161. </table>
  162. </div>
  163. </div>
  164. {% endblock %}
  165. </section>
  166. {% endblock %}