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
44 lines
1.4 KiB
Perl
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;
|