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