浏览代码

auto create sent/trash folders

Luke Ehresman 24 年之前
父节点
当前提交
cf935d6dcd
共有 4 个文件被更改,包括 47 次插入37 次删除
  1. 4 3
      ChangeLog
  2. 29 1
      config/conf.pl
  3. 0 32
      src/folders.php
  4. 14 1
      src/left_main.php

+ 4 - 3
ChangeLog

@@ -1,9 +1,10 @@
 Version 1.1.2 -- DEVELOPMENT
 ----------------------------
+- Added option (3 -> 14 in conf.pl) to auto create sent and trash folders.
+- Updated Czech translation
 - Support for multiple identities
-- Support for Russian Apache removed. It is now deemed easier to just
-  turn off Charset Recoding in the Russian Apache config. See 
-  doc/README.russian_apache
+- Support for Russian Apache removed. It is now deemed easier to just turn 
+  off Charset Recoding in the Russian Apache config. See doc/README.russian_apache
 
 Version 1.1.1 -- April 30, 2001
 -------------------------------

+ 29 - 1
config/conf.pl

@@ -245,6 +245,9 @@ if (!$optional_delimiter) {
 if (!$use_authenticated_smtp) {
     $use_authenticated_smtp = "false";
 }
+if (!$auto_create_special) {
+	$auto_create_special = "false";
+}
 
 #####################################################################################
 if ($config_use_color == 1) {
@@ -325,6 +328,7 @@ while (($command ne "q") && ($command ne "Q")) {
       print "11. Show 'Contain Sub.' Option : $WHT$show_contain_subfolders_option$NRM\n";
       print "12. Default Unseen Notify      : $WHT$default_unseen_notify$NRM\n";
       print "13. Default Unseen Type        : $WHT$default_unseen_type$NRM\n";
+	  print "14. Auto create Sent and Trash : $WHT$auto_create_special$NRM\n";
       print "\n";
       print "R   Return to Main Menu\n";
    } elsif ($menu == 4) {
@@ -480,6 +484,7 @@ while (($command ne "q") && ($command ne "Q")) {
          elsif ($command == 11){ $show_contain_subfolders_option = command211(); }
          elsif ($command == 12){ $default_unseen_notify          = command212(); }
          elsif ($command == 13){ $default_unseen_type            = command213(); }
+         elsif ($command == 14){ $auto_create_special            = command214(); }
       } elsif ($menu == 4) {
          if    ($command == 1) { $default_charset          = command31 (); }
          elsif ($command == 2) { $data_dir                 = command33 (); }
@@ -1141,6 +1146,28 @@ sub command213 {
    return $default_unseen_type;
 }
 
+# Auto create special folders
+sub command214 {
+   print "Would you like the Sent and Trash folders to be created automatically for\n";
+   print "you when a user loggs in?  If the user accidentally deletes their special\n";
+   print "folders, this option will automatically create it again for them.\n";
+   print "\n";
+   
+   if ($auto_create_special eq "true") {
+      $default_value = "y";
+   } else {
+      $default_value = "n";
+   }
+   print "Auto create special folders? (y/n) [$WHT$default_value$NRM]: $WHT";
+   $new_show = <STDIN>;
+   if (($new_show =~ /^y\n/i) || (($new_show =~ /^\n/) && ($default_value eq "y"))) {
+      $auto_create_special = "true";
+   } else {
+      $auto_create_special = "false";
+   }
+   return $auto_create_special;
+}
+
 
 ############# GENERAL OPTIONS #####################
 
@@ -1630,7 +1657,7 @@ sub save_data {
    print FILE "\tglobal \$show_prefix_option, \$list_special_folders_first;\n";
    print FILE "\tglobal \$use_special_folder_color, \$auto_expunge, \$default_sub_of_inbox;\n";
    print FILE "\tglobal \$show_contain_subfolders_option, \$default_unseen_notify;\n";
-   print FILE "\tglobal \$default_unseen_type;\n";
+   print FILE "\tglobal \$default_unseen_type, \$auto_create_special;\n";
    print FILE "\t\$default_folder_prefix            = \"$default_folder_prefix\";\n";
    print FILE "\t\$trash_folder                     = \"$trash_folder\";\n";
    print FILE "\t\$sent_folder                      = \"$sent_folder\";\n";
@@ -1644,6 +1671,7 @@ sub save_data {
    print FILE "\t\$show_contain_subfolders_option   =  $show_contain_subfolders_option;\n";
    print FILE "\t\$default_unseen_notify            =  $default_unseen_notify;\n";
    print FILE "\t\$default_unseen_type              =  $default_unseen_type;\n";
+   print FILE "\t\$auto_create_special              =  $auto_create_special;\n";
    print FILE "\n";
 
    print FILE "\tglobal \$default_charset, \$data_dir, \$attachment_dir;\n";

+ 0 - 32
src/folders.php

@@ -47,16 +47,6 @@
          echo "<b>" . _("Created folder successfully!") . "</b><br>";
       } else if ($success == "rename") {
          echo "<b>" . _("Renamed successfully!") . "</b><br>";
-      } else if (($sent_create == "true") || ($trash_create == "true")) {
-         $imapConnection = sqimap_login($username, $key, $imapServerAddress, $imapPort, 0);
-         if ($sent_create == "true") {
-            sqimap_mailbox_create ($imapConnection, $sent_folder, "");  
-         }
-         if ($trash_create == "true") {
-            sqimap_mailbox_create ($imapConnection, $trash_folder, "");
-         }
-         sqimap_logout($imapConnection);
-         echo _("Folders created successfully!");
       }
 
       echo "   <a href=\"../src/left_main.php\" target=left>" . _("refresh folder list") . "</a>";
@@ -66,28 +56,6 @@
    $imapConnection = sqimap_login ($username, $key, $imapServerAddress, $imapPort, 0);
    $boxes = sqimap_mailbox_list($imapConnection);
 
-   //display form option for creating Sent and Trash folder
-   if ($imap_server_type == "cyrus" && ($sent_folder != "none" || $trash_folder != "none")) {
-      if ((!sqimap_mailbox_exists ($imapConnection, $sent_folder)) || 
-	  (!sqimap_mailbox_exists ($imapConnection, $trash_folder))) {
-         echo "<TABLE WIDTH=70% COLS=1 ALIGN=CENTER cellpadding=2 cellspacing=0 border=0>\n";
-         echo "<TR><TD BGCOLOR=\"$color[9]\" ALIGN=CENTER><B>";
-         echo _("Special Folder Options");
-         echo "</B></TD></TR>";
-         echo "<TR><TD BGCOLOR=\"$color[0]\" ALIGN=CENTER>";
-         echo _("In order for SquirrelMail to provide the full set of options you need to create the special folders listed below.  Just click the check box and hit the create button.");
-         echo "<FORM ACTION=\"folders.php\" METHOD=\"POST\">\n";
-         if (!sqimap_mailbox_exists ($imapConnection, $sent_folder) && $sent_folder != "none") {
-            echo _("Create Sent") . "<INPUT TYPE=checkbox NAME=sent_create value=true><br>\n";
-         }
-         if (!sqimap_mailbox_exists ($imapConnection, $trash_folder) && $trash_folder != "none"){
-            echo _("Create Trash") . "<INPUT TYPE=checkbox NAME=trash_create value=true><br>\n";
-         }
-         echo "<INPUT TYPE=submit VALUE="._("Create").">";
-         echo "</FORM></TD></TR></TABLE><br>";
-      }
-   }
-
    /** DELETING FOLDERS **/
    echo "<TABLE WIDTH=70% COLS=1 ALIGN=CENTER cellpadding=2 cellspacing=0 border=0>\n";
    echo "<TR><TD BGCOLOR=\"$color[9]\" ALIGN=CENTER><B>";

+ 14 - 1
src/left_main.php

@@ -17,9 +17,22 @@
 
    // open a connection on the imap port (143)
    $imapConnection = sqimap_login($username, $key, $imapServerAddress, $imapPort, 10); // the 10 is to hide the output
-
+   
    displayHtmlHeader();
 
+   if ($auto_create_special) {
+   	  if (isset ($sent_folder) && $sent_folder != "none") {
+	  	 if (!sqimap_mailbox_exists ($imapConnection, $sent_folder)) {
+		 	sqimap_mailbox_create ($imapConnection, $sent_folder, "");
+		 }
+	  }
+   	  if (isset ($trash_folder) && $trash_folder != "none") {
+	  	 if (!sqimap_mailbox_exists ($imapConnection, $trash_folder)) {
+		 	sqimap_mailbox_create ($imapConnection, $trash_folder, "");
+		 }
+	  }
+   }
+
    function formatMailboxName($imapConnection, $box_array, $delimeter) {
       global $folder_prefix, $trash_folder, $sent_folder;
       global $color, $move_to_sent, $move_to_trash;