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