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