diff --git a/lib/App/Netdisco/Web/Plugin/AdminTask/PseudoDevice.pm b/lib/App/Netdisco/Web/Plugin/AdminTask/PseudoDevice.pm index 15d3f15d..dac18e58 100644 --- a/lib/App/Netdisco/Web/Plugin/AdminTask/PseudoDevice.pm +++ b/lib/App/Netdisco/Web/Plugin/AdminTask/PseudoDevice.pm @@ -36,7 +36,7 @@ ajax '/ajax/control/admin/pseudodevice/add' => require_role admin => sub { ip => param('ip'), dns => param('dns'), vendor => 'netdisco', - layers => '00000100', + layers => param('layers'), last_discover => \'now()', }); return unless $device; @@ -87,6 +87,9 @@ ajax '/ajax/control/admin/pseudodevice/update' => require_role admin => sub { })->delete; } } + + # also set layers + $device->update({layers => param('layers')}); }); }; diff --git a/share/public/css/netdisco.css b/share/public/css/netdisco.css index 71136174..5e2fedaf 100644 --- a/share/public/css/netdisco.css +++ b/share/public/css/netdisco.css @@ -245,6 +245,13 @@ td > form.nd_inline-form { text-decoration: none; } +/* badge for pseudo devices layer three toggle */ +.nd_layer-three-link { + text-decoration: none !important; + display: inline-block; + margin-left: -4px; +} + /* for the job control admin page play/pause links */ #nd_countdown-refresh:hover, #nd_countdown-control:hover { text-decoration: none; diff --git a/share/views/ajax/admintask/pseudodevice.tt b/share/views/ajax/admintask/pseudodevice.tt index d08fce1b..04193a17 100644 --- a/share/views/ajax/admintask/pseudodevice.tt +++ b/share/views/ajax/admintask/pseudodevice.tt @@ -4,6 +4,7 @@ Device Name Device IP Number of Ports + Services Action @@ -12,6 +13,11 @@ + +    + 3     + + @@ -26,6 +32,16 @@ + + [% d.layers.substr(7,1) ? '1' : ' ' %] + [% d.layers.substr(6,1) ? '2' : ' ' %] + 3 + [% d.layers.substr(4,1) ? '4' : ' ' %] + [% d.layers.substr(3,1) ? '5' : ' ' %] + [% d.layers.substr(2,1) ? '6' : ' ' %] + [% d.layers.substr(1,1) ? '7' : ' ' %] + + @@ -68,6 +84,17 @@ $(document).ready(function() { } ], [% INCLUDE 'ajax/datatabledefaults.tt' -%] } ); + $('.nd_layer-three-link').click(function() { + var badge = $(this).children('span').first(); + var layers = $(this).parent().children('input').first(); + $(badge).toggleClass('badge-success'); + if ($(badge).hasClass('badge-success')) { + $(layers).attr('value', '00000100'); + } + else { + $(layers).attr('value', '00000000'); + } + }); } );