]> git.ipfire.org Git - ipfire.org.git/blame - src/templates/base.html
base: updated to new fireinfo nav path
[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 9
662c7910
MT
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
60024cc8 16 <!-- styling stuff -->
07064256 17 <link rel="stylesheet" type="text/css" href="{{ static_url("main.css") }}" />
9f868512 18 <meta name="viewport" content="width=device-width, initial-scale=1.0">
940227cb 19
a1bf2f6c 20 {% block head %}{% end block %}
81675874 21 </head>
60024cc8 22
13522567 23 <body class="is-flex is-flex-direction-column">
ae6c248d
MT
24 <nav class="navbar" role="navigation" aria-label="main navigation">
25 <div class="container">
26 <div class="navbar-brand">
27 <a class="navbar-item is-size-4" href="/">
28 <strong>
5b3abeec 29 {% if request.path.startswith("/location") %}
6c6de80a 30 {% module IPFireLogo("Location") %}
d7164528 31 {% elif request.path.startswith("/fireinfo") %}
6c6de80a 32 {% module IPFireLogo("Fireinfo") %}
1c85f44b 33 {% elif hostname.startswith("nopaste.") %}
1c1d1a96 34 {% module IPFireLogo("NoPaste") %}
2c39be74 35 {% else %}
6c6de80a 36 {% module IPFireLogo() %}
2c39be74 37 {% end %}
ae6c248d
MT
38 </strong>
39 </a>
51c032a4 40
ae6c248d
MT
41 <a role="button" class="navbar-burger" aria-label="menu" aria-expanded="false" data-target="navbarMainMenu">
42 <span aria-hidden="true"></span>
43 <span aria-hidden="true"></span>
44 <span aria-hidden="true"></span>
45 </a>
46 </div>
47 <div class="navbar-menu" id="navbarMainMenu">
48 {% block menu %}
49 {% if hostname.startswith("www.") or hostname.startswith("dev.") %}
50 <div class="navbar-end">
815f98e4
MT
51 {# Show a search bar for blog #}
52 {% if request.path.startswith("/blog") %}
b6106fd7
MT
53 {# Navigation for Blog Authors #}
54 {% if current_user and current_user.is_blog_author() %}
57ed5a48 55 <a class="navbar-item is-tab {% if request.path == "/blog/drafts" %}is-active{% end %}" href="/blog/drafts">
b6106fd7
MT
56 {{ _("My Drafts") }}
57 </a>
58 {% end %}
59
815f98e4
MT
60 <div class="navbar-item">
61 <form action="/blog" method="GET">
62 <div class="field">
63 <div class="control has-icons-left">
64 <input class="input" type="text"
0fb1a1fc 65 name="q" {% if q %}value="{{ q }}"{% end %}
815f98e4
MT
66 placeholder="{{ _("Search Blog...") }}">
67 <span class="icon is-small is-left">
68 <i class="fas fa-search"></i>
69 </span>
70 </div>
71 </div>
72 </form>
73 </div>
51c032a4 74 {# Show a search bar for docs #}
815f98e4 75 {% elif request.path.startswith("/docs") %}
51c032a4
MT
76 <div class="navbar-item">
77 <form action="/docs/search" method="GET">
78 <div class="field">
79 <div class="control has-icons-left">
80 <input class="input" type="text"
0fb1a1fc 81 name="q" {% if q %}value="{{ q }}"{% end %}
ff787277 82 placeholder="{{ _("Search Documentation...") }}">
51c032a4
MT
83 <span class="icon is-small is-left">
84 <i class="fas fa-search"></i>
85 </span>
86 </div>
87 </div>
88 </form>
89 </div>
90 {% end %}
91
2c39be74 92 {# Location #}
d7164528 93 {% if request.path.startswith("/location") %}
2c39be74 94 <a class="navbar-item is-tab
d7164528
RH
95 {% if request.path == "/location/how-to-use" %}is-active{% end %}"
96 href="/location/how-to-use">
2c39be74
MT
97 {{ _("How To Use") }}
98 </a>
99
100 <a class="navbar-item is-tab
d7164528
RH
101 {% if request.path.startswith("/location/download") %}is-active{% end %}"
102 href="/location/download">
2c39be74
MT
103 {{ _("Download") }}
104 </a>
105
106 {# Main #}
107 {% else %}
108 <a class="navbar-item is-tab {% if request.path == "/about" %}is-active{% end %}" href="/about">{{ _("About") }}</a>
907afa34 109
2c39be74 110 <a class="navbar-item is-tab {% if request.path.startswith("/docs") %}is-active{% end %}" href="/docs">{{ _("Documentation") }}</a>
d4a18e83 111
2c39be74 112 <a class="navbar-item is-tab {% if request.path.startswith("/download") %}is-active{% end %}" href="/download">{{ _("Download") }}</a>
907afa34 113
2c39be74 114 <a class="navbar-item is-tab {% if request.path.startswith("/blog") %}is-active{% end %}" href="/blog">{{ _("Blog") }}</a>
adfebfd5 115
2c39be74
MT
116 <a class="navbar-item is-tab {% if request.path == "/help" %}is-active{% end %}" href="/help">{{ _("Help") }}</a>
117 {% end %}
ae6c248d
MT
118
119 <div class="navbar-item">
b685910c 120 <a class="button is-lwl has-text-weight-bold is-uppercase"
465153a4 121 href="https://store.lightningwirelabs.com/?utm_source={{ hostname }}&amp;utm_medium=navigation">
b685910c
MT
122 {{ _("Buy") }}
123 </a>
907afa34 124 </div>
adfebfd5 125
ae6c248d 126 <div class="navbar-item">
b685910c 127 <a class="button is-primary has-text-weight-bold is-uppercase"
5ea9f157 128 href="/donate">
b685910c
MT
129 {{ _("Donate") }}
130 </a>
ae6c248d 131 </div>
c41e24c1
MT
132
133 {% if current_user %}
134 <div class="navbar-item has-dropdown is-hoverable">
135 <a class="navbar-link is-arrowless" href="/users/{{ current_user.uid }}">
136 <figure class="image">
137 <img class="is-rounded" style="width: auto" src="{{ current_user.avatar_url(128) }}">
138 </figure>
139 </a>
140
141 <div class="navbar-dropdown">
9b3241e7
MT
142 <a class="navbar-item" href="/users/{{ current_user.uid }}/passwd">
143 {{ _("Change Password") }}
144 </a>
145
146 <hr class="navbar-divider">
147
c41e24c1
MT
148 <a class="navbar-item" href="/logout">
149 {{ _("Logout")}}
150 </a>
151 </div>
c41e24c1 152 </div>
1333b18c 153 {% else %}
7eedfe6f 154 <a class="navbar-item is-tab" href="/login?next={{ request.path }}">
1333b18c
MT
155 <i class="fas fa-right-to-bracket" title="{{ _("Login") }}"></i>
156 </a>
c41e24c1 157 {% end %}
ae6c248d 158 </div>
d7164528 159 {% elif request.path.startswith("/fireinfo") %}
55554b04
RH
160 <div class="navbar-end">
161 {% if current_user and current_user.is_staff() %}
162 <a class="navbar-item is-tab {% if request.path.startswith("/admin") %}is-active{% end %}" href="/admin">
163 {{ _("Admin") }}
164 </a>
165 {% end %}
f9f085e0 166
55554b04
RH
167 <a class="navbar-item is-tab {% if request.path.startswith("/vendors") %}is-active{% end %}" href="/vendors">
168 {{ _("Vendors") }}
169 </a>
ae6c248d 170 </div>
7d9f87a2
MT
171 {% elif hostname.startswith("nopaste.") %}
172 <div class="navbar-end">
173 <a class="navbar-item is-tab {% if request.path == "/" %}is-active{% end %}" href="/">
174 {{ _("Paste") }}
175 </a>
176
177 <a class="navbar-item is-tab {% if request.path == "/upload" %}is-active{% end %}" href="/upload">
178 {{ _("Upload") }}
179 </a>
180 </div>
ae6c248d
MT
181 {% end %}
182 {% end block %}
adfebfd5 183 </div>
ae6c248d
MT
184 </div>
185 </nav>
adfebfd5 186
13522567
RH
187 <div class="is-flex-grow-1 is-flex-shrink-0">
188 {% block container %}
189 <div class="container">
190 {% block content %}{% end block %}
191 </div>
192 {% end block %}
193 </div>
60024cc8 194
9b5ac075 195 {% block footer %}
13522567 196 <footer class="footer is-flex-shrink-0">
dcfd17ce 197 <div class="container">
6fdc2a48
MT
198 {% if request.path == "/docs" %}
199 <div class="level">
200 <div class="level-left">
201 <div class="level-item">
79724110 202 <a href="/docs/recent-changes">
6fdc2a48
MT
203 {{ _("Recent Changes") }}
204 </a>
205 </div>
206
207 {% if current_user %}
208 <div class="level-item">
79724110 209 <a href="/docs/watchlist">
6fdc2a48
MT
210 {{ _("My Watchlist") }}
211 </a>
212 </div>
213 {% end %}
214
215 <div class="level-item">
79724110 216 <a href="/docs/tree">
6fdc2a48
MT
217 {{ _("Tree") }}
218 </a>
219 </div>
220 </div>
221 </div>
222 {% end %}
223
f82ce0c7 224 <div class="level">
df8781ae
MT
225 <div class="level-left">
226 <div class="level-item">
f82ce0c7
MT
227 <div class="level is-mobile">
228 <div class="level-item">
229 {{ year }} &copy; IPFire.org
230 </div>
dfd0d4cf 231
f82ce0c7
MT
232 <div class="level-item">
233 <a href="/legal">{{ _("Legal") }}</a>
234 </div>
dcfd17ce 235
8e66136b
MT
236 {% if current_user and current_user.is_admin() %}
237 <div class="level-item">
238 <a href="/analytics">{{ _("Analytics") }}</a>
239 </div>
240 {% end %}
241
f82ce0c7
MT
242 <div class="level-item">
243 <a href="/sitemap">{{ _("Sitemap") }}</a>
244 </div>
245 </div>
c41e24c1 246 </div>
dcfd17ce 247 </div>
4235ba55 248
df8781ae
MT
249 <div class="level-right">
250 <div class="level-item">
f82ce0c7
MT
251 <div class="level is-mobile">
252 <div class="level-item">
253 <a href="https://social.ipfire.org/@news" title="{{ _("Mastodon") }}">
254 <i class="fa-brands fa-mastodon px-2"></i>
255 </a>
256 </div>
257 <div class="level-item">
a491bcc9
RH
258 <a href="https://x.com/ipfire" title="{{ _("X") }}">
259 <i class="fa-brands fa-x-twitter px-2"></i>
f82ce0c7
MT
260 </a>
261 </div>
262 <div class="level-item">
263 <a href="https://linkedin.com/company/ipfire" title="{{ _("LinkedIn") }}">
264 <i class="fa-brands fa-linkedin-in px-2"></i>
265 </a>
266 </div>
4ac87764
RH
267 <div class="level-item">
268 <a href="https://www.facebook.com/IPFire.org/" title="{{ _("Facebook") }}">
269 <i class="fa-brands fa-facebook-f px-2"></i>
270 </a>
271 </div>
f82ce0c7 272 </div>
02040293 273 </div>
0509f6fd 274 </div>
df8781ae 275 </div>
9b5ac075
MT
276 </div>
277 </footer>
60024cc8 278 {% end block %}
45f1004c 279
bd688657 280 <script src="{{ static_url("js/jquery-3.6.0.min.js") }}"></script>
92dac2e9 281 <script src="{{ static_url("js/site.js") }}"></script>
9f043320 282 {% block javascript %}{% end block %}
81675874 283 </body>
d4a18e83 284</html>