editor.html 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  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. </div>
  34. {% endmacro %}
  35. {% macro zen() %}
  36. <div class="zen-overlay editor-editable">
  37. <div>
  38. <div class="container">
  39. <textarea id="overlay-textarea" name="overlay-textarea" placeholder="{% trans %}Message Body{% endtrans %}"></textarea>
  40. <div class="overlay-options">
  41. <ul>
  42. <li><a href="#" class="tooltip-left editor-bold" title="{% trans %}Bold{% endtrans %}"><i class="icon-bold"></i></a></li>
  43. <li><a href="#" class="tooltip-left editor-emphasis" title="{% trans %}Emphasis{% endtrans %}"><i class="icon-italic"></i></a></li>
  44. <li><a href="#" class="tooltip-left editor-link" title="{% trans %}Insert Link{% endtrans %}"><i class="icon-share-alt"></i></a></li>
  45. <li><a href="#" class="tooltip-left editor-image" title="{% trans %}Insert Image{% endtrans %}"><i class="icon-picture"></i></a></li>
  46. <li><a href="#" class="tooltip-left editor-hr" title="{% trans %}Insert Horizontal Line{% endtrans %}"><i class="icon-minus"></i></a></li>
  47. <li><a href="{{ url('help_md') }}" class="tooltip-left" title="{% trans %}Formatting Help{% endtrans %}" target="_blank"><i class="icon-info"></i></a></li>
  48. <li><hr></li>
  49. <li class="editor-zen-off tooltip-left" title="{% trans %}Leave Zen mode{% endtrans %}"><a href="#"><i class="icon-off"></i></a></li>
  50. </ul>
  51. </div>
  52. </div>
  53. </div>
  54. </div>
  55. {% endmacro %}
  56. {% macro js() %}
  57. <script type="text/javascript">
  58. $(function () {
  59. ed_lang_enter_link_url = "{% trans %}Enter link address{% endtrans %}";
  60. ed_lang_enter_link_label = "{% trans %}Enter link label (optional){% endtrans %}";
  61. ed_lang_enter_image_url = "{% trans %}Enter image address{% endtrans %}";
  62. ed_lang_enter_image_label = "{% trans %}Enter image label{% endtrans %}";
  63. ed_emojis = ['{{ ("', '".join(emojis))|safe }}'];
  64. ed_emoji_tpl = "<li data-value='${key}'><img src='{{ STATIC_URL }}emojis/${name}.png' height='20' width='20'/> ${name} </li>";
  65. ed_emojis_list = $.map(ed_emojis, function(value, i) {
  66. return {'id':i, 'key':value+":", 'name':value};
  67. });
  68. });
  69. </script>
  70. <script src="{{ STATIC_URL }}cranefly/js/jquery.caret.js"></script>
  71. <script src="{{ STATIC_URL }}cranefly/js/jquery.atwho.js"></script>
  72. <script src="{{ STATIC_URL }}cranefly/js/editor.js"></script>
  73. {% endmacro %}