diff --git a/resources/celerity/map.php b/resources/celerity/map.php --- a/resources/celerity/map.php +++ b/resources/celerity/map.php @@ -380,7 +380,7 @@ 'rsrc/js/application/files/behavior-icon-composer.js' => '8ef9ab58', 'rsrc/js/application/files/behavior-launch-icon-composer.js' => '48086888', 'rsrc/js/application/harbormaster/behavior-reorder-steps.js' => '957a7fde', - 'rsrc/js/application/herald/HeraldRuleEditor.js' => '4f31d692', + 'rsrc/js/application/herald/HeraldRuleEditor.js' => '4173dbd8', 'rsrc/js/application/herald/PathTypeahead.js' => 'f7fc67ec', 'rsrc/js/application/herald/herald-rule-editor.js' => '7ebaeed3', 'rsrc/js/application/maniphest/behavior-batch-editor.js' => '391457d7', @@ -523,7 +523,7 @@ 'font-source-sans-pro' => '225851dd', 'global-drag-and-drop-css' => '697324ad', 'herald-css' => '59d48f01', - 'herald-rule-editor' => '4f31d692', + 'herald-rule-editor' => '4173dbd8', 'herald-test-css' => '2b7d0f54', 'inline-comment-summary-css' => '14a91639', 'javelin-aphlict' => '493665ee', @@ -1088,6 +1088,19 @@ 0 => 'javelin-install', 1 => 'javelin-event', ), + '4173dbd8' => + array( + 0 => 'multirow-row-manager', + 1 => 'javelin-install', + 2 => 'javelin-typeahead', + 3 => 'javelin-util', + 4 => 'javelin-dom', + 5 => 'javelin-tokenizer', + 6 => 'javelin-typeahead-preloaded-source', + 7 => 'javelin-stratcom', + 8 => 'javelin-json', + 9 => 'phabricator-prefab', + ), '441f2137' => array( 0 => 'javelin-behavior', @@ -1121,19 +1134,6 @@ 1 => 'javelin-dom', 2 => 'javelin-reactor-dom', ), - '4f31d692' => - array( - 0 => 'multirow-row-manager', - 1 => 'javelin-install', - 2 => 'javelin-typeahead', - 3 => 'javelin-util', - 4 => 'javelin-dom', - 5 => 'javelin-tokenizer', - 6 => 'javelin-typeahead-preloaded-source', - 7 => 'javelin-stratcom', - 8 => 'javelin-json', - 9 => 'phabricator-prefab', - ), '4f344388' => array( 0 => 'javelin-install', 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 @@ -40,6 +40,7 @@ const FIELD_COMMITTER_RAW = 'committer-raw'; const FIELD_IS_NEW_OBJECT = 'new-object'; const FIELD_TASK_PRIORITY = 'taskpriority'; + const FIELD_ARCANIST_PROJECT = 'arcanist-project'; const CONDITION_CONTAINS = 'contains'; const CONDITION_NOT_CONTAINS = '!contains'; @@ -91,6 +92,7 @@ const VALUE_USER_OR_PROJECT = 'userorproject'; const VALUE_BUILD_PLAN = 'buildplan'; const VALUE_TASK_PRIORITY = 'taskpriority'; + const VALUE_ARCANIST_PROJECT = 'arcanistprojects'; private $contentSource; private $isNewObject; @@ -237,6 +239,7 @@ self::FIELD_COMMITTER_RAW => pht('Raw committer name'), self::FIELD_IS_NEW_OBJECT => pht('Is newly created?'), self::FIELD_TASK_PRIORITY => pht('Task priority'), + self::FIELD_ARCANIST_PROJECT => pht('Arcanist Project'), ); } @@ -289,6 +292,7 @@ case self::FIELD_REVIEWER: case self::FIELD_PUSHER: case self::FIELD_TASK_PRIORITY: + case self::FIELD_ARCANIST_PROJECT: return array( self::CONDITION_IS_ANY, self::CONDITION_IS_NOT_ANY, @@ -725,6 +729,8 @@ return self::VALUE_REPOSITORY; case self::FIELD_TASK_PRIORITY: return self::VALUE_TASK_PRIORITY; + case self::FIELD_ARCANIST_PROJECT: + return self::VALUE_ARCANIST_PROJECT; default: return self::VALUE_USER; } diff --git a/src/applications/herald/adapter/HeraldDifferentialRevisionAdapter.php b/src/applications/herald/adapter/HeraldDifferentialRevisionAdapter.php --- a/src/applications/herald/adapter/HeraldDifferentialRevisionAdapter.php +++ b/src/applications/herald/adapter/HeraldDifferentialRevisionAdapter.php @@ -76,6 +76,7 @@ self::FIELD_AFFECTED_PACKAGE, self::FIELD_AFFECTED_PACKAGE_OWNER, self::FIELD_IS_NEW_OBJECT, + self::FIELD_ARCANIST_PROJECT, ), parent::getFields()); } @@ -373,6 +374,8 @@ $packages = $this->loadAffectedPackages(); return PhabricatorOwnersOwner::loadAffiliatedUserPHIDs( mpull($packages, 'getID')); + case self::FIELD_ARCANIST_PROJECT: + return $this->revision->getArcanistProjectPHID(); } return parent::getHeraldField($field); diff --git a/src/applications/herald/controller/HeraldRuleController.php b/src/applications/herald/controller/HeraldRuleController.php --- a/src/applications/herald/controller/HeraldRuleController.php +++ b/src/applications/herald/controller/HeraldRuleController.php @@ -593,6 +593,7 @@ 'userorproject' => '/typeahead/common/accountsorprojects/', 'buildplan' => '/typeahead/common/buildplans/', 'taskpriority' => '/typeahead/common/taskpriority/', + 'arcanistprojects' => '/typeahead/common/arcanistprojects/', ), 'markup' => $template, ); diff --git a/src/applications/herald/storage/HeraldRule.php b/src/applications/herald/storage/HeraldRule.php --- a/src/applications/herald/storage/HeraldRule.php +++ b/src/applications/herald/storage/HeraldRule.php @@ -17,7 +17,7 @@ protected $isDisabled = 0; protected $triggerObjectPHID; - protected $configVersion = 31; + protected $configVersion = 32; // phids for which this rule has been applied private $ruleApplied = self::ATTACHABLE; diff --git a/webroot/rsrc/js/application/herald/HeraldRuleEditor.js b/webroot/rsrc/js/application/herald/HeraldRuleEditor.js --- a/webroot/rsrc/js/application/herald/HeraldRuleEditor.js +++ b/webroot/rsrc/js/application/herald/HeraldRuleEditor.js @@ -223,6 +223,7 @@ case 'userorproject': case 'buildplan': case 'taskpriority': + case 'arcanistprojects': var tokenizer = this._newTokenizer(type); input = tokenizer[0]; get_fn = tokenizer[1];