From 472952d2987f422eebbea8e9a43fe00e8e8e204c Mon Sep 17 00:00:00 2001 From: Arthur Lu Date: Wed, 19 Apr 2023 03:10:51 +0000 Subject: [PATCH] add units to resource allocation --- scripts/account.js | 31 +++++++++++++++++++++++++++---- 1 file changed, 27 insertions(+), 4 deletions(-) diff --git a/scripts/account.js b/scripts/account.js index 2301da8..5e82682 100644 --- a/scripts/account.js +++ b/scripts/account.js @@ -2,6 +2,14 @@ import {requestPVE, requestAPI} from "./utils.js"; window.addEventListener("DOMContentLoaded", init); +let SIPrefix = [ + "", + "Ki", + "Mi", + "Gi", + "Ti" +] + async function init () { let resources = await requestAPI("/user/resources"); buildResourceTable(resources, "#resource-table"); @@ -10,7 +18,6 @@ async function init () { function buildResourceTable (object, tableid) { if (object instanceof Object) { - let table = document.querySelector(tableid); let tbody = table.querySelector("tbody"); Object.keys(object.avail).forEach((element) => { @@ -18,11 +25,27 @@ function buildResourceTable (object, tableid) { let key = row.insertCell(); key.innerText = `${element}`; let used = row.insertCell(); - used.innerText = `${object.used[element]}`; + used.innerText = `${parseNumber(object.used[element], object.units[element])}`; let val = row.insertCell(); - val.innerText = `${object.avail[element]}`; + val.innerText = `${parseNumber(object.avail[element], object.units[element])}`; let total = row.insertCell(); - total.innerText = `${object.max[element]}`; + total.innerText = `${parseNumber(object.max[element], object.units[element])}`; }); } +} + +function parseNumber(value, unitData) { + let compact = unitData.compact; + let multiplier = unitData.multiplier; + let unit = unitData.unit; + value = multiplier * value; + if (compact) { + let exponent = Math.floor(Math.log2(value) / 10); + value = value / 1024 ** exponent; + let unitPrefix = SIPrefix[exponent]; + return `${value} ${unitPrefix}${unit}` + } + else { + return value; + } } \ No newline at end of file