diff --git a/share/config.yml b/share/config.yml index b64f26c5..56634a3f 100644 --- a/share/config.yml +++ b/share/config.yml @@ -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: [] diff --git a/share/views/ajax/device/ports.tt b/share/views/ajax/device/ports.tt index b176ea82..ab1a8c3a 100644 --- a/share/views/ajax/device/ports.tt +++ b/share/views/ajax/device/ports.tt @@ -1,3 +1,4 @@ +[% PROCESS 'externallinks.tt' -%] [% SET user_can_port_control = user_has_role('port_control', device) %] @@ -5,6 +6,7 @@ [% 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 %] + + [% END %] + [% IF params.c_speed_admin %] [% END %] diff --git a/share/views/externallinks.tt b/share/views/externallinks.tt index 5eb85c0e..282743b7 100644 --- a/share/views/externallinks.tt +++ b/share/views/externallinks.tt @@ -2,6 +2,7 @@ [% link.displayname | html_entity %] [% END %] + [% BLOCK external_mac_links %] [% FOREACH link IN settings.external_links.node.reverse %] [% NEXT UNLESS link.for_mac %] @@ -11,6 +12,7 @@   [% 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 %]
+ [% INCLUDE external_device_port_links + item = row + d = device + %] + [% row.speed_admin | html_entity %]