From 9fa54f3fae15649f9e2e59bdd2c3fd60127a1d78 Mon Sep 17 00:00:00 2001 From: "Eric A. Miller" Date: Wed, 4 Jun 2014 23:14:21 -0400 Subject: [PATCH] DataTables for device addresses tab --- .../Netdisco/Web/Plugin/Device/Addresses.pm | 12 +++-- Netdisco/share/views/ajax/device/addresses.tt | 52 ++++++++++++++----- .../share/views/ajax/device/addresses_csv.tt | 2 +- 3 files changed, 46 insertions(+), 20 deletions(-) diff --git a/Netdisco/lib/App/Netdisco/Web/Plugin/Device/Addresses.pm b/Netdisco/lib/App/Netdisco/Web/Plugin/Device/Addresses.pm index e9b26dde..ea29d8bc 100644 --- a/Netdisco/lib/App/Netdisco/Web/Plugin/Device/Addresses.pm +++ b/Netdisco/lib/App/Netdisco/Web/Plugin/Device/Addresses.pm @@ -16,18 +16,20 @@ get '/ajax/content/device/addresses' => require_login sub { = schema('netdisco')->resultset('Device')->search_for_device($q) or send_error( 'Bad device', 400 ); - my $set = $device->device_ips->search( {}, { order_by => 'alias' } ); - return unless $set->count; + my @results = $device->device_ips->search( {}, { order_by => 'alias' } )->hri->all; + + return unless scalar @results; if (request->is_ajax) { - template 'ajax/device/addresses.tt', { results => $set, }, + my $json = to_json( \@results ); + template 'ajax/device/addresses.tt', { results => $json }, { layout => undef }; } else { header( 'Content-Type' => 'text/comma-separated-values' ); - template 'ajax/device/addresses_csv.tt', { results => $set, }, + template 'ajax/device/addresses_csv.tt', { results => \@results }, { layout => undef }; } }; -true; +1; diff --git a/Netdisco/share/views/ajax/device/addresses.tt b/Netdisco/share/views/ajax/device/addresses.tt index 4eb5c3ea..ffce721a 100644 --- a/Netdisco/share/views/ajax/device/addresses.tt +++ b/Netdisco/share/views/ajax/device/addresses.tt @@ -1,4 +1,4 @@ - +
@@ -8,18 +8,42 @@ - - [% WHILE (row = results.next) %] - - - - - - [% END %] -
AddressPrefix
[% row.alias | html_entity %] - [% row.dns | html_entity %] - [% row.port | html_entity %][% row.device_port.name | html_entity %][% row.subnet | html_entity %]
+ diff --git a/Netdisco/share/views/ajax/device/addresses_csv.tt b/Netdisco/share/views/ajax/device/addresses_csv.tt index 6c155605..c9388a05 100644 --- a/Netdisco/share/views/ajax/device/addresses_csv.tt +++ b/Netdisco/share/views/ajax/device/addresses_csv.tt @@ -1,7 +1,7 @@ [% USE CSV -%] [% CSV.dump([ 'Address' 'DNS' 'Interface' 'Description' 'Prefix' ]) %] -[% WHILE (row = results.next) %] +[% FOREACH row IN results %] [% mylist = [] %] [% FOREACH col IN [ row.alias row.dns row.port row.device_port.name row.subnet ] %] [% mylist.push(col) %]