Changeset View
Changeset View
Standalone View
Standalone View
src/applications/audit/storage/PhabricatorAuditInlineComment.php
| <?php | <?php | ||||
| final class PhabricatorAuditInlineComment | final class PhabricatorAuditInlineComment | ||||
| extends Phobject | extends PhabricatorInlineComment { | ||||
| implements PhabricatorInlineCommentInterface { | |||||
| private $proxy; | protected function newStorageObject() { | ||||
| private $syntheticAuthor; | return new PhabricatorAuditTransactionComment(); | ||||
| private $isGhost; | |||||
| public function __construct() { | |||||
| $this->proxy = new PhabricatorAuditTransactionComment(); | |||||
| } | |||||
| public function __clone() { | |||||
| $this->proxy = clone $this->proxy; | |||||
| } | } | ||||
| public function getTransactionPHID() { | public function getControllerURI() { | ||||
| return $this->proxy->getTransactionPHID(); | return urisprintf( | ||||
| } | '/diffusion/inline/edit/%s/', | ||||
| $this->getCommitPHID()); | |||||
| public function getTransactionComment() { | |||||
| return $this->proxy; | |||||
| } | } | ||||
| public function supportsHiding() { | public function supportsHiding() { | ||||
| return false; | return false; | ||||
| } | } | ||||
| public function isHidden() { | public function isHidden() { | ||||
| return false; | return false; | ||||
| } | } | ||||
| public function getTransactionCommentForSave() { | public function getTransactionCommentForSave() { | ||||
| $content_source = PhabricatorContentSource::newForSource( | $content_source = PhabricatorContentSource::newForSource( | ||||
| PhabricatorOldWorldContentSource::SOURCECONST); | PhabricatorOldWorldContentSource::SOURCECONST); | ||||
| $this->proxy | $this->getStorageObject() | ||||
| ->setViewPolicy('public') | ->setViewPolicy('public') | ||||
| ->setEditPolicy($this->getAuthorPHID()) | ->setEditPolicy($this->getAuthorPHID()) | ||||
| ->setContentSource($content_source) | ->setContentSource($content_source) | ||||
| ->setCommentVersion(1); | ->setCommentVersion(1); | ||||
| return $this->proxy; | return $this->getStorageObject(); | ||||
| } | } | ||||
| public static function loadID($id) { | public static function loadID($id) { | ||||
| $inlines = id(new PhabricatorAuditTransactionComment())->loadAllWhere( | $inlines = id(new PhabricatorAuditTransactionComment())->loadAllWhere( | ||||
| 'id = %d', | 'id = %d', | ||||
| $id); | $id); | ||||
| if (!$inlines) { | if (!$inlines) { | ||||
| return null; | return null; | ||||
| ▲ Show 20 Lines • Show All 75 Lines • ▼ Show 20 Lines | private static function buildProxies(array $inlines) { | ||||
| $results = array(); | $results = array(); | ||||
| foreach ($inlines as $key => $inline) { | foreach ($inlines as $key => $inline) { | ||||
| $results[$key] = self::newFromModernComment( | $results[$key] = self::newFromModernComment( | ||||
| $inline); | $inline); | ||||
| } | } | ||||
| return $results; | return $results; | ||||
| } | } | ||||
| public function setSyntheticAuthor($synthetic_author) { | |||||
| $this->syntheticAuthor = $synthetic_author; | |||||
| return $this; | |||||
| } | |||||
| public function getSyntheticAuthor() { | |||||
| return $this->syntheticAuthor; | |||||
| } | |||||
| public function openTransaction() { | |||||
| $this->proxy->openTransaction(); | |||||
| } | |||||
| public function saveTransaction() { | |||||
| $this->proxy->saveTransaction(); | |||||
| } | |||||
| public function save() { | |||||
| $this->getTransactionCommentForSave()->save(); | |||||
| return $this; | |||||
| } | |||||
| public function delete() { | |||||
| $this->proxy->delete(); | |||||
| return $this; | |||||
| } | |||||
| public function getID() { | |||||
| return $this->proxy->getID(); | |||||
| } | |||||
| public function getPHID() { | |||||
| return $this->proxy->getPHID(); | |||||
| } | |||||
| public static function newFromModernComment( | public static function newFromModernComment( | ||||
| PhabricatorAuditTransactionComment $comment) { | PhabricatorAuditTransactionComment $comment) { | ||||
| $obj = new PhabricatorAuditInlineComment(); | $obj = new PhabricatorAuditInlineComment(); | ||||
| $obj->proxy = $comment; | $obj->setStorageObject($comment); | ||||
| return $obj; | return $obj; | ||||
| } | } | ||||
| public function isCompatible(PhabricatorInlineCommentInterface $comment) { | |||||
| return | |||||
| ($this->getAuthorPHID() === $comment->getAuthorPHID()) && | |||||
| ($this->getSyntheticAuthor() === $comment->getSyntheticAuthor()) && | |||||
| ($this->getContent() === $comment->getContent()); | |||||
| } | |||||
| public function setContent($content) { | |||||
| $this->proxy->setContent($content); | |||||
| return $this; | |||||
| } | |||||
| public function getContent() { | |||||
| return $this->proxy->getContent(); | |||||
| } | |||||
| public function isDraft() { | |||||
| return !$this->proxy->getTransactionPHID(); | |||||
| } | |||||
| public function setPathID($id) { | public function setPathID($id) { | ||||
| $this->proxy->setPathID($id); | $this->getStorageObject()->setPathID($id); | ||||
| return $this; | return $this; | ||||
| } | } | ||||
| public function getPathID() { | public function getPathID() { | ||||
| return $this->proxy->getPathID(); | return $this->getStorageObject()->getPathID(); | ||||
| } | |||||
| public function setIsNewFile($is_new) { | |||||
| $this->proxy->setIsNewFile($is_new); | |||||
| return $this; | |||||
| } | |||||
| public function getIsNewFile() { | |||||
| return $this->proxy->getIsNewFile(); | |||||
| } | |||||
| public function setLineNumber($number) { | |||||
| $this->proxy->setLineNumber($number); | |||||
| return $this; | |||||
| } | |||||
| public function getLineNumber() { | |||||
| return $this->proxy->getLineNumber(); | |||||
| } | |||||
| public function setLineLength($length) { | |||||
| $this->proxy->setLineLength($length); | |||||
| return $this; | |||||
| } | |||||
| public function getLineLength() { | |||||
| return $this->proxy->getLineLength(); | |||||
| } | |||||
| public function setCache($cache) { | |||||
| return $this; | |||||
| } | |||||
| public function getCache() { | |||||
| return null; | |||||
| } | |||||
| public function setAuthorPHID($phid) { | |||||
| $this->proxy->setAuthorPHID($phid); | |||||
| return $this; | |||||
| } | |||||
| public function getAuthorPHID() { | |||||
| return $this->proxy->getAuthorPHID(); | |||||
| } | } | ||||
| public function setCommitPHID($commit_phid) { | public function setCommitPHID($commit_phid) { | ||||
| $this->proxy->setCommitPHID($commit_phid); | $this->getStorageObject()->setCommitPHID($commit_phid); | ||||
| return $this; | return $this; | ||||
| } | } | ||||
| public function getCommitPHID() { | public function getCommitPHID() { | ||||
| return $this->proxy->getCommitPHID(); | return $this->getStorageObject()->getCommitPHID(); | ||||
| } | |||||
| // When setting a comment ID, we also generate a phantom transaction PHID for | |||||
| // the future transaction. | |||||
| public function setAuditCommentID($id) { | |||||
| $this->proxy->setLegacyCommentID($id); | |||||
| $this->proxy->setTransactionPHID( | |||||
| PhabricatorPHID::generateNewPHID( | |||||
| PhabricatorApplicationTransactionTransactionPHIDType::TYPECONST, | |||||
| PhabricatorRepositoryCommitPHIDType::TYPECONST)); | |||||
| return $this; | |||||
| } | |||||
| public function getAuditCommentID() { | |||||
| return $this->proxy->getLegacyCommentID(); | |||||
| } | } | ||||
| public function setChangesetID($id) { | public function setChangesetID($id) { | ||||
| return $this->setPathID($id); | return $this->setPathID($id); | ||||
| } | } | ||||
| public function getChangesetID() { | public function getChangesetID() { | ||||
| return $this->getPathID(); | return $this->getPathID(); | ||||
| } | } | ||||
| public function setReplyToCommentPHID($phid) { | |||||
| $this->proxy->setReplyToCommentPHID($phid); | |||||
| return $this; | |||||
| } | |||||
| public function getReplyToCommentPHID() { | |||||
| return $this->proxy->getReplyToCommentPHID(); | |||||
| } | |||||
| public function setHasReplies($has_replies) { | |||||
| $this->proxy->setHasReplies($has_replies); | |||||
| return $this; | |||||
| } | |||||
| public function getHasReplies() { | |||||
| return $this->proxy->getHasReplies(); | |||||
| } | |||||
| public function setIsDeleted($is_deleted) { | |||||
| $this->proxy->setIsDeleted($is_deleted); | |||||
| return $this; | |||||
| } | |||||
| public function getIsDeleted() { | |||||
| return $this->proxy->getIsDeleted(); | |||||
| } | |||||
| public function setFixedState($state) { | |||||
| $this->proxy->setFixedState($state); | |||||
| return $this; | |||||
| } | |||||
| public function getFixedState() { | |||||
| return $this->proxy->getFixedState(); | |||||
| } | |||||
| public function setIsGhost($is_ghost) { | |||||
| $this->isGhost = $is_ghost; | |||||
| return $this; | |||||
| } | |||||
| public function getIsGhost() { | |||||
| return $this->isGhost; | |||||
| } | |||||
| public function getDateModified() { | |||||
| return $this->proxy->getDateModified(); | |||||
| } | |||||
| public function getDateCreated() { | |||||
| return $this->proxy->getDateCreated(); | |||||
| } | |||||
| /* -( PhabricatorMarkupInterface Implementation )-------------------------- */ | |||||
| public function getMarkupFieldKey($field) { | |||||
| return 'AI:'.$this->getID(); | |||||
| } | |||||
| public function newMarkupEngine($field) { | |||||
| return PhabricatorMarkupEngine::newDifferentialMarkupEngine(); | |||||
| } | |||||
| public function getMarkupText($field) { | |||||
| return $this->getContent(); | |||||
| } | |||||
| public function didMarkupText($field, $output, PhutilMarkupEngine $engine) { | |||||
| return $output; | |||||
| } | |||||
| public function shouldUseMarkupCache($field) { | |||||
| // Only cache submitted comments. | |||||
| return ($this->getID() && $this->getAuditCommentID()); | |||||
| } | |||||
| } | } | ||||