Page MenuHomestyx hydra

No OneTemporary

diff --git a/src/applications/config/type/PhabricatorSetConfigType.php b/src/applications/config/type/PhabricatorSetConfigType.php
index 805ae50468..553ee614b8 100644
--- a/src/applications/config/type/PhabricatorSetConfigType.php
+++ b/src/applications/config/type/PhabricatorSetConfigType.php
@@ -1,92 +1,92 @@
<?php
final class PhabricatorSetConfigType
extends PhabricatorTextConfigType {
const TYPEKEY = 'set';
protected function newControl(PhabricatorConfigOption $option) {
return id(new AphrontFormTextAreaControl())
->setCaption(pht('Separate values with newlines or commas.'));
}
protected function newCanonicalValue(
PhabricatorConfigOption $option,
$value) {
$value = preg_split('/[\n,]+/', $value);
foreach ($value as $k => $v) {
if (!strlen($v)) {
unset($value[$k]);
}
$value[$k] = trim($v);
}
return array_fill_keys($value, true);
}
public function newValueFromCommandLineValue(
PhabricatorConfigOption $option,
$value) {
try {
$value = phutil_json_decode($value);
} catch (Exception $ex) {
throw $this->newException(
pht(
'Option "%s" is of type "%s", but the value you provided is not a '.
'valid JSON list: when providing a set from the command line, '.
'specify it as a list of values in JSON. You may need to quote the '.
'value for your shell (for example: \'["a", "b", ...]\').',
$option->getKey(),
$this->getTypeKey()));
}
if ($value) {
- if (array_keys($value) !== range(0, count($value) - 1)) {
+ if (!phutil_is_natural_list($value)) {
throw $this->newException(
pht(
'Option "%s" is of type "%s", and should be specified on the '.
'command line as a JSON list of values. You may need to quote '.
'the value for your shell (for example: \'["a", "b", ...]\').',
$option->getKey(),
$this->getTypeKey()));
}
}
return array_fill_keys($value, true);
}
public function newDisplayValue(
PhabricatorConfigOption $option,
$value) {
return implode("\n", array_keys($value));
}
public function validateStoredValue(
PhabricatorConfigOption $option,
$value) {
if (!is_array($value)) {
throw $this->newException(
pht(
'Option "%s" is of type "%s", but the configured value is not '.
'a list.',
$option->getKey(),
$this->getTypeKey()));
}
foreach ($value as $k => $v) {
if ($v !== true) {
throw $this->newException(
pht(
'Option "%s" is of type "%s", but the value at index "%s" of the '.
'list is not "true".',
$option->getKey(),
$this->getTypeKey(),
$k));
}
}
}
}

File Metadata

Mime Type
text/x-diff
Expires
Fri, Mar 14, 9:26 AM (18 h, 16 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
71741
Default Alt Text
(2 KB)

Event Timeline