add device port external links support

This commit is contained in:
Oliver Gorwits
2023-12-05 21:11:43 +00:00
parent d428b82220
commit 2afa56dde9
3 changed files with 49 additions and 17 deletions

View File

@@ -126,21 +126,22 @@ sidebar_defaults:
c_name: { label: 'Name', default: checked, idx: 7 }
c_tags: { label: 'Tags', default: null, idx: 8 }
c_speed_admin: { label: 'Speed (configured)', default: null, idx: 9 }
c_speed: { label: 'Speed (running)', default: null, idx: 10 }
c_duplex_admin: { label: 'Duplex (configured)', default: null, idx: 11 }
c_duplex: { label: 'Duplex (running)', default: null, idx: 12 }
c_error: { label: 'Error Message', default: null, idx: 13 }
c_mac: { label: 'Port MAC', default: null, idx: 14 }
c_mtu: { label: 'MTU', default: null, idx: 15 }
c_pvid: { label: 'Native VLAN', default: checked, idx: 16 }
c_vmember: { label: 'VLAN Membership', default: checked, idx: 17 }
c_power: { label: 'PoE', default: null, idx: 18 }
c_ssid: { label: 'SSID', default: null, idx: 19 }
c_nac_summary: { label: 'NAC/802.1X Status', default: null, idx: 20 }
c_nodes: { label: 'Connected Nodes', default: null, idx: 21 }
c_neighbors: { label: 'Connected Devices', default: checked, idx: 22 }
c_stp: { label: 'Spanning Tree', default: null, idx: 23 }
c_up: { label: 'Up/Down Status', default: null, idx: 24 }
c_links: { label: 'External Links', default: checked, idx: 10 }
c_speed: { label: 'Speed (running)', default: null, idx: 11 }
c_duplex_admin: { label: 'Duplex (configured)', default: null, idx: 12 }
c_duplex: { label: 'Duplex (running)', default: null, idx: 13 }
c_error: { label: 'Error Message', default: null, idx: 14 }
c_mac: { label: 'Port MAC', default: null, idx: 15 }
c_mtu: { label: 'MTU', default: null, idx: 16 }
c_pvid: { label: 'Native VLAN', default: checked, idx: 17 }
c_vmember: { label: 'VLAN Membership', default: checked, idx: 18 }
c_power: { label: 'PoE', default: null, idx: 19 }
c_ssid: { label: 'SSID', default: null, idx: 20 }
c_nac_summary: { label: 'NAC/802.1X Status', default: null, idx: 21 }
c_nodes: { label: 'Connected Nodes', default: null, idx: 22 }
c_neighbors: { label: 'Connected Devices', default: checked, idx: 23 }
c_stp: { label: 'Spanning Tree', default: null, idx: 24 }
c_up: { label: 'Up/Down Status', default: null, idx: 25 }
mac_format: { default: IEEE }
n_inventory: { label: 'Remote Inventory', default: checked, idx: 0 }
n_detailed_inventory: { label: 'Remote Advertisement', default: null, idx: 1 }
@@ -171,8 +172,8 @@ sidebar_defaults:
age_num: { default: 3 }
age_unit: { default: months }
device_port_col_idx_left: 8
device_port_col_idx_mid: 20
device_port_col_idx_right: 24
device_port_col_idx_mid: 21
device_port_col_idx_right: 25
jobqueue_refresh: 5
safe_password_store: true
reports: []

View File

@@ -1,3 +1,4 @@
[% PROCESS 'externallinks.tt' -%]
[% SET user_can_port_control = user_has_role('port_control', device) %]
<table id="dp-data-table" class="table table-bordered table-striped" width="100%" cellspacing="0">
<thead>
@@ -5,6 +6,7 @@
<th></th>
[% FOREACH item IN settings.port_columns %]
[% NEXT IF item.name == 'c_admin' %]
[% NEXT IF item.name == 'c_links' AND settings.external_links.device_port.empty %]
[% NEXT IF item.name == 'c_nodes' AND params.c_nodes AND params.c_neighbors %]
[% NEXT UNLESS params.${item.name} %]
[% SET th_class = '' %]
@@ -177,6 +179,15 @@
[% END %]
[% IF params.c_links AND settings.external_links.device_port.size > 0 %]
<td>
[% INCLUDE external_device_port_links
item = row
d = device
%]
</td>
[% END %]
[% IF params.c_speed_admin %]
<td>[% row.speed_admin | html_entity %]</td>
[% END %]

View File

@@ -2,6 +2,7 @@
<a href="[% link.url | evaltt %]" target="_blank">
<span class="label label-default"><i class="icon-external-link"></i> [% link.displayname | html_entity %]</span></a>
[% END %]
[% BLOCK external_mac_links %]
[% FOREACH link IN settings.external_links.node.reverse %]
[% NEXT UNLESS link.for_mac %]
@@ -11,6 +12,7 @@
<span class="nd_node-ext-link">&nbsp;</span>
[% END %]
[% END %]
[% BLOCK external_ip_links %]
[% FOREACH link IN settings.external_links.node %]
[% NEXT UNLESS link.for_ip %]
@@ -18,6 +20,7 @@
[% PROCESS external_link %]
[% END %]
[% END %]
[% BLOCK external_device_links %]
[% FOREACH link IN settings.external_links.device %]
[% device = item.ip FILTER uri %]
@@ -33,3 +36,20 @@
[% PROCESS external_link %]
[% END %]
[% END %]
[% BLOCK external_device_port_links %]
[% FOREACH link IN settings.external_links.device_port %]
[% device = d.ip FILTER uri %]
[% fqdn = d.dns FILTER uri %]
[% sysname = d.name FILTER uri %]
[% hostname = d.dns.remove(settings.domain_suffix) FILTER uri %]
[% port = item.port FILTER uri %]
[% mac = item.mac FILTER uri %]
[% ifindex = item.ifindex FILTER uri %]
[% FOREACH config IN settings._extra_device_port_cols %]
[% NEXT UNLESS config.field.match('^cf_') %]
[% ${config.field} = item.get_column(${config.field}) FILTER uri %]
[% END %]
[% PROCESS external_link %]
[% END %]
[% END %]