forked from zentralwerk/network
nix/pkgs/subnetplan: use colspan
This commit is contained in:
parent
9e39f9b21f
commit
3902efd3f3
|
@ -26,11 +26,12 @@ class Group
|
|||
end
|
||||
|
||||
class Block
|
||||
attr_accessor :label, :name
|
||||
attr_accessor :label, :name, :span
|
||||
|
||||
def initialize label, name
|
||||
@label = label
|
||||
@name = name
|
||||
@span = 1
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -72,25 +73,25 @@ groups = groups.collect do |group, nets|
|
|||
|
||||
blocks = []
|
||||
row = []
|
||||
x = 0
|
||||
allnet.subnet(max_prefix).each do |addr|
|
||||
net = nets.select { |net| net.addr.include? addr }[0]
|
||||
label = net ? "#{addr}/#{net.addr.prefix}" : addr.to_s
|
||||
row << Block.new(label, net ? net.desc : "")
|
||||
if row.size >= TABLE_WIDTH
|
||||
name = net ? net.desc : ""
|
||||
if row.last and name != "" and row.last.name == name
|
||||
row.last.span += 1
|
||||
else
|
||||
row << Block.new(label, name)
|
||||
end
|
||||
x += 1
|
||||
if x >= TABLE_WIDTH
|
||||
blocks << row
|
||||
row = []
|
||||
x = 0
|
||||
end
|
||||
end
|
||||
blocks << row if row.size > 0
|
||||
|
||||
blocks.each do |row|
|
||||
prev_name = nil
|
||||
row.each_with_index do |block|
|
||||
block.label = "" if prev_name == block.name
|
||||
prev_name = block.name
|
||||
end
|
||||
end
|
||||
|
||||
Group.new(allnet, blocks)
|
||||
end
|
||||
|
||||
|
@ -117,6 +118,11 @@ html = ERB::new <<~EOF
|
|||
<html>
|
||||
<head>
|
||||
<title>Subnetwork Plan</title>
|
||||
<style>
|
||||
table {
|
||||
margin: 3rem auto;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<table border="1">
|
||||
|
@ -127,7 +133,7 @@ html = ERB::new <<~EOF
|
|||
<% group.blocks.each do |row| %>
|
||||
<tr>
|
||||
<% row.each do |block| %>
|
||||
<td style="background-color: <%= background_color(block.name) %>"><%= block.label %> <%= block.name %></td>
|
||||
<td colspan="<%= block.span %>" style="background-color: <%= background_color(block.name) %>"><%= block.label %> <%= block.name %></td>
|
||||
<% end %>
|
||||
</tr>
|
||||
<% end %>
|
||||
|
|
Loading…
Reference in New Issue