mirror of
https://github.com/ClusterCockpit/cc-backend
synced 2026-01-10 15:06:16 +01:00
add optional legend flip to plots
This commit is contained in:
@@ -217,6 +217,7 @@
|
|||||||
cluster={clusters.find((c) => c.name == cluster)}
|
cluster={clusters.find((c) => c.name == cluster)}
|
||||||
subCluster={$nodeMetricsData.data.nodeMetrics[0].subCluster}
|
subCluster={$nodeMetricsData.data.nodeMetrics[0].subCluster}
|
||||||
series={item.metric.series}
|
series={item.metric.series}
|
||||||
|
enableFlip
|
||||||
forNode
|
forNode
|
||||||
/>
|
/>
|
||||||
{:else if item.disabled === true && item.metric}
|
{:else if item.disabled === true && item.metric}
|
||||||
|
|||||||
@@ -348,6 +348,7 @@
|
|||||||
ylabel="Number of Jobs"
|
ylabel="Number of Jobs"
|
||||||
yunit="Jobs"
|
yunit="Jobs"
|
||||||
usesBins
|
usesBins
|
||||||
|
enableFlip
|
||||||
/>
|
/>
|
||||||
{/snippet}
|
{/snippet}
|
||||||
|
|
||||||
|
|||||||
@@ -271,9 +271,12 @@
|
|||||||
|
|
||||||
function update(u) {
|
function update(u) {
|
||||||
const { left, top } = u.cursor;
|
const { left, top } = u.cursor;
|
||||||
const width = u?.over?.querySelector(".u-legend")?.offsetWidth ? u.over.querySelector(".u-legend").offsetWidth : 0;
|
const internalWidth = u?.over?.querySelector(".u-legend")?.offsetWidth ? u.over.querySelector(".u-legend").offsetWidth : 0;
|
||||||
legendEl.style.transform =
|
if (left < (width/2)) {
|
||||||
"translate(" + (left - width - 15) + "px, " + (top + 15) + "px)";
|
legendEl.style.transform = "translate(" + (left + 15) + "px, " + (top + 15) + "px)";
|
||||||
|
} else {
|
||||||
|
legendEl.style.transform = "translate(" + (left - internalWidth - 15) + "px, " + (top + 15) + "px)";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
|||||||
@@ -34,6 +34,7 @@
|
|||||||
xtime = false,
|
xtime = false,
|
||||||
ylabel = "",
|
ylabel = "",
|
||||||
yunit = "",
|
yunit = "",
|
||||||
|
enableFlip = false,
|
||||||
} = $props();
|
} = $props();
|
||||||
|
|
||||||
/* Const Init */
|
/* Const Init */
|
||||||
@@ -117,8 +118,12 @@
|
|||||||
|
|
||||||
function update(u) {
|
function update(u) {
|
||||||
const { left, top } = u.cursor;
|
const { left, top } = u.cursor;
|
||||||
legendEl.style.transform =
|
const internalWidth = u?.over?.querySelector(".u-legend")?.offsetWidth ? u.over.querySelector(".u-legend").offsetWidth : 0;
|
||||||
"translate(" + (left + 15) + "px, " + (top + 15) + "px)";
|
if (enableFlip && (left < (width/2))) {
|
||||||
|
legendEl.style.transform = "translate(" + (left + 15) + "px, " + (top + 15) + "px)";
|
||||||
|
} else {
|
||||||
|
legendEl.style.transform = "translate(" + (left - internalWidth - 15) + "px, " + (top + 15) + "px)";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
|||||||
@@ -49,6 +49,7 @@
|
|||||||
thresholdState = null,
|
thresholdState = null,
|
||||||
extendedLegendData = null,
|
extendedLegendData = null,
|
||||||
plotSync = null,
|
plotSync = null,
|
||||||
|
enableFlip = false,
|
||||||
onZoom
|
onZoom
|
||||||
} = $props();
|
} = $props();
|
||||||
|
|
||||||
@@ -396,9 +397,12 @@
|
|||||||
|
|
||||||
function update(u) {
|
function update(u) {
|
||||||
const { left, top } = u.cursor;
|
const { left, top } = u.cursor;
|
||||||
const width = u?.over?.querySelector(".u-legend")?.offsetWidth ? u.over.querySelector(".u-legend").offsetWidth : 0;
|
const internalWidth = u?.over?.querySelector(".u-legend")?.offsetWidth ? u.over.querySelector(".u-legend").offsetWidth : 0;
|
||||||
legendEl.style.transform =
|
if (enableFlip && (left < (width/2))) {
|
||||||
"translate(" + (left - width - 15) + "px, " + (top + 15) + "px)";
|
legendEl.style.transform = "translate(" + (left + 15) + "px, " + (top + 15) + "px)";
|
||||||
|
} else {
|
||||||
|
legendEl.style.transform = "translate(" + (left - internalWidth - 15) + "px, " + (top + 15) + "px)";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (dataSize <= 12 || useStatsSeries) {
|
if (dataSize <= 12 || useStatsSeries) {
|
||||||
|
|||||||
@@ -271,9 +271,12 @@
|
|||||||
|
|
||||||
function update(u) {
|
function update(u) {
|
||||||
const { left, top } = u.cursor;
|
const { left, top } = u.cursor;
|
||||||
const width = u?.over?.querySelector(".u-legend")?.offsetWidth ? u.over.querySelector(".u-legend").offsetWidth : 0;
|
const internalWidth = u?.over?.querySelector(".u-legend")?.offsetWidth ? u.over.querySelector(".u-legend").offsetWidth : 0;
|
||||||
legendEl.style.transform =
|
if (left < (width/2)) {
|
||||||
"translate(" + (left - width - 15) + "px, " + (top + 15) + "px)";
|
legendEl.style.transform = "translate(" + (left + 15) + "px, " + (top + 15) + "px)";
|
||||||
|
} else {
|
||||||
|
legendEl.style.transform = "translate(" + (left - internalWidth - 15) + "px, " + (top + 15) + "px)";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
|||||||
@@ -185,6 +185,7 @@
|
|||||||
{isShared}
|
{isShared}
|
||||||
{zoomState}
|
{zoomState}
|
||||||
{thresholdState}
|
{thresholdState}
|
||||||
|
enableFlip
|
||||||
/>
|
/>
|
||||||
{:else if statsSeries[selectedScopeIndex] != null && patternMatches}
|
{:else if statsSeries[selectedScopeIndex] != null && patternMatches}
|
||||||
<MetricPlot
|
<MetricPlot
|
||||||
@@ -202,6 +203,7 @@
|
|||||||
{thresholdState}
|
{thresholdState}
|
||||||
statisticsSeries={statsSeries[selectedScopeIndex]}
|
statisticsSeries={statsSeries[selectedScopeIndex]}
|
||||||
useStatsSeries={!!statsSeries[selectedScopeIndex]}
|
useStatsSeries={!!statsSeries[selectedScopeIndex]}
|
||||||
|
enableFlip
|
||||||
/>
|
/>
|
||||||
{/if}
|
{/if}
|
||||||
{/key}
|
{/key}
|
||||||
|
|||||||
@@ -132,6 +132,7 @@
|
|||||||
ylabel="Number of Jobs"
|
ylabel="Number of Jobs"
|
||||||
yunit="Jobs"
|
yunit="Jobs"
|
||||||
usesBins
|
usesBins
|
||||||
|
enableFlip
|
||||||
/>
|
/>
|
||||||
{/snippet}
|
{/snippet}
|
||||||
|
|
||||||
|
|||||||
@@ -255,6 +255,7 @@
|
|||||||
height="275"
|
height="275"
|
||||||
usesBins
|
usesBins
|
||||||
xtime
|
xtime
|
||||||
|
enableFlip
|
||||||
/>
|
/>
|
||||||
{/key}
|
{/key}
|
||||||
</Col>
|
</Col>
|
||||||
@@ -359,6 +360,7 @@
|
|||||||
ylabel="Number of Jobs"
|
ylabel="Number of Jobs"
|
||||||
yunit="Jobs"
|
yunit="Jobs"
|
||||||
height="275"
|
height="275"
|
||||||
|
enableFlip
|
||||||
/>
|
/>
|
||||||
</Col>
|
</Col>
|
||||||
<Col xs="6" md="3" lg="2" class="p-2">
|
<Col xs="6" md="3" lg="2" class="p-2">
|
||||||
@@ -462,6 +464,7 @@
|
|||||||
ylabel="Number of Jobs"
|
ylabel="Number of Jobs"
|
||||||
yunit="Jobs"
|
yunit="Jobs"
|
||||||
height="275"
|
height="275"
|
||||||
|
enableFlip
|
||||||
/>
|
/>
|
||||||
</Col>
|
</Col>
|
||||||
<Col xs="6" md="3" lg="2" class="p-2">
|
<Col xs="6" md="3" lg="2" class="p-2">
|
||||||
|
|||||||
@@ -149,6 +149,7 @@
|
|||||||
{cluster}
|
{cluster}
|
||||||
subCluster={item.subCluster}
|
subCluster={item.subCluster}
|
||||||
forNode
|
forNode
|
||||||
|
enableFlip
|
||||||
/>
|
/>
|
||||||
{/key}
|
{/key}
|
||||||
{:else if item.disabled === null}
|
{:else if item.disabled === null}
|
||||||
|
|||||||
Reference in New Issue
Block a user