@recaptime-dev's working patches + fork for Phorge, a community fork of Phabricator. (Upstream dev and stable branches are at upstream/main and upstream/stable respectively.) hq.recaptime.dev/wiki/Phorge
phorge phabricator
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Modernize Pholio edges

Summary: Modernize Pholio edges to subclass `PhabricatorEdgeType`. Largely based on D11045.

Test Plan: Attached a mock to a task, observed the expected comment in the transaction view (both ways).

Reviewers: epriestley, #blessed_reviewers

Reviewed By: epriestley, #blessed_reviewers

Subscribers: Korvin, epriestley

Differential Revision: https://secure.phabricator.com/D11113

+218 -46
+4
src/__phutil_library_map__.php
··· 1026 1026 'ManiphestTaskDetailController' => 'applications/maniphest/controller/ManiphestTaskDetailController.php', 1027 1027 'ManiphestTaskEditController' => 'applications/maniphest/controller/ManiphestTaskEditController.php', 1028 1028 'ManiphestTaskHasCommitEdgeType' => 'applications/maniphest/edge/ManiphestTaskHasCommitEdgeType.php', 1029 + 'ManiphestTaskHasMockEdgeType' => 'applications/maniphest/edge/ManiphestTaskHasMockEdgeType.php', 1029 1030 'ManiphestTaskHasRevisionEdgeType' => 'applications/maniphest/edge/ManiphestTaskHasRevisionEdgeType.php', 1030 1031 'ManiphestTaskListController' => 'applications/maniphest/controller/ManiphestTaskListController.php', 1031 1032 'ManiphestTaskListView' => 'applications/maniphest/view/ManiphestTaskListView.php', ··· 2649 2650 'PholioMockEditController' => 'applications/pholio/controller/PholioMockEditController.php', 2650 2651 'PholioMockEditor' => 'applications/pholio/editor/PholioMockEditor.php', 2651 2652 'PholioMockEmbedView' => 'applications/pholio/view/PholioMockEmbedView.php', 2653 + 'PholioMockHasTaskEdgeType' => 'applications/pholio/edge/PholioMockHasTaskEdgeType.php', 2652 2654 'PholioMockImagesView' => 'applications/pholio/view/PholioMockImagesView.php', 2653 2655 'PholioMockListController' => 'applications/pholio/controller/PholioMockListController.php', 2654 2656 'PholioMockMailReceiver' => 'applications/pholio/mail/PholioMockMailReceiver.php', ··· 4151 4153 'ManiphestTaskDetailController' => 'ManiphestController', 4152 4154 'ManiphestTaskEditController' => 'ManiphestController', 4153 4155 'ManiphestTaskHasCommitEdgeType' => 'PhabricatorEdgeType', 4156 + 'ManiphestTaskHasMockEdgeType' => 'PhabricatorEdgeType', 4154 4157 'ManiphestTaskHasRevisionEdgeType' => 'PhabricatorEdgeType', 4155 4158 'ManiphestTaskListController' => 'ManiphestController', 4156 4159 'ManiphestTaskListView' => 'ManiphestView', ··· 5907 5910 'PholioMockEditController' => 'PholioController', 5908 5911 'PholioMockEditor' => 'PhabricatorApplicationTransactionEditor', 5909 5912 'PholioMockEmbedView' => 'AphrontView', 5913 + 'PholioMockHasTaskEdgeType' => 'PhabricatorEdgeType', 5910 5914 'PholioMockImagesView' => 'AphrontView', 5911 5915 'PholioMockListController' => 'PholioController', 5912 5916 'PholioMockMailReceiver' => 'PhabricatorObjectMailReceiver',
+2 -2
src/applications/maniphest/controller/ManiphestTaskDetailController.php
··· 49 49 $e_dep_on = ManiphestTaskDependsOnTaskEdgeType::EDGECONST; 50 50 $e_dep_by = ManiphestTaskDependedOnByTaskEdgeType::EDGECONST; 51 51 $e_rev = ManiphestTaskHasRevisionEdgeType::EDGECONST; 52 - $e_mock = PhabricatorEdgeConfig::TYPE_TASK_HAS_MOCK; 52 + $e_mock = ManiphestTaskHasMockEdgeType::EDGECONST; 53 53 54 54 $phid = $task->getPHID(); 55 55 ··· 489 489 => pht('Blocked By'), 490 490 ManiphestTaskHasRevisionEdgeType::EDGECONST 491 491 => pht('Differential Revisions'), 492 - PhabricatorEdgeConfig::TYPE_TASK_HAS_MOCK 492 + ManiphestTaskHasMockEdgeType::EDGECONST 493 493 => pht('Pholio Mocks'), 494 494 ); 495 495
+102
src/applications/maniphest/edge/ManiphestTaskHasMockEdgeType.php
··· 1 + <?php 2 + 3 + final class ManiphestTaskHasMockEdgeType extends PhabricatorEdgeType { 4 + 5 + const EDGECONST = 38; 6 + 7 + public function getInverseEdgeConstant() { 8 + return PholioMockHasTaskEdgeType::EDGECONST; 9 + } 10 + 11 + public function shouldWriteInverseTransactions() { 12 + return true; 13 + } 14 + 15 + public function getTransactionAddString( 16 + $actor, 17 + $add_count, 18 + $add_edges) { 19 + 20 + return pht( 21 + '%s added %s mock(s): %s.', 22 + $actor, 23 + $add_count, 24 + $add_edges); 25 + } 26 + 27 + public function getTransactionRemoveString( 28 + $actor, 29 + $rem_count, 30 + $rem_edges) { 31 + 32 + return pht( 33 + '%s removed %s mock(s): %s.', 34 + $actor, 35 + $rem_count, 36 + $rem_edges); 37 + } 38 + 39 + public function getTransactionEditString( 40 + $actor, 41 + $total_count, 42 + $add_count, 43 + $add_edges, 44 + $rem_count, 45 + $rem_edges) { 46 + 47 + return pht( 48 + '%s edited mock(s), added %s: %s; removed %s: %s.', 49 + $actor, 50 + $add_count, 51 + $add_edges, 52 + $rem_count, 53 + $rem_edges); 54 + } 55 + 56 + public function getFeedAddString( 57 + $actor, 58 + $object, 59 + $add_count, 60 + $add_edges) { 61 + 62 + return pht( 63 + '%s added %s mock(s) for %s: %s.', 64 + $actor, 65 + $add_count, 66 + $object, 67 + $add_edges); 68 + } 69 + 70 + public function getFeedRemoveString( 71 + $actor, 72 + $object, 73 + $rem_count, 74 + $rem_edges) { 75 + 76 + return pht( 77 + '%s removed %s mock(s) for %s: %s.', 78 + $actor, 79 + $rem_count, 80 + $object, 81 + $rem_edges); 82 + } 83 + 84 + public function getFeedEditString( 85 + $actor, 86 + $object, 87 + $total_count, 88 + $add_count, 89 + $add_edges, 90 + $rem_count, 91 + $rem_edges) { 92 + 93 + return pht( 94 + '%s edited mock(s) for %s, added %s: %s; removed %s: %s.', 95 + $actor, 96 + $object, 97 + $add_count, 98 + $add_edges, 99 + $rem_count, 100 + $rem_edges); 101 + } 102 + }
+1 -1
src/applications/pholio/controller/PholioMockViewController.php
··· 40 40 41 41 $phids = PhabricatorEdgeQuery::loadDestinationPHIDs( 42 42 $mock->getPHID(), 43 - PhabricatorEdgeConfig::TYPE_MOCK_HAS_TASK); 43 + PholioMockHasTaskEdgeType::EDGECONST); 44 44 $this->setManiphestTaskPHIDs($phids); 45 45 $phids[] = $mock->getAuthorPHID(); 46 46 $this->loadHandles($phids);
+102
src/applications/pholio/edge/PholioMockHasTaskEdgeType.php
··· 1 + <?php 2 + 3 + final class PholioMockHasTaskEdgeType extends PhabricatorEdgeType { 4 + 5 + const EDGECONST = 37; 6 + 7 + public function getInverseEdgeConstant() { 8 + return ManiphestTaskHasMockEdgeType::EDGECONST; 9 + } 10 + 11 + public function shouldWriteInverseTransactions() { 12 + return true; 13 + } 14 + 15 + public function getTransactionAddString( 16 + $actor, 17 + $add_count, 18 + $add_edges) { 19 + 20 + return pht( 21 + '%s added %s task(s): %s.', 22 + $actor, 23 + $add_count, 24 + $add_edges); 25 + } 26 + 27 + public function getTransactionRemoveString( 28 + $actor, 29 + $rem_count, 30 + $rem_edges) { 31 + 32 + return pht( 33 + '%s removed %s task(s): %s.', 34 + $actor, 35 + $rem_count, 36 + $rem_edges); 37 + } 38 + 39 + public function getTransactionEditString( 40 + $actor, 41 + $total_count, 42 + $add_count, 43 + $add_edges, 44 + $rem_count, 45 + $rem_edges) { 46 + 47 + return pht( 48 + '%s edited task(s), added %s: %s; removed %s: %s.', 49 + $actor, 50 + $add_count, 51 + $add_edges, 52 + $rem_count, 53 + $rem_edges); 54 + } 55 + 56 + public function getFeedAddString( 57 + $actor, 58 + $object, 59 + $add_count, 60 + $add_edges) { 61 + 62 + return pht( 63 + '%s added %s task(s) for %s: %s.', 64 + $actor, 65 + $add_count, 66 + $object, 67 + $add_edges); 68 + } 69 + 70 + public function getFeedRemoveString( 71 + $actor, 72 + $object, 73 + $rem_count, 74 + $rem_edges) { 75 + 76 + return pht( 77 + '%s removed %s task(s) for %s: %s.', 78 + $actor, 79 + $rem_count, 80 + $object, 81 + $rem_edges); 82 + } 83 + 84 + public function getFeedEditString( 85 + $actor, 86 + $object, 87 + $total_count, 88 + $add_count, 89 + $add_edges, 90 + $rem_count, 91 + $rem_edges) { 92 + 93 + return pht( 94 + '%s edited task(s) for %s, added %s: %s; removed %s: %s.', 95 + $actor, 96 + $object, 97 + $add_count, 98 + $add_edges, 99 + $rem_count, 100 + $rem_edges); 101 + } 102 + }
+2 -2
src/applications/search/controller/PhabricatorSearchAttachController.php
··· 294 294 $t_cmit => ManiphestTaskHasCommitEdgeType::EDGECONST, 295 295 $t_task => ManiphestTaskDependsOnTaskEdgeType::EDGECONST, 296 296 $t_drev => ManiphestTaskHasRevisionEdgeType::EDGECONST, 297 - $t_mock => PhabricatorEdgeConfig::TYPE_TASK_HAS_MOCK, 297 + $t_mock => ManiphestTaskHasMockEdgeType::EDGECONST, 298 298 ), 299 299 $t_drev => array( 300 300 $t_drev => DifferentialRevisionDependsOnRevisionEdgeType::EDGECONST, 301 301 $t_task => DifferentialRevisionHasTaskEdgeType::EDGECONST, 302 302 ), 303 303 $t_mock => array( 304 - $t_task => PhabricatorEdgeConfig::TYPE_MOCK_HAS_TASK, 304 + $t_task => PholioMockHasTaskEdgeType::EDGECONST, 305 305 ), 306 306 ); 307 307
-22
src/infrastructure/edges/constants/PhabricatorEdgeConfig.php
··· 17 17 const TYPE_OBJECT_HAS_CONTRIBUTOR = 33; 18 18 const TYPE_CONTRIBUTED_TO_OBJECT = 34; 19 19 20 - const TYPE_MOCK_HAS_TASK = 37; 21 - const TYPE_TASK_HAS_MOCK = 38; 22 - 23 20 const TYPE_OBJECT_USES_CREDENTIAL = 39; 24 21 const TYPE_CREDENTIAL_USED_BY_OBJECT = 40; 25 22 ··· 111 108 112 109 self::TYPE_OBJECT_HAS_CONTRIBUTOR => self::TYPE_CONTRIBUTED_TO_OBJECT, 113 110 self::TYPE_CONTRIBUTED_TO_OBJECT => self::TYPE_OBJECT_HAS_CONTRIBUTOR, 114 - 115 - self::TYPE_TASK_HAS_MOCK => self::TYPE_MOCK_HAS_TASK, 116 - self::TYPE_MOCK_HAS_TASK => self::TYPE_TASK_HAS_MOCK, 117 111 118 112 self::TYPE_PHOB_HAS_ASANATASK => self::TYPE_ASANATASK_HAS_PHOB, 119 113 self::TYPE_ASANATASK_HAS_PHOB => self::TYPE_PHOB_HAS_ASANATASK, ··· 171 165 172 166 public static function getEditStringForEdgeType($type) { 173 167 switch ($type) { 174 - case self::TYPE_MOCK_HAS_TASK: 175 - return '%s edited task(s), added %d: %s; removed %d: %s.'; 176 168 case self::TYPE_OBJECT_HAS_SUBSCRIBER: 177 169 return '%s edited subscriber(s), added %d: %s; removed %d: %s.'; 178 170 case self::TYPE_SUBSCRIBED_TO_OBJECT: ··· 186 178 return '%s edited file(s), added %d: %s; removed %d: %s.'; 187 179 case self::TYPE_OBJECT_HAS_CONTRIBUTOR: 188 180 return '%s edited contributor(s), added %d: %s; removed %d: %s.'; 189 - case self::TYPE_TASK_HAS_MOCK: 190 - return '%s edited mock(s), added %d: %s; removed %d: %s.'; 191 181 case self::TYPE_DASHBOARD_HAS_PANEL: 192 182 return '%s edited panel(s), added %d: %s; removed %d: %s.'; 193 183 case self::TYPE_PANEL_HAS_DASHBOARD: ··· 204 194 205 195 public static function getAddStringForEdgeType($type) { 206 196 switch ($type) { 207 - case self::TYPE_MOCK_HAS_TASK: 208 - return '%s added %d task(s): %s.'; 209 197 case self::TYPE_OBJECT_HAS_SUBSCRIBER: 210 198 return '%s added %d subscriber(s): %s.'; 211 199 case self::TYPE_OBJECT_HAS_UNSUBSCRIBER: ··· 214 202 return '%s added %d file(s): %s.'; 215 203 case self::TYPE_OBJECT_HAS_CONTRIBUTOR: 216 204 return '%s added %d contributor(s): %s.'; 217 - case self::TYPE_TASK_HAS_MOCK: 218 - return '%s added %d mock(s): %s.'; 219 205 case self::TYPE_DASHBOARD_HAS_PANEL: 220 206 return '%s added %d panel(s): %s.'; 221 207 case self::TYPE_PANEL_HAS_DASHBOARD: ··· 234 220 235 221 public static function getRemoveStringForEdgeType($type) { 236 222 switch ($type) { 237 - case self::TYPE_MOCK_HAS_TASK: 238 - return '%s removed %d task(s): %s.'; 239 223 case self::TYPE_OBJECT_HAS_SUBSCRIBER: 240 224 return '%s removed %d subscriber(s): %s.'; 241 225 case self::TYPE_OBJECT_HAS_UNSUBSCRIBER: ··· 244 228 return '%s removed %d file(s): %s.'; 245 229 case self::TYPE_OBJECT_HAS_CONTRIBUTOR: 246 230 return '%s removed %d contributor(s): %s.'; 247 - case self::TYPE_TASK_HAS_MOCK: 248 - return '%s removed %d mock(s): %s.'; 249 231 case self::TYPE_DASHBOARD_HAS_PANEL: 250 232 return '%s removed %d panel(s): %s.'; 251 233 case self::TYPE_PANEL_HAS_DASHBOARD: ··· 264 246 265 247 public static function getFeedStringForEdgeType($type) { 266 248 switch ($type) { 267 - case self::TYPE_MOCK_HAS_TASK: 268 - return '%s updated tasks of %s.'; 269 249 case self::TYPE_OBJECT_HAS_SUBSCRIBER: 270 250 return '%s updated subscribers of %s.'; 271 251 case self::TYPE_OBJECT_HAS_UNSUBSCRIBER: ··· 274 254 return '%s updated files of %s.'; 275 255 case self::TYPE_OBJECT_HAS_CONTRIBUTOR: 276 256 return '%s updated contributors of %s.'; 277 - case self::TYPE_TASK_HAS_MOCK: 278 - return '%s updated mocks of %s.'; 279 257 case self::TYPE_PANEL_HAS_DASHBOARD: 280 258 return '%s updated panels for %s.'; 281 259 case self::TYPE_PANEL_HAS_DASHBOARD:
+5 -19
src/infrastructure/internationalization/translation/PhabricatorBaseEnglishTranslation.php
··· 294 294 ), 295 295 ), 296 296 297 - '%s edited mock(s), added %d: %s; removed %d: %s.' => 297 + '%s edited mock(s), added %s: %s; removed %s: %s.' => 298 298 '%s edited mocks, added: %3$s; removed: %5$s.', 299 299 300 - '%s added %d mock(s): %s.' => array( 300 + '%s added %s mock(s): %s.' => array( 301 301 array( 302 302 '%s added a mock: %3$s.', 303 303 '%s added mocks: %3$s.', 304 304 ), 305 305 ), 306 306 307 - '%s removed %d mock(s): %s.' => array( 307 + '%s removed %s mock(s): %s.' => array( 308 308 array( 309 309 '%s removed a mock: %3$s.', 310 310 '%s removed mocks: %3$s.', 311 311 ), 312 312 ), 313 313 314 - '%s added %d task(s): %s.' => array( 314 + '%s added %s task(s): %s.' => array( 315 315 array( 316 316 '%s added a task: %3$s.', 317 317 '%s added tasks: %3$s.', 318 318 ), 319 319 ), 320 320 321 - '%s removed %d task(s): %s.' => array( 321 + '%s removed %s task(s): %s.' => array( 322 322 array( 323 323 '%s removed a task: %3$s.', 324 324 '%s removed tasks: %3$s.', ··· 703 703 704 704 '%s updated JIRA issue(s): added %d %s; removed %d %s.' => 705 705 '%s updated JIRA issues: added %3$s; removed %5$s.', 706 - 707 - '%s added %s task(s): %s.' => array( 708 - array( 709 - '%s added a task: %3$s.', 710 - '%s added tasks: %3$s.', 711 - ), 712 - ), 713 - 714 - '%s removed %s task(s): %s.' => array( 715 - array( 716 - '%s removed a task: %3$s.', 717 - '%s removed tasks: %3$s.', 718 - ), 719 - ), 720 706 721 707 '%s edited %s task(s), added %s: %s; removed %s: %s.' => 722 708 '%s edited tasks, added %4$s; removed %6$s.',