editor.html 5.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. {% macro editor(field, submit_button, placeholder=None, rows=4, hide_links=False, hide_images=False, hide_hr=False, zen=False, extra=None) %}
  2. <div class="editor editor-editable">
  3. {% if field.errors %}
  4. <div class="editor-error">
  5. {% for error in field.errors %}
  6. <p class="help-block">{{ error }}</p>
  7. {% endfor %}
  8. </div>
  9. {% endif %}
  10. {% set context = field.field.widget.get_context(field.html_name, field.value()) %}
  11. <div class="editor-input">
  12. <div>
  13. <textarea name="{{ context.name }}" id="id_{{ context.name }}" rows="{{ rows }}"{% if placeholder %} placeholder="{{ placeholder }}"{% endif %}>{% if 'value' in context %}{{ context.value }}{% endif %}</textarea>
  14. {% if zen %}
  15. <div class="editor-zen-on tooltip-left" title="{% trans %}Click to enter Zen mode{% endtrans %}">
  16. <a href="#"><i class="icon-expand-alt"></i></a>
  17. </div>
  18. {% endif %}
  19. </div>
  20. </div>
  21. <div class="editor-actions">
  22. <ul class="editor-tools unstyled pull-left">
  23. <li><a href="#" class="tooltip-top btn editor-bold" title="{% trans %}Bold{% endtrans %}"><i class="icon-bold"></i></a></li>
  24. <li><a href="#" class="tooltip-top btn editor-emphasis" title="{% trans %}Emphasis{% endtrans %}"><i class="icon-italic"></i></a></li>
  25. {% if not hide_links %}<li><a href="#" class="tooltip-top btn editor-link" title="{% trans %}Insert Link{% endtrans %}"><i class="icon-share-alt"></i></a></li>{% endif %}
  26. {% if not hide_images %}<li><a href="#" class="tooltip-top btn editor-image" title="{% trans %}Insert Image{% endtrans %}"><i class="icon-picture"></i></a></li>{% endif %}
  27. {% if not hide_hr %}<li><a href="#" class="tooltip-top btn editor-hr" title="{% trans %}Insert Horizontal Line{% endtrans %}"><i class="icon-minus"></i></a></li>{% endif %}
  28. </ul>
  29. <a href="{{ url('help_md') }}" class="editor-help" target="_blank">{% trans %}Formatting Help{% endtrans %}</a>
  30. <button name="save" type="submit" class="btn btn-primary pull-right">{{ submit_button }}</button>
  31. {% if extra %}{{ extra }}{% endif %}
  32. </div>
  33. {{ attachments_editor() }}
  34. </div>
  35. {% endmacro %}
  36. {% macro zen() %}
  37. <div class="zen-overlay editor-editable">
  38. <div>
  39. <div class="container">
  40. <textarea id="overlay-textarea" name="overlay-textarea" placeholder="{% trans %}Message Body{% endtrans %}"></textarea>
  41. <div class="overlay-options">
  42. <ul>
  43. <li><a href="#" class="tooltip-left editor-bold" title="{% trans %}Bold{% endtrans %}"><i class="icon-bold"></i></a></li>
  44. <li><a href="#" class="tooltip-left editor-emphasis" title="{% trans %}Emphasis{% endtrans %}"><i class="icon-italic"></i></a></li>
  45. <li><a href="#" class="tooltip-left editor-link" title="{% trans %}Insert Link{% endtrans %}"><i class="icon-share-alt"></i></a></li>
  46. <li><a href="#" class="tooltip-left editor-image" title="{% trans %}Insert Image{% endtrans %}"><i class="icon-picture"></i></a></li>
  47. <li><a href="#" class="tooltip-left editor-hr" title="{% trans %}Insert Horizontal Line{% endtrans %}"><i class="icon-minus"></i></a></li>
  48. <li><a href="{{ url('help_md') }}" class="tooltip-left" title="{% trans %}Formatting Help{% endtrans %}" target="_blank"><i class="icon-info"></i></a></li>
  49. <li><hr></li>
  50. <li class="editor-zen-off tooltip-left" title="{% trans %}Leave Zen mode{% endtrans %}"><a href="#"><i class="icon-off"></i></a></li>
  51. </ul>
  52. </div>
  53. </div>
  54. </div>
  55. </div>
  56. {% endmacro %}
  57. {% macro attachments_editor() %}
  58. {% if acl.threads.can_upload_attachments(forum) %}
  59. <div class="editor-upload">
  60. <input type="file" name="new_file">
  61. <button name="upload" type="submit" class="btn pull-right">{% trans %}Attach File{% endtrans %}</button>
  62. </div>
  63. {% endif %}
  64. {% if attachments %}
  65. <ul class="unstyled editor-attachments">
  66. {% for attachment in attachments %}
  67. <li>
  68. {% if attachment.is_image %}
  69. <a href="{{ url('attachments_server', attachment=attachment.pk) }}"><img src="{{ url('attachments_thumbs_server', attachment=attachment.pk) }}" alt=""></a>
  70. {% endif %}
  71. <strong class="attachment-name">{{ attachment.name }}</strong>
  72. <button name="remove_attachment" value="{{ attachment.pk }}" type="submit" class="btn pull-right">{% trans %}Remove{% endtrans %}</button>
  73. </li>
  74. {% endfor %}
  75. </ul>
  76. {% endif %}
  77. {% endmacro %}
  78. {% macro js() %}
  79. <script type="text/javascript">
  80. $(function () {
  81. ed_lang_enter_link_url = "{% trans %}Enter link address{% endtrans %}";
  82. ed_lang_enter_link_label = "{% trans %}Enter link label (optional){% endtrans %}";
  83. ed_lang_enter_image_url = "{% trans %}Enter image address{% endtrans %}";
  84. ed_lang_enter_image_label = "{% trans %}Enter image label{% endtrans %}";
  85. ed_emojis = ['{{ ("', '".join(emojis))|safe }}'];
  86. ed_emoji_tpl = "<li data-value='${key}'><img src='{{ STATIC_URL }}emojis/${name}.png' height='20' width='20'/> ${name} </li>";
  87. ed_emojis_list = $.map(ed_emojis, function(value, i) {
  88. return {'id':i, 'key':value+":", 'name':value};
  89. });
  90. });
  91. </script>
  92. <script src="{{ STATIC_URL }}cranefly/js/jquery.caret.js"></script>
  93. <script src="{{ STATIC_URL }}cranefly/js/jquery.atwho.js"></script>
  94. <script src="{{ STATIC_URL }}cranefly/js/editor.js"></script>
  95. {% endmacro %}