protected function buildMailBody(PhabricatorLiskDAO $object, array $xactions) { $body = parent::buildMailBody($object, $xactions); $detail_uri = PhabricatorEnv::getProductionURI($object->getURI()); $body->addLinkSection(pht('PACKAGE DETAIL'), $detail_uri); return $body; }
protected function buildMailBody(PhabricatorLiskDAO $object, array $xactions) { $body = parent::buildMailBody($object, $xactions); $uri = '/project/profile/' . $object->getID() . '/'; $body->addLinkSection(pht('PROJECT DETAIL'), PhabricatorEnv::getProductionURI($uri)); return $body; }
protected function buildMailBody(PhabricatorLiskDAO $object, array $xactions) { $body = parent::buildMailBody($object, $xactions); $type_inline = DifferentialTransaction::TYPE_INLINE; $inlines = array(); foreach ($xactions as $xaction) { if ($xaction->getTransactionType() == $type_inline) { $inlines[] = $xaction; } } $changed_uri = $this->getChangedPriorToCommitURI(); if ($changed_uri) { $body->addTextSection(pht('CHANGED PRIOR TO COMMIT'), $changed_uri); } if ($inlines) { $body->addTextSection(pht('INLINE COMMENTS'), $this->renderInlineCommentsForMail($object, $inlines)); } $body->addTextSection(pht('REVISION DETAIL'), PhabricatorEnv::getProductionURI('/D' . $object->getID())); $update_xaction = null; foreach ($xactions as $xaction) { switch ($xaction->getTransactionType()) { case DifferentialTransaction::TYPE_UPDATE: $update_xaction = $xaction; break; } } if ($update_xaction) { $diff = $this->requireDiff($update_xaction->getNewValue(), true); $body->addTextSection(pht('AFFECTED FILES'), $this->renderAffectedFilesForMail($diff)); $config_key_inline = 'metamta.differential.inline-patches'; $config_inline = PhabricatorEnv::getEnvConfig($config_key_inline); $config_key_attach = 'metamta.differential.attach-patches'; $config_attach = PhabricatorEnv::getEnvConfig($config_key_attach); if ($config_inline || $config_attach) { $patch_section = $this->renderPatchForMail($diff); $lines = count(phutil_split_lines($patch_section->getPlaintext())); if ($config_inline && $lines <= $config_inline) { $body->addTextSection(pht('CHANGE DETAILS'), $patch_section); } if ($config_attach) { $name = pht('D%s.%s.patch', $object->getID(), $diff->getID()); $mime_type = 'text/x-patch; charset=utf-8'; $body->addAttachment(new PhabricatorMetaMTAAttachment($patch_section->getPlaintext(), $name, $mime_type)); } } } return $body; }
protected function buildMailBody(PhabricatorLiskDAO $object, array $xactions) { $body = parent::buildMailBody($object, $xactions); $type_inline = PhabricatorAuditActionConstants::INLINE; $inlines = array(); foreach ($xactions as $xaction) { if ($xaction->getTransactionType() == $type_inline) { $inlines[] = $xaction; } } if ($inlines) { $body->addTextSection(pht('INLINE COMMENTS'), $this->renderInlineCommentsForMail($object, $inlines)); } // Reload the commit to pull commit data. $commit = id(new DiffusionCommitQuery())->setViewer($this->requireActor())->withIDs(array($object->getID()))->needCommitData(true)->executeOne(); $data = $commit->getCommitData(); $user_phids = array(); $author_phid = $commit->getAuthorPHID(); if ($author_phid) { $user_phids[$commit->getAuthorPHID()][] = pht('Author'); } $committer_phid = $data->getCommitDetail('committerPHID'); if ($committer_phid && $committer_phid != $author_phid) { $user_phids[$committer_phid][] = pht('Committer'); } // TODO: It would be nice to show pusher here too, but that information // is a little tricky to get at right now. if ($user_phids) { $handle_phids = array_keys($user_phids); $handles = id(new PhabricatorHandleQuery())->setViewer($this->requireActor())->withPHIDs($handle_phids)->execute(); $user_info = array(); foreach ($user_phids as $phid => $roles) { $user_info[] = pht('%s (%s)', $handles[$phid]->getName(), implode(', ', $roles)); } $body->addTextSection(pht('USERS'), implode("\n", $user_info)); } $monogram = $object->getRepository()->formatCommitName($object->getCommitIdentifier()); $body->addTextSection(pht('COMMIT'), PhabricatorEnv::getProductionURI('/' . $monogram)); return $body; }
protected function buildMailBody(PhabricatorLiskDAO $object, array $xactions) { $body = parent::buildMailBody($object, $xactions); $body->addLinkSection(pht('CONPHERENCE DETAIL'), PhabricatorEnv::getProductionURI('/' . $object->getMonogram())); return $body; }
protected function buildMailBody(PhabricatorLiskDAO $object, array $xactions) { $body = parent::buildMailBody($object, $xactions); if ($this->getIsNewObject()) { $body->addRemarkupSection(pht('TASK DESCRIPTION'), $object->getDescription()); } $body->addLinkSection(pht('TASK DETAIL'), PhabricatorEnv::getProductionURI('/T' . $object->getID())); $board_phids = array(); $type_column = ManiphestTransaction::TYPE_PROJECT_COLUMN; foreach ($xactions as $xaction) { if ($xaction->getTransactionType() == $type_column) { $new = $xaction->getNewValue(); $project_phid = idx($new, 'projectPHID'); if ($project_phid) { $board_phids[] = $project_phid; } } } if ($board_phids) { $projects = id(new PhabricatorProjectQuery())->setViewer($this->requireActor())->withPHIDs($board_phids)->execute(); foreach ($projects as $project) { $body->addLinkSection(pht('WORKBOARD'), PhabricatorEnv::getProductionURI('/project/board/' . $project->getID() . '/')); } } return $body; }
protected function buildMailBody(PhabricatorLiskDAO $object, array $xactions) { $body = parent::buildMailBody($object, $xactions); $body->addTextSection(pht('MACRO DETAIL'), PhabricatorEnv::getProductionURI('/macro/view/' . $object->getID() . '/')); return $body; }
protected function buildMailBody(PhabricatorLiskDAO $object, array $xactions) { $body = parent::buildMailBody($object, $xactions); $body->addTextSection(pht('SECURITY WARNING'), pht('If you do not recognize this change, it may indicate your account ' . 'has been compromised.')); $detail_uri = $object->getURI(); $detail_uri = PhabricatorEnv::getProductionURI($detail_uri); $body->addLinkSection(pht('SSH KEY DETAIL'), $detail_uri); return $body; }
protected function buildMailBody(PhabricatorLiskDAO $object, array $xactions) { $description = $object->getDescription(); $body = parent::buildMailBody($object, $xactions); if (strlen($description)) { $body->addRemarkupSection(pht('EVENT DESCRIPTION'), $description); } $body->addLinkSection(pht('EVENT DETAIL'), PhabricatorEnv::getProductionURI('/E' . $object->getID())); $ics_attachment = $this->newICSAttachment($object); $body->addAttachment($ics_attachment); return $body; }
protected function buildMailBody(PhabricatorLiskDAO $object, array $xactions) { $body = parent::buildMailBody($object, $xactions); if ($this->getIsNewObject()) { $body->addTextSection(pht('TASK DESCRIPTION'), $object->getDescription()); } $body->addTextSection(pht('TASK DETAIL'), PhabricatorEnv::getProductionURI('/T' . $object->getID())); return $body; }
protected function buildMailBody(PhabricatorLiskDAO $object, array $xactions) { $body = parent::buildMailBody($object, $xactions); $rq = $object; $releeph_branch = $rq->getBranch(); $releeph_project = $releeph_branch->getProduct(); /** * If any of the events we are emailing about were about a pick failure * (and/or a revert failure?), include pick failure instructions. */ $has_pick_failure = false; foreach ($xactions as $xaction) { if ($xaction->getTransactionType() === ReleephRequestTransaction::TYPE_PICK_STATUS && $xaction->getNewValue() === ReleephRequest::PICK_FAILED) { $has_pick_failure = true; break; } } if ($has_pick_failure) { $instructions = $releeph_project->getDetail('pick_failure_instructions'); if ($instructions) { $body->addTextSection(pht('PICK FAILURE INSTRUCTIONS'), $instructions); } } $name = sprintf('RQ%s: %s', $rq->getID(), $rq->getSummaryForDisplay()); $body->addTextSection(pht('RELEEPH REQUEST'), $name . "\n" . PhabricatorEnv::getProductionURI('/RQ' . $rq->getID())); $project_and_branch = sprintf('%s - %s', $releeph_project->getName(), $releeph_branch->getDisplayNameWithDetail()); $body->addTextSection(pht('RELEEPH BRANCH'), $project_and_branch . "\n" . PhabricatorEnv::getProductionURI($releeph_branch->getURI())); return $body; }
protected function buildMailBody(PhabricatorLiskDAO $object, array $xactions) { $body = parent::buildMailBody($object, $xactions); if ($this->isInvoice()) { $issues = $this->getInvoiceIssues(); foreach ($issues as $key => $issue) { $issues[$key] = ' - ' . $issue; } $issues = implode("\n", $issues); $overview = pht("Payment for this invoice could not be processed automatically:\n\n" . "%s", $issues); $body->addRemarkupSection(null, $overview); $body->addLinkSection(pht('PAY NOW'), PhabricatorEnv::getProductionURI($object->getCheckoutURI())); } $items = array(); foreach ($object->getPurchases() as $purchase) { $name = $purchase->getFullDisplayName(); $price = $purchase->getTotalPriceAsCurrency()->formatForDisplay(); $items[] = "{$name} {$price}"; } $body->addTextSection(pht('ORDER CONTENTS'), implode("\n", $items)); if ($this->isInvoice()) { $subscription = id(new PhortuneSubscriptionQuery())->setViewer($this->requireActor())->withPHIDs(array($object->getSubscriptionPHID()))->executeOne(); if ($subscription) { $body->addLinkSection(pht('SUBSCRIPTION'), PhabricatorEnv::getProductionURI($subscription->getURI())); } } else { $body->addLinkSection(pht('ORDER DETAIL'), PhabricatorEnv::getProductionURI($object->getDetailURI())); } $account_uri = '/phortune/' . $object->getAccount()->getID() . '/'; $body->addLinkSection(pht('ACCOUNT OVERVIEW'), PhabricatorEnv::getProductionURI($account_uri)); return $body; }
protected function buildMailBody(PhabricatorLiskDAO $object, array $xactions) { $body = parent::buildMailBody($object, $xactions); if ($this->getIsNewObject()) { $body->addRemarkupSection(null, $object->getBody()); } $body->addLinkSection(pht('POST DETAIL'), PhabricatorEnv::getProductionURI($object->getViewURI())); return $body; }
protected function buildMailBody(PhabricatorLiskDAO $object, array $xactions) { $body = parent::buildMailBody($object, $xactions); $body->addTextSection(pht('CONPHERENCE DETAIL'), PhabricatorEnv::getProductionURI('/conpherence/' . $object->getID() . '/')); return $body; }
protected function buildMailBody(PhabricatorLiskDAO $object, array $xactions) { $body = parent::buildMailBody($object, $xactions); $body->addTextSection(pht('FILE DETAIL'), PhabricatorEnv::getProductionURI($object->getInfoURI())); return $body; }
protected function buildMailBody(PhabricatorLiskDAO $object, array $xactions) { $body = parent::buildMailBody($object, $xactions); // We don't send mail if the object is a draft, and we only want // to include the full body of the post on the either the // first creation or if it was created as a draft, once it goes live. if ($this->getIsNewObject()) { $body->addRemarkupSection(null, $object->getBody()); } else { foreach ($xactions as $xaction) { switch ($xaction->getTransactionType()) { case PhamePostTransaction::TYPE_VISIBILITY: if (!$object->isDraft()) { $body->addRemarkupSection(null, $object->getBody()); } break; } } } $body->addLinkSection(pht('POST DETAIL'), PhabricatorEnv::getProductionURI($object->getViewURI())); return $body; }
protected function buildMailBody(PhabricatorLiskDAO $object, array $xactions) { $description = $object->getDescription(); $body = parent::buildMailBody($object, $xactions); if (strlen($description)) { $body->addRemarkupSection(pht('URL DESCRIPTION'), $object->getDescription()); } $body->addLinkSection(pht('URL DETAIL'), PhabricatorEnv::getProductionURI('/U' . $object->getID())); return $body; }
protected function buildMailBody(PhabricatorLiskDAO $object, array $xactions) { $body = parent::buildMailBody($object, $xactions); $body->addLinkSection(pht('DOCUMENT DETAIL'), PhabricatorEnv::getProductionURI('/legalpad/view/' . $object->getID() . '/')); return $body; }
protected function buildMailBody(PhabricatorLiskDAO $object, array $xactions) { $body = parent::buildMailBody($object, $xactions); $description = $object->getDescription(); if (strlen($description)) { $body->addTextSection(pht('SLOWVOTE DESCRIPTION'), $object->getDescription()); } $body->addLinkSection(pht('SLOWVOTE DETAIL'), PhabricatorEnv::getProductionURI('/' . $object->getMonogram())); return $body; }
protected function buildMailBody(PhabricatorLiskDAO $object, array $xactions) { $body = parent::buildMailBody($object, $xactions); if ($this->getIsNewObject()) { $body->addRemarkupSection(pht('DOCUMENT CONTENT'), $object->getContent()->getContent()); } else { if ($this->contentDiffURI) { $body->addLinkSection(pht('DOCUMENT DIFF'), PhabricatorEnv::getProductionURI($this->contentDiffURI)); } } $description = $object->getContent()->getDescription(); if (strlen($description)) { $body->addTextSection(pht('EDIT NOTES'), $description); } $body->addLinkSection(pht('DOCUMENT DETAIL'), PhabricatorEnv::getProductionURI(PhrictionDocument::getSlugURI($object->getSlug()))); return $body; }