#!/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'});