19319: Add container / workflow cost details
[arvados-workbench2.git] / src / common / formatters.ts
index eeab703d0d4955f915efa782730135e945ffe83c..b16465127e96835ae8ac994fd080f1b878883461 100644 (file)
@@ -61,24 +61,25 @@ export function formatUploadSpeed(prevLoaded: number, loaded: number, prevTime:
     const speed = loaded > prevLoaded && currentTime > prevTime
         ? (loaded - prevLoaded) / (currentTime - prevTime)
         : 0;
-    return `${(speed / 1000).toFixed(2)} KB/s`;
+
+    return `${(speed / 1000).toFixed(2)} MB/s`;
 }
 
 const FILE_SIZES = [
     {
-        base: 1000000000000,
+        base: 1099511627776,
         unit: "TB"
     },
     {
-        base: 1000000000,
+        base: 1073741824,
         unit: "GB"
     },
     {
-        base: 1000000,
+        base: 1048576,
         unit: "MB"
     },
     {
-        base: 1000,
+        base: 1024,
         unit: "KB"
     },
     {
@@ -98,3 +99,17 @@ export const formatPropertyValue = (pv: PropertyValue, vocabulary?: Vocabulary)
     }
     return "";
 };
+
+export const formatContainerCost = (cost: number) => {
+    const decimalPlaces = 3;
+
+    const factor = Math.pow(10, decimalPlaces);
+    const rounded = Math.round(cost*factor)/factor;
+    if (cost > 0 && rounded === 0) {
+        // Display min value of 0.001
+        return `$${1/factor}`;
+    } else {
+        // Otherwise use rounded value to proper decimal places
+        return `$${rounded}`;
+    }
+};