]>
Commit | Line | Data |
---|---|---|
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> | |
2c39be74 | 29 | {% if request.path.startswith("/projects/location") %} |
6c6de80a | 30 | {% module IPFireLogo("Location") %} |
1c85f44b | 31 | {% elif hostname.startswith("fireinfo.") %} |
6c6de80a | 32 | {% module IPFireLogo("Fireinfo") %} |
1c85f44b | 33 | {% elif hostname.startswith("nopaste.") %} |
6c6de80a | 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" | |
65 | name="q" {% if "q" in locals() and q %}value="{{ q }}"{% end %} | |
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" | |
81 | name="q" {% if "q" in locals() and 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 MT |
92 | {# Location #} |
93 | {% if request.path.startswith("/projects/location") %} | |
94 | <a class="navbar-item is-tab | |
95 | {% if request.path == "/projects/location/how-to-use" %}is-active{% end %}" | |
96 | href="/projects/location/how-to-use"> | |
97 | {{ _("How To Use") }} | |
98 | </a> | |
99 | ||
100 | <a class="navbar-item is-tab | |
101 | {% if request.path.startswith("/projects/location/download") %}is-active{% end %}" | |
102 | href="/projects/location/download"> | |
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 MT |
120 | <a class="button is-lwl has-text-weight-bold is-uppercase" |
121 | href="https://store.lightningwirelabs.com/?utm_source={{ hostname }}&utm_medium=navigation"> | |
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> |
5ca4155d | 159 | {% elif hostname.startswith("fireinfo.") %} |
ae6c248d MT |
160 | <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbar" |
161 | aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation"> | |
162 | <span class="fas fa-bars"></span> | |
163 | </button> | |
164 | ||
165 | <div class="collapse navbar-collapse" id="navbar"> | |
166 | <ul class="navbar-nav ml-auto"> | |
167 | {% if current_user and current_user.is_staff() %} | |
71a3109c | 168 | <li class="nav-item"> |
488a670b | 169 | <a class="nav-link {% if request.path.startswith("/admin") %}is-active{% end %}" href="/admin"> |
ae6c248d | 170 | {{ _("Admin") }} |
71a3109c MT |
171 | </a> |
172 | </li> | |
ae6c248d | 173 | {% end %} |
f9f085e0 | 174 | |
ae6c248d | 175 | <li class="nav-item"> |
488a670b | 176 | <a class="nav-link {% if request.path.startswith("/vendors") %}is-active{% end %}" href="/vendors"> |
ae6c248d MT |
177 | {{ _("Vendors") }} |
178 | </a> | |
179 | </li> | |
180 | </ul> | |
181 | </div> | |
5ca4155d | 182 | {% elif hostname.startswith("nopaste.") %} |
ae6c248d MT |
183 | <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbar" |
184 | aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation"> | |
185 | <span class="fas fa-bars"></span> | |
186 | </button> | |
187 | ||
188 | <div class="collapse navbar-collapse" id="navbar"> | |
189 | <ul class="navbar-nav ml-auto"> | |
190 | <li class="nav-item"> | |
191 | <a class="nav-link" href="/?mode=upload">{{ _("Upload File") }}</a> | |
192 | </li> | |
193 | </ul> | |
194 | </div> | |
ae6c248d MT |
195 | {% end %} |
196 | {% end block %} | |
adfebfd5 | 197 | </div> |
ae6c248d MT |
198 | </div> |
199 | </nav> | |
adfebfd5 | 200 | |
13522567 RH |
201 | <div class="is-flex-grow-1 is-flex-shrink-0"> |
202 | {% block container %} | |
203 | <div class="container"> | |
204 | {% block content %}{% end block %} | |
205 | </div> | |
206 | {% end block %} | |
207 | </div> | |
60024cc8 | 208 | |
9b5ac075 | 209 | {% block footer %} |
13522567 | 210 | <footer class="footer is-flex-shrink-0"> |
dcfd17ce | 211 | <div class="container"> |
40ab030c | 212 | <div class="level is-mobile"> |
df8781ae MT |
213 | <div class="level-left"> |
214 | <div class="level-item"> | |
215 | {{ year }} © IPFire.org | |
c41e24c1 | 216 | </div> |
dfd0d4cf | 217 | |
df8781ae MT |
218 | <div class="level-item"> |
219 | <a href="/legal">{{ _("Legal") }}</a> | |
c41e24c1 | 220 | </div> |
dcfd17ce | 221 | |
df8781ae MT |
222 | <div class="level-item"> |
223 | <a href="/sitemap">{{ _("Sitemap") }}</a> | |
c41e24c1 | 224 | </div> |
dcfd17ce | 225 | </div> |
4235ba55 | 226 | |
df8781ae MT |
227 | <div class="level-right"> |
228 | <div class="level-item"> | |
229 | <a href="https://social.ipfire.org/@news" title="{{ _("Mastodon") }}"> | |
230 | <i class="fa-brands fa-mastodon px-2"></i> | |
231 | </a> | |
dcfd17ce | 232 | </div> |
df8781ae MT |
233 | <div class="level-item"> |
234 | <a href="https://twitter.com/ipfire" title="{{ _("Twitter") }}"> | |
235 | <i class="fa-brands fa-twitter px-2"></i> | |
236 | </a> | |
237 | </div> | |
238 | <div class="level-item"> | |
239 | <a href="https://linkedin.com/company/ipfire" title="{{ _("LinkedIn") }}"> | |
240 | <i class="fa-brands fa-linkedin-in px-2"></i> | |
241 | </a> | |
02040293 | 242 | </div> |
0509f6fd | 243 | </div> |
df8781ae | 244 | </div> |
9b5ac075 MT |
245 | </div> |
246 | </footer> | |
60024cc8 | 247 | {% end block %} |
45f1004c | 248 | |
bd688657 | 249 | <script src="{{ static_url("js/jquery-3.6.0.min.js") }}"></script> |
92dac2e9 | 250 | <script src="{{ static_url("js/site.js") }}"></script> |
9f043320 | 251 | {% block javascript %}{% end block %} |
81675874 | 252 | </body> |
d4a18e83 | 253 | </html> |