Page MenuHomePhabricator

D19641.diff
No OneTemporary

D19641.diff

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
@@ -313,6 +313,7 @@
'ConduitCallTestCase' => 'applications/conduit/call/__tests__/ConduitCallTestCase.php',
'ConduitColumnsParameterType' => 'applications/conduit/parametertype/ConduitColumnsParameterType.php',
'ConduitConnectConduitAPIMethod' => 'applications/conduit/method/ConduitConnectConduitAPIMethod.php',
+ 'ConduitConstantDescription' => 'applications/conduit/data/ConduitConstantDescription.php',
'ConduitEpochParameterType' => 'applications/conduit/parametertype/ConduitEpochParameterType.php',
'ConduitException' => 'applications/conduit/protocol/exception/ConduitException.php',
'ConduitGetCapabilitiesConduitAPIMethod' => 'applications/conduit/method/ConduitGetCapabilitiesConduitAPIMethod.php',
@@ -5628,6 +5629,7 @@
'ConduitCallTestCase' => 'PhabricatorTestCase',
'ConduitColumnsParameterType' => 'ConduitParameterType',
'ConduitConnectConduitAPIMethod' => 'ConduitAPIMethod',
+ 'ConduitConstantDescription' => 'Phobject',
'ConduitEpochParameterType' => 'ConduitParameterType',
'ConduitException' => 'Exception',
'ConduitGetCapabilitiesConduitAPIMethod' => 'ConduitAPIMethod',
diff --git a/src/applications/conduit/data/ConduitConstantDescription.php b/src/applications/conduit/data/ConduitConstantDescription.php
new file mode 100644
--- /dev/null
+++ b/src/applications/conduit/data/ConduitConstantDescription.php
@@ -0,0 +1,26 @@
+<?php
+
+final class ConduitConstantDescription extends Phobject {
+
+ private $key;
+ private $value;
+
+ public function setKey($key) {
+ $this->key = $key;
+ return $this;
+ }
+
+ public function getKey() {
+ return $this->key;
+ }
+
+ public function setValue($value) {
+ $this->value = $value;
+ return $this;
+ }
+
+ public function getValue() {
+ return $this->value;
+ }
+
+}
diff --git a/src/applications/search/engine/PhabricatorSearchEngineAPIMethod.php b/src/applications/search/engine/PhabricatorSearchEngineAPIMethod.php
--- a/src/applications/search/engine/PhabricatorSearchEngineAPIMethod.php
+++ b/src/applications/search/engine/PhabricatorSearchEngineAPIMethod.php
@@ -190,15 +190,26 @@
$fields,
array('ids', 'phids')) + $fields;
+ $constant_lists = array();
+
$rows = array();
foreach ($fields as $field) {
$key = $field->getConduitKey();
$label = $field->getLabel();
+ $constants = $field->newConduitConstants();
+
$type_object = $field->getConduitParameterType();
if ($type_object) {
$type = $type_object->getTypeName();
$description = $field->getDescription();
+ if ($constants) {
+ $description = array(
+ $description,
+ ' ',
+ phutil_tag('em', array(), pht('(See table below.)')),
+ );
+ }
} else {
$type = null;
$description = phutil_tag('em', array(), pht('Not supported.'));
@@ -210,6 +221,35 @@
$type,
$description,
);
+
+ if ($constants) {
+ $constant_lists[] = $this->buildRemarkup(
+ pht(
+ 'Constants supported by the `%s` constraint:',
+ 'statuses'));
+
+ $constants_rows = array();
+ foreach ($constants as $constant) {
+ $constants_rows[] = array(
+ $constant->getKey(),
+ $constant->getValue(),
+ );
+ }
+
+ $constants_table = id(new AphrontTableView($constants_rows))
+ ->setHeaders(
+ array(
+ pht('Key'),
+ pht('Value'),
+ ))
+ ->setColumnClasses(
+ array(
+ 'pre',
+ 'wide',
+ ));
+
+ $constant_lists[] = $constants_table;
+ }
}
$table = id(new AphrontTableView($rows))
@@ -233,7 +273,8 @@
->setCollapsed(true)
->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
->appendChild($this->buildRemarkup($info))
- ->appendChild($table);
+ ->appendChild($table)
+ ->appendChild($constant_lists);
}
private function buildOrderBox(
diff --git a/src/applications/search/field/PhabricatorSearchCheckboxesField.php b/src/applications/search/field/PhabricatorSearchCheckboxesField.php
--- a/src/applications/search/field/PhabricatorSearchCheckboxesField.php
+++ b/src/applications/search/field/PhabricatorSearchCheckboxesField.php
@@ -49,4 +49,16 @@
return new ConduitStringListParameterType();
}
+ public function newConduitConstants() {
+ $list = array();
+
+ foreach ($this->getOptions() as $key => $option) {
+ $list[] = id(new ConduitConstantDescription())
+ ->setKey($key)
+ ->setValue($option);
+ }
+
+ return $list;
+ }
+
}
diff --git a/src/applications/search/field/PhabricatorSearchField.php b/src/applications/search/field/PhabricatorSearchField.php
--- a/src/applications/search/field/PhabricatorSearchField.php
+++ b/src/applications/search/field/PhabricatorSearchField.php
@@ -382,6 +382,10 @@
return $this->enableForConduit;
}
+ public function newConduitConstants() {
+ return array();
+ }
+
/* -( Utility Methods )----------------------------------------------------- */

File Metadata

Mime Type
text/plain
Expires
Wed, Mar 26, 12:15 AM (1 d, 23 h ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
7448034
Default Alt Text
D19641.diff (5 KB)

Event Timeline