From ee254b5c2ac11fb5250b30b42b857597dead47ca Mon Sep 17 00:00:00 2001 From: epriestley <git@epriestley.com> Date: Sun, 20 Oct 2013 16:13:34 -0700 Subject: [PATCH] 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 --- src/__phutil_library_map__.php | 4 - .../story/PhabricatorFeedStoryManiphest.php | 143 ------------------ .../maniphest/constants/ManiphestAction.php | 86 ----------- 3 files changed, 233 deletions(-) delete mode 100644 src/applications/feed/story/PhabricatorFeedStoryManiphest.php delete mode 100644 src/applications/maniphest/constants/ManiphestAction.php diff --git a/src/__phutil_library_map__.php b/src/__phutil_library_map__.php index 8bb0db6cf6..b563d1ae89 100644 --- a/src/__phutil_library_map__.php +++ b/src/__phutil_library_map__.php @@ -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', diff --git a/src/applications/feed/story/PhabricatorFeedStoryManiphest.php b/src/applications/feed/story/PhabricatorFeedStoryManiphest.php deleted file mode 100644 index 7967e8a655..0000000000 --- a/src/applications/feed/story/PhabricatorFeedStoryManiphest.php +++ /dev/null @@ -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', - ); - } - -} diff --git a/src/applications/maniphest/constants/ManiphestAction.php b/src/applications/maniphest/constants/ManiphestAction.php deleted file mode 100644 index f45a47088a..0000000000 --- a/src/applications/maniphest/constants/ManiphestAction.php +++ /dev/null @@ -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; - } - -}