api_tokens.html 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. {% extends 'users/base.html' %}
  2. {% load helpers %}
  3. {% block title %}API Tokens{% endblock %}
  4. {% block usercontent %}
  5. <div class="row">
  6. <div class="col-md-12">
  7. {% for token in tokens %}
  8. <div class="panel panel-{% if token.is_expired %}danger{% else %}default{% endif %}">
  9. <div class="panel-heading">
  10. <div class="pull-right noprint">
  11. <a class="btn btn-xs btn-success copy-token" data-clipboard-target="#token_{{ token.pk }}">Copy</a>
  12. <a href="{% url 'user:token_edit' pk=token.pk %}" class="btn btn-xs btn-warning">Edit</a>
  13. <a href="{% url 'user:token_delete' pk=token.pk %}" class="btn btn-xs btn-danger">Delete</a>
  14. </div>
  15. <i class="mdi mdi-key"></i>
  16. <samp><span id="token_{{ token.pk }}">{{ token.key }}</span></samp>
  17. {% if token.is_expired %}
  18. <span class="label label-danger">Expired</span>
  19. {% endif %}
  20. </div>
  21. <div class="panel-body">
  22. <div class="row">
  23. <div class="col-md-4">
  24. <small class="text-muted">Created</small><br />
  25. {{ token.created|annotated_date }}
  26. </div>
  27. <div class="col-md-4">
  28. <small class="text-muted">Expires</small><br />
  29. {% if token.expires %}
  30. {{ token.expires|annotated_date }}
  31. {% else %}
  32. <span>Never</span>
  33. {% endif %}
  34. </div>
  35. <div class="col-md-4">
  36. <small class="text-muted">Create/edit/delete operations</small><br />
  37. {% if token.write_enabled %}
  38. <span class="label label-success">Enabled</span>
  39. {% else %}
  40. <span class="label label-danger">Disabled</span>
  41. {% endif %}
  42. </div>
  43. </div>
  44. {% if token.description %}
  45. <br /><span>{{ token.description }}</span>
  46. {% endif %}
  47. </div>
  48. </div>
  49. {% empty %}
  50. <p>You do not have any API tokens.</p>
  51. {% endfor %}
  52. <a href="{% url 'user:token_add' %}" class="btn btn-primary">
  53. <span class="mdi mdi-plus-thick" aria-hidden="true"></span>
  54. Add a token
  55. </a>
  56. </div>
  57. </div>
  58. {% endblock %}
  59. {% block javascript %}
  60. <script type="text/javascript">
  61. new ClipboardJS('.copy-token');
  62. </script>
  63. {% endblock %}