#!/usr/local/bin/perl
# Display a list of IMAP folders, and allow addition and deletion
require './mailbox-lib.pl';
&ui_print_header(undef, $text{'folders_title'}, "");
print &ui_form_start("delete_folders.cgi", "post");
@tds = ( "width=5" );
@folders = &list_folders_sorted();
@adders = ( "$text{'folders_addimap'}",
"$text{'folders_addcomp'}",
"$text{'folders_addvirt'}" );
print &ui_links_row(\@adders);
print &ui_columns_start([ "",
$text{'folders_name'},
$text{'folders_type'},
$text{'folders_size'},
$text{'folders_action'} ], undef, 0, \@tds);
foreach $f (@folders) {
local @cols;
local $deletable = 0;
if ($f->{'inbox'} || $f->{'drafts'} || $f->{'spam'}) {
# Inbox, drafs or spam folder which cannot be edited
push(@cols, $f->{'name'});
push(@cols, "IMAP");
push(@cols, &nice_size(&folder_size($f)));
}
elsif ($f->{'type'} == 5) {
# Link for editing composite folder
push(@cols, "".
"$f->{'name'}");
push(@cols, $text{'folders_comp'});
push(@cols, &nice_size(&folder_size($f)));
$deletable = 1;
}
elsif ($f->{'type'} == 6) {
# Link for editing virtual folder
push(@cols, "".
"$f->{'name'}");
push(@cols, $text{'folders_virt'});
push(@cols, undef);
$deletable = 1;
}
else {
# Edit an IMAP folder
push(@cols, "".
"$f->{'name'}");
push(@cols, "IMAP");
push(@cols, &nice_size(&folder_size($f)));
$deletable = 1;
}
# Action links
local @acts;
push(@acts, "".
"$text{'folders_view'}");
if (!$f->{'nowrite'}) {
local ($is, $ie);
$auto = &get_auto_schedule($f);
if ($auto && $auto->{'enabled'}) {
($is, $ie) = ("", "");
}
push(@acts, $is."".
"$text{'folders_auto'}".$ie);
}
push(@acts, "".
"$text{'folders_copy'}");
push(@cols, join(" | ", @acts));
if ($deletable) {
print &ui_checked_columns_row(\@cols, \@tds,
"d", $f->{'index'});
}
else {
print &ui_columns_row([ "", @cols ], \@tds);
}
}
print &ui_columns_end();
print &ui_links_row(\@adders);
print &ui_form_end([ [ "delete", $text{'folders_delete'} ] ]);
&ui_print_footer("", $text{'index'});