warnings.html 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207
  1. {% extends "misago/profile/base.html" %}
  2. {% load humanize i18n misago_avatars misago_capture misago_dates misago_pagination %}
  3. {% block meta-description %}{% blocktrans trimmed with user=profile warnings=warnings.paginator.count|intcomma joined_on=profile.joined_on|date count counter=warnings.paginator.count %}
  4. {{ user }} was warned {{ warnings }} time since {{ joined_on }}.
  5. {% plural %}
  6. {{ user }} was warned {{ warnings }} times since {{ joined_on }}.
  7. {% endblocktrans %}{% endblock meta-description %}
  8. {% block page %}
  9. {% if warnings.object_list %}
  10. <div class="warning-summary">
  11. {% if warning_level %}
  12. <p class="lead">
  13. {{ warning_level }}
  14. </p>
  15. {% if warning_level.has_restrictions %}
  16. <ul class="list-unstyled">
  17. {% if warning_level.restricts_posting_replies %}
  18. <li>
  19. {% if warning_level.is_replying_disallowed %}
  20. <span class="fa fa-times-circle fa-lg fa-fw text-danger"></span>
  21. {% trans "Replying are forbidden." %}
  22. {% elif warning_level.is_replying_moderated %}
  23. <span class="fa fa-exclamation-circle fa-lg fa-fw text-warning"></span>
  24. {% trans "New replies are moderated." %}
  25. {% endif %}
  26. </li>
  27. {% endif %}
  28. {% if warning_level.restricts_posting_threads %}
  29. <li>
  30. {% if warning_level.is_starting_threads_disallowed %}
  31. <span class="fa fa-times-circle fa-lg fa-fw text-danger"></span>
  32. {% trans "Starting threads is forbidden." %}
  33. {% elif warning_level.is_starting_threads_moderated %}
  34. <span class="fa fa-exclamation-circle fa-lg fa-fw text-warning"></span>
  35. {% trans "New threads are moderated." %}
  36. {% endif %}
  37. </li>
  38. {% endif %}
  39. <li>
  40. {% if warning_level.length_in_minutes %}
  41. <span class="fa fa-clock-o fa-fw text-success"></span>
  42. {% blocktrans trimmed with length=warning_level.length %}
  43. This warning level lasts {{ length }}.
  44. {% endblocktrans %}
  45. {% else %}
  46. <span class="fa fa-clock-o fa-fw text-danger"></span>
  47. {% blocktrans trimmed %}
  48. This warning level is permanent.
  49. {% endblocktrans %}
  50. {% endif %}
  51. </li>
  52. </ul>
  53. {% endif %}
  54. {% else %}
  55. <p class="lead">
  56. {% trans "No warnings are active." %}
  57. </p>
  58. {% endif %}
  59. <div class="progress thin">
  60. <div class="progress-bar progress-bar-{% if warning_progress > 66 %}success{% elif warning_progress > 33 %}warning{% else %}danger{% endif %}" role="progressbar" aria-valuenow="{{ warning_progress }}" aria-valuemin="0" aria-valuemax="100" style="width: {{ warning_progress }}%;">
  61. <span class="sr-only">
  62. {% blocktrans trimmed with level=warning_level.level %}
  63. Warning level is {{ level }}
  64. {% endblocktrans %}
  65. </span>
  66. </div>
  67. </div>
  68. </div>
  69. <div class="warnings-list">
  70. {% for warning in warnings.object_list %}
  71. <div class="panel panel-default">
  72. <div class="panel-body large">
  73. {% if warning.reason %}
  74. {{ warning.reason|escape|urlize|linebreaks }}
  75. {% else %}
  76. <p>
  77. <em>{% trans "No warning reason was provided." %}</em>
  78. </p>
  79. {% endif %}
  80. </div>
  81. <div class="panel-footer opaque">
  82. <ul class="list-unstyled stats pull-left">
  83. <li>
  84. {% if warning.is_canceled %}
  85. <strong class="state-canceled">
  86. <span class="fa fa-ban fa-fw"></span>
  87. {% trans "Canceled" %}
  88. </strong>
  89. {% elif warning.is_active %}
  90. <strong class="state-valid">
  91. <span class="fa fa-exclamation-triangle fa-fw"></span>
  92. {% trans "Active" %}
  93. </strong>
  94. {% else %}
  95. <strong class="state-expired">
  96. <span class="fa fa-times fa-fw"></span>
  97. {% trans "Expired" %}
  98. </strong>
  99. {% endif %}
  100. </li>
  101. <li>
  102. {% if warning.giver_id %}
  103. <img src="{{ warning.giver_id|avatar:30 }}" alt="{% trans "Avatar" %}">
  104. <a href="{% url USER_PROFILE_URL user_slug=warning.giver_slug user_id=warning.giver_id %}">
  105. {{ warning.giver_username }}</a>,
  106. {% else %}
  107. <img src="{% blankavatar 30 %}" alt="{% trans "Avatar" %}">
  108. <strong>{{ warning.giver_username }}</strong>,
  109. {% endif %}
  110. <abbr class="tooltip-top dynamic time-ago" title="{{ warning.given_on }}" data-timestamp="{{ warning.given_on|date:"c" }}">
  111. {{ warning.given_on|compact_date|lower }}
  112. </abbr>
  113. </li>
  114. {% if warning.is_canceled %}
  115. <li>
  116. <span class="fa fa-ban"></span>
  117. {% capture trimmed as canceler %}
  118. {% if warning.canceler_id %}
  119. <a href="{% url USER_PROFILE_URL user_slug=warning.canceler_slug user_id=warning.canceler_id %}">
  120. {{ warning.canceler_username }}</a>
  121. {% else %}
  122. <strong>{{ warning.canceler_username }}</strong>
  123. {% endif %}
  124. {% endcapture %}
  125. {% capture trimmed as canceled %}
  126. <abbr class="tooltip-top dynamic time-ago" title="{{ warning.canceled_on }}" data-timestamp="{{ warning.canceled_on|date:"c" }}">
  127. {{ warning.canceled_on|compact_date|lower }}
  128. </abbr>
  129. {% endcapture %}
  130. {% blocktrans trimmed with user=canceler|safe canceled=canceled|safe %}
  131. Canceled by {{user}} {{ canceled }}.
  132. {% endblocktrans %}
  133. </li>
  134. {% endif %}
  135. </ul>
  136. {% if warning.acl.can_moderate %}
  137. <ul class="list-unstyled actions pull-right">
  138. {% if warning.acl.can_cancel %}
  139. <li>
  140. <form action="{% url 'misago:cancel_warning' user_slug=profile.slug user_id=profile.id warning_id=warning.id %}" method="POST" class="cancel-warning-prompt">
  141. {% csrf_token %}
  142. <button type="submit" class="btn btn-default">
  143. {% trans "Cancel" %}
  144. </button>
  145. </form>
  146. </li>
  147. {% endif %}
  148. {% if warning.acl.can_delete %}
  149. <li>
  150. <form action="{% url 'misago:delete_warning' user_slug=profile.slug user_id=profile.id warning_id=warning.id %}" method="POST" class="delete-warning-prompt">
  151. {% csrf_token %}
  152. <button type="submit" class="btn btn-default">
  153. {% trans "Delete" %}
  154. </button>
  155. </form>
  156. </li>
  157. {% endif %}
  158. </ul>
  159. {% endif %}
  160. </div>
  161. </div>
  162. {% endfor %}
  163. </div>
  164. {% pagination warnings "misago/profile/pagination.html" 'misago:user_warnings' user_slug=profile.slug user_id=profile.id %}
  165. {% else %}
  166. <p class="lead">
  167. {% if is_authenticated_user %}
  168. {% blocktrans trimmed with user=profile %}
  169. Your have no warnings, {{ user }}.
  170. {% endblocktrans %}
  171. {% else %}
  172. {% blocktrans trimmed with user=profile %}
  173. {{ user }} has no warnings.
  174. {% endblocktrans %}
  175. {% endif %}
  176. </p>
  177. {% endif %}
  178. {% endblock page %}
  179. {% block javascripts %}
  180. {{ block.super }}
  181. <script type="text/javascript">
  182. $(function() {
  183. {% if user.is_authenticated and user.acl.can_cancel_warnings %}
  184. $('.cancel-warning-prompt').submit(function() {
  185. var decision = confirm("{% trans "Are you sure you want to cancel this warning?" %}");
  186. return decision;
  187. });
  188. {% endif %}
  189. {% if user.is_authenticated and user.acl.can_delete_warnings %}
  190. $('.delete-warning-prompt').submit(function() {
  191. var decision = confirm("{% trans "Are you sure you want to delete this warning?" %}");
  192. return decision;
  193. });
  194. {% endif %}
  195. });
  196. </script>
  197. {% endblock javascripts %}