fix(telemetry): stop repeating panels stranding their neighbours

A repeating panel expands into one copy per network at view time and, with
maxPerRow=2, claims the whole row. The non-repeating panel paired beside it was
pushed to the next line but kept its stored x=12, so it rendered on the right
against an empty gap.

Two changes to how the layout is planned:
  - a repeating panel gets a row to itself. It keeps w=12, so its copies still
    tile two across inside that row.
  - single-value panels are grouped to the top of each row section, so the
    charts that follow pair with each other instead of being split up by an
    interleaved repeat. Without this the gaps just become wasted half-rows.

Verified per dashboard: no panel lost, every targets block byte-identical, ids
1..N, no overlaps, and no row left with a gap on its left.
This commit is contained in:
Pratik Mankawde
2026-08-07 12:54:25 +01:00
parent e84b9aada0
commit 97089a3b6f
8 changed files with 113 additions and 113 deletions

View File

@@ -131,8 +131,8 @@
"gridPos": {
"h": 10,
"w": 12,
"x": 12,
"y": 12
"x": 0,
"y": 22
},
"options": {
"tooltip": {
@@ -176,7 +176,7 @@
"gridPos": {
"h": 10,
"w": 12,
"x": 0,
"x": 12,
"y": 22
},
"options": {
@@ -221,8 +221,8 @@
"gridPos": {
"h": 10,
"w": 12,
"x": 12,
"y": 22
"x": 0,
"y": 32
},
"targets": [
{
@@ -274,7 +274,7 @@
"gridPos": {
"h": 10,
"w": 12,
"x": 0,
"x": 12,
"y": 32
},
"targets": [
@@ -319,8 +319,8 @@
"gridPos": {
"h": 10,
"w": 12,
"x": 12,
"y": 32
"x": 0,
"y": 42
},
"options": {
"tooltip": {
@@ -364,7 +364,7 @@
"gridPos": {
"h": 10,
"w": 12,
"x": 0,
"x": 12,
"y": 42
},
"options": {
@@ -417,8 +417,8 @@
"gridPos": {
"h": 10,
"w": 12,
"x": 12,
"y": 42
"x": 0,
"y": 52
},
"options": {
"tooltip": {
@@ -470,7 +470,7 @@
"gridPos": {
"h": 10,
"w": 12,
"x": 0,
"x": 12,
"y": 52
},
"options": {

View File

@@ -77,8 +77,8 @@
"gridPos": {
"h": 10,
"w": 12,
"x": 12,
"y": 0
"x": 0,
"y": 10
},
"options": {
"tooltip": {
@@ -127,7 +127,7 @@
"gridPos": {
"h": 10,
"w": 12,
"x": 0,
"x": 12,
"y": 10
},
"options": {
@@ -189,8 +189,8 @@
"gridPos": {
"h": 10,
"w": 12,
"x": 12,
"y": 10
"x": 0,
"y": 20
},
"options": {
"tooltip": {
@@ -239,7 +239,7 @@
"gridPos": {
"h": 10,
"w": 12,
"x": 0,
"x": 12,
"y": 20
},
"options": {
@@ -289,8 +289,8 @@
"gridPos": {
"h": 10,
"w": 12,
"x": 12,
"y": 20
"x": 0,
"y": 30
},
"options": {
"tooltip": {
@@ -351,7 +351,7 @@
"gridPos": {
"h": 10,
"w": 12,
"x": 0,
"x": 12,
"y": 30
},
"options": {
@@ -401,8 +401,8 @@
"gridPos": {
"h": 10,
"w": 12,
"x": 12,
"y": 30
"x": 0,
"y": 40
},
"options": {
"tooltip": {
@@ -451,7 +451,7 @@
"gridPos": {
"h": 10,
"w": 12,
"x": 0,
"x": 12,
"y": 40
},
"options": {
@@ -513,8 +513,8 @@
"gridPos": {
"h": 10,
"w": 12,
"x": 12,
"y": 40
"x": 0,
"y": 50
},
"options": {
"tooltip": {
@@ -563,7 +563,7 @@
"gridPos": {
"h": 10,
"w": 12,
"x": 0,
"x": 12,
"y": 50
},
"options": {
@@ -607,8 +607,8 @@
"gridPos": {
"h": 10,
"w": 12,
"x": 12,
"y": 50
"x": 0,
"y": 60
},
"options": {
"tooltip": {
@@ -657,7 +657,7 @@
"gridPos": {
"h": 10,
"w": 12,
"x": 0,
"x": 12,
"y": 60
},
"options": {
@@ -701,8 +701,8 @@
"gridPos": {
"h": 10,
"w": 12,
"x": 12,
"y": 60
"x": 0,
"y": 70
},
"options": {
"tooltip": {
@@ -757,7 +757,7 @@
"gridPos": {
"h": 10,
"w": 12,
"x": 0,
"x": 12,
"y": 70
},
"options": {

View File

@@ -65,8 +65,8 @@
"gridPos": {
"h": 10,
"w": 12,
"x": 12,
"y": 1
"x": 0,
"y": 11
},
"options": {
"tooltip": {
@@ -103,7 +103,7 @@
"h": 10,
"w": 12,
"x": 0,
"y": 11
"y": 21
},
"options": {
"tooltip": {
@@ -156,7 +156,7 @@
"h": 10,
"w": 12,
"x": 12,
"y": 11
"y": 21
},
"options": {
"calculate": false,
@@ -207,7 +207,7 @@
"h": 1,
"w": 24,
"x": 0,
"y": 21
"y": 31
},
"collapsed": false,
"panels": [],
@@ -221,7 +221,7 @@
"h": 10,
"w": 12,
"x": 0,
"y": 22
"y": 32
},
"options": {
"tooltip": {
@@ -274,7 +274,7 @@
"h": 10,
"w": 12,
"x": 12,
"y": 22
"y": 32
},
"options": {
"tooltip": {
@@ -318,7 +318,7 @@
"h": 1,
"w": 24,
"x": 0,
"y": 32
"y": 42
},
"collapsed": false,
"panels": [],
@@ -332,7 +332,7 @@
"h": 10,
"w": 12,
"x": 0,
"y": 33
"y": 43
},
"options": {
"tooltip": {
@@ -368,8 +368,8 @@
"gridPos": {
"h": 10,
"w": 12,
"x": 12,
"y": 33
"x": 0,
"y": 53
},
"options": {
"tooltip": {

View File

@@ -719,8 +719,8 @@
"gridPos": {
"h": 10,
"w": 12,
"x": 12,
"y": 42
"x": 0,
"y": 52
},
"options": {
"tooltip": {
@@ -793,7 +793,7 @@
"h": 1,
"w": 24,
"x": 0,
"y": 52
"y": 62
},
"collapsed": false,
"panels": [],
@@ -807,7 +807,7 @@
"h": 10,
"w": 12,
"x": 0,
"y": 53
"y": 63
},
"options": {
"tooltip": {

View File

@@ -68,8 +68,8 @@
"gridPos": {
"h": 10,
"w": 12,
"x": 12,
"y": 0
"x": 0,
"y": 10
},
"options": {
"tooltip": {
@@ -121,7 +121,7 @@
"h": 10,
"w": 12,
"x": 0,
"y": 10
"y": 20
},
"options": {
"tooltip": {
@@ -156,8 +156,8 @@
"gridPos": {
"h": 10,
"w": 12,
"x": 12,
"y": 10
"x": 0,
"y": 30
},
"options": {
"tooltip": {
@@ -205,7 +205,7 @@
"h": 10,
"w": 12,
"x": 0,
"y": 20
"y": 40
},
"options": {
"tooltip": {
@@ -280,7 +280,7 @@
"h": 10,
"w": 12,
"x": 12,
"y": 20
"y": 40
},
"options": {
"tooltip": {
@@ -352,7 +352,7 @@
"h": 10,
"w": 12,
"x": 0,
"y": 30
"y": 50
},
"options": {
"tooltip": {
@@ -403,7 +403,7 @@
"h": 10,
"w": 12,
"x": 12,
"y": 30
"y": 50
},
"options": {
"tooltip": {
@@ -447,7 +447,7 @@
"h": 1,
"w": 24,
"x": 0,
"y": 40
"y": 60
},
"collapsed": false,
"panels": [],
@@ -461,7 +461,7 @@
"h": 10,
"w": 12,
"x": 0,
"y": 41
"y": 61
},
"options": {
"tooltip": {
@@ -514,8 +514,8 @@
"gridPos": {
"h": 10,
"w": 12,
"x": 12,
"y": 41
"x": 0,
"y": 71
},
"options": {
"tooltip": {
@@ -567,7 +567,7 @@
"h": 10,
"w": 12,
"x": 0,
"y": 51
"y": 81
},
"options": {
"tooltip": {
@@ -681,7 +681,7 @@
"h": 10,
"w": 12,
"x": 12,
"y": 51
"y": 81
},
"options": {
"tooltip": {
@@ -795,7 +795,7 @@
"h": 10,
"w": 12,
"x": 0,
"y": 61
"y": 91
},
"options": {
"tooltip": {
@@ -839,7 +839,7 @@
"h": 10,
"w": 12,
"x": 12,
"y": 61
"y": 91
},
"options": {
"tooltip": {
@@ -890,7 +890,7 @@
"h": 10,
"w": 12,
"x": 0,
"y": 71
"y": 101
},
"options": {
"tooltip": {
@@ -934,7 +934,7 @@
"h": 10,
"w": 12,
"x": 12,
"y": 71
"y": 101
},
"options": {
"tooltip": {

View File

@@ -307,8 +307,8 @@
"gridPos": {
"h": 10,
"w": 12,
"x": 12,
"y": 32
"x": 0,
"y": 42
},
"options": {
"tooltip": {
@@ -361,7 +361,7 @@
"h": 10,
"w": 12,
"x": 0,
"y": 42
"y": 52
},
"options": {
"tooltip": {
@@ -414,7 +414,7 @@
"h": 10,
"w": 12,
"x": 12,
"y": 42
"y": 52
},
"options": {
"tooltip": {
@@ -466,7 +466,7 @@
"h": 1,
"w": 24,
"x": 0,
"y": 52
"y": 62
},
"collapsed": false,
"panels": [],
@@ -480,7 +480,7 @@
"h": 10,
"w": 12,
"x": 0,
"y": 53
"y": 63
},
"options": {
"tooltip": {
@@ -525,7 +525,7 @@
"h": 10,
"w": 12,
"x": 12,
"y": 53
"y": 63
},
"options": {
"tooltip": {
@@ -570,7 +570,7 @@
"h": 10,
"w": 12,
"x": 0,
"y": 63
"y": 73
},
"options": {
"tooltip": {
@@ -615,7 +615,7 @@
"h": 10,
"w": 12,
"x": 12,
"y": 63
"y": 73
},
"options": {
"tooltip": {
@@ -668,7 +668,7 @@
"h": 10,
"w": 12,
"x": 0,
"y": 73
"y": 83
},
"options": {
"tooltip": {

View File

@@ -68,8 +68,8 @@
"gridPos": {
"h": 10,
"w": 12,
"x": 12,
"y": 0
"x": 0,
"y": 10
},
"options": {
"tooltip": {
@@ -106,7 +106,7 @@
"h": 10,
"w": 12,
"x": 0,
"y": 10
"y": 20
},
"options": {
"tooltip": {
@@ -142,8 +142,8 @@
"gridPos": {
"h": 10,
"w": 12,
"x": 12,
"y": 10
"x": 0,
"y": 30
},
"options": {
"tooltip": {
@@ -187,8 +187,8 @@
"gridPos": {
"h": 10,
"w": 12,
"x": 0,
"y": 20
"x": 12,
"y": 30
},
"options": {
"tooltip": {
@@ -232,8 +232,8 @@
"gridPos": {
"h": 10,
"w": 12,
"x": 12,
"y": 20
"x": 0,
"y": 40
},
"options": {
"calculate": false,
@@ -284,8 +284,8 @@
"gridPos": {
"h": 10,
"w": 12,
"x": 0,
"y": 30
"x": 12,
"y": 40
},
"options": {
"tooltip": {
@@ -337,8 +337,8 @@
"gridPos": {
"h": 10,
"w": 12,
"x": 12,
"y": 30
"x": 0,
"y": 50
},
"options": {
"tooltip": {
@@ -391,7 +391,7 @@
"h": 10,
"w": 24,
"x": 0,
"y": 40
"y": 60
},
"options": {
"tooltip": {
@@ -441,7 +441,7 @@
"h": 10,
"w": 12,
"x": 0,
"y": 50
"y": 70
},
"options": {
"tooltip": {

View File

@@ -69,8 +69,8 @@
"gridPos": {
"h": 10,
"w": 12,
"x": 12,
"y": 0
"x": 0,
"y": 10
},
"options": {
"tooltip": {
@@ -123,7 +123,7 @@
"h": 10,
"w": 24,
"x": 0,
"y": 10
"y": 20
},
"options": {
"tooltip": {
@@ -181,7 +181,7 @@
"h": 10,
"w": 12,
"x": 0,
"y": 20
"y": 30
},
"options": {
"tooltip": {
@@ -215,7 +215,7 @@
"h": 10,
"w": 12,
"x": 12,
"y": 20
"y": 30
},
"options": {
"tooltip": {
@@ -260,7 +260,7 @@
"h": 10,
"w": 12,
"x": 0,
"y": 30
"y": 40
},
"options": {
"calculate": false,
@@ -312,7 +312,7 @@
"h": 10,
"w": 12,
"x": 12,
"y": 30
"y": 40
},
"options": {
"tooltip": {
@@ -364,7 +364,7 @@
"h": 1,
"w": 24,
"x": 0,
"y": 40
"y": 50
},
"collapsed": false,
"panels": [],
@@ -378,7 +378,7 @@
"h": 10,
"w": 24,
"x": 0,
"y": 41
"y": 51
},
"options": {
"tooltip": {
@@ -428,7 +428,7 @@
"h": 10,
"w": 24,
"x": 0,
"y": 51
"y": 61
},
"options": {
"tooltip": {
@@ -478,7 +478,7 @@
"h": 10,
"w": 12,
"x": 0,
"y": 61
"y": 71
},
"options": {
"mergeValues": true,
@@ -540,7 +540,7 @@
"h": 10,
"w": 24,
"x": 0,
"y": 71
"y": 81
},
"options": {
"tooltip": {
@@ -589,7 +589,7 @@
"h": 1,
"w": 24,
"x": 0,
"y": 81
"y": 91
},
"collapsed": false,
"panels": [],
@@ -603,7 +603,7 @@
"h": 10,
"w": 12,
"x": 0,
"y": 82
"y": 92
},
"options": {
"tooltip": {
@@ -648,7 +648,7 @@
"h": 10,
"w": 12,
"x": 12,
"y": 82
"y": 92
},
"options": {
"tooltip": {
@@ -701,7 +701,7 @@
"h": 10,
"w": 12,
"x": 0,
"y": 92
"y": 102
},
"options": {
"tooltip": {
@@ -746,7 +746,7 @@
"h": 10,
"w": 24,
"x": 0,
"y": 102
"y": 112
},
"options": {
"tooltip": {
@@ -795,7 +795,7 @@
"h": 1,
"w": 24,
"x": 0,
"y": 112
"y": 122
},
"collapsed": false,
"panels": [],
@@ -809,7 +809,7 @@
"h": 10,
"w": 24,
"x": 0,
"y": 113
"y": 123
},
"options": {
"tooltip": {
@@ -859,7 +859,7 @@
"h": 10,
"w": 24,
"x": 0,
"y": 123
"y": 133
},
"options": {
"tooltip": {
@@ -909,7 +909,7 @@
"h": 10,
"w": 24,
"x": 0,
"y": 133
"y": 143
},
"options": {
"tooltip": {