Changeset View
Changeset View
Standalone View
Standalone View
src/applications/settings/setting/PhabricatorSelectSetting.php
<?php | <?php | ||||
abstract class PhabricatorSelectSetting | abstract class PhabricatorSelectSetting | ||||
extends PhabricatorSetting { | extends PhabricatorSetting { | ||||
abstract protected function getSelectOptions(); | abstract protected function getSelectOptions(); | ||||
final protected function newCustomEditField($object) { | final protected function newCustomEditField($object) { | ||||
$setting_key = $this->getSettingKey(); | $setting_key = $this->getSettingKey(); | ||||
$default_value = $object->getDefaultValue($setting_key); | $default_value = $object->getDefaultValue($setting_key); | ||||
$options = $this->getSelectOptions(); | $options = $this->getSelectOptions(); | ||||
if ($this->canSetServerDefault()) { | |||||
if (isset($options[$default_value])) { | if (isset($options[$default_value])) { | ||||
$default_label = pht('Default (%s)', $options[$default_value]); | $default_label = pht('Default (%s)', $options[$default_value]); | ||||
} else { | } else { | ||||
$default_label = pht('Default (Unknown, "%s")', $default_value); | $default_label = pht('Default (Unknown, "%s")', $default_value); | ||||
} | } | ||||
if (empty($options[''])) { | if (empty($options[''])) { | ||||
$options = array( | $options = array( | ||||
'' => $default_label, | '' => $default_label, | ||||
) + $options; | ) + $options; | ||||
} | } | ||||
} | |||||
return $this->newEditField($object, new PhabricatorSelectEditField()) | return $this->newEditField($object, new PhabricatorSelectEditField()) | ||||
->setOptions($options); | ->setOptions($options); | ||||
} | } | ||||
public function assertValidValue($value) { | public function assertValidValue($value) { | ||||
// This is a slightly stricter check than the transaction check. It's | // This is a slightly stricter check than the transaction check. It's | ||||
// OK for empty string to go through transactions because it gets converted | // OK for empty string to go through transactions because it gets converted | ||||
Show All 35 Lines | abstract class PhabricatorSelectSetting | ||||
public function getTransactionNewValue($value) { | public function getTransactionNewValue($value) { | ||||
if (!strlen($value)) { | if (!strlen($value)) { | ||||
return null; | return null; | ||||
} | } | ||||
return (string)$value; | return (string)$value; | ||||
} | } | ||||
protected function canSetServerDefault() { | |||||
return true; | |||||
} | |||||
} | } |