#!/usr/local/bin/perl
# list_addresses.cgi
# Display contents of the user's address book

require './mailbox-lib.pl';
&ReadParse();
&ui_print_header(undef, $text{'address_title'}, "");

# Start tabs for users and groups
$prog = "list_addresses.cgi?mode=";
print &ui_tabs_start([ [ "users", $text{'address_users'}, $prog."users" ],
		       [ "groups", $text{'address_groups'}, $prog."groups" ] ],
		     "mode", $in{'mode'} || "users", 1);

print &ui_tabs_start_tab("mode", "users");
@addrs = &list_addresses();
print "$text{'address_desc'}<p>\n";
if (@addrs || $in{'add'}) {
	if ($in{'add'} || $in{'edit'} ne '') {
		print "<form action=save_address.cgi>\n";
		print "<input type=hidden name=add value='$in{'add'}'>\n";
		print "<input type=hidden name=edit value='$in{'edit'}'>\n";
		}
	print "<table width=100%>\n";
	print "<tr> <td colspan=2 width=10%></td> ",
	      "<td width=40%><b>$text{'address_addr'}</b></td> ",
	      "<td width=40%><b>$text{'address_name'}</b></td> ",
	      $config{'edit_from'} ? "<td width=10% nowrap><b>$text{'address_from'}</b></td> " : "",
	      "</tr>\n";
	foreach $a (@addrs) {
		next if (!defined($a->[2]));
		print "<tr> <td width=5%>\n";
		if ($in{'edit'} ne $a->[2]) {
			print "<a href='list_addresses.cgi?",
			      "mode=users&edit=$a->[2]#editing'>",
			      "$text{'address_edit'}</a>\n";
			}
		else {
			print "<a href=list_addresses.cgi?mode=users>",
			      "$text{'cancel'}</a>\n";
			}
		print "</td> <td width=5%>\n";
		print "<a href='save_address.cgi?delete=$a->[2]'>",
		      "$text{'address_delete'}</a></td>\n";

		if ($in{'edit'} eq $a->[2]) {
			# Editing this row
			print "<td width=40%><input name=addr size=30 value='",
				&html_escape($a->[0]),"'><a name=editing></td>\n";
			print "<td width=40%><input name=name size=30 value='",
				&html_escape($a->[1]),"'></td>\n";
			if ($config{'edit_from'}) {
				&from_sel($a->[3]);
				}
			else {
				print "<input type=hidden name=from value='$a->[3]'>\n";
				}
			print "<td><input type=submit value='$text{'save'}'></td>\n";
			}
		else {
			# Just showing this row
			print "<td width=40%>$a->[0]</td>\n";
			print "<td width=40%>",$a->[1] ? $a->[1] : "<br>","</td>\n";
			print "<td>",$a->[3] == 1 ? $text{'yes'} :
				     $a->[3] == 2 ? $text{'address_yd'} :
					     	    $text{'no'},"</td>\n"
				if ($config{'edit_from'});
			}
		print "</tr>\n";
		}
	if ($in{'add'}) {
		print "<tr> <td width=5%><a href='list_addresses.cgi?",
		      "mode=users'>$text{'cancel'}</a></td>\n";
		print "<td width=5%><a name=adding></td>\n";
		print "<td width=40%><input name=addr size=30></td>\n";
		print "<td width=40%><input name=name size=30></td>\n";
		print &from_sel() if ($config{'edit_from'});
		print "<td><input type=submit value='$text{'save'}'></td>\n";
		print "</tr>\n";
		}
	print "</table>\n";
	if ($in{'add'} || $in{'edit'} ne '') {
		print "</form>\n";
		}
	}
else {
	print "<b>$text{'address_none'}</b> <p>\n";
	}
print "<a href='list_addresses.cgi?mode=users&add=1#adding'>",
      "$text{'address_add'}</a> <br>\n"
	if (!$in{'add'});
print &ui_tabs_end_tab();

print &ui_tabs_start_tab("mode", "groups");
@gaddrs = grep { defined($_->[2]) } &list_address_groups();
print "$text{'address_gdesc'}<p>\n";
if (@gaddrs || $in{'gadd'}) {
	if ($in{'gadd'} || $in{'gedit'} ne '') {
		print "<form action=save_group.cgi>\n";
		print "<input type=hidden name=gadd value='$in{'gadd'}'>\n";
		print "<input type=hidden name=gedit value='$in{'gedit'}'>\n";
		}
	print "<table width=100%>\n";
	print "<tr> <td colspan=2 width=10%></td> ",
	      "<td width=20%><b>$text{'address_group'}</b></td> ",
	      "<td width=70%><b>$text{'address_members'}</b></td> ",
	      "</tr>\n";
	foreach $a (@gaddrs) {
		print "<tr> <td width=5%>\n";
		if ($in{'gedit'} ne $a->[2]) {
			print "<a href='list_addresses.cgi?mode=groups&",
			      "gedit=$a->[2]#editing'>",
			      "$text{'address_edit'}</a>\n";
			}
		else {
			print "<a href=list_addresses.cgi?mode=groups>",
			      "$text{'cancel'}</a>\n";
			}
		print "</td> <td width=5%>\n";
		print "<a href='save_group.cgi?gdelete=$a->[2]'>",
		      "$text{'address_delete'}</a></td>\n";

		if ($in{'gedit'} eq $a->[2]) {
			print "<td width=20%><input name=group size=15 value='",
				&html_escape($a->[0]),"'><a name=editing></td>\n";
			print "<td width=70%><input name=members size=60 value='",
				&html_escape($a->[1]),"'> ",
				&address_button("members", 0, 0, 0, 1),"\n";
			print "<input type=submit value='$text{'save'}'></td>\n";
			}
		else {
			print "<td width=20%>$a->[0]</td>\n";
			print "<td width=70%>",&html_escape($a->[1]),"</td>\n";
			}
		print "</tr>\n";
		}
	if ($in{'gadd'}) {
		print "<tr> <td width=5%><a href='list_addresses.cgi?",
		      "mode=groups'>$text{'cancel'}</a></td>\n";
		print "<td width=5%><a name=adding></td>\n";
		print "<td width=20%><input name=group size=20></td>\n";
		print "<td width=70%><input name=members size=60> ",
		      &address_button("members", 0, 0, 0, 1),"\n";
		print "<input type=submit value='$text{'save'}'></td>\n";
		print "</tr>\n";
		}
	print "</table>\n";
	if ($in{'gadd'} || $in{'gedit'} ne '') {
		print "</form>\n";
		}
	}
else {
	print "<b>$text{'address_gnone'}</b> <p>\n";
	}
print "<a href='list_addresses.cgi?mode=groups&gadd=1#adding'>",
      "$text{'address_gadd'}</a> <br>\n"
	if (!$in{'gadd'});
print &ui_tabs_end_tab();
print &ui_tabs_end(1);

&ui_print_footer("", $text{'mail_return'});

sub from_sel
{
print "<td><select name=from>\n";
printf "<option value=0 %s> %s\n",
	$_[0] == 0 ? "selected" : "", $text{'no'};
printf "<option value=1 %s> %s\n",
	$_[0] == 1 ? "selected" : "", $text{'yes'};
printf "<option value=2 %s> %s\n",
	$_[0] == 2 ? "selected" : "", $text{'address_yd'};
print "</select></td>\n";
}



syntax highlighted by Code2HTML, v. 0.9.1