]> git.ipfire.org Git - ipfire.org.git/blob - src/templates/base.html
021c15fc5c732890a6e87a332c091fc98ea24202
[ipfire.org.git] / src / templates / base.html
1 <!DOCTYPE html>
2 <html lang="en">
3 <head>
4 <title>{{ hostname }} - {% block title %}{{ _("No title given") }}{% end block %}</title>
5 <meta http-equiv="content-type" content="text/html; charset=utf-8" />
6 <meta name="author" content="IPFire.org - IPFire Development Team" />
7
8 <meta name="keywords" content="Linux, Firewall, IPFire, Security, IPCop, Open Source, Free, ARM, VPN, Proxy, IDS, IPS" />
9 <meta name="description" content="{{ _("IPFire is a free firewall distribution based on Linux.") }}" />
10
11 <!-- styling stuff -->
12 <link rel="stylesheet" type="text/css" href="{{ static_url("main.css") }}" />
13 <meta name="viewport" content="width=device-width, initial-scale=1.0">
14
15 {% block head %}{% end block %}
16 </head>
17
18 <body id="page-top">
19 <nav class="navbar navbar-dark navbar-expand-lg mb-4">
20 <div class="container">
21 <a class="navbar-brand" href="/">
22 <strong>IPFire</strong>
23
24 {% if hostname == "blog.ipfire.org" %}
25 {{ _("Blog") }}
26 {% elif hostname == "fireinfo.ipfire.org" %}
27 {{ _("Fireinfo") }}
28 {% elif hostname == "mirrors.ipfire.org" %}
29 {{ _("Mirrors") }}
30 {% elif hostname == "people.ipfire.org" %}
31 {{ _("People") }}
32 {% elif hostname == "wiki.ipfire.org" %}
33 {{ _("Wiki") }}
34 {% end %}
35 </a>
36
37 {% block menu %}
38 {% if hostname in ("www.ipfire.org", "dev.ipfire.org") %}
39 <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbar"
40 aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
41 <span class="fas fa-bars"></span>
42 </button>
43
44 <div class="collapse navbar-collapse" id="navbar">
45 <ul class="navbar-nav ml-auto">
46 <li class="nav-item d-sm-block d-md-block d-lg-none">
47 <a class="nav-link {% if request.path == "/" %}active{% end %}" href="/">{{ _("Home") }}</a>
48 </li>
49
50 <li class="nav-item">
51 <a class="nav-link {% if request.path == "/features" %}active{% end %}" href="/features">{{ _("Features") }}</a>
52 </li>
53
54 <li class="nav-item">
55 <a class="nav-link {% if request.path.startswith("/download") %}active{% end %}" href="/download">{{ _("Download") }}</a>
56 </li>
57
58 <li class="nav-item">
59 <a class="nav-link {% if request.path == "/support" %}active{% end %}" href="/support">{{ _("Support") }}</a>
60 </li>
61
62 <li class="nav-item">
63 <a class="nav-link" href="https://blog.ipfire.org/">{{ _("Blog") }}</a>
64 </li>
65 </ul>
66
67 <a class="btn btn-primary mt-2 mt-lg-0 ml-lg-2" href="/donate">
68 <span class="fas fa-heart"></span> {{ _("Donate") }}
69 </a>
70 </div>
71 {% elif hostname == "blog.ipfire.org" %}
72 <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbar"
73 aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
74 <span class="fas fa-bars"></span>
75 </button>
76
77 <div class="collapse navbar-collapse" id="navbar">
78 <ul class="navbar-nav ml-auto d-lg-none">
79 <li class="nav-item">
80 <a class="nav-link {% if request.path == "/" %}active{% end %}" href="/">
81 {{ _("Newest") }}
82 </a>
83 </li>
84
85 {% if current_user %}
86 <li class="nav-item">
87 <a class="nav-link {% if request.path == "/drafts" %}active{% end %}" href="/drafts">
88 {{ _("My Drafts") }}
89 </a>
90 </li>
91 {% end %}
92
93 <li class="nav-item">
94 <a class="nav-link {% if request.path == "/tags/featured" %}active{% end %}" href="/tags/featured">
95 {{ _("Featured") }}
96 </a>
97 </li>
98
99 <li class="nav-item">
100 <a class="nav-link {% if request.path == "/tags/lightningwirelabs.com" %}active{% end %} d-flex justify-content-between"
101 href="/tags/lightningwirelabs.com">
102 <span>{{ _("Lightning Wire Labs") }}</span>
103
104 <img class="img-fluid" src="{{ static_url("img/lightningwirelabs-logo.svg") }}"
105 alt="{{ _("Lightning Wire Labs") }}">
106 </a>
107 </li>
108
109 <li class="nav-item">
110 <a class="nav-link d-flex justify-content-between" href="/feed.xml">
111 <span>{{ _("RSS Feed") }}</span> <span class="fas fa-rss"></span>
112 </a>
113 </li>
114 </ul>
115
116 <form class="form-inline ml-lg-auto my-2 my-lg-0" action="/search" method="GET">
117 <input class="form-control form-control-sm" type="search" name="q"
118 placeholder="{{ _("Search...") }}" aria-label="{{ _("Search") }}" value="{% try %}{{ q }}{% except %}{% end %}">
119 </form>
120
121 <a class="btn btn-primary ml-lg-2" href="https://www.ipfire.org/donate">
122 <span class="fas fa-heart"></span> {{ _("Donate") }}
123 </a>
124 </div>
125 {% elif hostname == "fireinfo.ipfire.org" %}
126 <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbar"
127 aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
128 <span class="fas fa-bars"></span>
129 </button>
130
131 <div class="collapse navbar-collapse" id="navbar">
132 <ul class="navbar-nav ml-auto">
133 <li class="nav-item">
134 <a class="nav-link {% if request.path.startswith("/vendors") %}active{% end %}" href="/vendors">
135 {{ _("Vendors") }}
136 </a>
137 </li>
138 </ul>
139 </div>
140 {% elif hostname == "nopaste.ipfire.org" %}
141 <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbar"
142 aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
143 <span class="fas fa-bars"></span>
144 </button>
145
146 <div class="collapse navbar-collapse" id="navbar">
147 <ul class="navbar-nav ml-auto">
148 <li class="nav-item">
149 <a class="nav-link" href="/?mode=upload">{{ _("Upload File") }}</a>
150 </li>
151 </ul>
152 </div>
153 {% elif hostname == "people.ipfire.org" %}
154 {% if current_user %}
155 <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbar"
156 aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
157 <span class="fas fa-bars"></span>
158 </button>
159
160 <div class="collapse navbar-collapse" id="navbar">
161 <ul class="navbar-nav ml-auto mr-3">
162 <li class="nav-item">
163 <a class="nav-link {% if request.path == "/users/%s" % current_user.uid %}active{% end %}" href="/users/{{ current_user.uid }}">
164 {{ _("My Profile") }}
165 </a>
166 </li>
167
168 {% if current_user.has_sip() %}
169 <li class="nav-item">
170 <a class="nav-link {% if request.path.startswith("/users/%s/calls" % current_user.uid) %}active{% end %}" href="/users/{{ current_user.uid }}/calls">
171 {{ _("My Calls") }}
172
173 {% if current_user.sip_channels %}
174 <span class="badge badge-primary ml-2">{{ len(current_user.sip_channels) }}</span>
175 {% end %}
176 </a>
177 </li>
178 {% end %}
179
180 {% if current_user.is_staff() %}
181 <li class="nav-item">
182 <a class="nav-link {% if request.path == "/users" %}active{% end %}" href="/users">
183 {{ _("Users") }}
184 </a>
185 </li>
186 {% end %}
187
188 {% if current_user.has_sip() %}
189 <li class="nav-item">
190 <a class="nav-link {% if request.path.startswith("/conferences") %}active{% end %}" href="/conferences">
191 {{ _("Conferences") }}
192 </a>
193 </li>
194 {% end %}
195 </ul>
196
197 <form class="form-inline my-2 my-lg-0" action="/search" method="GET">
198 <input class="form-control form-control-sm mr-sm-2" type="search" name="q"
199 placeholder="{{ _("Search") }}" aria-label="{{ _("Search") }}" value="{% try %}{{ q }}{% except %}{% end %}">
200 </form>
201 </div>
202 {% end %}
203 {% elif hostname == "wiki.ipfire.org" %}
204 <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbar"
205 aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
206 <span class="fas fa-bars"></span>
207 </button>
208
209 <div class="collapse navbar-collapse" id="navbar">
210 <ul class="navbar-nav ml-auto mr-3">
211 <li class="nav-item">
212 <a class="nav-link {% if request.path == "/recent-changes" %}active{% end %}" href="/recent-changes">
213 {{ _("Recent Changes") }}
214 </a>
215 </li>
216 </ul>
217
218 <form class="form-inline my-2 my-lg-0" action="/search" method="GET">
219 <input class="form-control form-control-sm" type="search" name="q"
220 placeholder="{{ _("Search...") }}" aria-label="{{ _("Search") }}" value="{% try %}{{ q }}{% except %}{% end %}">
221 </form>
222
223 <a class="btn btn-primary ml-lg-2" href="https://www.ipfire.org/donate">
224 <span class="fas fa-heart"></span> {{ _("Donate") }}
225 </a>
226 </div>
227 {% end %}
228 {% end block %}
229 </div>
230 </nav>
231
232 {% block container %}
233 <div class="container">
234 {% block content %}{% end block %}
235 </div>
236 {% end block %}
237
238 {% block footer %}
239 <footer>
240 <div class="footer">
241 {% if hostname in ("www.ipfire.org", "dev.ipfire.org") %}
242 <div class="footer-info">
243 <div class="container pb-3">
244 <div class="row mb-6 justify-content-between">
245 <div class="col-12 col-lg-4 mb-4">
246 <h6>{{ _("Subscribe to our Newsletter") }}</h6>
247
248 <form method="POST" action="https://{{ "dev.ipfire.org" if hostname == "dev.ipfire.org" else "www.ipfire.org" }}/newsletter/subscribe">
249 {% raw xsrf_form_html() %}
250
251 <label class="sr-only" for="email">{{ _("Email Address") }}</label>
252
253 <input type="email" class="form-control mb-2 mr-sm-2" id="email" name="email"
254 placeholder="{{ _("Your Email Address") }}" required>
255
256 <button type="submit" class="btn btn-primary btn-block mb-2">{{ _("Subscribe") }}</button>
257 </form>
258 </div>
259
260 <div class="col-12 col-lg-3 mb-4 small">
261 <h6>{{ _("About") }}</h6>
262
263 <div class="row">
264 <div class="col">
265 <ul class="list-unstyled">
266 <li>
267 <a href="/features">{{ _("Features") }}</a>
268 </li>
269
270 <li>
271 <a href="/download">{{ _("Download") }}</a>
272 </li>
273
274 <li>
275 <a href="/support">{{ _("Support") }}</a>
276 </li>
277 </ul>
278 </div>
279
280 <div class="col">
281 <ul class="list-unstyled">
282 <li>
283 <a href="https://blog.ipfire.org">{{ _("Blog") }}</a>
284 </li>
285
286 <li>
287 <a href="https://wiki.ipfire.org/devel/start">{{ _("Development") }}</a>
288 </li>
289
290 <li>
291 <a href="/legal">{{ _("Legal") }}</a>
292 </li>
293 </ul>
294 </div>
295 </div>
296 </div>
297
298 <div class="col-12 col-lg-4 text-center mb-4">
299 <a class="btn btn-primary btn-lg px-4 my-4" href="/donate">
300 <span class="fas fa-heart"></span> {{ _("Donate") }}
301 </a>
302
303 <div class="btn-toolbar justify-content-center">
304 <a class="btn btn-link" href="https://twitter.com/ipfire">
305 <span class="fab fa-twitter"></span>
306 </a>
307
308 <a class="btn btn-link" href="https://www.facebook.com/IPFire.org">
309 <span class="fab fa-facebook"></span>
310 </a>
311
312 <a class="btn btn-link" href="https://youtube.com/user/ipfireproject">
313 <span class="fab fa-youtube"></span>
314 </a>
315 </div>
316 </div>
317 </div>
318 </div>
319 </div>
320 {% end %}
321
322 <div class="copyright">
323 <div class="container d-flex justify-content-between">
324 &copy; {{ year }} - IPFire - {{ _("The Open Source Firewall") }}
325
326 {% if not current_user and hostname in ("blog.ipfire.org", "nopaste.ipfire.org", "wiki.ipfire.org") %}
327 <a href="/login">{{ _("Login") }}</a>
328 {% elif current_user %}
329 <span>
330 {{ _("You are currently logged in as %s") % current_user.name }}
331 <a href="/logout">{{ _("Logout") }}</a>
332 </span>
333 {% end %}
334 </div>
335 </div>
336 </div>
337 </footer>
338 {% end block %}
339
340 <script src="{{ static_url("js/jquery-3.3.1.min.js") }}"></script>
341 <script src="{{ static_url("js/popper.min.js") }}"></script>
342 <script src="{{ static_url("js/bootstrap.min.js") }}"></script>
343 {% block javascript %}{% end block %}
344 </body>
345 </html>