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 @@ +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 )----------------------------------------------------- */