From 3829254fc80b2e99e8e884c6f92ca6c5a2c97d5b Mon Sep 17 00:00:00 2001 From: Oliver Gorwits Date: Sun, 17 Feb 2013 11:03:50 +0000 Subject: [PATCH] fix search by device interface IP --- Netdisco/lib/App/Netdisco/Web/Device.pm | 2 +- Netdisco/lib/App/Netdisco/Web/Search.pm | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/Netdisco/lib/App/Netdisco/Web/Device.pm b/Netdisco/lib/App/Netdisco/Web/Device.pm index 867a1199..b784bcfe 100644 --- a/Netdisco/lib/App/Netdisco/Web/Device.pm +++ b/Netdisco/lib/App/Netdisco/Web/Device.pm @@ -90,7 +90,7 @@ get '/device' => sub { my $q = param('q'); my $dev = schema('netdisco')->resultset('Device')->single({ -or => [ - 'me.ip::text' => $q, + \[ 'host(me.ip) = ?' => [ bind_value => $q ] ], 'me.dns' => $q, ], }); diff --git a/Netdisco/lib/App/Netdisco/Web/Search.pm b/Netdisco/lib/App/Netdisco/Web/Search.pm index ce179835..639b74e1 100644 --- a/Netdisco/lib/App/Netdisco/Web/Search.pm +++ b/Netdisco/lib/App/Netdisco/Web/Search.pm @@ -78,8 +78,11 @@ get '/search' => sub { if ($nd and $nd->count) { if ($nd->count == 1) { # redirect to device details for the one device - return redirect uri_for('/device', - {tab => 'details', q => $q, f => ''}); + return redirect uri_for('/device', { + tab => 'details', + q => ($nd->first->dns || $nd->first->ip), + f => '', + }); } # multiple devices