NobGit
public nobgit read

NobMail

Based on mailcow: dockerized

Languages

Repository composition by tracked source files.

PHP
PHP 49% JavaScript 35% HTML 9% CSS 4% Shell 2% Python 1% Lua 0% Perl 0% Ruby 0% SCSS 0%
Create file Wiki Documentation
Clone
https://nobgit.com/orgs/nobgit/nobmail.git
ssh://[email protected]:2222/orgs/nobgit/nobmail.git

Commit

add loading animation for container charts

3d82d9af
FreddleSpl0it <[email protected]> 3 years, 10 months ago
data/web/js/site/debug.js     | 14 ++++++++++++--
 data/web/templates/debug.twig | 28 ++++++++++++++++++++--------
 2 files changed, 32 insertions(+), 10 deletions(-)

Diff

diff --git a/data/web/js/site/debug.js b/data/web/js/site/debug.js
index 1e633673..deb0215e 100644
--- a/data/web/js/site/debug.js
+++ b/data/web/js/site/debug.js
@@ -1129,8 +1129,16 @@ function update_container_stats(timeout=5){
         console.log(container);
         console.log(data);
         prev_stats = null;
-        if (data.length >= 2)
-          prev_stats = data[data.length -2]
+        if (data.length >= 2){
+          prev_stats = data[data.length -2];
+
+          // hide spinners if we collected enough data
+          $('#' + container + "_DiskIOChart").removeClass('d-none');
+          $('#' + container + "_DiskIOChart").prev().addClass('d-none');
+          $('#' + container + "_NetIOChart").removeClass('d-none');
+          $('#' + container + "_NetIOChart").prev().addClass('d-none');
+        }
+          
         data = data[data.length -1];
 
         if (prev_stats != null){
@@ -1387,6 +1395,8 @@ function createHostCpuAndMemChart(){
 }
 // check for mailcow updates
 function check_update(current_version, github_repo_url){
+  if (!current_version || !github_repo_url) return false; 
+
   var github_account = github_repo_url.split("/")[3];
   var github_repo_name = github_repo_url.split("/")[4];
 
diff --git a/data/web/templates/debug.twig b/data/web/templates/debug.twig
index 64a3376e..fd917ccf 100644
--- a/data/web/templates/debug.twig
+++ b/data/web/templates/debug.twig
@@ -210,13 +210,19 @@
                         <span class="d-block">{{ lang.debug.solr_dead }}</span>
                         {% endif %}
                       </div>
-                      <div class="mt-4 col-sm-12 col-md-6">
+                      <div class="mt-4 col-sm-12 col-md-6 d-flex flex-column">
                         <h6>Disk I/O</h6>
-                        <canvas id="solr-mailcow_DiskIOChart" width="400" height="200"></canvas>
+                        <div class="spinner-border my-4 mx-auto" role="status">
+                          <span class="visually-hidden">Loading...</span>
+                        </div>
+                        <canvas class="d-none" id="solr-mailcow_DiskIOChart" width="400" height="200"></canvas>
                       </div>
-                      <div class="mt-4 col-sm-12 col-md-6">
+                      <div class="mt-4 col-sm-12 col-md-6 d-flex flex-column">
                         <h6>Net I/O</h6>
-                        <canvas id="solr-mailcow_NetIOChart" width="400" height="200"></canvas>
+                        <div class="spinner-border my-4 mx-auto" role="status">
+                          <span class="visually-hidden">Loading...</span>
+                        </div>
+                        <canvas class="d-none" id="solr-mailcow_NetIOChart" width="400" height="200"></canvas>
                       </div>
                       <div class="col-sm-12 d-flex" style="height: 40px">
                         <a href data-bs-toggle="modal" 
@@ -273,13 +279,19 @@
                       </div>
                       <div class="collapse p-0 list-group-details container-details-collapse" id="{{ container }}Collapse" data-id="{{ container_info.Id }}">   
                         <div class="row p-2 pt-4">   
-                          <div class="mt-4 col-sm-12 col-md-6">
+                          <div class="mt-4 col-sm-12 col-md-6 d-flex flex-column">
                             <h6>Disk I/O</h6>
-                            <canvas id="{{ container }}_DiskIOChart" width="400" height="200"></canvas>
+                            <div class="spinner-border my-4 mx-auto" role="status">
+                              <span class="visually-hidden">Loading...</span>
+                            </div>
+                            <canvas class="d-none" id="{{ container }}_DiskIOChart" width="400" height="200"></canvas>
                           </div>
-                          <div class="mt-4 col-sm-12 col-md-6">
+                          <div class="mt-4 col-sm-12 col-md-6 d-flex flex-column">
                             <h6>Net I/O</h6>
-                            <canvas id="{{ container }}_NetIOChart" width="400" height="200"></canvas>
+                            <div class="spinner-border my-4 mx-auto" role="status">
+                              <span class="visually-hidden">Loading...</span>
+                            </div>
+                            <canvas class="d-none" id="{{ container }}_NetIOChart" width="400" height="200"></canvas>
                           </div>   
                           <div class="col-12 d-flex" style="height: 40px">             
                             <a href data-bs-toggle="modal"