Page MenuHomestyx hydra

No OneTemporary

diff --git a/src/applications/transactions/bulk/type/BulkTokenizerParameterType.php b/src/applications/transactions/bulk/type/BulkTokenizerParameterType.php
index 0edc46c664..a48f8877d5 100644
--- a/src/applications/transactions/bulk/type/BulkTokenizerParameterType.php
+++ b/src/applications/transactions/bulk/type/BulkTokenizerParameterType.php
@@ -1,40 +1,39 @@
<?php
final class BulkTokenizerParameterType
extends BulkParameterType {
private $datasource;
public function setDatasource(PhabricatorTypeaheadDatasource $datasource) {
$this->datasource = $datasource;
return $this;
}
public function getDatasource() {
return $this->datasource;
}
public function getPHUIXControlType() {
return 'tokenizer';
}
public function getPHUIXControlSpecification() {
$template = new AphrontTokenizerTemplateView();
$template_markup = $template->render();
$datasource = $this->getDatasource();
- $limit = null;
return array(
'markup' => (string)hsprintf('%s', $template_markup),
'config' => array(
'src' => $datasource->getDatasourceURI(),
'browseURI' => $datasource->getBrowseURI(),
'placeholder' => $datasource->getPlaceholderText(),
- 'limit' => $limit,
+ 'limit' => $datasource->getLimit(),
),
'value' => null,
);
}
}
diff --git a/src/applications/transactions/editfield/PhabricatorTokenizerEditField.php b/src/applications/transactions/editfield/PhabricatorTokenizerEditField.php
index d657213456..ba7514085d 100644
--- a/src/applications/transactions/editfield/PhabricatorTokenizerEditField.php
+++ b/src/applications/transactions/editfield/PhabricatorTokenizerEditField.php
@@ -1,67 +1,71 @@
<?php
abstract class PhabricatorTokenizerEditField
extends PhabricatorPHIDListEditField {
abstract protected function newDatasource();
protected function newControl() {
$control = id(new AphrontFormTokenizerControl())
->setDatasource($this->newDatasource());
$initial_value = $this->getInitialValue();
if ($initial_value !== null) {
$control->setInitialValue($initial_value);
}
if ($this->getIsSingleValue()) {
$control->setLimit(1);
}
return $control;
}
protected function getInitialValueFromSubmit(AphrontRequest $request, $key) {
return $request->getArr($key.'.initial');
}
protected function newEditType() {
$type = parent::newEditType();
$datasource = $this->newDatasource()
->setViewer($this->getViewer());
$type->setDatasource($datasource);
return $type;
}
protected function newCommentAction() {
$viewer = $this->getViewer();
$datasource = $this->newDatasource()
->setViewer($viewer);
$action = id(new PhabricatorEditEngineTokenizerCommentAction())
->setDatasource($datasource);
if ($this->getIsSingleValue()) {
$action->setLimit(1);
}
$initial_value = $this->getInitialValue();
if ($initial_value !== null) {
$action->setInitialValue($initial_value);
}
return $action;
}
protected function newBulkParameterType() {
$datasource = $this->newDatasource()
->setViewer($this->getViewer());
+ if ($this->getIsSingleValue()) {
+ $datasource->setLimit(1);
+ }
+
return id(new BulkTokenizerParameterType())
->setDatasource($datasource);
}
}
diff --git a/src/infrastructure/customfield/standard/PhabricatorStandardCustomFieldTokenizer.php b/src/infrastructure/customfield/standard/PhabricatorStandardCustomFieldTokenizer.php
index 65c112c684..cdb54fb7e9 100644
--- a/src/infrastructure/customfield/standard/PhabricatorStandardCustomFieldTokenizer.php
+++ b/src/infrastructure/customfield/standard/PhabricatorStandardCustomFieldTokenizer.php
@@ -1,118 +1,123 @@
<?php
abstract class PhabricatorStandardCustomFieldTokenizer
extends PhabricatorStandardCustomFieldPHIDs {
abstract public function getDatasource();
public function renderEditControl(array $handles) {
$value = $this->getFieldValue();
$control = id(new AphrontFormTokenizerControl())
->setUser($this->getViewer())
->setLabel($this->getFieldName())
->setName($this->getFieldKey())
->setDatasource($this->getDatasource())
->setCaption($this->getCaption())
->setError($this->getFieldError())
->setValue(nonempty($value, array()));
$limit = $this->getFieldConfigValue('limit');
if ($limit) {
$control->setLimit($limit);
}
return $control;
}
public function appendToApplicationSearchForm(
PhabricatorApplicationSearchEngine $engine,
AphrontFormView $form,
$value) {
$control = id(new AphrontFormTokenizerControl())
->setLabel($this->getFieldName())
->setName($this->getFieldKey())
->setDatasource($this->getDatasource())
->setValue(nonempty($value, array()));
$form->appendControl($control);
}
public function getHeraldFieldValueType($condition) {
return id(new HeraldTokenizerFieldValue())
->setKey('custom.'.$this->getFieldKey())
->setDatasource($this->getDatasource());
}
public function getHeraldFieldStandardType() {
return HeraldField::STANDARD_PHID_LIST;
}
public function getHeraldDatasource() {
return $this->getDatasource();
}
protected function getHTTPParameterType() {
return new AphrontPHIDListHTTPParameterType();
}
protected function newConduitSearchParameterType() {
return new ConduitPHIDListParameterType();
}
protected function newConduitEditParameterType() {
return new ConduitPHIDListParameterType();
}
protected function newBulkParameterType() {
$datasource = $this->getDatasource();
+ $limit = $this->getFieldConfigValue('limit');
+ if ($limit) {
+ $datasource->setLimit($limit);
+ }
+
return id(new BulkTokenizerParameterType())
->setDatasource($datasource);
}
public function shouldAppearInHeraldActions() {
return true;
}
public function getHeraldActionName() {
return pht('Set "%s" to', $this->getFieldName());
}
public function getHeraldActionDescription($value) {
$list = $this->renderHeraldHandleList($value);
return pht('Set "%s" to: %s.', $this->getFieldName(), $list);
}
public function getHeraldActionEffectDescription($value) {
return $this->renderHeraldHandleList($value);
}
public function getHeraldActionStandardType() {
return HeraldAction::STANDARD_PHID_LIST;
}
public function getHeraldActionDatasource() {
$datasource = $this->getDatasource();
$limit = $this->getFieldConfigValue('limit');
if ($limit) {
$datasource->setLimit($limit);
}
return $datasource;
}
private function renderHeraldHandleList($value) {
if (!is_array($value)) {
return pht('(Invalid List)');
} else {
return $this->getViewer()
->renderHandleList($value)
->setAsInline(true)
->render();
}
}
}

File Metadata

Mime Type
text/x-diff
Expires
Tue, Apr 29, 1:46 AM (19 h, 40 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
108149
Default Alt Text
(7 KB)

Event Timeline