public function buildTransactions(PhabricatorUser $viewer, PhabricatorApplicationTransactionInterface $object, PhabricatorMetaMTAReceivedMail $mail, $command, array $argv)
 {
     $subscriber_phids = id(new PhabricatorObjectListQuery())->setViewer($viewer)->setAllowedTypes(array(PhabricatorPeopleUserPHIDType::TYPECONST, PhabricatorProjectProjectPHIDType::TYPECONST))->setObjectList(implode(' ', $argv))->setAllowPartialResults(true)->execute();
     $xactions = array();
     $xactions[] = $object->getApplicationTransactionTemplate()->setTransactionType(PhabricatorTransactions::TYPE_SUBSCRIBERS)->setNewValue(array('+' => array_fuse($subscriber_phids)));
     return $xactions;
 }
 public function buildTransactions(PhabricatorUser $viewer, PhabricatorApplicationTransactionInterface $object, PhabricatorMetaMTAReceivedMail $mail, $command, array $argv)
 {
     $project_phids = id(new PhabricatorObjectListQuery())->setViewer($viewer)->setAllowedTypes(array(PhabricatorProjectProjectPHIDType::TYPECONST))->setObjectList(implode(' ', $argv))->setAllowPartialResults(true)->execute();
     $xactions = array();
     $type_project = PhabricatorProjectObjectHasProjectEdgeType::EDGECONST;
     $xactions[] = $object->getApplicationTransactionTemplate()->setTransactionType(PhabricatorTransactions::TYPE_EDGE)->setMetadataValue('edge:type', $type_project)->setNewValue(array('+' => array_fuse($project_phids)));
     return $xactions;
 }
 public function supportsObject(PhabricatorEditEngine $engine, PhabricatorApplicationTransactionInterface $object)
 {
     $xaction = $object->getApplicationTransactionTemplate();
     try {
         $comment = $xaction->getApplicationTransactionCommentObject();
     } catch (PhutilMethodNotImplementedException $ex) {
         $comment = null;
     }
     return (bool) $comment;
 }
 public static final function newQueryForObject(PhabricatorApplicationTransactionInterface $object)
 {
     $xaction = $object->getApplicationTransactionTemplate();
     $target_class = get_class($xaction);
     $queries = id(new PhutilClassMapQuery())->setAncestorClass(__CLASS__)->execute();
     foreach ($queries as $query) {
         $query_xaction = $query->getTemplateApplicationTransaction();
         $query_class = get_class($query_xaction);
         if ($query_class === $target_class) {
             return id(clone $query);
         }
     }
     return null;
 }
 public function buildTransactions(PhabricatorUser $viewer, PhabricatorApplicationTransactionInterface $object, PhabricatorMetaMTAReceivedMail $mail, $command, array $argv)
 {
     $xactions = array();
     $assign_to = head($argv);
     if ($assign_to) {
         $assign_user = id(new PhabricatorPeopleQuery())->setViewer($viewer)->withUsernames(array($assign_to))->executeOne();
         if ($assign_user) {
             $assign_phid = $assign_user->getPHID();
         }
     }
     // Treat bad "!assign" like "!claim".
     if (!$assign_phid) {
         $assign_phid = $viewer->getPHID();
     }
     $xactions[] = $object->getApplicationTransactionTemplate()->setTransactionType(ManiphestTransaction::TYPE_OWNER)->setNewValue($assign_phid);
     return $xactions;
 }
 public function buildTransactions(PhabricatorUser $viewer, PhabricatorApplicationTransactionInterface $object, PhabricatorMetaMTAReceivedMail $mail, $command, array $argv)
 {
     $target = phutil_utf8_strtolower(implode(' ', $argv));
     $yes_values = $this->getYesValues();
     $no_values = $this->getNoValues();
     if (in_array($target, $yes_values)) {
         $rsvp = PhabricatorCalendarEventAcceptTransaction::TRANSACTIONTYPE;
     } else {
         if (in_array($target, $no_values)) {
             $rsvp = PhabricatorCalendarEventDeclineTransaction::TRANSACTIONTYPE;
         } else {
             return array();
         }
     }
     $xactions = array();
     $xactions[] = $object->getApplicationTransactionTemplate()->setTransactionType($rsvp)->setNewValue(true);
     return $xactions;
 }
 public function buildTransactions(PhabricatorUser $viewer, PhabricatorApplicationTransactionInterface $object, PhabricatorMetaMTAReceivedMail $mail, $command, array $argv)
 {
     $xactions = array();
     $target = phutil_utf8_strtolower(head($argv));
     $priority = null;
     $keywords = ManiphestTaskPriority::getTaskPriorityKeywordsMap();
     foreach ($keywords as $key => $words) {
         foreach ($words as $word) {
             if ($word == $target) {
                 $priority = $key;
                 break;
             }
         }
     }
     if ($priority === null) {
         return array();
     }
     $xactions[] = $object->getApplicationTransactionTemplate()->setTransactionType(ManiphestTransaction::TYPE_PRIORITY)->setNewValue($priority);
     return $xactions;
 }
 public function buildTransactions(PhabricatorUser $viewer, PhabricatorApplicationTransactionInterface $object, PhabricatorMetaMTAReceivedMail $mail, $command, array $argv)
 {
     $status_attending = PhabricatorCalendarEventInvitee::STATUS_ATTENDING;
     $status_declined = PhabricatorCalendarEventInvitee::STATUS_DECLINED;
     $xactions = array();
     $target = phutil_utf8_strtolower(implode(' ', $argv));
     $rsvp = null;
     $yes_values = $this->getYesValues();
     $no_values = $this->getNoValues();
     if (in_array($target, $yes_values)) {
         $rsvp = $status_attending;
     } else {
         if (in_array($target, $no_values)) {
             $rsvp = $status_declined;
         } else {
             $rsvp = null;
         }
     }
     if ($rsvp === null) {
         return array();
     }
     $xactions[] = $object->getApplicationTransactionTemplate()->setTransactionType(PhabricatorCalendarEventTransaction::TYPE_INVITE)->setNewValue(array($viewer->getPHID() => $rsvp));
     return $xactions;
 }
 protected function buildTransactionTimeline(PhabricatorApplicationTransactionInterface $object, PhabricatorApplicationTransactionQuery $query, PhabricatorMarkupEngine $engine = null, $render_data = array())
 {
     $viewer = $this->getRequest()->getUser();
     $xaction = $object->getApplicationTransactionTemplate();
     $view = $xaction->getApplicationTransactionViewObject();
     $pager = id(new AphrontCursorPagerView())->readFromRequest($this->getRequest())->setURI(new PhutilURI('/transactions/showolder/' . $object->getPHID() . '/'));
     $xactions = $query->setViewer($viewer)->withObjectPHIDs(array($object->getPHID()))->needComments(true)->executeWithCursorPager($pager);
     $xactions = array_reverse($xactions);
     if ($engine) {
         foreach ($xactions as $xaction) {
             if ($xaction->getComment()) {
                 $engine->addObject($xaction->getComment(), PhabricatorApplicationTransactionComment::MARKUP_FIELD_COMMENT);
             }
         }
         $engine->process();
         $view->setMarkupEngine($engine);
     }
     $timeline = $view->setUser($viewer)->setObjectPHID($object->getPHID())->setTransactions($xactions)->setPager($pager)->setRenderData($render_data)->setQuoteTargetID($this->getRequest()->getStr('quoteTargetID'))->setQuoteRef($this->getRequest()->getStr('quoteRef'));
     $object->willRenderTimeline($timeline, $this->getRequest());
     return $timeline;
 }
 public function buildTransactions(PhabricatorUser $viewer, PhabricatorApplicationTransactionInterface $object, PhabricatorMetaMTAReceivedMail $mail, $command, array $argv)
 {
     $xactions = array();
     $xactions[] = $object->getApplicationTransactionTemplate()->setTransactionType(ManiphestTransaction::TYPE_STATUS)->setNewValue(ManiphestTaskStatus::getDefaultClosedStatus());
     return $xactions;
 }
 public function buildTransactions(PhabricatorUser $viewer, PhabricatorApplicationTransactionInterface $object, PhabricatorMetaMTAReceivedMail $mail, $command, array $argv)
 {
     $xactions = array();
     $xactions[] = $object->getApplicationTransactionTemplate()->setTransactionType(DifferentialTransaction::TYPE_ACTION)->setNewValue($this->getAction());
     return $xactions;
 }
 public function buildTransactions(PhabricatorUser $viewer, PhabricatorApplicationTransactionInterface $object, PhabricatorMetaMTAReceivedMail $mail, $command, array $argv)
 {
     $xactions = array();
     $xactions[] = $object->getApplicationTransactionTemplate()->setTransactionType(ManiphestTransaction::TYPE_OWNER)->setNewValue($viewer->getPHID());
     return $xactions;
 }