DataTables for ports that are blocking report
This commit is contained in:
@@ -17,22 +17,21 @@ register_report(
|
||||
get '/ajax/content/report/portblocking' => require_login sub {
|
||||
my @results = schema('netdisco')->resultset('Device')->search(
|
||||
{ 'stp' => [ 'blocking', 'broken' ], 'up' => { '!=', 'down' } },
|
||||
{ result_class => 'DBIx::Class::ResultClass::HashRefInflator',
|
||||
select => [ 'ip', 'dns', 'name' ],
|
||||
{ select => [ 'ip', 'dns', 'name' ],
|
||||
join => ['ports'],
|
||||
'+columns' => [
|
||||
{ 'port' => 'ports.port' },
|
||||
{ 'description' => 'ports.name' },
|
||||
{ 'stp' => 'ports.stp' },
|
||||
],
|
||||
order_by => { -asc => [qw/me.ip ports.port/] },
|
||||
]
|
||||
}
|
||||
)->all;
|
||||
)->hri->all;
|
||||
|
||||
return unless scalar @results;
|
||||
|
||||
if ( request->is_ajax ) {
|
||||
template 'ajax/report/portblocking.tt', { results => \@results, },
|
||||
my $results = to_json (\@results);
|
||||
template 'ajax/report/portblocking.tt', { results => $results, },
|
||||
{ layout => undef };
|
||||
}
|
||||
else {
|
||||
|
||||
@@ -1,11 +1,10 @@
|
||||
[% USE Number.Format %]
|
||||
<table class="table table-bordered table-condensed table-striped nd_floatinghead">
|
||||
<table id="data-table" class="table table-striped table-bordered" width="100%" cellspacing="0">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Device</th>
|
||||
<th class="nd_center-cell">Port</th>
|
||||
<th class="nd_center-cell">Port Description</th>
|
||||
<th class="nd_center-cell">STP Status</th>
|
||||
<th>Port</th>
|
||||
<th>Port Description</th>
|
||||
<th>STP Status</th>
|
||||
</tr>
|
||||
</thead>
|
||||
</tbody>
|
||||
@@ -21,3 +20,33 @@
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function() {
|
||||
var table = $('#data-table').dataTable({
|
||||
"deferRender": true,
|
||||
"order": [[ 0, "asc" ], [1, "asc"]],
|
||||
"data": [% results %],
|
||||
"columns": [
|
||||
{
|
||||
"data": 'ip',
|
||||
"render": function(data, type, row, meta) {
|
||||
return (row.dns || row.name || row.ip);
|
||||
}
|
||||
}, {
|
||||
"data": 'port',
|
||||
"render": function(data, type, row, meta) {
|
||||
return '<a href="[% device_ports %]&q=' + row.ip + '&f=' + data + '&c_nodes=on">' + data + '</a>';
|
||||
}
|
||||
}, {
|
||||
"data": 'description'
|
||||
}, {
|
||||
"data": 'stp',
|
||||
"orderable": false,
|
||||
"searchable": false,
|
||||
}
|
||||
]
|
||||
});
|
||||
|
||||
});
|
||||
</script>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user