1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-12-19 12:00:55 +01:00

Allow pastes to be activated/archived via Conduit

Summary: Ref T9964. Add a `setIsConduitOnly()` method so we can mark a field as API-only.

Test Plan:
  - Created and edited pastes via web UI (no status field).
  - Adjusted status via web UI action.
  - Adjusted status via Conduit API.

Reviewers: chad

Reviewed By: chad

Maniphest Tasks: T9964

Differential Revision: https://secure.phabricator.com/D14788
This commit is contained in:
epriestley 2015-12-15 06:23:13 -08:00
parent ab748e522a
commit a8b402aa14
2 changed files with 39 additions and 1 deletions

View file

@ -83,6 +83,14 @@ final class PhabricatorPasteEditEngine
->setMonospaced(true)
->setHeight(AphrontFormTextAreaControl::HEIGHT_VERY_TALL)
->setValue($object->getRawContent()),
id(new PhabricatorSelectEditField())
->setKey('status')
->setLabel(pht('Status'))
->setDescription(pht('Active or archive the paste.'))
->setTransactionType(PhabricatorPasteTransaction::TYPE_STATUS)
->setIsConduitOnly(true)
->setValue($object->getStatus())
->setOptions(PhabricatorPaste::getStatusNameMap()),
);
}

View file

@ -29,6 +29,7 @@ abstract class PhabricatorEditField extends Phobject {
private $isDefaultable = true;
private $isLockable = true;
private $isCopyable = false;
private $isConduitOnly = false;
public function setKey($key) {
$this->key = $key;
@ -111,6 +112,15 @@ abstract class PhabricatorEditField extends Phobject {
return $this->isReorderable;
}
public function setIsConduitOnly($is_conduit_only) {
$this->isConduitOnly = $is_conduit_only;
return $this;
}
public function getIsConduitOnly() {
return $this->isConduitOnly;
}
public function setIsEditDefaults($is_edit_defaults) {
$this->isEditDefaults = $is_edit_defaults;
return $this;
@ -197,6 +207,10 @@ abstract class PhabricatorEditField extends Phobject {
}
protected function buildControl() {
if ($this->getIsConduitOnly()) {
return null;
}
$control = $this->newControl();
if ($control === null) {
return null;
@ -466,6 +480,10 @@ abstract class PhabricatorEditField extends Phobject {
}
final public function getHTTPParameterType() {
if ($this->getIsConduitOnly()) {
return null;
}
$type = $this->newHTTPParameterType();
if ($type) {
@ -492,8 +510,16 @@ abstract class PhabricatorEditField extends Phobject {
}
protected function newEditType() {
// TODO: This could be a little cleaner.
$http_type = $this->getHTTPParameterType();
if ($http_type) {
$value_type = $http_type->getTypeName();
} else {
$value_type = 'wild';
}
return id(new PhabricatorSimpleEditType())
->setValueType($this->getHTTPParameterType()->getTypeName());
->setValueType($value_type);
}
protected function getEditType() {
@ -523,6 +549,10 @@ abstract class PhabricatorEditField extends Phobject {
}
public function getWebEditTypes() {
if ($this->getIsConduitOnly()) {
return array();
}
$edit_type = $this->getEditType();
if ($edit_type === null) {