/** * Converts an email to a draft and sends it. * * @access public * @param integer $draft_id The id of the draft to send. */ function send($draft_id) { global $HTTP_POST_VARS; $draft_id = Misc::escapeInteger($draft_id); $draft = Draft::getDetails($draft_id); $HTTP_POST_VARS["issue_id"] = $draft["emd_iss_id"]; $HTTP_POST_VARS["subject"] = $draft["emd_subject"]; $HTTP_POST_VARS["from"] = User::getFromHeader(Auth::getUserID()); $HTTP_POST_VARS["to"] = $draft["to"]; $HTTP_POST_VARS["cc"] = @join(";", $draft["cc"]); $HTTP_POST_VARS["message"] = $draft["emd_body"]; $HTTP_POST_VARS["ema_id"] = Email_Account::getEmailAccount(); $res = Support::sendEmail(); if ($res == 1) { Draft::remove($draft_id); } return $res; }
if ($issue_id) { $_POST['to'] = ''; } if ($cat == 'send_email') { $res = Support::sendEmailFromPost($_POST['parent_id']); $tpl->assign('send_result', $res); if (Access::canChangeStatus($issue_id, $usr_id) && isset($_POST['new_status']) && !empty($_POST['new_status'])) { $res = Issue::setStatus($issue_id, $_POST['new_status']); if ($res != -1) { $new_status = Status::getStatusTitle($_POST['new_status']); History::add($issue_id, $usr_id, 'status_changed', "Status changed to '{status}' by {user} when sending an email", array('status' => $new_status, 'user' => User::getFullName($usr_id))); } } // remove the existing email draft, if appropriate if (!empty($_POST['draft_id'])) { Draft::remove($_POST['draft_id']); } // enter the time tracking entry about this new email if (!empty($_POST['time_spent'])) { $date = (array) $_POST['date']; $ttc_id = Time_Tracking::getCategoryId($prj_id, 'Email Discussion'); $time_spent = (int) $_POST['time_spent']; $summary = 'Time entry inserted when sending outgoing email.'; Time_Tracking::addTimeEntry($issue_id, $ttc_id, $time_spent, $date, $summary); } } elseif ($cat == 'save_draft') { $res = Draft::saveEmail($issue_id, $_POST['to'], $_POST['cc'], $_POST['subject'], $_POST['message'], $_POST['parent_id']); $tpl->assign('draft_result', $res); } elseif ($cat == 'update_draft') { $res = Draft::update($issue_id, $_POST['draft_id'], $_POST['to'], $_POST['cc'], $_POST['subject'], $_POST['message'], $_POST['parent_id']); $tpl->assign('draft_result', $res);
$HTTP_POST_VARS['to'] = ''; } if (@$HTTP_POST_VARS["cat"] == "send_email") { $res = Support::sendEmail($HTTP_POST_VARS['parent_id']); $tpl->assign("send_result", $res); if (!@empty($HTTP_POST_VARS['new_status'])) { $res = Issue::setStatus($issue_id, $HTTP_POST_VARS['new_status']); Issue::updateControlStatus($issue_id); if ($res != -1) { $new_status = Status::getStatusTitle($HTTP_POST_VARS['new_status']); History::add($issue_id, $usr_id, History::getTypeID('status_changed'), "Status changed to '{$new_status}' by " . User::getFullName($usr_id) . " when sending an email"); } } // remove the existing email draft, if appropriate if (!empty($HTTP_POST_VARS['draft_id'])) { Draft::remove($HTTP_POST_VARS['draft_id']); } // enter the time tracking entry about this new email if (!empty($HTTP_POST_VARS['time_spent'])) { $HTTP_POST_VARS['issue_id'] = $issue_id; $HTTP_POST_VARS['category'] = Time_Tracking::getCategoryID('Email Discussion'); $HTTP_POST_VARS['summary'] = 'Time entry inserted when sending outgoing email.'; Time_Tracking::insertEntry(); } } elseif (@$HTTP_POST_VARS["cat"] == "save_draft") { $res = Draft::saveEmail($issue_id, $HTTP_POST_VARS["to"], $HTTP_POST_VARS["cc"], $HTTP_POST_VARS["subject"], $HTTP_POST_VARS["message"], $HTTP_POST_VARS["parent_id"]); $tpl->assign("draft_result", $res); } elseif (@$HTTP_POST_VARS["cat"] == "update_draft") { $res = Draft::update($issue_id, $HTTP_POST_VARS["draft_id"], $HTTP_POST_VARS["to"], $HTTP_POST_VARS["cc"], $HTTP_POST_VARS["subject"], $HTTP_POST_VARS["message"], $HTTP_POST_VARS["parent_id"]); $tpl->assign("draft_result", $res); } elseif (Auth::getCurrentRole() >= User::getRoleID('Developer')) {