thomascube
2006-07-30 f9c107afbe9bb01627a9e6de48efdfbbda8e56e6
Fixed folder renaming; added confirmation after deleting a folder

8 files modified
77 ■■■■■ changed files
CHANGELOG 2 ●●●●● patch | view | raw | blame | history
program/include/rcube_imap.inc 31 ●●●● patch | view | raw | blame | history
program/js/app.js 13 ●●●●● patch | view | raw | blame | history
program/localization/de_CH/messages.inc 2 ●●●●● patch | view | raw | blame | history
program/localization/de_DE/messages.inc 2 ●●●●● patch | view | raw | blame | history
program/localization/en_GB/messages.inc 13 ●●●●● patch | view | raw | blame | history
program/localization/en_US/messages.inc 2 ●●●●● patch | view | raw | blame | history
program/steps/settings/manage_folders.inc 12 ●●●●● patch | view | raw | blame | history
CHANGELOG
@@ -6,6 +6,8 @@
- Alter links in HTML messages (Bug #1326402)
- Added fallback if host not found in 'mail_domain' array
- Applied patch of Charles to highlight droptargets (Ticket #1473034)
- Fixed folder renaming (Bug #1483914)
- Added confirmation message after deleting a folder
2006/07/25 (thomasb)
program/include/rcube_imap.inc
@@ -1245,28 +1245,29 @@
  // set a new name to an existing mailbox
  function rename_mailbox($mbox_name, $new_name, $subscribe=TRUE)
  function rename_mailbox($mbox_name, $new_name)
    {
    $result = FALSE;
    // replace backslashes
    $name = preg_replace('/[\\\]+/', '-', $new_name);
    // encode mailbox name and reduce it to 100 chars
    $name_enc = substr(UTF7EncodeString($new_name), 0, 100);
    $name_enc = UTF7EncodeString($new_name);
    // reduce mailbox name to 100 chars
    $name_enc = substr($name_enc, 0, 100);
    // make absolute path
    $mailbox = $this->_mod_mailbox($mbox_name);
    $abs_name = $this->_mod_mailbox($name_enc);
    $a_mailbox_cache = $this->get_cache('mailboxes');
    if (strlen($abs_name) && (!is_array($a_mailbox_cache) || !in_array($abs_name, $a_mailbox_cache)))
      $result = iil_C_RenameFolder($this->conn, $mbox_name, $abs_name);
    // update mailboxlist cache
    if ($result && $subscribe)
      $this->unsubscribe($mbox_name);
      $this->subscribe($name_enc);
    if (strlen($abs_name))
      $result = iil_C_RenameFolder($this->conn, $mailbox, $abs_name);
    // clear cache
    if ($result)
      {
      $this->clear_message_cache($mailbox.'.msg');
      $this->clear_cache('mailboxes');
      }
    return $result ? $name : FALSE;
    }
program/js/app.js
@@ -2848,10 +2848,12 @@
      row.cells[3].firstChild.onclick = new Function(this.ref+".command('delete-folder','"+name.replace('\'','\\\'')+"')");
    // add new folder to rename-folder list and clear input field
    if (!replace && (form = this.gui_objects.editform) && form.elements['_folder_name'])
    if (!replace && (form = this.gui_objects.editform))
      {
      form.elements['_folder_oldname'].options[form.elements['_folder_oldname'].options.length] = new Option(name,name);
      form.elements['_folder_name'].value = '';
      if (form.elements['_folder_oldname'])
        form.elements['_folder_oldname'].options[form.elements['_folder_oldname'].options.length] = new Option(name,name);
      if (form.elements['_folder_name'])
        form.elements['_folder_name'].value = '';
      }
    };
@@ -2909,7 +2911,8 @@
        }
      }
    
    form.elements['_folder_newname'].value = '';
    if (form && form.elements['_folder_newname'])
      form.elements['_folder_newname'].value = '';
    };
@@ -3151,7 +3154,7 @@
  
    if (!this.gui_objects.message)
      return false;
    if (this.message_timer)
      clearTimeout(this.message_timer);
    
program/localization/de_CH/messages.inc
@@ -102,5 +102,7 @@
$messages['nospellerrors'] = 'Keine Rechtschreibfehler gefunden';
$messages['folderdeleted'] = 'Ordner erfolgreich gelöscht';
?>
program/localization/de_DE/messages.inc
@@ -104,4 +104,6 @@
$messages['nospellerrors'] = 'Keine Rechtschreibfehler gefunden';
$messages['folderdeleted'] = 'Ordner erfolgreich gelöscht';
?>
program/localization/en_GB/messages.inc
@@ -90,4 +90,17 @@
$messages['nosearchname'] = 'Please enter a contact name or email address';
$messages['searchsuccessful'] = '$nr messages found';
$messages['searchnomatch'] = 'Search returned no matches';
$messages['searching'] = 'Searching...';
$messages['checking'] = 'Checking...';
$messages['nospellerrors'] = 'No spelling errors found';
$messages['folderdeleted'] = 'Folder successfully deleted';
?>
program/localization/en_US/messages.inc
@@ -104,5 +104,7 @@
$messages['nospellerrors'] = 'No spelling errors found';
$messages['folderdeleted'] = 'Folder successfully deleted';
?>
program/steps/settings/manage_folders.inc
@@ -67,7 +67,7 @@
else if ($_action=='rename-folder')
  {
  if (!empty($_GET['_folder_oldname']) && !empty($_GET['_folder_newname']))
    $rename = $IMAP->rename_mailbox(get_input_value('_folder_oldname', RCUBE_INPUT_GET), trim(get_input_value('_folder_newname', RCUBE_INPUT_GET)), TRUE);
    $rename = $IMAP->rename_mailbox(get_input_value('_folder_oldname', RCUBE_INPUT_GET), trim(get_input_value('_folder_newname', RCUBE_INPUT_GET)));
  if ($rename && $REMOTE_REQUEST)
    {
@@ -89,11 +89,15 @@
// delete an existing IMAP mailbox
else if ($_action=='delete-folder')
  {
  if (strlen($_GET['_mboxes']))
    $deleted = $IMAP->delete_mailbox(array($_GET['_mboxes']));
  if (!empty($_GET['_mboxes']))
    $deleted = $IMAP->delete_mailbox(array(get_input_value('_mboxes', RCUBE_INPUT_GET)));
  if ($REMOTE_REQUEST && $deleted)
    rcube_remote_response(sprintf("this.remove_folder_row('%s')", rep_specialchars_output($_GET['_mboxes'], 'js')));
    {
    $commands = sprintf("this.remove_folder_row('%s');\n", rep_specialchars_output(get_input_value('_mboxes', RCUBE_INPUT_GET), 'js'));
    $commands .= show_message('folderdeleted', 'confirmation');
    rcube_remote_response($commands);
    }
  else if ($REMOTE_REQUEST)
    {
    $commands = show_message('errorsaving', 'error');