Code Search for Developers
 
 
  

altfolder_update.html from AlphaMail at Krugle


Show altfolder_update.html syntax highlighted

% # vim:set syntax=mason:
<%args>
$alt_folders
$cancel => 0
</%args>
<%init>
my $user = Apache::SiteControl->getCurrentUser($r);
my $c;
my $p;
my $message = "";

if($cancel) {
   $m->redirect('/mail/index.html');
}

eval {
   $c = new AlphaMail::Middleware($user->getAttribute('imap'), 
                                  $user->getUsername(), 
                                  $user->getAttribute('password'), $config);
   $p = new AlphaMail::Preferences($user->getUsername(), 
                                   $user->getAttribute('imap'), $config);

   # Get the old set of alt folders, and see if any of them were special (i.e.
   # trash, sent, drafts.
   my $trash = $p->get('trash_folder', $config->get("default_trash", 'none'));
   my $sent = $p->get('sent_folder', $config->get("default_sent", 'none'));
   my $drafts = $p->get('drafts_folder', $config->get("default_drafts", 'none'));
   my @old_altfolders = $p->getList('alt_folders');
   my @keepers;
   push(@keepers, $sent) if(grep /^\Q$sent\E$/, @old_altfolders);
   push(@keepers, $trash) if(grep /^\Q$trash\E$/, @old_altfolders);
   push(@keepers, $drafts) if(grep /^\Q$drafts\E$/, @old_altfolders);

   # Check to make sure these are real folders
   my @folders = split /,/, $alt_folders;
   $alt_folders = "";
   for my $folder (@folders) {
      $folder =~ s/^ *//;
      $folder =~ s/ *$//;
      if($folder =~ m/^\//) {
         $message .= "Folder $folder was not saved. Names must not begin with /<br>";
         next;
      }
      if($folder =~ m/^\~[^\/]/) {
         $message .= "Folder $folder was not saved. ~ must be followed by /<br>";
         next;
      }
      if($folder =~ m/\.\./) {
         $message .= "Folder $folder was not saved. Names must not contain '..'<br>";
         next;
      }
      eval {
         $c->getMessageCount($folder);
      };
      if($@) {
         $message .= "$folder was not saved. It was not a selectable folder on the server.<br>";
      } else {
         $alt_folders .= "$folder,";
      }
   }

   # Check the keepers
   for my $f (@keepers) {
      $logger->debug("Looking for $f in $alt_folders");
      if($alt_folders !~ m/^\Q$f\E,/ && $alt_folders !~ m/,\Q$f\E,/) {
         $message .= "$f kept. It is in use.<br>";
         $alt_folders .= "$f,";
      }
   }

   $alt_folders =~ s/,$//;
   $p->set('alt_folders', $alt_folders);

   # Force an update of the session folderlist
   $user->setAttribute($r, 'folderlist', '');
   $user->setAttribute($r, 'subfolderlist', '');

   $message .= "Alternate folders set.<br>";
   $c->close();
};
if($@) {
   $logger->error("$@");
   $message = "Error saving changes: $@<br>";
}

$m->redirect(build_url('/mail/settings/index.html', { selected => 'Folders',
   message => $message }));
</%init>
<%once>
use AlphaMail::HTMLHelper qw(build_url);
our $logger = Log::Log4perl->get_logger('alphamail');
</%once>




See more files for this project here

AlphaMail

AlphaMail is an accelerated web mail interface with a C++ middleware layer that is more effective than an IMAP proxy which is a highly scalable (10k+ users). The interface includes modern features, Section 508 compliance, and universal browser support.

Project homepage: http://sourceforge.net/projects/alphamail
Programming language(s): C++,Java,JavaScript,Perl
License: other

  altfolder_update.html
  edit_folders.html
  folders.mhtml
  general.mhtml
  index.html
  share.mhtml
  sharing_agree.html
  signatures.mhtml
  update_folderlist.html
  update_general.html
  update_signatures.html