macros.html 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180
  1. {%- macro field_label(field) -%}
  2. <label for="{{ field.id }}">{{ field.label.text }}</label>
  3. {% endmacro %}
  4. {%- macro field_description(field) -%}
  5. {% if field.description %}
  6. <span class="help-block">{{ field.description|safe }}</span>
  7. {% endif %}
  8. {%- endmacro -%}
  9. {%- macro field_errors(field) -%}
  10. {% if field.errors %}
  11. {%- for error in field.errors -%}
  12. <span class="help-block">{{error}}</span>
  13. {%- endfor -%}
  14. {% endif %}
  15. {%- endmacro -%}
  16. {%- macro render_boolean_field(field, inline=False) -%}
  17. <label class="checkbox {%- if inline -%}inline{%- endif -%}">
  18. {{ field(**kwargs) }}
  19. {{ field_label(field) }}
  20. {{ field_description(field) }}
  21. {{ field_errors(field) }}
  22. </label>
  23. {%- endmacro -%}
  24. {%- macro render_select_field(field, div_class='') -%}
  25. <div class="form-group">
  26. {% if div_class %}
  27. <div class="{{ div_class }}">
  28. {% else %}
  29. <div class="col-sm-5">
  30. {% endif %}
  31. <label>{{ field.label.text }}</label>
  32. {% if field.type == 'QuerySelectMultipleField' or field.type == 'SelectMultipleField' %}
  33. {{ field(multiple=True, class="form-control") }}
  34. {% else %}
  35. {{ field(class="form-control") }}
  36. {%- endif -%}
  37. {{ field_description(field) }}
  38. {{ field_errors(field) }}
  39. </div>
  40. </div>
  41. {%- endmacro -%}
  42. {%- macro render_field(field, div_class='', rows='') -%}
  43. <div class="form-group{%- if field.errors %} has-error{%- endif %}">
  44. {% if div_class %}
  45. <div class="{{ div_class }}">
  46. {% else %}
  47. <div class="col-sm-5">
  48. {% endif %}
  49. <label>{{ field.label.text }}</label>
  50. {%- if kwargs['required'] or field.flags.required -%}
  51. {% if rows %}
  52. {{ field(class="form-control", required="required", rows=rows, placeholder=field.label.text) }}
  53. {% else %}
  54. {{ field(class="form-control", required="required", placeholder=field.label.text) }}
  55. {% endif %}
  56. {%- else -%}
  57. {% if rows %}
  58. {{ field(class="form-control", rows=rows, placeholder=field.label.text) }}
  59. {% else %}
  60. {{ field(class="form-control", placeholder=field.label.text) }}
  61. {% endif %}
  62. {%- endif -%}
  63. {{ field_description(field) }}
  64. {{ field_errors(field) }}
  65. </div>
  66. </div>
  67. {%- endmacro -%}
  68. {%- macro inline_field(field, label_text='', label_class='') -%}
  69. <div class="form-group {%- if field.errors %} has-error{%- endif %}">
  70. {{field.label(class="sr-only")}}
  71. <div class="col-sm-4">
  72. {%- if kwargs['required'] or field.flags.required -%}
  73. {% if label_text %}
  74. {{field(class='form-control', placeholder=label_text, required="required", **kwargs)}}
  75. {% else %}
  76. {{field(class='form-control', placeholder=field.label.text, required="required", **kwargs)}}
  77. {% endif %}
  78. {%- else -%}
  79. {% if label_text %}
  80. {{field(class='form-control', placeholder=label_text, **kwargs)}}
  81. {% else %}
  82. {{field(class='form-control', placeholder=field.label.text, **kwargs)}}
  83. {% endif %}
  84. {%- endif -%}
  85. {{ field_description(field) }}
  86. {{ field_errors(field) }}
  87. </div>
  88. </div>
  89. {%- endmacro -%}
  90. {%- macro horizontal_field(field, label_text='', label_class='') -%}
  91. <div class="form-group row {%- if field.errors %} has-error{%- endif %}">
  92. {% if class %}
  93. {{ field.label(class=class) }}
  94. {% else %}
  95. {{ field.label(class="col-sm-3 control-label") }}
  96. {% endif %}
  97. <div class="col-sm-9">
  98. {%- if kwargs['required'] or field.flags.required -%}
  99. {% if label_text %}
  100. {{ field(class='form-control', placeholder=label_text, required="required", **kwargs) }}
  101. {% else %}
  102. {{ field(class='form-control', placeholder=field.label.text, required="required", **kwargs) }}
  103. {% endif %}
  104. {%- else -%}
  105. {% if label_text %}
  106. {{ field(class='form-control', placeholder=label_text, **kwargs) }}
  107. {% else %}
  108. {{ field(class='form-control', placeholder=field.label.text, **kwargs) }}
  109. {% endif %}
  110. {%- endif -%}
  111. {{ field_description(field) }}
  112. {{ field_errors(field) }}
  113. </div>
  114. </div>
  115. {%- endmacro -%}
  116. {% macro topnav(endpoint, name, icon='', active=False) %}
  117. <li {% if endpoint == request.endpoint or active == True %}class="active"{% endif %}>
  118. <a href={{ url_for(endpoint) }}>
  119. {% if icon %}<i class="{{ icon }}"></i> {% endif %}{{ name }}
  120. </a>
  121. </li>
  122. {% endmacro %}
  123. {% macro navlink(endpoint, name) %}
  124. <li {% if endpoint == request.endpoint %}class="active"{% endif %}>
  125. <a href={{ url_for(endpoint) }}>{{ name }}</a>
  126. </li>
  127. {% endmacro %}
  128. {% macro render_pagination(page_obj, url) %}
  129. <ul class="pagination" style="margin: 0; float:right">
  130. <li><span class="pages-label">Pages: </span></li>
  131. {%- for page in page_obj.iter_pages() %}
  132. {% if page %}
  133. {% if page != page_obj.page %}
  134. <li><a href="{{ url }}?page={{ page }}">{{ page }}</a></li>
  135. {% else %}
  136. <li class="active"><a href="#">{{ page }}</a></li>
  137. {% endif %}
  138. {% endif %}
  139. {%- endfor %}
  140. {% if page_obj.has_next %}
  141. <li><a href="{{ url }}?page={{ page_obj.next_num }}">&raquo;</a></li>
  142. {% endif %}
  143. </ul>
  144. {% endmacro %}
  145. {%- macro topic_pages(topic_obj, per_page=10) -%}
  146. {% set topic_pages = (topic_obj.post_count / per_page)|round|int %}
  147. {%- if topic_pages > 1 -%}
  148. <small>[
  149. {% for page in range(0, topic_pages) %}
  150. <a href="{{ url_for('forum.view_topic', topic_id=topic_obj.id) }}?page={{ page+1 }}">{{ page+1 }} </a>
  151. {% endfor %}
  152. ]</small>
  153. {%- endif -%}
  154. {%- endmacro -%}