base: Add references to LWL store
[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
10 <link rel="icon" sizes="192x192" href="{{ static_url("img/apple-touch-icon-192x192-precomposed.png") }}">
11 {% for res in ("72x72", "76x76", "120x120", "144x144", "152x152", "180x180") %}
12 <link rel="apple-touch-icon-precomposed" sizes="{{ res }}" href="{{ static_url("img/apple-touch-icon-%s-precomposed.png" % res )}}">
13 {% end %}
14 <link rel="apple-touch-icon-precomposed" href="{{ static_url("img/apple-touch-icon-60x60-precomposed.png") }}">
15
16 <!-- styling stuff -->
17 <link rel="stylesheet" type="text/css" href="{{ static_url("main.css") }}" />
18 <meta name="viewport" content="width=device-width, initial-scale=1.0">
19
20 {% block head %}{% end block %}
21 </head>
22
23 <body id="page-top" class="{{ hostname.replace(".", "-") }}">
24 <nav class="navbar navbar-dark navbar-expand-lg mb-4">
25 <div class="container">
26 <a class="navbar-brand" href="/">
27 <strong>IPFire</strong>
28
29 {% if hostname == "blog.ipfire.org" %}
30 {{ _("Blog") }}
31 {% elif hostname == "fireinfo.ipfire.org" %}
32 {{ _("Fireinfo") }}
33 {% elif hostname == "location.ipfire.org" %}
34 {{ _("Location") }}
35 {% elif hostname == "mirrors.ipfire.org" %}
36 {{ _("Mirrors") }}
37 {% elif hostname == "people.ipfire.org" %}
38 {{ _("People") }}
39 {% elif hostname == "wiki.ipfire.org" %}
40 {{ _("Wiki") }}
41 {% end %}
42 </a>
43
44 {% block menu %}
45 {% if hostname in ("www.ipfire.org", "dev.ipfire.org") %}
46 <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbar"
47 aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
48 <span class="fas fa-bars"></span>
49 </button>
50
51 <div class="collapse navbar-collapse" id="navbar">
52 <ul class="navbar-nav ml-auto">
53 <li class="nav-item d-sm-block d-md-block d-lg-none">
54 <a class="nav-link {% if request.path == "/" %}active{% end %}" href="/">{{ _("Home") }}</a>
55 </li>
56
57 <li class="nav-item">
58 <a class="nav-link {% if request.path == "/features" %}active{% end %}" href="/features">{{ _("Features") }}</a>
59 </li>
60
61 <li class="nav-item">
62 <a class="nav-link {% if request.path == "/support" %}active{% end %}" href="/support">{{ _("Support") }}</a>
63 </li>
64
65 <li class="nav-item">
66 <a class="nav-link" href="https://blog.ipfire.org/">{{ _("Blog") }}</a>
67 </li>
68
69 <li class="nav-item">
70 <a class="nav-link" href="https://community.ipfire.org/">{{ _("Community") }}</a>
71 </li>
72
73 <li class="nav-item">
74 <a class="nav-link {% if request.path.startswith("/download") %}active{% end %}" href="/download">{{ _("Download") }}</a>
75 </li>
76 </ul>
77
78 <a class="btn btn-primary mt-2 mt-lg-0 ml-lg-2" href="/donate">
79 {{ _("Donate") }}
80 </a>
81
82 <a class="btn btn-lwl mt-2 mt-lg-0 ml-lg-2" href="https://store.lightningwirelabs.com/">
83 {{ _("Buy") }}
84 </a>
85 </div>
86 {% elif hostname == "blog.ipfire.org" %}
87 <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbar"
88 aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
89 <span class="fas fa-bars"></span>
90 </button>
91
92 <div class="collapse navbar-collapse" id="navbar">
93 <ul class="navbar-nav ml-auto d-lg-none">
94 <li class="nav-item">
95 <a class="nav-link {% if request.path == "/" %}active{% end %}" href="/">
96 {{ _("Newest") }}
97 </a>
98 </li>
99
100 {% if current_user %}
101 <li class="nav-item">
102 <a class="nav-link {% if request.path == "/drafts" %}active{% end %}" href="/drafts">
103 {{ _("My Drafts") }}
104 </a>
105 </li>
106 {% end %}
107
108 <li class="nav-item">
109 <a class="nav-link {% if request.path == "/tags/featured" %}active{% end %}" href="/tags/featured">
110 {{ _("Featured") }}
111 </a>
112 </li>
113
114 <li class="nav-item">
115 <a class="nav-link {% if request.path == "/tags/lightningwirelabs.com" %}active{% end %} d-flex justify-content-between"
116 href="/tags/lightningwirelabs.com">
117 <span>{{ _("Lightning Wire Labs") }}</span>
118
119 <img class="img-fluid" src="{{ static_url("img/lightningwirelabs-logo.svg") }}"
120 alt="{{ _("Lightning Wire Labs") }}">
121 </a>
122 </li>
123
124 <li class="nav-item">
125 <a class="nav-link d-flex justify-content-between" href="/feed.xml">
126 <span>{{ _("RSS Feed") }}</span> <span class="fas fa-rss"></span>
127 </a>
128 </li>
129 </ul>
130
131 <form class="form-inline ml-lg-auto my-2 my-lg-0" action="/search" method="GET">
132 <input class="form-control form-control-sm" type="search" name="q"
133 placeholder="{{ _("Search...") }}" aria-label="{{ _("Search") }}" value="{% try %}{{ q }}{% except %}{% end %}">
134 </form>
135
136 <a class="btn btn-primary ml-lg-2" href="https://www.ipfire.org/donate">
137 {{ _("Donate") }}
138 </a>
139
140 <a class="btn btn-lwl mt-2 mt-lg-0 ml-lg-2" href="https://store.lightningwirelabs.com/">
141 {{ _("Buy") }}
142 </a>
143 </div>
144 {% elif hostname == "fireinfo.ipfire.org" %}
145 <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbar"
146 aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
147 <span class="fas fa-bars"></span>
148 </button>
149
150 <div class="collapse navbar-collapse" id="navbar">
151 <ul class="navbar-nav ml-auto">
152 {% if current_user and current_user.is_staff() %}
153 <li class="nav-item">
154 <a class="nav-link {% if request.path.startswith("/admin") %}active{% end %}" href="/admin">
155 {{ _("Admin") }}
156 </a>
157 </li>
158 {% end %}
159
160 <li class="nav-item">
161 <a class="nav-link {% if request.path.startswith("/vendors") %}active{% end %}" href="/vendors">
162 {{ _("Vendors") }}
163 </a>
164 </li>
165 </ul>
166 </div>
167 {% elif hostname == "location.ipfire.org" %}
168 <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbar"
169 aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
170 <span class="fas fa-bars"></span>
171 </button>
172
173 <div class="collapse navbar-collapse" id="navbar">
174 <ul class="navbar-nav ml-auto">
175 <li class="nav-item">
176 <a class="nav-link {% if request.path == "/how-to-use" %}active{% end %}" href="/how-to-use">
177 {{ _("How To Use") }}
178 </a>
179 </li>
180
181 <li class="nav-item">
182 <a class="nav-link {% if request.path == "/download" %}active{% end %}" href="/download">
183 {{ _("Download") }}
184 </a>
185 </li>
186 </ul>
187
188 <a class="btn btn-primary ml-lg-2" href="https://www.ipfire.org/donate">
189 {{ _("Donate") }}
190 </a>
191 </div>
192 {% elif hostname == "nopaste.ipfire.org" %}
193 <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbar"
194 aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
195 <span class="fas fa-bars"></span>
196 </button>
197
198 <div class="collapse navbar-collapse" id="navbar">
199 <ul class="navbar-nav ml-auto">
200 <li class="nav-item">
201 <a class="nav-link" href="/?mode=upload">{{ _("Upload File") }}</a>
202 </li>
203 </ul>
204 </div>
205 {% elif hostname == "people.ipfire.org" %}
206 {% if current_user %}
207 <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbar"
208 aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
209 <span class="fas fa-bars"></span>
210 </button>
211
212 <div class="collapse navbar-collapse" id="navbar">
213 <ul class="navbar-nav ml-auto mr-3">
214 <li class="nav-item">
215 <a class="nav-link {% if request.path == "/users/%s" % current_user.uid %}active{% end %}" href="/users/{{ current_user.uid }}">
216 {{ _("My Profile") }}
217 </a>
218 </li>
219
220 {% if current_user.is_staff() %}
221 <li class="nav-item">
222 <a class="nav-link {% if request.path == "/users" %}active{% end %}" href="/users">
223 {{ _("Users") }}
224 </a>
225 </li>
226
227 <li class="nav-item">
228 <a class="nav-link {% if request.path.startswith("/groups") %}active{% end %}" href="/groups">
229 {{ _("Groups") }}
230 </a>
231 </li>
232
233 <li class="nav-item">
234 <a class="nav-link {% if request.path == "/stats" %}active{% end %}" href="/stats">
235 {{ _("Stats") }}
236 </a>
237 </li>
238 {% end %}
239
240 {% if current_user.has_sip() %}
241 <li class="nav-item">
242 <a class="nav-link {% if request.path.startswith("/conferences") %}active{% end %}" href="/conferences">
243 {{ _("Conferences") }}
244 </a>
245 </li>
246 {% end %}
247 </ul>
248
249 <form class="form-inline my-2 my-lg-0" action="/search" method="GET">
250 <input class="form-control form-control-sm mr-sm-2" type="search" name="q"
251 placeholder="{{ _("Search") }}" aria-label="{{ _("Search") }}" value="{% try %}{{ q }}{% except %}{% end %}">
252 </form>
253 </div>
254 {% end %}
255 {% elif hostname == "wiki.ipfire.org" %}
256 <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbar"
257 aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
258 <span class="fas fa-bars"></span>
259 </button>
260
261 <div class="collapse navbar-collapse" id="navbar">
262 <form class="form-inline ml-auto my-2 my-lg-0" action="/search" method="GET">
263 <input class="form-control form-control-sm" type="search" name="q"
264 placeholder="{{ _("Search...") }}" aria-label="{{ _("Search") }}" value="{% try %}{{ q }}{% except %}{% end %}">
265 </form>
266
267 <a class="btn btn-primary ml-lg-2" href="https://www.ipfire.org/donate">
268 {{ _("Donate") }}
269 </a>
270
271 <a class="btn btn-lwl mt-2 mt-lg-0 ml-lg-2" href="https://store.lightningwirelabs.com/">
272 {{ _("Buy") }}
273 </a>
274 </div>
275 {% end %}
276 {% end block %}
277 </div>
278 </nav>
279
280 {% block container %}
281 <div class="container">
282 {% block content %}{% end block %}
283 </div>
284 {% end block %}
285
286 {% block footer %}
287 <footer>
288 <div class="footer">
289 {% if hostname in ("www.ipfire.org", "dev.ipfire.org") %}
290 <div class="footer-info">
291 <div class="container pb-3">
292 <div class="row mb-6 justify-content-between">
293 <div class="col-12 col-lg-4 mb-4">
294 <a class="btn btn-primary btn-block mb-3" href="https://people.ipfire.org/register">
295 {{ _("Join Us To Stay Up To Date") }}
296 </a>
297
298 <p>
299 {{ _("Sign up to our community to take part and get the latest news") }}
300 </p>
301 </div>
302
303 <div class="col-12 col-lg-3 mb-4 small">
304 <h6>{{ _("Looking For More?") }}</h6>
305
306 <div class="row">
307 <div class="col">
308 <ul class="list-unstyled">
309 <li>
310 <a href="/features">{{ _("Features") }}</a>
311 </li>
312
313 <li>
314 <a href="/support">{{ _("Support") }}</a>
315 </li>
316
317 <li>
318 <a href="https://wiki.ipfire.org/devel">{{ _("Development") }}</a>
319 </li>
320 </ul>
321 </div>
322
323 <div class="col">
324 <ul class="list-unstyled">
325 <li>
326 <a href="/download">{{ _("Download") }}</a>
327 </li>
328
329 <li>
330 <a href="https://blog.ipfire.org">{{ _("Blog") }}</a>
331 </li>
332
333 <li>
334 <a href="https://community.ipfire.org/">{{ _("Community") }}</a>
335 </li>
336 </ul>
337 </div>
338 </div>
339 </div>
340
341 <div class="col-12 col-lg-4 text-center mb-4">
342 <div class="btn-toolbar justify-content-center">
343 <a class="btn btn-primary btn-lg px-4 my-3" href="/donate">
344 {{ _("Donate") }}
345 </a>
346
347 <a class="btn btn-lwl btn-lg px-4 my-3 ml-2" href="https://store.lightningwirelabs.com/">
348 {{ _("Buy") }}
349 </a>
350 </div>
351
352 <div class="btn-toolbar justify-content-center">
353 <a class="btn btn-link" href="https://twitter.com/ipfire">
354 <span class="fab fa-twitter"></span>
355 </a>
356
357 <a class="btn btn-link" href="https://www.facebook.com/IPFire.org">
358 <span class="fab fa-facebook"></span>
359 </a>
360
361 <a class="btn btn-link" href="https://youtube.com/user/ipfireproject">
362 <span class="fab fa-youtube"></span>
363 </a>
364 </div>
365 </div>
366 </div>
367 </div>
368 </div>
369 {% elif hostname == "wiki.ipfire.org" %}
370 <div class="footer-info">
371 <div class="container pb-3">
372 <ul class="list-inline">
373 <li class="list-inline-item">
374 <a href="/watchlist">{{ _("My Watchlist") }}
375 </li>
376
377 <li class="list-inline-item">
378 <a href="/recent-changes">{{ _("Recent Changes") }}
379 </li>
380
381 <li class="list-inline-item">
382 <a href="/tree">{{ _("Tree") }}
383 </li>
384 </ul>
385 </div>
386 </div>
387 {% end %}
388
389 <div class="copyright">
390 <div class="container">
391 <div class="row flex-lg-row-reverse">
392 <div class="col-12 col-lg-6 text-center text-lg-right">
393 {% if not current_user and hostname in ("blog.ipfire.org", "fireinfo.ipfire.org", "nopaste.ipfire.org", "wiki.ipfire.org") %}
394 <a href="/login">{{ _("Login") }}</a>
395 {% elif current_user %}
396 <p class="mb-0">
397 <span class="mr-2">
398 {{ _("You are currently logged in as %s") % current_user }}
399 </span>
400
401 <a href="/logout">{{ _("Logout") }}</a>
402 </p>
403 {% end %}
404 </div>
405
406 <div class="col-12 col-lg-6 text-center text-lg-left">
407 &copy; {{ year }} - IPFire - {{ _("The Open Source Firewall") }}
408 - <a href="https://www.ipfire.org/legal">{{ _("Legal") }}</a>
409 </div>
410 </div>
411 </div>
412 </div>
413 </div>
414 </footer>
415 {% end block %}
416
417 <script src="{{ static_url("js/jquery-3.3.1.min.js") }}"></script>
418 <script src="{{ static_url("js/popper.min.js") }}"></script>
419 <script src="{{ static_url("js/bootstrap.min.js") }}"></script>
420 {% block javascript %}{% end block %}
421 </body>
422 </html>