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
|
end
|
||||||
|
|
||||||
class Block
|
class Block
|
||||||
attr_accessor :label, :name
|
attr_accessor :label, :name, :span
|
||||||
|
|
||||||
def initialize label, name
|
def initialize label, name
|
||||||
@label = label
|
@label = label
|
||||||
@name = name
|
@name = name
|
||||||
|
@span = 1
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -72,25 +73,25 @@ groups = groups.collect do |group, nets|
|
||||||
|
|
||||||
blocks = []
|
blocks = []
|
||||||
row = []
|
row = []
|
||||||
|
x = 0
|
||||||
allnet.subnet(max_prefix).each do |addr|
|
allnet.subnet(max_prefix).each do |addr|
|
||||||
net = nets.select { |net| net.addr.include? addr }[0]
|
net = nets.select { |net| net.addr.include? addr }[0]
|
||||||
label = net ? "#{addr}/#{net.addr.prefix}" : addr.to_s
|
label = net ? "#{addr}/#{net.addr.prefix}" : addr.to_s
|
||||||
row << Block.new(label, net ? net.desc : "")
|
name = net ? net.desc : ""
|
||||||
if row.size >= TABLE_WIDTH
|
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
|
blocks << row
|
||||||
row = []
|
row = []
|
||||||
|
x = 0
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
blocks << row if row.size > 0
|
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)
|
Group.new(allnet, blocks)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -117,6 +118,11 @@ html = ERB::new <<~EOF
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>Subnetwork Plan</title>
|
<title>Subnetwork Plan</title>
|
||||||
|
<style>
|
||||||
|
table {
|
||||||
|
margin: 3rem auto;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<table border="1">
|
<table border="1">
|
||||||
|
@ -127,7 +133,7 @@ html = ERB::new <<~EOF
|
||||||
<% group.blocks.each do |row| %>
|
<% group.blocks.each do |row| %>
|
||||||
<tr>
|
<tr>
|
||||||
<% row.each do |block| %>
|
<% 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 %>
|
<% end %>
|
||||||
</tr>
|
</tr>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
Loading…
Reference in New Issue