Browse Source

Fix total clock-time calculation in query table

Fixes issue #6844
Spyros Seimenis 3 years ago
parent
commit
e76f0d75ef
2 changed files with 13 additions and 1 deletions
  1. 1 1
      src/main/frontend/components/query_table.cljs
  2. 12 0
      src/main/frontend/util/clock.cljs

+ 1 - 1
src/main/frontend/components/query_table.cljs

@@ -127,7 +127,7 @@
          [:tr.cursor
           (for [column columns]
             (let [title (if (and (= column :clock-time) (integer? clock-time-total))
-                             (util/format "clock-time(total: %s)" (clock/minutes->days:hours:minutes
+                             (util/format "clock-time(total: %s)" (clock/seconds->days:hours:minutes:seconds
                                                                    clock-time-total))
                              (name column))]
               (sortable-title title column sort-state (:block/uuid current-block))))]]

+ 12 - 0
src/main/frontend/util/clock.cljs

@@ -21,6 +21,18 @@
         seconds (mod seconds 60)]
     (util/format "%02d:%02d:%02d" hours minutes seconds)))
 
+(defn seconds->days:hours:minutes:seconds
+  [seconds]
+  (let [days (quot (quot seconds 3600) 24)
+        hours (quot seconds 3600)
+        minutes (quot (- seconds (* hours 3600)) 60)
+        seconds (mod seconds 60)]
+    (util/format "%s%s%s%s"
+                 (if (zero? days) "" (str days "d"))
+                 (if (zero? hours) "" (str hours "h"))
+                 (if (zero? minutes) "" (str minutes "m"))
+                 (if (zero? seconds) "" (str seconds "s")))))
+
 (defn minutes->days:hours:minutes
   [minutes]
   (let [days (quot (quot minutes 60) 24)