fix(rack): draw shelves after rails (match spec placement)
This commit is contained in:
parent
aab58e3692
commit
e08862b81d
1 changed files with 19 additions and 19 deletions
|
|
@ -384,6 +384,25 @@ def render_svg(rack: str, items: list[dict]) -> str:
|
|||
if face in ("rear", "both"):
|
||||
draw_device(fm, rear_x)
|
||||
|
||||
def draw_rail(fm: dict, x: int) -> None:
|
||||
color = KIND_COLORS.get(fm.get("kind", ""), DEFAULT_COLOR)
|
||||
name = fm.get("hostname", "?")
|
||||
cx = x + RAIL_W // 2
|
||||
cy = top + body_h // 2
|
||||
p.append(
|
||||
f'<rect x="{x}" y="{top}" width="{RAIL_W}" height="{body_h}" '
|
||||
f'fill="{color}" stroke="#333"/>'
|
||||
)
|
||||
p.append(
|
||||
f'<text x="{cx}" y="{cy}" text-anchor="middle" fill="#ffffff" '
|
||||
f'transform="rotate(-90 {cx} {cy})">{_esc(name)}</text>'
|
||||
)
|
||||
|
||||
for idx, fm in enumerate(left_items):
|
||||
draw_rail(fm, PAD + idx * RAIL_W)
|
||||
for idx, fm in enumerate(right_items):
|
||||
draw_rail(fm, rear_x + COL_W + idx * RAIL_W)
|
||||
|
||||
SHELF_STRIP_H = 6
|
||||
shelves = [i for i in items if i.get("kind") == "shelf"]
|
||||
mounted = [i for i in items if "mounted_on" in i]
|
||||
|
|
@ -431,25 +450,6 @@ def render_svg(rack: str, items: list[dict]) -> str:
|
|||
for fm in sorted(shelves, key=lambda s: s.get("hostname", "")):
|
||||
draw_shelf(fm)
|
||||
|
||||
def draw_rail(fm: dict, x: int) -> None:
|
||||
color = KIND_COLORS.get(fm.get("kind", ""), DEFAULT_COLOR)
|
||||
name = fm.get("hostname", "?")
|
||||
cx = x + RAIL_W // 2
|
||||
cy = top + body_h // 2
|
||||
p.append(
|
||||
f'<rect x="{x}" y="{top}" width="{RAIL_W}" height="{body_h}" '
|
||||
f'fill="{color}" stroke="#333"/>'
|
||||
)
|
||||
p.append(
|
||||
f'<text x="{cx}" y="{cy}" text-anchor="middle" fill="#ffffff" '
|
||||
f'transform="rotate(-90 {cx} {cy})">{_esc(name)}</text>'
|
||||
)
|
||||
|
||||
for idx, fm in enumerate(left_items):
|
||||
draw_rail(fm, PAD + idx * RAIL_W)
|
||||
for idx, fm in enumerate(right_items):
|
||||
draw_rail(fm, rear_x + COL_W + idx * RAIL_W)
|
||||
|
||||
p.append("</svg>")
|
||||
return "\n".join(p) + "\n"
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue