Files
netdisco/lib/App/Netdisco/Web/Plugin/Device/Modules.pm
Christian Ramseyer 5663f84917 Fix #710: overwrite invalid EntityMIB parents
Check the obtained EntityMIB tree for invalid parents, and
reassign these modules to the root of the tree so they don't
end up invisible
2020-04-25 17:21:21 +02:00

44 lines
1.4 KiB
Perl

package App::Netdisco::Web::Plugin::Device::Modules;
use Dancer ':syntax';
use Dancer::Plugin::Ajax;
use Dancer::Plugin::DBIC;
use Dancer::Plugin::Auth::Extensible;
use App::Netdisco::Util::Web (); # for sort_module
use App::Netdisco::Web::Plugin;
register_device_tab({ tag => 'modules', label => 'Modules' });
ajax '/ajax/content/device/modules' => require_login sub {
my $q = param('q');
my $device = schema('netdisco')->resultset('Device')
->search_for_device($q) or send_error('Bad device', 400);
my @set = $device->modules->search({}, {order_by => { -asc => [qw/parent class pos index/] }});
# sort modules (empty set would be a 'no records' msg)
my $results = &App::Netdisco::Util::Web::sort_modules( \@set );
return unless scalar %$results;
use Data::Dumper;
#print STDERR "-----------\n"; print STDERR Dumper($results);
print STDERR "-----------\n";
print STDERR Dumper($results->{root}) ."\n";
print STDERR "-----------\n";
my $id = 1;
print STDERR Dumper($results->{$id}{module}->name) ."\n";
print STDERR Dumper($results->{$id}{module}->index) ."\n";
print STDERR Dumper($results->{$id}{module}->parent) ."\n";
print STDERR Dumper($results->{$id}->{children}) ."\n";
print STDERR "-----------\n";
content_type('text/html');
template 'ajax/device/modules.tt', {
nodes => $results,
}, { layout => undef };
};
true;