@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.

Modularize all remaining Pholio Herald fields

Summary: Ref T8726. Use modular fields for the Pholio adapter.

Test Plan:
- Created rule using all the old fields.
- Migrated, saw upgrade apply correctly.
- Created mock, reviewed transcript.

Reviewers: btrahan

Reviewed By: btrahan

Subscribers: eadler, epriestley

Maniphest Tasks: T8726

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

+120 -40
+20
resources/sql/autopatches/20150701.herald.1.sql
··· 1 + UPDATE {$NAMESPACE}_herald.herald_condition c 2 + JOIN {$NAMESPACE}_herald.herald_rule r 3 + ON c.ruleID = r.id 4 + SET c.fieldName = 'pholio.mock.name' 5 + WHERE r.contentType = 'HeraldPholioMockAdapter' 6 + AND c.fieldName = 'title'; 7 + 8 + UPDATE {$NAMESPACE}_herald.herald_condition c 9 + JOIN {$NAMESPACE}_herald.herald_rule r 10 + ON c.ruleID = r.id 11 + SET c.fieldName = 'pholio.mock.description' 12 + WHERE r.contentType = 'HeraldPholioMockAdapter' 13 + AND c.fieldName = 'body'; 14 + 15 + UPDATE {$NAMESPACE}_herald.herald_condition c 16 + JOIN {$NAMESPACE}_herald.herald_rule r 17 + ON c.ruleID = r.id 18 + SET c.fieldName = 'pholio.mock.author' 19 + WHERE r.contentType = 'HeraldPholioMockAdapter' 20 + AND c.fieldName = 'author';
+9 -1
src/__phutil_library_map__.php
··· 954 954 'HeraldNewController' => 'applications/herald/controller/HeraldNewController.php', 955 955 'HeraldNewObjectField' => 'applications/herald/field/HeraldNewObjectField.php', 956 956 'HeraldObjectTranscript' => 'applications/herald/storage/transcript/HeraldObjectTranscript.php', 957 - 'HeraldPholioMockAdapter' => 'applications/herald/adapter/HeraldPholioMockAdapter.php', 957 + 'HeraldPholioMockAdapter' => 'applications/pholio/herald/HeraldPholioMockAdapter.php', 958 958 'HeraldPreCommitAdapter' => 'applications/diffusion/herald/HeraldPreCommitAdapter.php', 959 959 'HeraldPreCommitContentAdapter' => 'applications/diffusion/herald/HeraldPreCommitContentAdapter.php', 960 960 'HeraldPreCommitRefAdapter' => 'applications/diffusion/herald/HeraldPreCommitRefAdapter.php', ··· 2969 2969 'PholioInlineController' => 'applications/pholio/controller/PholioInlineController.php', 2970 2970 'PholioInlineListController' => 'applications/pholio/controller/PholioInlineListController.php', 2971 2971 'PholioMock' => 'applications/pholio/storage/PholioMock.php', 2972 + 'PholioMockAuthorHeraldField' => 'applications/pholio/herald/PholioMockAuthorHeraldField.php', 2972 2973 'PholioMockCommentController' => 'applications/pholio/controller/PholioMockCommentController.php', 2974 + 'PholioMockDescriptionHeraldField' => 'applications/pholio/herald/PholioMockDescriptionHeraldField.php', 2973 2975 'PholioMockEditController' => 'applications/pholio/controller/PholioMockEditController.php', 2974 2976 'PholioMockEditor' => 'applications/pholio/editor/PholioMockEditor.php', 2975 2977 'PholioMockEmbedView' => 'applications/pholio/view/PholioMockEmbedView.php', 2976 2978 'PholioMockHasTaskEdgeType' => 'applications/pholio/edge/PholioMockHasTaskEdgeType.php', 2979 + 'PholioMockHeraldField' => 'applications/pholio/herald/PholioMockHeraldField.php', 2977 2980 'PholioMockImagesView' => 'applications/pholio/view/PholioMockImagesView.php', 2978 2981 'PholioMockListController' => 'applications/pholio/controller/PholioMockListController.php', 2979 2982 'PholioMockMailReceiver' => 'applications/pholio/mail/PholioMockMailReceiver.php', 2983 + 'PholioMockNameHeraldField' => 'applications/pholio/herald/PholioMockNameHeraldField.php', 2980 2984 'PholioMockPHIDType' => 'applications/pholio/phid/PholioMockPHIDType.php', 2981 2985 'PholioMockQuery' => 'applications/pholio/query/PholioMockQuery.php', 2982 2986 'PholioMockSearchEngine' => 'applications/pholio/query/PholioMockSearchEngine.php', ··· 6841 6845 'PhabricatorSpacesInterface', 6842 6846 'PhabricatorMentionableInterface', 6843 6847 ), 6848 + 'PholioMockAuthorHeraldField' => 'PholioMockHeraldField', 6844 6849 'PholioMockCommentController' => 'PholioController', 6850 + 'PholioMockDescriptionHeraldField' => 'PholioMockHeraldField', 6845 6851 'PholioMockEditController' => 'PholioController', 6846 6852 'PholioMockEditor' => 'PhabricatorApplicationTransactionEditor', 6847 6853 'PholioMockEmbedView' => 'AphrontView', 6848 6854 'PholioMockHasTaskEdgeType' => 'PhabricatorEdgeType', 6855 + 'PholioMockHeraldField' => 'HeraldField', 6849 6856 'PholioMockImagesView' => 'AphrontView', 6850 6857 'PholioMockListController' => 'PholioController', 6851 6858 'PholioMockMailReceiver' => 'PhabricatorObjectMailReceiver', 6859 + 'PholioMockNameHeraldField' => 'PholioMockHeraldField', 6852 6860 'PholioMockPHIDType' => 'PhabricatorPHIDType', 6853 6861 'PholioMockQuery' => 'PhabricatorCursorPagedPolicyAwareQuery', 6854 6862 'PholioMockSearchEngine' => 'PhabricatorApplicationSearchEngine',
+10 -1
src/applications/herald/adapter/HeraldAdapter.php
··· 186 186 throw new Exception(pht("Unknown field '%s'!", $field_name)); 187 187 } 188 188 189 - abstract public function applyHeraldEffects(array $effects); 189 + public function applyHeraldEffects(array $effects) { 190 + assert_instances_of($effects, 'HeraldEffect'); 191 + 192 + $result = array(); 193 + foreach ($effects as $effect) { 194 + $result[] = $this->applyStandardEffect($effect); 195 + } 196 + 197 + return $result; 198 + } 190 199 191 200 protected function handleCustomHeraldEffect(HeraldEffect $effect) { 192 201 $custom_action = idx($this->getCustomActions(), $effect->getAction());
-38
src/applications/herald/adapter/HeraldPholioMockAdapter.php src/applications/pholio/herald/HeraldPholioMockAdapter.php
··· 47 47 } 48 48 } 49 49 50 - public function getFields() { 51 - return array_merge( 52 - array( 53 - self::FIELD_TITLE, 54 - self::FIELD_BODY, 55 - self::FIELD_AUTHOR, 56 - ), 57 - parent::getFields()); 58 - } 59 - 60 50 public function getActions($rule_type) { 61 51 switch ($rule_type) { 62 52 case HeraldRuleTypeConfig::RULE_TYPE_GLOBAL: ··· 85 75 86 76 public function getHeraldName() { 87 77 return 'M'.$this->getMock()->getID(); 88 - } 89 - 90 - public function getHeraldField($field) { 91 - switch ($field) { 92 - case self::FIELD_TITLE: 93 - return $this->getMock()->getName(); 94 - case self::FIELD_BODY: 95 - return $this->getMock()->getDescription(); 96 - case self::FIELD_AUTHOR: 97 - return $this->getMock()->getAuthorPHID(); 98 - } 99 - 100 - return parent::getHeraldField($field); 101 - } 102 - 103 - public function applyHeraldEffects(array $effects) { 104 - assert_instances_of($effects, 'HeraldEffect'); 105 - 106 - $result = array(); 107 - foreach ($effects as $effect) { 108 - $action = $effect->getAction(); 109 - switch ($action) { 110 - default: 111 - $result[] = $this->applyStandardEffect($effect); 112 - break; 113 - } 114 - } 115 - return $result; 116 78 } 117 79 118 80 }
+24
src/applications/pholio/herald/PholioMockAuthorHeraldField.php
··· 1 + <?php 2 + 3 + final class PholioMockAuthorHeraldField 4 + extends PholioMockHeraldField { 5 + 6 + const FIELDCONST = 'pholio.mock.author'; 7 + 8 + public function getHeraldFieldName() { 9 + return pht('Author'); 10 + } 11 + 12 + public function getHeraldFieldValue($object) { 13 + return $object->getAuthorPHID(); 14 + } 15 + 16 + protected function getHeraldFieldStandardConditions() { 17 + return self::STANDARD_PHID; 18 + } 19 + 20 + public function getHeraldFieldValueType($condition) { 21 + return HeraldAdapter::VALUE_USER; 22 + } 23 + 24 + }
+24
src/applications/pholio/herald/PholioMockDescriptionHeraldField.php
··· 1 + <?php 2 + 3 + final class PholioMockDescriptionHeraldField 4 + extends PholioMockHeraldField { 5 + 6 + const FIELDCONST = 'pholio.mock.description'; 7 + 8 + public function getHeraldFieldName() { 9 + return pht('Description'); 10 + } 11 + 12 + public function getHeraldFieldValue($object) { 13 + return $object->getDescription(); 14 + } 15 + 16 + protected function getHeraldFieldStandardConditions() { 17 + return self::STANDARD_TEXT; 18 + } 19 + 20 + public function getHeraldFieldValueType($condition) { 21 + return HeraldAdapter::VALUE_TEXT; 22 + } 23 + 24 + }
+9
src/applications/pholio/herald/PholioMockHeraldField.php
··· 1 + <?php 2 + 3 + abstract class PholioMockHeraldField extends HeraldField { 4 + 5 + public function supportsObject($object) { 6 + return ($object instanceof PholioMock); 7 + } 8 + 9 + }
+24
src/applications/pholio/herald/PholioMockNameHeraldField.php
··· 1 + <?php 2 + 3 + final class PholioMockNameHeraldField 4 + extends PholioMockHeraldField { 5 + 6 + const FIELDCONST = 'pholio.mock.name'; 7 + 8 + public function getHeraldFieldName() { 9 + return pht('Name'); 10 + } 11 + 12 + public function getHeraldFieldValue($object) { 13 + return $object->getName(); 14 + } 15 + 16 + protected function getHeraldFieldStandardConditions() { 17 + return self::STANDARD_TEXT; 18 + } 19 + 20 + public function getHeraldFieldValueType($condition) { 21 + return HeraldAdapter::VALUE_TEXT; 22 + } 23 + 24 + }