diff --git a/webmin-search-lib.pl b/webmin-search-lib.pl index 9d1b21954..aff55e3e1 100644 --- a/webmin-search-lib.pl +++ b/webmin-search-lib.pl @@ -34,14 +34,14 @@ my $pn = &get_product_name(); my @mods; if ($onlymods) { # Modules specified by caller - @mods = @$onlymods; + @mods = grep { &foreign_available($_->{'dir'}) } @$onlymods; } else { - # All reasonabel modules - @mods = grep { !$_->{'clone'} } - grep { !$_->{'noui'} && !$_->{$pn.'_noui'} } - &get_available_module_infos(); + # All reasonable modules + @mods = &get_available_module_infos(); } +@mods = grep { !$_->{'clone'} } + grep { !$_->{'noui'} && !$_->{$pn.'_noui'} } @mods; @mods = sort { $b->{'longdesc'} cmp $a->{'longdesc'} } @mods; foreach my $m (@mods) { if ($m->{'desc'} =~ /\Q$re\E/i) { diff --git a/webmin_search.cgi b/webmin_search.cgi index 9f0123928..456b42efb 100644 --- a/webmin_search.cgi +++ b/webmin_search.cgi @@ -11,8 +11,8 @@ do 'webmin-search-lib.pl'; $prod = &get_product_name(); $ucprod = ucfirst($prod); -&ui_print_unbuffered_header( - undef, &text('wsearch_title', $ucprod), "", undef, 0, 1); +&ui_print_unbuffered_header(undef, + $in{'title'} || &text('wsearch_title', $ucprod), "", undef, 0, 1); # Validate search text $re = $in{'search'}; @@ -22,10 +22,20 @@ if ($re !~ /\S/) { $re =~ s/^\s+//; $re =~ s/\s+$//; +# Find modules to search +$mods = undef; +if ($in{'mod'}) { + $mods = [ ]; + my %infos = map { $_->{'dir'}, $_ } &get_all_module_infos(); + foreach my $mn (split(/\0/, $in{'mod'})) { + my $minfo = $infos{$mn}; + push(@$mods, $minfo) if ($minfo); + } + } + # Do the search print &text('wsearch_searching', "".&html_escape($re).""),"\n"; -@rv = &search_webmin($re, \&print_search_dot, - $in{'mod'} ? [ split(/\0/, $in{'mod'}) ] : undef); +@rv = &search_webmin($re, \&print_search_dot, $mods); print &text('wsearch_found', scalar(@rv)),"
\n"; # Show in table