From 45887386705f18cb834353fe92cf6d80ee02d2ad Mon Sep 17 00:00:00 2001 From: Michael M Slusarz Date: Wed, 14 Oct 2009 11:30:02 -0600 Subject: [PATCH] Add ability to save drafts in MIMP. --- imp/compose-mimp.php | 79 +++++++++++++++++++++++----------- imp/docs/CHANGES | 1 + imp/templates/compose/compose-mimp.inc | 4 ++ 3 files changed, 58 insertions(+), 26 deletions(-) diff --git a/imp/compose-mimp.php b/imp/compose-mimp.php index efd7af1a2..f91c935f2 100644 --- a/imp/compose-mimp.php +++ b/imp/compose-mimp.php @@ -50,7 +50,7 @@ $resume_draft = false; /* Determine if mailboxes are readonly. */ $draft = IMP::folderPref($prefs->getValue('drafts_folder'), true); -$readonly_drafts = (empty($draft)) ? false : $imp_imap->isReadOnly($draft); +$readonly_drafts = empty($draft) ? false : $imp_imap->isReadOnly($draft); if ($imp_imap->isReadOnly($sent_mail_folder)) { $save_sent_mail = false; } @@ -152,10 +152,22 @@ case _("Redirect"): } break; +case _("Save Draft"): case _("Send"): - if ($compose_disable) { + switch ($actionID) { + case _("Save Draft"): + if ($readonly_drafts) { + break 2; + } + break; + + case _("Send"): + if ($compose_disable) { + break 2; + } break; } + $message = Horde_Util::getFormData('message', ''); $f_to = Horde_Util::getFormData('to'); $f_cc = $f_bcc = null; @@ -185,11 +197,6 @@ case _("Send"): } } - $sig = $identity->getSignature(); - if (!empty($sig)) { - $message .= "\n" . $sig; - } - try { $header['from'] = $identity->getFromLine(null, Horde_Util::getFormData('from')); } catch (Horde_Exception $e) { @@ -208,29 +215,49 @@ case _("Send"): $header['bcc'] = $imp_ui->getAddressList(Horde_Util::getFormData('bcc')); } - $options = array( - 'save_sent' => $save_sent_mail, - 'sent_folder' => $sent_mail_folder, - 'readreceipt' => Horde_Util::getFormData('request_read_receipt') - ); - - try { - if ($imp_compose->buildAndSendMessage($message, $header, Horde_Nls::getEmailCharset(), false, $options)) { + switch ($actionID) { + case _("Save Draft"): + try { + $notification->push($imp_compose->saveDraft($header, $message, Horde_Nls::getCharset(), false), 'horde.success'); $imp_compose->destroy(); - - if (Horde_Util::getFormData('resume_draft') && - $prefs->getValue('auto_delete_drafts')) { - $imp_message = IMP_Message::singleton(); - $idx_array = array($index . IMP::IDX_SEP . $thismailbox); - $delete_draft = $imp_message->delete($idx_array, array('nuke' => true)); - } - - $notification->push(_("Message sent successfully."), 'horde.success'); require IMP_BASE . '/mailbox-mimp.php'; exit; + } catch (IMP_Compose_Exception $e) { + $notification->push($e, 'horde.error'); } - } catch (IMP_Compose_Exception $e) { - $notification->push($e, 'horde.error'); + break; + + case _("Save"): + $sig = $identity->getSignature(); + if (!empty($sig)) { + $message .= "\n" . $sig; + } + + $options = array( + 'save_sent' => $save_sent_mail, + 'sent_folder' => $sent_mail_folder, + 'readreceipt' => Horde_Util::getFormData('request_read_receipt') + ); + + try { + if ($imp_compose->buildAndSendMessage($message, $header, Horde_Nls::getEmailCharset(), false, $options)) { + $imp_compose->destroy(); + + if (Horde_Util::getFormData('resume_draft') && + $prefs->getValue('auto_delete_drafts')) { + $imp_message = IMP_Message::singleton(); + $idx_array = array($index . IMP::IDX_SEP . $thismailbox); + $delete_draft = $imp_message->delete($idx_array, array('nuke' => true)); + } + + $notification->push(_("Message sent successfully."), 'horde.success'); + require IMP_BASE . '/mailbox-mimp.php'; + exit; + } + } catch (IMP_Compose_Exception $e) { + $notification->push($e, 'horde.error'); + } + break; } break; } diff --git a/imp/docs/CHANGES b/imp/docs/CHANGES index e060b46fa..bd34a9956 100644 --- a/imp/docs/CHANGES +++ b/imp/docs/CHANGES @@ -2,6 +2,7 @@ v5.0-git -------- +[mms] Add ability to save drafts in MIMP. [mms] Add spam reporting in MIMP. [mms] Added contextmenu support in DIMP for Opera. [mms] Display HTML parts inline by using IFRAMEs (based on code by diff --git a/imp/templates/compose/compose-mimp.inc b/imp/templates/compose/compose-mimp.inc index 44687d6d5..235885a01 100644 --- a/imp/templates/compose/compose-mimp.inc +++ b/imp/templates/compose/compose-mimp.inc @@ -35,6 +35,10 @@ $f->add(new Horde_Mobile_textarea('message', $msg, _("Message: "), 10, 80)); if (!$compose_disable) { $f->add(new Horde_Mobile_submit(_("Send"), 'a')); } +if ($conf['user']['allow_folders'] && !$readonly_drafts) { + $f->add(new Horde_Mobile_submit(_("Save Draft"), 'a')); +} + $f->add(new Horde_Mobile_submit(_("Expand Names"), 'a')); $mimp_render->add($menu); -- 2.11.0