#!/usr/local/bin/perl # list_virts.cgi # Display a list of virtual domain mappings require './qmail-lib.pl'; &ReadParse(); &ui_print_header(undef, $text{'virts_title'}, ""); @virts = &list_virts(); print &text('virts_desc', "list_aliases.cgi"),"

\n"; &virt_form(); if ($in{'search'}) { # Restrict to search results @virts = grep { $_->{'from'} =~ /$in{'search'}/ } @virts; } elsif ($config{'max_records'} && @virts > $config{'max_records'}) { # Show search form print $text{'virts_toomany'},"
\n"; print "

\n"; print "\n"; print "
\n"; undef(@virts); } if (@virts) { # sort if needed if ($config{'sort_mode'} == 1) { @virts = sort { lc($a->{'from'}) cmp lc($b->{'from'}) } @virts; } # render tables print &ui_form_start("delete_virts.cgi", "post"); print &select_all_link("d", 1),"\n"; print &select_invert_link("d", 1),"
\n"; if ($config{'columns'} == 2) { $mid = int((@virts+1)/2); print "
\n"; &virts_table(@virts[0..$mid-1]); print "\n"; if ($mid < @virts) { &virts_table(@virts[$mid..$#virts]); } print "

\n"; } else { &virts_table(@virts); } print &select_all_link("d", 1),"\n"; print &select_invert_link("d", 1),"
\n"; print &ui_form_end([ [ "delete", $text{'virts_delete'} ] ]); } &ui_print_footer("", $text{'index_return'}); sub virts_table { print "\n"; print " ", "\n"; foreach $v (@_) { print "\n"; print "\n"; print "\n"; print "\n"; } print "

$text{'virts_from'}$text{'virts_prepend'}
",&ui_checkbox("d", $v->{'from'}),"{'idx'}\">", ($v->{'from'} ? &html_escape($v->{'from'}) : "$text{'virts_all'}"),"",($v->{'prepend'} ? &html_escape($v->{'prepend'}) : "$text{'virts_none'}"),"
\n"; }