diff --git a/src/components/Workflows.vue b/src/components/Workflows.vue index 64c94566cc0613bfae4d205fef2492ff4a5deb90..7c2ca0501a3e4f2c8d98998c00ecff86021592ba 100644 --- a/src/components/Workflows.vue +++ b/src/components/Workflows.vue @@ -15,6 +15,7 @@ import { useRouter, useRoute } from "vue-router"; import WorkflowsList from "@/components/workflows/WorkflowsList.vue"; import WorkflowsTable from "@/components/workflows/WorkflowsTable.vue"; import { useI18n } from "vue-i18n"; +import { setEvalColors } from "../helpers/eval-colors"; const { t } = useI18n(); @@ -40,6 +41,8 @@ onMounted(async () => { data.value = await api.getWorkflows(); defs.value = await api.getEvalDefinitions(); + setEvalColors(data.value); + const filtered = options.value.filter((option) => { return route.query.view && route.query.view === option.value; }); diff --git a/src/helpers/eval-colors.js b/src/helpers/eval-colors.js index f2fb51133257a048f3f1962c678ca1fb6a237663..7ce287e1cfb7e5433fdf9b0c9df5332d8f35c98a 100644 --- a/src/helpers/eval-colors.js +++ b/src/helpers/eval-colors.js @@ -1,4 +1,6 @@ -const evalColors = { +import { ref } from 'vue'; + +const evalColors = ref({ wall_time: { 'eval-low': 2000, 'eval-medium': 4000, @@ -14,10 +16,10 @@ const evalColors = { 'eval-medium': 0.8, 'eval-high': 0.9 } -}; +}); const getEvalColor = (name, value) => { - const colorMap = evalColors[name]; + const colorMap = evalColors.value[name]; if (colorMap) { const keys = Object.keys(colorMap); return keys.find((key, i) => { @@ -28,6 +30,40 @@ const getEvalColor = (name, value) => { return null; }; +const setEvalColors = (data) => { + const allCERs = []; + const allWallTimes = []; + + data.forEach(({ evaluation }) => { + const { document_wide: evals } = evaluation; + const { cer, wall_time, cer_min_max } = evals; + + if (cer) allCERs.push(cer); + if (wall_time) allWallTimes.push(wall_time); + }); + + const minCER = Math.min(...allCERs); + const maxCER = Math.max(...allCERs); + + const minWallTime = Math.min(...allWallTimes); + const maxWallTime = Math.max(...allWallTimes); + + const diffCER = maxCER - minCER; + const stepCER = diffCER / 3; + + evalColors.value.cer["eval-low"] = minCER + stepCER; + evalColors.value.cer["eval-medium"] = minCER + 2 * stepCER; + evalColors.value.cer["eval-high"] = minCER + 3 * stepCER; + + const diffallTime = maxWallTime - minWallTime; + const stepWallTime = diffallTime / 3; + + evalColors.value.wall_time["eval-low"] = minWallTime + stepWallTime; + evalColors.value.wall_time["eval-medium"] = minWallTime + 2 * stepWallTime; + evalColors.value.wall_time["eval-high"] = minWallTime + 3 * stepWallTime; +}; + export { - getEvalColor -}; \ No newline at end of file + getEvalColor, + setEvalColors +};