layout.html 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="utf-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <meta name="description" content="FlaskBB is a forum software written in Flask">
  8. <meta name="author" content="FlaskBB Team">
  9. <meta name="csrf-token" content="{{ csrf_token() }}">
  10. <link rel="shortcut icon" href="{{ url_for('static', filename='favicon.ico') }}">
  11. <title>
  12. {% block title %}
  13. {%- if not page_title -%}
  14. {{ flaskbb_config["PROJECT_TITLE"] }} - {{ flaskbb_config["PROJECT_SUBTITLE"] }}
  15. {%- else -%}
  16. {{ page_title }} - {{ flaskbb_config["PROJECT_TITLE"] }}
  17. {%- endif -%}
  18. {% endblock %}
  19. </title>
  20. {% block stylesheets %}
  21. <!-- syntax highlighting -->
  22. <link rel="stylesheet" href="{{ url_for('static', filename='css/pygments.css') }}">
  23. <!-- bootstrap & aurora theme -->
  24. <link rel="stylesheet" href="{{ url_for('static', filename='css/styles.css') }}">
  25. <!-- lato font -->
  26. <link href="https://fonts.googleapis.com/css?family=Lato:300,400,700,300italic,400italic,700italic" rel="stylesheet" type="text/css">
  27. {% endblock %}
  28. {# for extra stylesheets. e.q. a template has to add something #}
  29. {% block css %}
  30. {% endblock %}
  31. {# for various extra things #}
  32. {% block head_extra %}
  33. {% endblock %}
  34. </head>
  35. <body>
  36. <!-- main forum layout -->
  37. <div class="flaskbb-layout">
  38. <div class="container">
  39. <!-- forum header - place for the project title and subtitle -->
  40. {% block header %}
  41. <div class="flaskbb-header">
  42. <div class="flaskbb-meta">
  43. <div class="flaskbb-title">{{ flaskbb_config["PROJECT_TITLE"] }}</div>
  44. <div class="flaskbb-subtitle">{{ flaskbb_config["PROJECT_SUBTITLE"] }}</div>
  45. </div>
  46. </div>
  47. {% endblock %}
  48. <!-- forum menu - contains all the navigation items -->
  49. {% block navigation %}
  50. <div class="navbar navbar-default" role="navigation">
  51. <!-- Brand and toggle get grouped for better mobile display -->
  52. <div class="navbar-header">
  53. <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar-collapse" aria-expanded="false">
  54. <span class="sr-only">Toggle navigation</span>
  55. <span class="icon-bar"></span>
  56. <span class="icon-bar"></span>
  57. <span class="icon-bar"></span>
  58. </button>
  59. </div>
  60. <div class="collapse navbar-collapse" id="navbar-collapse">
  61. <!-- navbar left -->
  62. <ul class="nav navbar-nav forum-nav">
  63. {%- from theme("macros.html") import is_active, topnav with context -%}
  64. {{ emit_event("before-first-navigation-element") }}
  65. {{ topnav(endpoint='forum.index', name=_('Forum'), icon='fa fa-comment', active=active_forum_nav) }}
  66. {{ topnav(endpoint='forum.memberlist', name=_('Memberlist'), icon='fa fa-user') }}
  67. {{ topnav(endpoint='forum.search', name=_('Search'), icon='fa fa-search') }}
  68. {{ emit_event("after-last-navigation-element") }}
  69. </ul>
  70. <!-- navbar right -->
  71. <ul class="nav navbar-nav navbar-right">
  72. {% if current_user and current_user.is_authenticated %}
  73. <!-- Inbox -->
  74. <li class="dropdown {{ is_active('message.inbox') }}">
  75. <a href="#" class="dropdown-toggle" data-toggle="dropdown">
  76. <span class="fa fa-envelope fa-fw"></span> {% trans %}Inbox{% endtrans %}
  77. {% if current_user.unread_count > 0 %}
  78. <span class="label label-danger">{{ current_user.unread_count }}</span>
  79. {% else %}
  80. <span class="label label-info">{{ current_user.unread_count }}</span>
  81. {% endif %}
  82. </a>
  83. <ul class="dropdown-menu dropdown-messages">
  84. {% for message in current_user.unread_messages %}
  85. <li>
  86. <a href="{{ url_for('message.view_conversation', conversation_id=message.id) }}">
  87. <div>
  88. <span class="author-name">{{ message.from_user.username }}</span> <span class="pull-right text-muted">{{ message.last_message.date_created|time_since }}</span>
  89. <div class="message-subject">{{ message.subject }}</div>
  90. </div>
  91. </a>
  92. </li>
  93. {% else %}
  94. <li><a href="#">No unread messages.</a></li>
  95. {% endfor %}
  96. <li class="divider"></li>
  97. <li><a href="{{ url_for('message.inbox') }}"><span class="fa fa-envelope fa-fw"></span> {% trans %}Inbox{% endtrans %}</a></li>
  98. <li><a href="{{ url_for('message.new_conversation') }}"><span class="fa fa-pencil fa-fw"></span> {% trans %}New Message{% endtrans %}</a></li>
  99. </ul>
  100. </li>
  101. <!-- User Menu -->
  102. <li>
  103. <div class="btn-group navbar-btn user-btn">
  104. <a class="btn btn-primary" href="{{ url_for('user.profile', username=current_user.username) }}">
  105. <span class="fa fa-user fa-fw"></span> {{ current_user.username }}
  106. </a>
  107. <button type="button" class="btn btn-primary dropdown-toggle" data-toggle="dropdown"><span class="caret"></span></button>
  108. <ul class="dropdown-menu" role="menu">
  109. <li><a href="{{ url_for('forum.topictracker') }}"><span class="fa fa-book fa-fw"></span> {% trans %}Topic Tracker{% endtrans %}</a></li>
  110. <li class="divider"></li>
  111. <li><a href="{{ url_for('user.settings') }}"><span class="fa fa-cogs fa-fw"></span> {% trans %}Settings{% endtrans %}</a></li>
  112. {% if current_user|is_admin_or_moderator %}
  113. <li><a href="{{ url_for('management.overview') }}"><span class="fa fa-cog fa-fw"></span> {% trans %}Management{% endtrans %}</a></li>
  114. <li class="divider"></li>
  115. {% endif %}
  116. <li><a href="{{ url_for('auth.logout') }}"><span class="fa fa-power-off fa-fw"></span> {% trans %}Logout{% endtrans %}</a></li>
  117. </ul>
  118. </div>
  119. </li>
  120. {% else %}
  121. <!-- Not logged in - Login/Register -->
  122. <li>
  123. <div class="btn-group navbar-btn user-btn">
  124. <a class="btn btn-primary" href="{{ url_for('auth.login') }}">
  125. <span class="fa fa-user fa-fw"></span> {% trans %}Login{% endtrans %}
  126. </a>
  127. <button type="button" class="btn btn-primary dropdown-toggle" data-toggle="dropdown"><span class="caret"></span></button>
  128. <ul class="dropdown-menu" role="menu">
  129. {% if flaskbb_config["REGISTRATION_ENABLED"] %}
  130. <li><a href="{{ url_for('auth.register') }}"><span class="fa fa-user-plus fa-fw"></span> {% trans %}Register{% endtrans %}</a></li>
  131. {% endif %}
  132. <li><a href="{{ url_for('auth.forgot_password') }}"><span class="fa fa-undo fa-fw"></span> {% trans %}Reset Password{% endtrans %}</a></li>
  133. </ul>
  134. </div>
  135. </li>
  136. {% endif %}
  137. </ul> <!-- end navbar right -->
  138. </div> <!-- end navbar-collapse -->
  139. </div> <!-- end navbar -->
  140. {% endblock %}
  141. <!-- Place for all the (flashed) messages -->
  142. {% block messages %}
  143. <div id="flashed-messages">
  144. {% include theme('flashed_messages.html') %}
  145. </div>
  146. {% endblock %}
  147. <!-- the actual content block -->
  148. {% block content %}
  149. {% endblock %}
  150. </div> <!-- end container -->
  151. <!-- the forum footer -->
  152. {% block footer %}
  153. <footer class="flaskbb-footer">
  154. <div class="container">
  155. <p class="text-muted pull-right">powered by <a href="https://flaskbb.org">FlaskBB</a></p>
  156. <p class="text-muted pull-left">&copy; 2013 - 2017 <a href="https://flaskbb.org">FlaskBB Team</a></p>
  157. </div>
  158. </footer>
  159. {% endblock %}
  160. </div> <!-- end flaskbb-layout -->
  161. {% block javascript %}
  162. <!-- jquery and bootstrap and flaskbb.js -->
  163. <script src="{{ url_for('static', filename='js/scripts.min.js') }}"></script>
  164. <!-- Enable tooltips in all templates -->
  165. <script>
  166. $(function () {
  167. $('[data-toggle="tooltip"]').tooltip()
  168. })
  169. </script>
  170. {% endblock %}
  171. {# for extra scripts in other templates. #}
  172. {% block scripts %}
  173. {% endblock %}
  174. </body>
  175. </html>