Page MenuHomePhabricator

D13513.id.diff
No OneTemporary

D13513.id.diff

diff --git a/resources/sql/autopatches/20150701.herald.1.sql b/resources/sql/autopatches/20150701.herald.1.sql
new file mode 100644
--- /dev/null
+++ b/resources/sql/autopatches/20150701.herald.1.sql
@@ -0,0 +1,20 @@
+UPDATE {$NAMESPACE}_herald.herald_condition c
+ JOIN {$NAMESPACE}_herald.herald_rule r
+ ON c.ruleID = r.id
+ SET c.fieldName = 'pholio.mock.name'
+ WHERE r.contentType = 'HeraldPholioMockAdapter'
+ AND c.fieldName = 'title';
+
+UPDATE {$NAMESPACE}_herald.herald_condition c
+ JOIN {$NAMESPACE}_herald.herald_rule r
+ ON c.ruleID = r.id
+ SET c.fieldName = 'pholio.mock.description'
+ WHERE r.contentType = 'HeraldPholioMockAdapter'
+ AND c.fieldName = 'body';
+
+UPDATE {$NAMESPACE}_herald.herald_condition c
+ JOIN {$NAMESPACE}_herald.herald_rule r
+ ON c.ruleID = r.id
+ SET c.fieldName = 'pholio.mock.author'
+ WHERE r.contentType = 'HeraldPholioMockAdapter'
+ AND c.fieldName = 'author';
diff --git a/src/__phutil_library_map__.php b/src/__phutil_library_map__.php
--- a/src/__phutil_library_map__.php
+++ b/src/__phutil_library_map__.php
@@ -954,7 +954,7 @@
'HeraldNewController' => 'applications/herald/controller/HeraldNewController.php',
'HeraldNewObjectField' => 'applications/herald/field/HeraldNewObjectField.php',
'HeraldObjectTranscript' => 'applications/herald/storage/transcript/HeraldObjectTranscript.php',
- 'HeraldPholioMockAdapter' => 'applications/herald/adapter/HeraldPholioMockAdapter.php',
+ 'HeraldPholioMockAdapter' => 'applications/pholio/herald/HeraldPholioMockAdapter.php',
'HeraldPreCommitAdapter' => 'applications/diffusion/herald/HeraldPreCommitAdapter.php',
'HeraldPreCommitContentAdapter' => 'applications/diffusion/herald/HeraldPreCommitContentAdapter.php',
'HeraldPreCommitRefAdapter' => 'applications/diffusion/herald/HeraldPreCommitRefAdapter.php',
@@ -2969,14 +2969,18 @@
'PholioInlineController' => 'applications/pholio/controller/PholioInlineController.php',
'PholioInlineListController' => 'applications/pholio/controller/PholioInlineListController.php',
'PholioMock' => 'applications/pholio/storage/PholioMock.php',
+ 'PholioMockAuthorHeraldField' => 'applications/pholio/herald/PholioMockAuthorHeraldField.php',
'PholioMockCommentController' => 'applications/pholio/controller/PholioMockCommentController.php',
+ 'PholioMockDescriptionHeraldField' => 'applications/pholio/herald/PholioMockDescriptionHeraldField.php',
'PholioMockEditController' => 'applications/pholio/controller/PholioMockEditController.php',
'PholioMockEditor' => 'applications/pholio/editor/PholioMockEditor.php',
'PholioMockEmbedView' => 'applications/pholio/view/PholioMockEmbedView.php',
'PholioMockHasTaskEdgeType' => 'applications/pholio/edge/PholioMockHasTaskEdgeType.php',
+ 'PholioMockHeraldField' => 'applications/pholio/herald/PholioMockHeraldField.php',
'PholioMockImagesView' => 'applications/pholio/view/PholioMockImagesView.php',
'PholioMockListController' => 'applications/pholio/controller/PholioMockListController.php',
'PholioMockMailReceiver' => 'applications/pholio/mail/PholioMockMailReceiver.php',
+ 'PholioMockNameHeraldField' => 'applications/pholio/herald/PholioMockNameHeraldField.php',
'PholioMockPHIDType' => 'applications/pholio/phid/PholioMockPHIDType.php',
'PholioMockQuery' => 'applications/pholio/query/PholioMockQuery.php',
'PholioMockSearchEngine' => 'applications/pholio/query/PholioMockSearchEngine.php',
@@ -6841,14 +6845,18 @@
'PhabricatorSpacesInterface',
'PhabricatorMentionableInterface',
),
+ 'PholioMockAuthorHeraldField' => 'PholioMockHeraldField',
'PholioMockCommentController' => 'PholioController',
+ 'PholioMockDescriptionHeraldField' => 'PholioMockHeraldField',
'PholioMockEditController' => 'PholioController',
'PholioMockEditor' => 'PhabricatorApplicationTransactionEditor',
'PholioMockEmbedView' => 'AphrontView',
'PholioMockHasTaskEdgeType' => 'PhabricatorEdgeType',
+ 'PholioMockHeraldField' => 'HeraldField',
'PholioMockImagesView' => 'AphrontView',
'PholioMockListController' => 'PholioController',
'PholioMockMailReceiver' => 'PhabricatorObjectMailReceiver',
+ 'PholioMockNameHeraldField' => 'PholioMockHeraldField',
'PholioMockPHIDType' => 'PhabricatorPHIDType',
'PholioMockQuery' => 'PhabricatorCursorPagedPolicyAwareQuery',
'PholioMockSearchEngine' => 'PhabricatorApplicationSearchEngine',
diff --git a/src/applications/herald/adapter/HeraldAdapter.php b/src/applications/herald/adapter/HeraldAdapter.php
--- a/src/applications/herald/adapter/HeraldAdapter.php
+++ b/src/applications/herald/adapter/HeraldAdapter.php
@@ -186,7 +186,16 @@
throw new Exception(pht("Unknown field '%s'!", $field_name));
}
- abstract public function applyHeraldEffects(array $effects);
+ public function applyHeraldEffects(array $effects) {
+ assert_instances_of($effects, 'HeraldEffect');
+
+ $result = array();
+ foreach ($effects as $effect) {
+ $result[] = $this->applyStandardEffect($effect);
+ }
+
+ return $result;
+ }
protected function handleCustomHeraldEffect(HeraldEffect $effect) {
$custom_action = idx($this->getCustomActions(), $effect->getAction());
diff --git a/src/applications/herald/adapter/HeraldPholioMockAdapter.php b/src/applications/pholio/herald/HeraldPholioMockAdapter.php
rename from src/applications/herald/adapter/HeraldPholioMockAdapter.php
rename to src/applications/pholio/herald/HeraldPholioMockAdapter.php
--- a/src/applications/herald/adapter/HeraldPholioMockAdapter.php
+++ b/src/applications/pholio/herald/HeraldPholioMockAdapter.php
@@ -47,16 +47,6 @@
}
}
- public function getFields() {
- return array_merge(
- array(
- self::FIELD_TITLE,
- self::FIELD_BODY,
- self::FIELD_AUTHOR,
- ),
- parent::getFields());
- }
-
public function getActions($rule_type) {
switch ($rule_type) {
case HeraldRuleTypeConfig::RULE_TYPE_GLOBAL:
@@ -87,32 +77,4 @@
return 'M'.$this->getMock()->getID();
}
- public function getHeraldField($field) {
- switch ($field) {
- case self::FIELD_TITLE:
- return $this->getMock()->getName();
- case self::FIELD_BODY:
- return $this->getMock()->getDescription();
- case self::FIELD_AUTHOR:
- return $this->getMock()->getAuthorPHID();
- }
-
- return parent::getHeraldField($field);
- }
-
- public function applyHeraldEffects(array $effects) {
- assert_instances_of($effects, 'HeraldEffect');
-
- $result = array();
- foreach ($effects as $effect) {
- $action = $effect->getAction();
- switch ($action) {
- default:
- $result[] = $this->applyStandardEffect($effect);
- break;
- }
- }
- return $result;
- }
-
}
diff --git a/src/applications/pholio/herald/PholioMockAuthorHeraldField.php b/src/applications/pholio/herald/PholioMockAuthorHeraldField.php
new file mode 100644
--- /dev/null
+++ b/src/applications/pholio/herald/PholioMockAuthorHeraldField.php
@@ -0,0 +1,24 @@
+<?php
+
+final class PholioMockAuthorHeraldField
+ extends PholioMockHeraldField {
+
+ const FIELDCONST = 'pholio.mock.author';
+
+ public function getHeraldFieldName() {
+ return pht('Author');
+ }
+
+ public function getHeraldFieldValue($object) {
+ return $object->getAuthorPHID();
+ }
+
+ protected function getHeraldFieldStandardConditions() {
+ return self::STANDARD_PHID;
+ }
+
+ public function getHeraldFieldValueType($condition) {
+ return HeraldAdapter::VALUE_USER;
+ }
+
+}
diff --git a/src/applications/pholio/herald/PholioMockDescriptionHeraldField.php b/src/applications/pholio/herald/PholioMockDescriptionHeraldField.php
new file mode 100644
--- /dev/null
+++ b/src/applications/pholio/herald/PholioMockDescriptionHeraldField.php
@@ -0,0 +1,24 @@
+<?php
+
+final class PholioMockDescriptionHeraldField
+ extends PholioMockHeraldField {
+
+ const FIELDCONST = 'pholio.mock.description';
+
+ public function getHeraldFieldName() {
+ return pht('Description');
+ }
+
+ public function getHeraldFieldValue($object) {
+ return $object->getDescription();
+ }
+
+ protected function getHeraldFieldStandardConditions() {
+ return self::STANDARD_TEXT;
+ }
+
+ public function getHeraldFieldValueType($condition) {
+ return HeraldAdapter::VALUE_TEXT;
+ }
+
+}
diff --git a/src/applications/pholio/herald/PholioMockHeraldField.php b/src/applications/pholio/herald/PholioMockHeraldField.php
new file mode 100644
--- /dev/null
+++ b/src/applications/pholio/herald/PholioMockHeraldField.php
@@ -0,0 +1,9 @@
+<?php
+
+abstract class PholioMockHeraldField extends HeraldField {
+
+ public function supportsObject($object) {
+ return ($object instanceof PholioMock);
+ }
+
+}
diff --git a/src/applications/pholio/herald/PholioMockNameHeraldField.php b/src/applications/pholio/herald/PholioMockNameHeraldField.php
new file mode 100644
--- /dev/null
+++ b/src/applications/pholio/herald/PholioMockNameHeraldField.php
@@ -0,0 +1,24 @@
+<?php
+
+final class PholioMockNameHeraldField
+ extends PholioMockHeraldField {
+
+ const FIELDCONST = 'pholio.mock.name';
+
+ public function getHeraldFieldName() {
+ return pht('Name');
+ }
+
+ public function getHeraldFieldValue($object) {
+ return $object->getName();
+ }
+
+ protected function getHeraldFieldStandardConditions() {
+ return self::STANDARD_TEXT;
+ }
+
+ public function getHeraldFieldValueType($condition) {
+ return HeraldAdapter::VALUE_TEXT;
+ }
+
+}

File Metadata

Mime Type
text/plain
Expires
Mon, May 13, 9:52 PM (2 w, 4 d ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
6291177
Default Alt Text
D13513.id.diff (9 KB)

Event Timeline