mirror of
https://we.phorge.it/source/phorge.git
synced 2024-12-23 05:50:55 +01:00
Remove PhabricatorFeedStoryManiphest and ManiphestAction
Summary: I'll hold this for a couple weeks. These classes are now only used to render legacy feed stories. I don't plan to migrate the stories since I don't think they're particularly valuable, and migrating them would be complex and time consuming. With these classes removed, legacy Maniphest feed stories simply vanish from feed. Test Plan: `grep`, viewed feed, verified it worked but omitted old-style stories. Reviewers: btrahan Reviewed By: btrahan CC: aran Differential Revision: https://secure.phabricator.com/D7114
This commit is contained in:
parent
31c474a7ff
commit
ee254b5c2a
3 changed files with 0 additions and 233 deletions
|
@ -704,7 +704,6 @@ phutil_register_library_map(array(
|
|||
'LiskIsolationTestDAOException' => 'infrastructure/storage/lisk/__tests__/LiskIsolationTestDAOException.php',
|
||||
'LiskMigrationIterator' => 'infrastructure/storage/lisk/LiskMigrationIterator.php',
|
||||
'LiskRawMigrationIterator' => 'infrastructure/storage/lisk/LiskRawMigrationIterator.php',
|
||||
'ManiphestAction' => 'applications/maniphest/constants/ManiphestAction.php',
|
||||
'ManiphestBatchEditController' => 'applications/maniphest/controller/ManiphestBatchEditController.php',
|
||||
'ManiphestCapabilityDefaultEdit' => 'applications/maniphest/capability/ManiphestCapabilityDefaultEdit.php',
|
||||
'ManiphestCapabilityDefaultView' => 'applications/maniphest/capability/ManiphestCapabilityDefaultView.php',
|
||||
|
@ -1197,7 +1196,6 @@ phutil_register_library_map(array(
|
|||
'PhabricatorFeedStoryData' => 'applications/feed/storage/PhabricatorFeedStoryData.php',
|
||||
'PhabricatorFeedStoryDifferential' => 'applications/feed/story/PhabricatorFeedStoryDifferential.php',
|
||||
'PhabricatorFeedStoryDifferentialAggregate' => 'applications/feed/story/PhabricatorFeedStoryDifferentialAggregate.php',
|
||||
'PhabricatorFeedStoryManiphest' => 'applications/feed/story/PhabricatorFeedStoryManiphest.php',
|
||||
'PhabricatorFeedStoryManiphestAggregate' => 'applications/feed/story/PhabricatorFeedStoryManiphestAggregate.php',
|
||||
'PhabricatorFeedStoryNotification' => 'applications/notification/storage/PhabricatorFeedStoryNotification.php',
|
||||
'PhabricatorFeedStoryPhriction' => 'applications/feed/story/PhabricatorFeedStoryPhriction.php',
|
||||
|
@ -2839,7 +2837,6 @@ phutil_register_library_map(array(
|
|||
'LiskIsolationTestDAOException' => 'Exception',
|
||||
'LiskMigrationIterator' => 'PhutilBufferedIterator',
|
||||
'LiskRawMigrationIterator' => 'PhutilBufferedIterator',
|
||||
'ManiphestAction' => 'ManiphestConstants',
|
||||
'ManiphestBatchEditController' => 'ManiphestController',
|
||||
'ManiphestCapabilityDefaultEdit' => 'PhabricatorPolicyCapability',
|
||||
'ManiphestCapabilityDefaultView' => 'PhabricatorPolicyCapability',
|
||||
|
@ -3381,7 +3378,6 @@ phutil_register_library_map(array(
|
|||
'PhabricatorFeedStoryData' => 'PhabricatorFeedDAO',
|
||||
'PhabricatorFeedStoryDifferential' => 'PhabricatorFeedStory',
|
||||
'PhabricatorFeedStoryDifferentialAggregate' => 'PhabricatorFeedStoryAggregate',
|
||||
'PhabricatorFeedStoryManiphest' => 'PhabricatorFeedStory',
|
||||
'PhabricatorFeedStoryManiphestAggregate' => 'PhabricatorFeedStoryAggregate',
|
||||
'PhabricatorFeedStoryNotification' => 'PhabricatorFeedDAO',
|
||||
'PhabricatorFeedStoryPhriction' => 'PhabricatorFeedStory',
|
||||
|
|
|
@ -1,143 +0,0 @@
|
|||
<?php
|
||||
|
||||
final class PhabricatorFeedStoryManiphest
|
||||
extends PhabricatorFeedStory {
|
||||
|
||||
public function getPrimaryObjectPHID() {
|
||||
return $this->getValue('taskPHID');
|
||||
}
|
||||
|
||||
public function getRequiredHandlePHIDs() {
|
||||
return array(
|
||||
$this->getValue('ownerPHID'),
|
||||
);
|
||||
}
|
||||
|
||||
public function renderView() {
|
||||
$data = $this->getStoryData();
|
||||
|
||||
$view = $this->newStoryView();
|
||||
$view->setAppIcon('maniphest-dark');
|
||||
|
||||
$line = $this->getLineForData($data);
|
||||
$view->setTitle($line);
|
||||
|
||||
$action = $data->getValue('action');
|
||||
|
||||
$view->setImage($this->getHandle($data->getAuthorPHID())->getImageURI());
|
||||
|
||||
switch ($action) {
|
||||
case ManiphestAction::ACTION_COMMENT:
|
||||
// I'm just fetching the comments here
|
||||
// Don't repeat this at home!
|
||||
$comments = $data->getValue('comments');
|
||||
$content = $this->renderSummary($comments);
|
||||
$view->appendChild($content);
|
||||
break;
|
||||
case ManiphestAction::ACTION_CREATE:
|
||||
$content = $this->renderSummary($data->getValue('description'));
|
||||
$view->appendChild($content);
|
||||
break;
|
||||
}
|
||||
|
||||
$href = $this->getHandle($data->getValue('taskPHID'))->getURI();
|
||||
$view->setHref($href);
|
||||
|
||||
return $view;
|
||||
}
|
||||
|
||||
private function getLineForData($data) {
|
||||
$action = $data->getValue('action');
|
||||
|
||||
$actor_phid = $data->getAuthorPHID();
|
||||
$actor_link = $this->linkTo($actor_phid);
|
||||
|
||||
$task_phid = $data->getValue('taskPHID');
|
||||
$task_link = $this->linkTo($task_phid);
|
||||
|
||||
$owner_phid = $data->getValue('ownerPHID');
|
||||
$owner_link = $this->linkTo($owner_phid);
|
||||
|
||||
$verb = ManiphestAction::getActionPastTenseVerb($action);
|
||||
|
||||
switch ($action) {
|
||||
case ManiphestAction::ACTION_ASSIGN:
|
||||
case ManiphestAction::ACTION_REASSIGN:
|
||||
if ($owner_phid) {
|
||||
if ($owner_phid == $actor_phid) {
|
||||
$one_line = hsprintf('%s claimed %s', $actor_link, $task_link);
|
||||
} else {
|
||||
$one_line = hsprintf('%s %s %s to %s',
|
||||
$actor_link,
|
||||
$verb,
|
||||
$owner_link,
|
||||
$task_link);
|
||||
}
|
||||
} else {
|
||||
$one_line = hsprintf(
|
||||
'%s placed %s up for grabs',
|
||||
$actor_link,
|
||||
$task_link);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
$one_line = hsprintf('%s %s %s', $actor_link, $verb, $task_link);
|
||||
break;
|
||||
}
|
||||
|
||||
return $one_line;
|
||||
}
|
||||
|
||||
public function renderText() {
|
||||
$actor_phid = $this->getAuthorPHID();
|
||||
$author_name = $this->getHandle($actor_phid)->getLinkName();
|
||||
|
||||
$owner_phid = $this->getValue('ownerPHID');
|
||||
$owner_name = $this->getHandle($owner_phid)->getLinkName();
|
||||
|
||||
$task_phid = $this->getPrimaryObjectPHID();
|
||||
$task_handle = $this->getHandle($task_phid);
|
||||
$task_title = $task_handle->getLinkName();
|
||||
$task_uri = PhabricatorEnv::getURI($task_handle->getURI());
|
||||
|
||||
$action = $this->getValue('action');
|
||||
$verb = ManiphestAction::getActionPastTenseVerb($action);
|
||||
|
||||
switch ($action) {
|
||||
case ManiphestAction::ACTION_ASSIGN:
|
||||
case ManiphestAction::ACTION_REASSIGN:
|
||||
if ($owner_phid) {
|
||||
if ($owner_phid == $actor_phid) {
|
||||
$text = "{$author_name} claimed {$task_title}";
|
||||
} else {
|
||||
$text = "{$author_name} {$verb} {$task_title} to {$owner_name}";
|
||||
}
|
||||
} else {
|
||||
$text = "{$author_name} placed {$task_title} up for grabs";
|
||||
}
|
||||
break;
|
||||
default:
|
||||
$text = "{$author_name} {$verb} {$task_title}";
|
||||
break;
|
||||
}
|
||||
|
||||
$text .= " {$task_uri}";
|
||||
|
||||
return $text;
|
||||
}
|
||||
|
||||
public function getNotificationAggregations() {
|
||||
$class = get_class($this);
|
||||
$phid = $this->getStoryData()->getValue('taskPHID');
|
||||
$read = (int)$this->getHasViewed();
|
||||
|
||||
// Don't aggregate updates separated by more than 2 hours.
|
||||
$block = (int)($this->getEpoch() / (60 * 60 * 2));
|
||||
|
||||
return array(
|
||||
"{$class}:{$phid}:{$read}:{$block}"
|
||||
=> 'PhabricatorFeedStoryManiphestAggregate',
|
||||
);
|
||||
}
|
||||
|
||||
}
|
|
@ -1,86 +0,0 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* @group maniphest
|
||||
*/
|
||||
final class ManiphestAction extends ManiphestConstants {
|
||||
/* These actions must be determined when the story
|
||||
is generated and thus are new */
|
||||
const ACTION_CREATE = 'create';
|
||||
const ACTION_REOPEN = 'reopen';
|
||||
const ACTION_CLOSE = 'close';
|
||||
const ACTION_UPDATE = 'update';
|
||||
const ACTION_ASSIGN = 'assign';
|
||||
|
||||
/* these actions are determined sufficiently by the transaction
|
||||
type and thus we use them here*/
|
||||
const ACTION_COMMENT = PhabricatorTransactions::TYPE_COMMENT;
|
||||
const ACTION_CC = ManiphestTransaction::TYPE_CCS;
|
||||
const ACTION_PRIORITY = ManiphestTransaction::TYPE_PRIORITY;
|
||||
const ACTION_PROJECT = ManiphestTransaction::TYPE_PROJECTS;
|
||||
const ACTION_TITLE = ManiphestTransaction::TYPE_TITLE;
|
||||
const ACTION_DESCRIPTION = ManiphestTransaction::TYPE_DESCRIPTION;
|
||||
const ACTION_REASSIGN = ManiphestTransaction::TYPE_OWNER;
|
||||
const ACTION_ATTACH = ManiphestTransaction::TYPE_ATTACH;
|
||||
const ACTION_EDGE = ManiphestTransaction::TYPE_EDGE;
|
||||
const ACTION_AUXILIARY = PhabricatorTransactions::TYPE_CUSTOMFIELD;
|
||||
|
||||
public static function getActionPastTenseVerb($action) {
|
||||
static $map = array(
|
||||
self::ACTION_CREATE => 'created',
|
||||
self::ACTION_CLOSE => 'closed',
|
||||
self::ACTION_UPDATE => 'updated',
|
||||
self::ACTION_ASSIGN => 'assigned',
|
||||
self::ACTION_REASSIGN => 'reassigned',
|
||||
self::ACTION_COMMENT => 'commented on',
|
||||
self::ACTION_CC => 'updated cc\'s of',
|
||||
self::ACTION_PRIORITY => 'changed the priority of',
|
||||
self::ACTION_PROJECT => 'modified projects of',
|
||||
self::ACTION_TITLE => 'updated title of',
|
||||
self::ACTION_DESCRIPTION => 'updated description of',
|
||||
self::ACTION_ATTACH => 'attached something to',
|
||||
self::ACTION_EDGE => 'changed related objects of',
|
||||
self::ACTION_REOPEN => 'reopened',
|
||||
self::ACTION_AUXILIARY => 'updated an auxiliary field of',
|
||||
);
|
||||
|
||||
return idx($map, $action, "brazenly {$action}'d");
|
||||
}
|
||||
|
||||
/**
|
||||
* If a group of transactions contain several actions, select the "strongest"
|
||||
* action. For instance, a close is stronger than an update, because we want
|
||||
* to render "User U closed task T" instead of "User U updated task T" when
|
||||
* a user closes a task.
|
||||
*/
|
||||
public static function selectStrongestAction(array $actions) {
|
||||
static $strengths = array(
|
||||
self::ACTION_AUXILIARY => -1,
|
||||
self::ACTION_UPDATE => 0,
|
||||
self::ACTION_CC => 1,
|
||||
self::ACTION_PROJECT => 2,
|
||||
self::ACTION_DESCRIPTION => 3,
|
||||
self::ACTION_TITLE => 4,
|
||||
self::ACTION_ATTACH => 5,
|
||||
self::ACTION_EDGE => 5,
|
||||
self::ACTION_COMMENT => 6,
|
||||
self::ACTION_PRIORITY => 7,
|
||||
self::ACTION_REASSIGN => 8,
|
||||
self::ACTION_ASSIGN => 9,
|
||||
self::ACTION_REOPEN => 10,
|
||||
self::ACTION_CREATE => 11,
|
||||
self::ACTION_CLOSE => 12,
|
||||
);
|
||||
|
||||
$strongest = null;
|
||||
$strength = -1;
|
||||
foreach ($actions as $action) {
|
||||
if ($strengths[$action] > $strength) {
|
||||
$strength = $strengths[$action];
|
||||
$strongest = $action;
|
||||
}
|
||||
}
|
||||
return $strongest;
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in a new issue