Page MenuHomePhabricator

D18877.diff
No OneTemporary

D18877.diff

diff --git a/src/infrastructure/customfield/editor/PhabricatorCustomFieldEditField.php b/src/infrastructure/customfield/editor/PhabricatorCustomFieldEditField.php
--- a/src/infrastructure/customfield/editor/PhabricatorCustomFieldEditField.php
+++ b/src/infrastructure/customfield/editor/PhabricatorCustomFieldEditField.php
@@ -6,6 +6,7 @@
private $customField;
private $httpParameterType;
private $conduitParameterType;
+ private $bulkParameterType;
public function setCustomField(PhabricatorCustomField $custom_field) {
$this->customField = $custom_field;
@@ -36,6 +37,16 @@
return $this->conduitParameterType;
}
+ public function setCustomFieldBulkParameterType(
+ BulkParameterType $type) {
+ $this->bulkParameterType = $type;
+ return $this;
+ }
+
+ public function getCustomFieldBulkParameterType() {
+ return $this->bulkParameterType;
+ }
+
protected function buildControl() {
if ($this->getIsConduitOnly()) {
return null;
@@ -51,15 +62,8 @@
}
protected function newEditType() {
- $type = id(new PhabricatorCustomFieldEditType())
+ return id(new PhabricatorCustomFieldEditType())
->setCustomField($this->getCustomField());
-
- $conduit_type = $this->newConduitParameterType();
- if ($conduit_type) {
- $type->setConduitParameterType($conduit_type);
- }
-
- return $type;
}
public function getValueForTransaction() {
@@ -116,6 +120,16 @@
return null;
}
+ protected function newBulkParameterType() {
+ $type = $this->getCustomFieldBulkParameterType();
+
+ if ($type) {
+ return clone $type;
+ }
+
+ return null;
+ }
+
public function getAllReadValueFromRequestKeys() {
$keys = array();
diff --git a/src/infrastructure/customfield/field/PhabricatorCustomField.php b/src/infrastructure/customfield/field/PhabricatorCustomField.php
--- a/src/infrastructure/customfield/field/PhabricatorCustomField.php
+++ b/src/infrastructure/customfield/field/PhabricatorCustomField.php
@@ -1119,6 +1119,11 @@
$field->setCustomFieldConduitParameterType($conduit_type);
}
+ $bulk_type = $this->getBulkParameterType();
+ if ($bulk_type) {
+ $field->setCustomFieldBulkParameterType($bulk_type);
+ }
+
return $field;
}
@@ -1133,16 +1138,38 @@
$conduit_only = false;
}
+ $bulk_label = $this->getBulkEditLabel();
+
return $this->newEditField()
->setKey($this->getFieldKey())
->setEditTypeKey($this->getModernFieldKey())
->setLabel($this->getFieldName())
+ ->setBulkEditLabel($bulk_label)
->setDescription($this->getFieldDescription())
->setTransactionType($this->getApplicationTransactionType())
->setIsConduitOnly($conduit_only)
->setValue($this->getNewValueForApplicationTransactions());
}
+ protected function getBulkEditLabel() {
+ if ($this->proxy) {
+ return $this->proxy->getBulkEditLabel();
+ }
+
+ return pht('Set "%s" to', $this->getFieldName());
+ }
+
+ public function getBulkParameterType() {
+ return $this->newBulkParameterType();
+ }
+
+ protected function newBulkParameterType() {
+ if ($this->proxy) {
+ return $this->proxy->newBulkParameterType();
+ }
+ return null;
+ }
+
protected function getHTTPParameterType() {
if ($this->proxy) {
return $this->proxy->getHTTPParameterType();
diff --git a/src/infrastructure/customfield/standard/PhabricatorStandardCustomFieldTokenizer.php b/src/infrastructure/customfield/standard/PhabricatorStandardCustomFieldTokenizer.php
--- a/src/infrastructure/customfield/standard/PhabricatorStandardCustomFieldTokenizer.php
+++ b/src/infrastructure/customfield/standard/PhabricatorStandardCustomFieldTokenizer.php
@@ -65,6 +65,13 @@
return new ConduitPHIDListParameterType();
}
+ protected function newBulkParameterType() {
+ $datasource = $this->getDatasource();
+
+ return id(new BulkTokenizerParameterType())
+ ->setDatasource($datasource);
+ }
+
public function shouldAppearInHeraldActions() {
return true;
}

File Metadata

Mime Type
text/plain
Expires
Thu, Mar 20, 6:48 AM (2 d, 8 h ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
7229901
Default Alt Text
D18877.diff (3 KB)

Event Timeline