home.html 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. {% extends "admin/layout.html" %}
  2. {% load i18n %}
  3. {% load humanize %}
  4. {% load url from future %}
  5. {% from "admin/macros.html" import page_title %}
  6. {% block title %}{{ page_title(title=_('Admin Home')) }}{% endblock %}
  7. {% block content %}
  8. <div class="page-header">
  9. <h1>{% trans %}Admin Home{% endtrans %} <small>{% trans %}Misago {{version}}{% endtrans %}</small></h1>
  10. </div>
  11. <div class="row">
  12. <div class="span8">
  13. <h2>{% trans count=admins|length, total=admins|length|intcomma -%}
  14. One Administrator Online
  15. {%- pluralize -%}
  16. {{ total }} Administrators Online
  17. {%- endtrans %}</h2>
  18. <ul class="list-tiny">{% for session in admins %}
  19. <li class="popover-admin-{{ loop.index }} clickable">
  20. <img src="{{ session.user.get_avatar() }}" class="avatar-tiny"> {{ session.user.username }}
  21. </li>{% endfor %}
  22. </ul>
  23. <hr>
  24. <h3>{% trans %}Board Statistics{% endtrans %}</h3>
  25. <table class="table table-striped">
  26. <tbody>
  27. <tr>
  28. <td class="span2 stat-title"><strong>{% trans %}Users{% endtrans %}</strong></td>
  29. <td>{{ users|intcomma }}</td>
  30. </tr>
  31. <tr>
  32. <td class="span2 stat-title"><strong>{% trans %}Posts{% endtrans %}</strong></td>
  33. <td>{{ posts|intcomma }}</td>
  34. </tr>
  35. <tr>
  36. <td class="span2 stat-title"><strong>{% trans %}Threads{% endtrans %}</strong></td>
  37. <td>{{ threads|intcomma }}</td>
  38. </tr>
  39. </tbody>
  40. </table>
  41. </div>
  42. <div class="span4">
  43. <h3>{% trans %}Quick Action{% endtrans %}</h3>
  44. <form>
  45. <div class="side-search quick-action">
  46. <div class="control-group">
  47. <label class="control-label" for="inputEmail">User to find:</label>
  48. <div class="controls">
  49. <input type="text" id="inputEmail" class="span4" placeholder="Email">
  50. </div>
  51. </div>
  52. <div class="control-group">
  53. <label class="control-label">Actions to run:</label>
  54. <select class="span4">
  55. <option>Dont change account state</option>
  56. <option>Activate user account</option>
  57. <option>Reset user password</option>
  58. <option>Ban user for 15 minutes</option>
  59. <option>Ban user permanently</option>
  60. </select>
  61. <label class="checkbox">
  62. <input type="checkbox" value="">
  63. Remove and block user avatar
  64. </label>
  65. <label class="checkbox">
  66. <input type="checkbox" value="">
  67. Remove and block user signature
  68. </label>
  69. </div>
  70. <div class="form-actions">
  71. <button type="submit" class="btn btn-primary">Run Action</button>
  72. </div>
  73. </div>
  74. </form>
  75. </div>
  76. </div>
  77. {% endblock %}
  78. {% block javascripts %}{% if admins %}
  79. <script type="text/javascript">
  80. $(function () {
  81. // Register popovers for admin list{% for session in admins %}
  82. $('.popover-admin-{{ loop.index }}').popover({
  83. placement: 'top',
  84. trigger: 'click',
  85. title: '{{ popover_title(session)|escapejs }}',
  86. content: '{{ popover_content(session)|escapejs }}'
  87. });{% endfor %}
  88. });
  89. </script>{% endif %}
  90. {% endblock %}
  91. {% macro popover_title(session) -%}
  92. <div class="user-card">
  93. <img src="{{ session.user.get_avatar() }}" class="avatar-small">
  94. {{ session.user.username }}
  95. </div>
  96. {%- endmacro %}
  97. {% macro popover_content(session) -%}
  98. <strong>{% trans last_action=session.last|timesince, ip=session.ip %}{{ last_action }} ago from {{ ip }}{% endtrans %}</strong>
  99. <p>{{ session.agent }}</p>
  100. {%- endmacro %}