1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-09-22 18:28:47 +02:00
phorge-phorge/src/applications/tokens/feed/PhabricatorTokenGivenFeedStory.php
Bob Trahan 3e0b3a1db5 Feed - fix some whacky "text mode" rendering code
Summary: ...add a "renderingTarget" to FeedStory and use it as appropos. Overall, not a ton of changes was necessary to make this work. I think this could be made to be even cleaner by going through each and every feed story and re-implementing as necessary with the full toolset available. But this is good enough for now I think, and just something to keep cleaning up when we're in here. Fixes T4630.

Test Plan: made a task. gave it a token. viewed my feed - saw stories. used conduit.feed.query with mode == 'text' and got good readable results.

Reviewers: epriestley

Reviewed By: epriestley

Subscribers: spicyj, epriestley, Korvin

Maniphest Tasks: T4630

Differential Revision: https://secure.phabricator.com/D8750
2014-04-10 13:46:02 -07:00

56 lines
1.4 KiB
PHP

<?php
final class PhabricatorTokenGivenFeedStory
extends PhabricatorFeedStory {
public function getPrimaryObjectPHID() {
return $this->getValue('objectPHID');
}
public function getRequiredHandlePHIDs() {
$phids = array();
$phids[] = $this->getValue('objectPHID');
$phids[] = $this->getValue('authorPHID');
return $phids;
}
public function getRequiredObjectPHIDs() {
$phids = array();
$phids[] = $this->getValue('tokenPHID');
return $phids;
}
public function renderView() {
$view = $this->newStoryView();
$view->setAppIcon('token-dark');
$author_phid = $this->getValue('authorPHID');
$href = $this->getHandle($this->getPrimaryObjectPHID())->getURI();
$view->setHref($href);
$view->setTitle($this->renderTitle());
$view->setImage($this->getHandle($author_phid)->getImageURI());
return $view;
}
private function renderTitle() {
$token = $this->getObject($this->getValue('tokenPHID'));
$title = pht(
'%s awarded %s a %s token.',
$this->linkTo($this->getValue('authorPHID')),
$this->linkTo($this->getValue('objectPHID')),
$token->getName());
return $title;
}
public function renderText() {
$old_target = $this->getRenderingTarget();
$this->setRenderingTarget(PhabricatorApplicationTransaction::TARGET_TEXT);
$title = $this->renderTitle();
$this->setRenderingTarget($old_target);
return $title;
}
}