upload_avatar.html 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. {% extends "misago/usercp/base.html" %}
  2. {% load i18n staticfiles %}
  3. {% block title %}
  4. {% trans "Upload avatar" %}{{ block.super }}
  5. {% endblock title %}
  6. {% block page %}
  7. <div class="form-panel">
  8. <form method="POST" role="form" class="upload-form">
  9. {% csrf_token %}
  10. <div class="form-header">
  11. <h2>
  12. <span class="fa fa-image"></span>
  13. {% trans "Upload avatar" %}
  14. </h2>
  15. </div>
  16. <div id="image-preview" class="form-avatar-preview form-body form-text" style="display: none;">
  17. <div class="preview-image pull-left">
  18. <img class="preview">
  19. </div>
  20. <p class="lead pull-left"></p>
  21. <a href="{% url 'misago:usercp_crop_new_avatar' %}" class="btn btn-primary pull-right">
  22. <span class="fa fa-arrows-alt"></span>
  23. {% trans "Crop image" %}
  24. </a>
  25. </div>
  26. <div class="form-body form-avatar-upload">
  27. <div id="image-drop" class="drag-drop-area">
  28. <span class="fa fa-upload"></span>
  29. <h3>{% trans "Click or drag and drop here image from your computer" %}</h3>
  30. <p>
  31. {% blocktrans trimmed with limit=upload_limit|filesizeformat %}
  32. Must be jpg, gif or png image file no bigger than {{ limit }}.
  33. {% endblocktrans %}
  34. </p>
  35. </div>
  36. </div>
  37. <div class="form-footer">
  38. <a href="{% url 'misago:usercp_change_avatar' %}" class="btn btn-default">{% trans "Cancel" %}</a>
  39. </div>
  40. </form>
  41. </div>
  42. {% endblock page %}
  43. {% block javascripts %}
  44. <script type="text/javascript" src="{% static "misago/js/dropzone.js" %}" charset="utf-8"></script>
  45. <script type="text/javascript">
  46. $(function() {
  47. var csrf_token = $("input[name=csrfmiddlewaretoken]").val();
  48. var $preview = $('#image-preview');
  49. var $droparea = $('#image-drop');
  50. $droparea.dropzone({
  51. dictResponseError: "{% trans "Error occured when uploading file." %}",
  52. paramName: "new-avatar",
  53. clickable: true,
  54. uploadMultiple: false,
  55. maxFilesize: {{ upload_limit_mb }},
  56. dictFileTooBig: "{% trans "Uploaded file is too big" %}",
  57. acceptedFiles: "{{ allowed_extensions|add:allowed_mime_types|join:',' }}",
  58. dictInvalidFileType: "{% trans "Uploaded file type is not allowed." %}",
  59. headers: {'X-CSRFToken': csrf_token},
  60. url: "{% url 'misago:usercp_upload_avatar_handler' %}",
  61. success: function(avatar, message) {
  62. var reader = new FileReader();
  63. reader.onloadend = function() {
  64. $preview.find('img').attr('src', reader.result)
  65. };
  66. reader.readAsDataURL(avatar);
  67. $preview.find('p').text(avatar.name);
  68. $preview.slideDown();
  69. },
  70. error: function(avatar, message, xhr) {
  71. if (xhr != undefined) {
  72. if (message.message != undefined) {
  73. Misago.Alerts.error(message.message);
  74. } else {
  75. Misago.Alerts.error("{% trans "Error occured when sending file to server." %}");
  76. }
  77. } else {
  78. Misago.Alerts.error(message);
  79. }
  80. },
  81. addedfile: function(file) {
  82. // suppress default behaviour
  83. }
  84. });
  85. });
  86. </script>
  87. {% endblock %}