Page MenuHomePhorge

DifferentialBranchField.php
No OneTemporary

Size
2 KB
Referenced Files
None
Subscribers
None

DifferentialBranchField.php

<?php
final class DifferentialBranchField
extends DifferentialCustomField {
public function getFieldKey() {
return 'differential:branch';
}
public function getFieldName() {
return pht('Branch');
}
public function getFieldDescription() {
return pht('Shows the branch a diff came from.');
}
public function shouldAppearInPropertyView() {
return true;
}
public function renderPropertyViewValue(array $handles) {
return null;
}
public function shouldAppearInDiffPropertyView() {
return true;
}
public function renderDiffPropertyViewLabel(DifferentialDiff $diff) {
return $this->getFieldName();
}
public function renderDiffPropertyViewValue(DifferentialDiff $diff) {
return $this->getBranchDescription($diff);
}
private function getBranchDescription(DifferentialDiff $diff) {
$branch = coalesce($diff->getBranch(), '');
$bookmark = coalesce($diff->getBookmark(), '');
if (strlen($branch) && strlen($bookmark)) {
return pht('%s (bookmark) on %s (branch)', $bookmark, $branch);
} else if (strlen($bookmark)) {
return pht('%s (bookmark)', $bookmark);
} else if (strlen($branch)) {
$onto = $diff->loadTargetBranch();
if (phutil_nonempty_string($onto) && ($onto !== $branch)) {
return pht(
'%s (branched from %s)',
$branch,
$onto);
} else {
return $branch;
}
} else {
return null;
}
}
public function getProTips() {
return array(
pht(
'In Git and Mercurial, use a branch like "%s" to automatically '.
'associate changes with the corresponding task.',
'T123'),
);
}
public function shouldAppearInTransactionMail() {
return true;
}
public function updateTransactionMailBody(
PhabricatorMetaMTAMailBody $body,
PhabricatorApplicationTransactionEditor $editor,
array $xactions) {
$revision = $this->getObject();
// Show the "BRANCH" section only if there's a new diff or the revision
// is "Accepted".
$is_update = (bool)$editor->getDiffUpdateTransaction($xactions);
$is_accepted = $revision->isAccepted();
if (!$is_update && !$is_accepted) {
return;
}
$branch = $this->getBranchDescription($revision->getActiveDiff());
if ($branch === null) {
return;
}
$body->addTextSection(pht('BRANCH'), $branch);
}
}

File Metadata

Mime Type
text/x-php
Expires
Tue, May 13, 1:22 PM (2 d)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
124401
Default Alt Text
DifferentialBranchField.php (2 KB)

Event Timeline