]> git.ipfire.org Git - people/shoehn/ipfire.org.git/blob - templates/fireinfo/profile-detail.html
Bootstrap 4 migration: fireinfo page (part)
[people/shoehn/ipfire.org.git] / templates / fireinfo / profile-detail.html
1 {% extends "../base.html" %}
2
3 {% block title %}{{ _("Profile") }} {{ profile.public_id }}{% end block %}
4
5 {% block body %}
6 <div class="container">
7 <section class="features-content col-12">
8 <h2 class="display-2">{{ _("Profile") }} <small>{{ profile.public_id }}</small></h2>
9
10 <div class="row">
11 <div class="col">
12 <h3>{{ profile.release }}</h3>
13
14 <p>
15 {% for zone in profile.network %}
16 {% if zone == "red" %}
17 <span class="label label-danger">{{ _("RED") }}</span>
18 {% elif zone == "green" %}
19 <span class="label label-success">{{ _("GREEN") }}</span>
20 {% elif zone == "orange" %}
21 <span class="label label-warning">{{ _("ORANGE") }}</span>
22 {% elif zone == "blue" %}
23 <span class="label label-info">{{ _("BLUE") }}</span>
24 {% end %}
25 {% end %}
26 </p>
27 </div>
28
29 <div class="col">
30 {% if profile.appliance_id %}
31 <div class="alert alert-success">
32 <p>
33 {% if profile.appliance_id.startswith("fountainnetworks-") %}
34 <span class="pull-right">
35 {{ _("Get yours at") }}
36 <a href="//www.fountainnetworks.com/" class="alert-link">
37 fountainnetworks.com
38 </a>
39 </span>
40 {% elif profile.appliance_id.startswith("lightningwirelabs-") %}
41 <span class="pull-right">
42 {{ _("Get yours at") }}
43 <a href="//www.lightningwirelabs.com/products/ipfire/appliances" class="alert-link">
44 lightningwirelabs.com
45 </a>
46 </span>
47 {% end %}
48
49 <strong>{{ profile.appliance }}</strong>
50 </p>
51 </div>
52 {% end %}
53 </div>
54 </div>
55
56 <div class="row">
57 <div class="col">
58 <h4><a href="/statistics/processors">{{ _("Processor") }}</a></h4>
59 <p><strong>{{ profile.processor }}</strong></p>
60 {% if profile.processor.count >= 2 %}
61 <p>
62 {% if profile.processor.count == 2 %}
63 {{ _("Dual-core processor") }}
64 {% elif profile.processor.count == 4 %}
65 {{ _("Quad-core processor") }}
66 {% elif profile.processor.count == 8 %}
67 {{ ("Octo-core processor") }}
68 {% else %}
69 {{ _("%s core processor") % profile.processor.count }}
70 {% end %}
71
72 {% if profile.processor.uses_ht() %}
73 {% if profile.processor.vendor == "Intel" %}
74 {{ _("using Intel Hyper-Threading Technology") }}
75 {% else %}
76 {{ _("with %s logical cores") % profile.processor.core_count }}
77 {% end %}
78 {% end %}
79 </p>
80 {% end %}
81
82 <ul class="list-inline">
83 <li>
84 <strong>{{ _("Supported features") }}:</strong>
85 </li>
86 {% for cap, available in profile.processor.capabilities %}
87 <li>
88 <span class="label {% if available is None %}label-default{% elif available %}label-success{% else %}label-danger{% end %}">
89 {% if cap == "64bit" %}
90 {{ _("64 bit") }}
91 {% elif cap == "aes" %}
92 {{ _("AES-NI") }}
93 {% elif cap == "nx" %}
94 {{ _("NX") }}
95 {% elif cap == "pae" %}
96 {{ _("PAE") }}
97 {% elif cap == "rdrand" %}
98 {{ _("RDRAND") }}
99 {% elif cap == "virt" %}
100 {{ _("VT-x/AMD-V") }}
101 {% end %}
102 </span>
103 </li>
104 {% end %}
105 </ul>
106 </div>
107
108 <div class="col">
109 <dl class="dl-horizontal">
110 {% if profile.virtual %}
111 <dt>
112 <a href="/statistics/virtual">{{ _("Hypervisor") }}</a>
113 </dt>
114 <dd>
115 {% if profile.hypervisor == "VMWare" %}
116 {{ _("VMware") }}
117 {% elif profile.hypervisor is None %}
118 {{ _("Unknown") }}
119 {% else %}
120 {{ profile.hypervisor }}
121 {% end %}
122 </dd>
123 {% elif not profile.appliance_id and profile.system %}
124 {% if profile.system_vendor %}
125 <dt>{{ _("Vendor") }}</dt>
126 <dd>{{ profile.system_vendor }}</dd>
127 {% end %}
128
129 {% if profile.system_model %}
130 <dt>{{ _("Model") }}</dt>
131 <dd>{{ profile.system_model }}</dd>
132 {% end %}
133 {% end %}
134
135 {% if profile.memory %}
136 <dt>
137 <a href="/statistics/memory">{{ _("Memory") }}</a>
138 </dt>
139 <dd>
140 {% if profile.memory <= (256 * 1024 ** 2) %}
141 <span class="text-danger">
142 {% elif profile.memory >= 1024 ** 3 %}
143 <span class="text-success">
144 {% else %}
145 <span class="text-warning">
146 {% end %}
147 {{ format_size(profile.memory) }}
148 </span>
149 </dd>
150 {% end %}
151
152 {% if profile.storage %}
153 <dt>{{ _("System Storage") }}</dt>
154 <dd>{{ format_size(profile.storage) }}</dd>
155 {% end %}
156
157 {% if profile.kernel %}
158 <dt>{{ _("Kernel") }}</dt>
159 <dd>{{ profile.kernel }}</dd>
160 {% end %}
161
162 {% if profile.location %}
163 <dt>
164 <a href="/statistics/geo-locations">{{ _("Location") }}</a>
165 </dt>
166 <dd>
167 {{ profile.location_string }}
168 </dd>
169 {% end %}
170
171 {% if profile.language %}
172 <dt>
173 <a href="/statistics/languages">{{ _("Language") }}</a>
174 </dt>
175 <dd>{% module LanguageName(profile.language) %}</dd>
176 {% end %}
177 </dl>
178 </div>
179 </div>
180
181 <div class="row">
182 <div class="col">
183 {% if profile.devices %}
184 {% module FireinfoDeviceAndGroupsTable([d for d in profile.devices if d.is_showable()]) %}
185 <hr>
186 {% end %}
187 </div>
188 </div>
189
190 <div class="row">
191 <div class="col">
192 <h3>{{ _("Signature images") }}</h3>
193 <ul class="list-unstyled">
194 {% for i in range(1) %}
195 <li>
196 <!-- XXX need some bbcode here -->
197 <a href="//i-use.ipfire.org/profile/{{ profile.public_id }}/{{ i }}.png">
198 <img src="//i-use.ipfire.org/profile/{{ profile.public_id }}/{{ i }}.png"
199 alt="{{ _("Signature image") }}" />
200 </a>
201 </li>
202 {% end %}
203 </ul>
204 </div>
205 <div class="col">
206 <p>{{ _("Last update") }}: {{ locale.format_date(profile.time_updated) }}</p>
207 </div>
208 </div>
209 </section>
210 </div>
211 {% end block %}