mirror of
https://we.phorge.it/source/phorge.git
synced 2024-12-18 11:30:55 +01:00
Modularize Application Email Herald field
Summary: Ref T8726. There's no interface we can check for this, so the adapter needs to opt in. Also fix a spelling mistake. Test Plan: Created rules with "Application Email" fields. Reviewers: btrahan Reviewed By: btrahan Subscribers: epriestley Maniphest Tasks: T8726 Differential Revision: https://secure.phabricator.com/D13499
This commit is contained in:
parent
bfbc0e638d
commit
9f220995b2
5 changed files with 57 additions and 24 deletions
5
resources/sql/autopatches/20150630.herald.1.sql
Normal file
5
resources/sql/autopatches/20150630.herald.1.sql
Normal file
|
@ -0,0 +1,5 @@
|
|||
# NOTE: This is a spelling correction.
|
||||
|
||||
UPDATE {$NAMESPACE}_herald.herald_condition
|
||||
SET fieldName = 'application-email'
|
||||
WHERE fieldName = 'applicaton-email';
|
|
@ -2112,6 +2112,7 @@ phutil_register_library_map(array(
|
|||
'PhabricatorMetaMTAApplicationEmail' => 'applications/metamta/storage/PhabricatorMetaMTAApplicationEmail.php',
|
||||
'PhabricatorMetaMTAApplicationEmailDatasource' => 'applications/metamta/typeahead/PhabricatorMetaMTAApplicationEmailDatasource.php',
|
||||
'PhabricatorMetaMTAApplicationEmailEditor' => 'applications/metamta/editor/PhabricatorMetaMTAApplicationEmailEditor.php',
|
||||
'PhabricatorMetaMTAApplicationEmailHeraldField' => 'applications/metamta/herald/PhabricatorMetaMTAApplicationEmailHeraldField.php',
|
||||
'PhabricatorMetaMTAApplicationEmailPHIDType' => 'applications/phid/PhabricatorMetaMTAApplicationEmailPHIDType.php',
|
||||
'PhabricatorMetaMTAApplicationEmailPanel' => 'applications/metamta/applicationpanel/PhabricatorMetaMTAApplicationEmailPanel.php',
|
||||
'PhabricatorMetaMTAApplicationEmailQuery' => 'applications/metamta/query/PhabricatorMetaMTAApplicationEmailQuery.php',
|
||||
|
@ -5800,6 +5801,7 @@ phutil_register_library_map(array(
|
|||
),
|
||||
'PhabricatorMetaMTAApplicationEmailDatasource' => 'PhabricatorTypeaheadDatasource',
|
||||
'PhabricatorMetaMTAApplicationEmailEditor' => 'PhabricatorApplicationTransactionEditor',
|
||||
'PhabricatorMetaMTAApplicationEmailHeraldField' => 'HeraldField',
|
||||
'PhabricatorMetaMTAApplicationEmailPHIDType' => 'PhabricatorPHIDType',
|
||||
'PhabricatorMetaMTAApplicationEmailPanel' => 'PhabricatorApplicationConfigurationPanel',
|
||||
'PhabricatorMetaMTAApplicationEmailQuery' => 'PhabricatorCursorPagedPolicyAwareQuery',
|
||||
|
|
|
@ -29,7 +29,6 @@ abstract class HeraldAdapter extends Phobject {
|
|||
const FIELD_BRANCHES = 'branches';
|
||||
const FIELD_AUTHOR_RAW = 'author-raw';
|
||||
const FIELD_COMMITTER_RAW = 'committer-raw';
|
||||
const FIELD_APPLICATION_EMAIL = 'applicaton-email';
|
||||
const FIELD_TASK_PRIORITY = 'taskpriority';
|
||||
const FIELD_TASK_STATUS = 'taskstatus';
|
||||
const FIELD_PUSHER_IS_COMMITTER = 'pusher-is-committer';
|
||||
|
@ -164,6 +163,10 @@ abstract class HeraldAdapter extends Phobject {
|
|||
return $this;
|
||||
}
|
||||
|
||||
public function supportsApplicationEmail() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public function setApplicationEmail(
|
||||
PhabricatorMetaMTAApplicationEmail $email) {
|
||||
$this->applicationEmail = $email;
|
||||
|
@ -183,18 +186,7 @@ abstract class HeraldAdapter extends Phobject {
|
|||
return $impl->getHeraldFieldValue($this->getObject());
|
||||
}
|
||||
|
||||
switch ($field_name) {
|
||||
case self::FIELD_APPLICATION_EMAIL:
|
||||
$value = array();
|
||||
// while there is only one match by implementation, we do set
|
||||
// comparisons on phids, so return an array with just the phid
|
||||
if ($this->getApplicationEmail()) {
|
||||
$value[] = $this->getApplicationEmail()->getPHID();
|
||||
}
|
||||
return $value;
|
||||
default:
|
||||
throw new Exception(pht("Unknown field '%s'!", $field_name));
|
||||
}
|
||||
throw new Exception(pht("Unknown field '%s'!", $field_name));
|
||||
}
|
||||
|
||||
abstract public function applyHeraldEffects(array $effects);
|
||||
|
@ -391,7 +383,6 @@ abstract class HeraldAdapter extends Phobject {
|
|||
self::FIELD_BRANCHES => pht('Commit\'s branches'),
|
||||
self::FIELD_AUTHOR_RAW => pht('Raw author name'),
|
||||
self::FIELD_COMMITTER_RAW => pht('Raw committer name'),
|
||||
self::FIELD_APPLICATION_EMAIL => pht('Receiving email address'),
|
||||
self::FIELD_TASK_PRIORITY => pht('Task priority'),
|
||||
self::FIELD_TASK_STATUS => pht('Task status'),
|
||||
self::FIELD_PUSHER_IS_COMMITTER => pht('Pusher same as committer'),
|
||||
|
@ -481,13 +472,6 @@ abstract class HeraldAdapter extends Phobject {
|
|||
self::CONDITION_EXISTS,
|
||||
self::CONDITION_NOT_EXISTS,
|
||||
);
|
||||
case self::FIELD_APPLICATION_EMAIL:
|
||||
return array(
|
||||
self::CONDITION_INCLUDE_ANY,
|
||||
self::CONDITION_INCLUDE_NONE,
|
||||
self::CONDITION_EXISTS,
|
||||
self::CONDITION_NOT_EXISTS,
|
||||
);
|
||||
case self::FIELD_DIFF_FILE:
|
||||
case self::FIELD_BRANCHES:
|
||||
return array(
|
||||
|
@ -944,8 +928,6 @@ abstract class HeraldAdapter extends Phobject {
|
|||
return self::VALUE_PROJECT;
|
||||
case self::FIELD_REVIEWERS:
|
||||
return self::VALUE_USER_OR_PROJECT;
|
||||
case self::FIELD_APPLICATION_EMAIL:
|
||||
return self::VALUE_APPLICATION_EMAIL;
|
||||
default:
|
||||
return self::VALUE_USER;
|
||||
}
|
||||
|
|
|
@ -21,6 +21,10 @@ final class HeraldManiphestTaskAdapter extends HeraldAdapter {
|
|||
$this->task = $this->newObject();
|
||||
}
|
||||
|
||||
public function supportsApplicationEmail() {
|
||||
return true;
|
||||
}
|
||||
|
||||
public function getRepetitionOptions() {
|
||||
return array(
|
||||
HeraldRepetitionPolicyConfig::EVERY,
|
||||
|
@ -72,7 +76,6 @@ final class HeraldManiphestTaskAdapter extends HeraldAdapter {
|
|||
self::FIELD_ASSIGNEE,
|
||||
self::FIELD_TASK_PRIORITY,
|
||||
self::FIELD_TASK_STATUS,
|
||||
self::FIELD_APPLICATION_EMAIL,
|
||||
),
|
||||
parent::getFields());
|
||||
}
|
||||
|
|
|
@ -0,0 +1,41 @@
|
|||
<?php
|
||||
|
||||
final class PhabricatorMetaMTAApplicationEmailHeraldField
|
||||
extends HeraldField {
|
||||
|
||||
const FIELDCONST = 'application-email';
|
||||
|
||||
public function getHeraldFieldName() {
|
||||
return pht('Receiving email address');
|
||||
}
|
||||
|
||||
public function supportsObject($object) {
|
||||
return $this->getAdapter()->supportsApplicationEmail();
|
||||
}
|
||||
|
||||
public function getHeraldFieldValue($object) {
|
||||
$phids = array();
|
||||
|
||||
$email = $this->getAdapter()->getApplicationEmail();
|
||||
if ($email) {
|
||||
$phids[] = $email;
|
||||
}
|
||||
|
||||
return $phids;
|
||||
}
|
||||
|
||||
protected function getHeraldFieldStandardConditions() {
|
||||
return self::STANDARD_LIST;
|
||||
}
|
||||
|
||||
public function getHeraldFieldValueType($condition) {
|
||||
switch ($condition) {
|
||||
case HeraldAdapter::CONDITION_EXISTS:
|
||||
case HeraldAdapter::CONDITION_NOT_EXISTS:
|
||||
return HeraldAdapter::VALUE_NONE;
|
||||
default:
|
||||
return HeraldAdapter::VALUE_APPLICATION_EMAIL;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in a new issue