diff --git a/lib/App/Netdisco/Web/Plugin/Search/Port.pm b/lib/App/Netdisco/Web/Plugin/Search/Port.pm index 2a7b29e4..0783c9dd 100644 --- a/lib/App/Netdisco/Web/Plugin/Search/Port.pm +++ b/lib/App/Netdisco/Web/Plugin/Search/Port.pm @@ -17,7 +17,7 @@ register_search_tab({ api_endpoint => 1, api_parameters => [ q => { - description => 'Port name or VLAN or MAC address', + description => 'Port name, VLAN, or MAC address', required => 1, }, partial => { @@ -30,6 +30,11 @@ register_search_tab({ type => 'boolean', default => 'false', }, + descr => { + description => 'Search in the Port Description field', + type => 'boolean', + default => 'false', + }, ethernet => { description => 'Only Ethernet type interfaces in results', type => 'boolean', @@ -76,6 +81,9 @@ get '/ajax/content/search/port' => require_login sub { -and => [ -or => [ { "me.name" => ( param('partial') ? $likeclause : $q ) }, + ( param('descr') ? ( + { "me.descr" => ( param('partial') ? $likeclause : $q ) }, + ) : () ), ( ((!defined $mac) or $mac->errstr) ? \[ 'me.mac::text ILIKE ?', $likeval ] : { 'me.mac' => $mac->as_ieee } diff --git a/share/config.yml b/share/config.yml index d4c99ad4..3a9f8f0a 100644 --- a/share/config.yml +++ b/share/config.yml @@ -108,6 +108,7 @@ sidebar_defaults: search_port: partial: { default: checked } uplink: { default: null } + descr: { default: null } ethernet: { default: checked } search_device: matchall: { default: checked } diff --git a/share/views/sidebar/search/port.tt b/share/views/sidebar/search/port.tt index 92dd491f..9d633207 100644 --- a/share/views/sidebar/search/port.tt +++ b/share/views/sidebar/search/port.tt @@ -16,7 +16,16 @@ name="uplink"[% ' checked="checked"' IF vars.sidebar_defaults.search_port.uplink %]/> + +
+ +