Files
phabricator/src/applications/differential/field/specification/DifferentialSummaryFieldSpecification.php
Bob Trahan 73bc34b26d Add support for differential field specifications to be indexed in search
Summary: ...and do so for a few fields -- summary, test plan, and revert plan.

Test Plan: added NATASHA and BULLWINKLE to summary and test plan of existing diff. Diff showed up in search!

Reviewers: epriestley

Reviewed By: epriestley

CC: aran, Korvin

Maniphest Tasks: T654

Differential Revision: https://secure.phabricator.com/D3915
2012-11-07 13:31:52 -08:00

86 lines
1.8 KiB
PHP

<?php
final class DifferentialSummaryFieldSpecification
extends DifferentialFreeformFieldSpecification {
private $summary = '';
public function shouldAppearOnEdit() {
return true;
}
protected function didSetRevision() {
$this->summary = (string)$this->getRevision()->getSummary();
}
public function setValueFromRequest(AphrontRequest $request) {
$this->summary = $request->getStr('summary');
return $this;
}
public function renderEditControl() {
return id(new AphrontFormTextAreaControl())
->setLabel('Summary')
->setName('summary')
->setValue($this->summary);
}
public function willWriteRevision(DifferentialRevisionEditor $editor) {
$this->getRevision()->setSummary($this->summary);
}
public function shouldAppearOnCommitMessage() {
return true;
}
public function getCommitMessageKey() {
return 'summary';
}
public function setValueFromParsedCommitMessage($value) {
$this->summary = (string)$value;
return $this;
}
public function shouldOverwriteWhenCommitMessageIsEdited() {
return true;
}
public function renderLabelForCommitMessage() {
return 'Summary';
}
public function renderValueForCommitMessage($is_edit) {
return $this->summary;
}
public function parseValueFromCommitMessage($value) {
return (string)$value;
}
public function renderValueForMail($phase) {
if ($phase != DifferentialMailPhase::WELCOME) {
return null;
}
if ($this->summary == '') {
return null;
}
return $this->summary;
}
public function shouldAddToSearchIndex() {
return true;
}
public function getValueForSearchIndex() {
return $this->summary;
}
public function getKeyForSearchIndex() {
return PhabricatorSearchField::FIELD_BODY;
}
}