]> git.ipfire.org Git - ipfire.org.git/commitdiff
fireinfo: Show virtualization stats on index page
authorMichael Tremer <michael.tremer@ipfire.org>
Tue, 30 Oct 2018 12:32:35 +0000 (12:32 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Tue, 30 Oct 2018 12:32:35 +0000 (12:32 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/scss/_variables.scss
src/scss/style.scss
src/templates/fireinfo/index.html
src/templates/modules/progress-bar.html
src/web/fireinfo.py

index 8a1eabfc4dc233a79df517821e9def158c16713e..fadbb1504bb5fda6bd4534224f39c9fbb6d6bcca 100644 (file)
@@ -54,6 +54,8 @@ $font-size-base:                      1.125rem;
 $lead-font-size:                       1.5rem;
 $small-font-size:                      87.5%;
 
+$line-height-base:                     1.5;
+
 // Headings
 $headings-font-weight:         500;
 $headings-line-height:         1.15;
@@ -85,3 +87,6 @@ $input-btn-padding-y:         .5rem;
 
 // Buttons
 $btn-border-width:                     3px;
+
+// Progress
+$progress-height:                      1rem * $line-height-base;
index 59380259bad63d56bd55eca1f70ae94e93623e76..6dd9334000e4ffdbeefe5d472e3446b91fc56271 100644 (file)
@@ -237,10 +237,6 @@ hr.divider {
        margin-bottom: 3rem;
 }
 
-.progress {
-       background-color: rgba(255, 255, 255, .2);
-}
-
 .circle {
        position: relative;
        p.fireinfo_per {
index 86376d9a4e89185f78d6c4797ea63d9236d78060..45247aa663015964719141381253c497263876ea 100644 (file)
@@ -19,7 +19,7 @@
        </section>
 
        <div class="container">
-               <div class="row justify-content-center">
+               <div class="row justify-content-center my-5">
                        <div class="col-12 col-sm-8 col-lg-6 col-xl-4">
                                <a class="btn btn-primary btn-lg btn-block" href="/profile/random">
                                        {{ _("Show a Random Profile") }}
                        </div>
                </div>
        </div>
+
+       <section class="inverse">
+               <div class="container">
+                       <div class="row">
+                               <div class="col-12 col-md-6 flex-column align-items-center text-center text-md-right">
+                                       <h1 class="display-1 text-primary mb-0">
+                                               {{ "%.2f%%" % (virtual_ratio * 100) }}
+                                       </h1>
+
+                                       <h5>{{ _("of all IPFire systems are running in a virtual environment") }}</h5>
+                               </div>
+
+                               <div class="col-12 col-md-6">
+                                       <p>
+                                               {{ _("The top vendors of hypervisors are") }}
+                                       </p>
+
+                                       <dl class="row">
+                                               {% for name, percentage in hypervisors %}
+                                                       {% if percentage >= 0.1 %}
+                                                               <dt class="col-sm-3">
+                                                                       {% if name == "unknown" %}
+                                                                               <span class="text-muted">{{ _("Unknown") }}</span>
+                                                                       {% elif name == "VMWare" %}
+                                                                               VMware
+                                                                       {% else %}
+                                                                               {{ name }}
+                                                                       {% end %}
+                                                               </dt>
+                                                               <dd class="col-sm-9">
+                                                                       {% module ProgressBar(percentage, "primary") %}
+                                                               </dd>
+                                                       {% end %}
+                                               {% end %}
+                                       </dl>
+                               </div>
+                       </div>
+               </div>
+       </section>
 {% end block %}
index cc121635c0e16bc47f7e4cac917f84e73f1bb2f0..4be7f6ddbafd3a8fbf97fa8b356b49e2261fc37a 100644 (file)
@@ -1,7 +1,14 @@
-<div class="progress">
-       <div class="progress-bar {% if colour %}{{ "progress-bar-%s" % colour }}{% end %}"
-                       role="progressbar" aria-valuenow="{{ "%.0f" % value }}"
-                       aria-valuemin="0" aria-valuemax="100" style="width: {{ "%.2f" % value }}%;">
+<div class="row">
+       <div class="col-4 col-sm-3 col-lg-2 text-right">
                {{ "%.2f" % value }}%
        </div>
+
+       <div class="col">
+               <div class="progress">
+                       <div class="progress-bar {% if colour %}{{ "progress-bar-%s" % colour }}{% end %}"
+                                       role="progressbar" aria-valuenow="{{ "%.0f" % value }}"
+                                       aria-valuemin="0" aria-valuemax="100" style="width: {{ "%.2f" % value }}%;">
+                       </div>
+               </div>
+       </div>
 </div>
index 02156e427f78020f29a8161c54c31d4e12be8af2..03cc15ca940b2aa6b63e2425936d90bf19cc1408 100644 (file)
@@ -154,10 +154,15 @@ class ProfileSendHandler(BaseHandler):
 
 class IndexHandler(BaseHandler):
        def get(self):
+               data = {
+                       "hypervisors"   : self.fireinfo.get_hypervisor_map(when=self.when),
+                       "virtual_ratio" : self.fireinfo.get_virtual_ratio(when=self.when),
+               }
+
                # Cache for 1h
                self.set_expires(3600)
 
-               self.render("fireinfo/index.html")
+               self.render("fireinfo/index.html", **data)
 
 
 class DriverDetail(BaseHandler):