Skip render of disabled metrics in job view

-Add function to check if metric is disabled
-Relates to  #119
This commit is contained in:
Christoph Kluge 2023-06-16 16:27:30 +02:00
parent 19ad462abf
commit f466312015
3 changed files with 27 additions and 4 deletions

View File

@ -1,5 +1,5 @@
<script>
import { init, groupByScope, fetchMetricsStore } from './utils.js'
import { init, groupByScope, fetchMetricsStore, checkMetricDisabled } from './utils.js'
import { Row, Col, Card, Spinner, TabContent, TabPane,
CardBody, CardHeader, CardTitle, Button, Icon } from 'sveltestrap'
import PlotTable from './PlotTable.svelte'
@ -95,7 +95,14 @@
somethingMissing = missingMetrics.length > 0 || missingHosts.length > 0
}
const orderAndMap = (grouped, selectedMetrics) => selectedMetrics.map(metric => ({ metric: metric, data: grouped.find((group) => group[0].name == metric) }))
const orderAndMap = (grouped, selectedMetrics) =>
selectedMetrics.map(metric => ({
metric: metric,
data: grouped.find((group) =>
group[0].name == metric
),
disabled: checkMetricDisabled(metric, $initq.data.job.cluster, $initq.data.job.subCluster)
}))
</script>
<div class="row" bind:clientWidth={fullWidth}></div>

View File

@ -24,14 +24,13 @@
else
row.push({ _is_placeholder: true, ri, ci })
}
rows.push(row)
}
return rows
}
$: rows = tile(items, itemsPerRow)
$: rows = tile(items.filter(item => item.disabled === false), itemsPerRow)
$: plotWidth = (tableWidth / itemsPerRow) - (padding * itemsPerRow)
</script>

View File

@ -296,3 +296,20 @@ export function stickyHeader(datatableHeaderSelector, updatePading) {
document.addEventListener("scroll", onscroll);
onDestroy(() => document.removeEventListener("scroll", onscroll));
}
export function checkMetricDisabled(m, c, s) { //[m]etric, [c]luster, [s]ubcluster
const mc = getContext("metrics");
const thisConfig = mc(c, m);
let thisSCIndex = -1;
if (thisConfig) {
thisSCIndex = thisConfig.subClusters.findIndex(
(subcluster) => subcluster.name == s
);
};
if (thisSCIndex >= 0) {
if (thisConfig.subClusters[thisSCIndex].remove == true) {
return true;
}
}
return false;
}