macros.html 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330
  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_quickreply(field, rows, cols, div_class='') -%}
  17. {%- if kwargs['required'] or field.flags.required -%}
  18. {% if div_class %}
  19. {{ field(class=div_class, required="required", cols=cols, rows=rows, placeholder=field.label.text) }}
  20. {% else %}
  21. {{ field(class="new-message", required="required", cols=cols, rows=row, placeholder=field.label.text) }}
  22. {% endif %}
  23. {%- else -%}
  24. {% if div_class %}
  25. {{ field(class=div_class, cols=cols, rows=row, placeholder=field.label.text) }}
  26. {% else %}
  27. {{ field(class="new-message", cols=cols, rows=row, placeholder=field.label.text) }}
  28. {% endif %}
  29. {%- endif -%}
  30. {{ field_description(field) }}
  31. {{ field_errors(field) }}
  32. {%- endmacro -%}
  33. {# Renders a non bootstrap input field #}
  34. {%- macro render_input_field(field, div_class='', placeholder='') -%}
  35. {%- if div_class -%}
  36. <div class="{{ div_class }}">
  37. {%- endif -%}
  38. {%- if placeholder -%}
  39. {% set field_placeholder = placeholder %}
  40. {%- else -%}
  41. {% set field_placeholder = field.label.text %}
  42. {%- endif -%}
  43. {%- if kwargs['required'] or field.flags.required -%}
  44. {{ field(required="required", placeholder=field_placeholder) }}
  45. {%- else -%}
  46. {{ field(placeholder=field_placeholder) }}
  47. {% endif %}
  48. {%- if div_class -%}
  49. </div>
  50. {%- endif -%}
  51. {{ field_description(field) }}
  52. {{ field_errors(field) }}
  53. {%- endmacro -%}
  54. {%- macro render_boolean_field(field, inline=False) -%}
  55. <div class="checkbox {%- if inline -%}inline{%- endif -%}">
  56. {{ field(**kwargs) }}
  57. {{ field_label(field) }}
  58. {{ field_description(field) }}
  59. {{ field_errors(field) }}
  60. </div>
  61. {%- endmacro -%}
  62. {%- macro render_select_field(field, div_class='') -%}
  63. <div class="form-group">
  64. {% if div_class %}
  65. <div class="{{ div_class }}">
  66. {% else %}
  67. <div class="col-sm-5">
  68. {% endif %}
  69. <label>{{ field.label.text }}</label>
  70. {% if field.type == 'QuerySelectMultipleField' or field.type == 'SelectMultipleField' %}
  71. {{ field(multiple=True, class="form-control") }}
  72. {% else %}
  73. {{ field(class="form-control") }}
  74. {%- endif -%}
  75. {{ field_description(field) }}
  76. {{ field_errors(field) }}
  77. </div>
  78. </div>
  79. {%- endmacro -%}
  80. {%- macro render_submit_field(field, div_class='', input_class='') -%}
  81. {% if div_class %}
  82. <div class="{{ div_class }}">
  83. {% endif %}
  84. {{ field(class=input_class or 'btn btn-success') }}
  85. {% if div_class %}
  86. </div>
  87. {% endif %}
  88. {%- endmacro -%}
  89. {%- macro render_field(field, with_label=True, div_class='', rows='') -%}
  90. <div class="form-group{%- if field.errors %} has-error{%- endif %}">
  91. {% if div_class %}
  92. <div class="{{ div_class }}">
  93. {% else %}
  94. <div class="col-sm-5">
  95. {% endif %}
  96. {% if with_label %}
  97. <label>{{ field.label.text }}</label>
  98. {% endif %}
  99. {%- if kwargs['required'] or field.flags.required -%}
  100. {% if rows %}
  101. {{ field(class="form-control", required="required", rows=rows, placeholder=field.label.text) }}
  102. {% else %}
  103. {{ field(class="form-control", required="required", placeholder=field.label.text) }}
  104. {% endif %}
  105. {%- else -%}
  106. {% if rows %}
  107. {{ field(class="form-control", rows=rows, placeholder=field.label.text) }}
  108. {% else %}
  109. {{ field(class="form-control", placeholder=field.label.text) }}
  110. {% endif %}
  111. {%- endif -%}
  112. {{ field_description(field) }}
  113. {{ field_errors(field) }}
  114. </div>
  115. </div>
  116. {%- endmacro -%}
  117. {%- macro inline_field(field, label_text='', label_class='') -%}
  118. <div class="form-group {%- if field.errors %} has-error{%- endif %}">
  119. {{field.label(class="sr-only")}}
  120. <div class="col-sm-4">
  121. {%- if kwargs['required'] or field.flags.required -%}
  122. {% if label_text %}
  123. {{field(class='form-control', placeholder=label_text, required="required", **kwargs)}}
  124. {% else %}
  125. {{field(class='form-control', placeholder=field.label.text, required="required", **kwargs)}}
  126. {% endif %}
  127. {%- else -%}
  128. {% if label_text %}
  129. {{field(class='form-control', placeholder=label_text, **kwargs)}}
  130. {% else %}
  131. {{field(class='form-control', placeholder=field.label.text, **kwargs)}}
  132. {% endif %}
  133. {%- endif -%}
  134. {{ field_description(field) }}
  135. {{ field_errors(field) }}
  136. </div>
  137. </div>
  138. {%- endmacro -%}
  139. {%- macro group_field(field, label_text='', label_class='') -%}
  140. <div class="form-group {%- if field.errors %} has-error{%- endif %}" style="margin-bottom: 0px;">
  141. {{field.label(class="sr-only")}}
  142. {%- if kwargs['required'] or field.flags.required -%}
  143. {% if label_text %}
  144. {{field(class='form-control form-grouped', placeholder=label_text, required="required", **kwargs)}}
  145. {% else %}
  146. {{field(class='form-control form-grouped', placeholder=field.label.text, required="required", **kwargs)}}
  147. {% endif %}
  148. {%- else -%}
  149. {% if label_text %}
  150. {{field(class='form-control form-grouped', placeholder=label_text, **kwargs)}}
  151. {% else %}
  152. {{field(class='form-control form-grouped', placeholder=field.label.text, **kwargs)}}
  153. {% endif %}
  154. {%- endif -%}
  155. {{ field_description(field) }}
  156. {{ field_errors(field) }}
  157. </div>
  158. {%- endmacro -%}
  159. {%- macro horizontal_boolean_field(field, div_class='') -%}
  160. {%- if div_class %}
  161. <div class="{{ div_class }}">
  162. {%- else %}
  163. <div class="col-sm-offset-3 col-sm-3">
  164. {%- endif %}
  165. <div class="checkbox">
  166. {{ field(**kwargs) }}
  167. {{ field_label(field) }}
  168. </div>
  169. </div>
  170. {%- endmacro -%}
  171. {%- macro horizontal_submit_field(field, div_class='', input_class='') -%}
  172. {% if div_class %}
  173. <div class="{{ div_class }}">
  174. {% else %}
  175. <div class="col-sm-offset-3 col-sm-9">
  176. {% endif %}
  177. {{ field(class=input_class or 'btn btn-success') }}
  178. </div>
  179. {%- endmacro -%}
  180. {%- macro horizontal_field(field, label_text='', label_class='', div_class='', input_class='') -%}
  181. <div class="form-group row {%- if field.errors %} has-error{%- endif %}">
  182. {% if field.type == "BooleanField" or field.type == "SubmitField" %}
  183. {% if field.type == "BooleanField" %}
  184. {{ horizontal_boolean_field(field, div_class) }}
  185. {% else %}
  186. {{ horizontal_submit_field(field, div_class) }}
  187. {% endif %}
  188. {% else %}
  189. {% if label_class %}
  190. {{ field.label(class=label_class) }}
  191. {% else %}
  192. {{ field.label(class="col-sm-3 control-label") }}
  193. {% endif %}
  194. {% if div_class %}
  195. <div class="{{ div_class }}">
  196. {% else %}
  197. <div class="col-sm-4">
  198. {% endif %}
  199. {%- if kwargs['required'] or field.flags.required -%}
  200. {% if label_text %}
  201. {{ field(class='form-control', placeholder=label_text, required="required", **kwargs) }}
  202. {% else %}
  203. {{ field(class='form-control', placeholder=field.label.text, required="required", **kwargs) }}
  204. {% endif %}
  205. {%- else -%}
  206. {% if label_text %}
  207. {{ field(class='form-control', placeholder=label_text, **kwargs) }}
  208. {% else %}
  209. {{ field(class='form-control', placeholder=field.label.text, **kwargs) }}
  210. {% endif %}
  211. {%- endif -%}
  212. </div> <!-- end div_class -->
  213. {% endif %}
  214. {{ field_description(field) }}
  215. {{ field_errors(field) }}
  216. </div> <!-- end form-group -->
  217. {%- endmacro -%}
  218. {% macro topnav(endpoint, name, icon='', id='', active=False) %}
  219. <li {% if id %}id={{id}}{% endif %} {% if endpoint == request.endpoint or active == True %}class="active"{% endif %}>
  220. <a href={{ url_for(endpoint) }}>
  221. {% if icon %}<i class="{{ icon }}"></i> {% endif %}{{ name }}
  222. </a>
  223. </li>
  224. {% endmacro %}
  225. {% macro navlink(endpoint, name, active=False) %}
  226. <li {% if endpoint == request.endpoint or active %}class="active"{% endif %}>
  227. <a href={{ url_for(endpoint) }}>{{ name }}</a>
  228. </li>
  229. {% endmacro %}
  230. {% macro render_pagination(page_obj, url, ul_class='') %}
  231. <ul class='{%- if ul_class -%}{{ ul_class }}{%- else -%}pagination{%- endif -%}'>
  232. <li class="disabled"><a href="#"><span class="pages-label">{% trans %}Pages{% endtrans %}:</span></a></li>
  233. {%- for page in page_obj.iter_pages() %}
  234. {% if page %}
  235. {% if page != page_obj.page %}
  236. <li><a href="{{ url }}?page={{ page }}">{{ page }}</a></li>
  237. {% else %}
  238. <li class="active"><a href="#">{{ page }}</a></li>
  239. {% endif %}
  240. {% endif %}
  241. {%- else -%}
  242. <li class="active"><a href="#">1</a></li>
  243. {%- endfor %}
  244. {% if page_obj.has_next %}
  245. <li><a href="{{ url }}?page={{ page_obj.next_num }}">&raquo;</a></li>
  246. {% endif %}
  247. </ul>
  248. {% endmacro %}
  249. {% macro render_topic_pagination(page_obj, url) %}
  250. <ul class="pagination pagelink pull-left">
  251. <li class="disabled"><a><span class="pages-label">Pages: </span></a></li>
  252. {%- for page in page_obj.iter_pages() %}
  253. {% if page %}
  254. {% if page != page_obj.page %}
  255. <li><a href="{{ url }}?page={{ page }}">{{ page }}</a></li>
  256. {% else %}
  257. <li class="disabled"><a href="#">{{ page }}</a></li>
  258. {% endif %}
  259. {% endif %}
  260. {%- else -%}
  261. <li class="disabled"><a href="#">1</a></li>
  262. {%- endfor %}
  263. {% if page_obj.has_next %}
  264. <li><a href="{{ url }}?page={{ page_obj.next_num }}">Next</a></li>
  265. {% endif %}
  266. </ul>
  267. {% endmacro %}
  268. {%- macro topic_pages(topic_obj, per_page=10) -%}
  269. {% set topic_pages = (topic_obj.post_count / per_page)|round|int %}
  270. {%- if topic_pages > 1 -%}
  271. <small>[
  272. {% for page in range(0, topic_pages) %}
  273. <a href="{{ url_for('forum.view_topic', topic_id=topic_obj.id) }}?page={{ page+1 }}">{{ page+1 }} </a>
  274. {% endfor %}
  275. ]</small>
  276. {%- endif -%}
  277. {%- endmacro -%}