Changeset View
Changeset View
Standalone View
Standalone View
src/infrastructure/customfield/field/PhabricatorCustomField.php
| Show First 20 Lines • Show All 99 Lines • ▼ Show 20 Lines | public static function getObjectField( | ||||
| return idx($fields, $field_key); | return idx($fields, $field_key); | ||||
| } | } | ||||
| /** | /** | ||||
| * @task apps | * @task apps | ||||
| */ | */ | ||||
| public static function buildFieldList($base_class, array $spec, $object) { | public static function buildFieldList( | ||||
| $base_class, | |||||
| array $spec, | |||||
| $object, | |||||
| array $options = array()) { | |||||
| PhutilTypeSpec::checkMap( | |||||
| $options, | |||||
| array( | |||||
| 'withDisabled' => 'optional bool', | |||||
| )); | |||||
| $field_objects = id(new PhutilSymbolLoader()) | $field_objects = id(new PhutilSymbolLoader()) | ||||
| ->setAncestorClass($base_class) | ->setAncestorClass($base_class) | ||||
| ->loadObjects(); | ->loadObjects(); | ||||
| $fields = array(); | $fields = array(); | ||||
| $from_map = array(); | $from_map = array(); | ||||
| foreach ($field_objects as $field_object) { | foreach ($field_objects as $field_object) { | ||||
| $current_class = get_class($field_object); | $current_class = get_class($field_object); | ||||
| Show All 13 Lines | public static function buildFieldList( | ||||
| foreach ($fields as $key => $field) { | foreach ($fields as $key => $field) { | ||||
| if (!$field->isFieldEnabled()) { | if (!$field->isFieldEnabled()) { | ||||
| unset($fields[$key]); | unset($fields[$key]); | ||||
| } | } | ||||
| } | } | ||||
| $fields = array_select_keys($fields, array_keys($spec)) + $fields; | $fields = array_select_keys($fields, array_keys($spec)) + $fields; | ||||
| foreach ($spec as $key => $config) { | if (empty($options['withDisabled'])) { | ||||
| if (empty($fields[$key])) { | foreach ($fields as $key => $field) { | ||||
| continue; | $config = idx($spec, $key, array()) + array( | ||||
| } | 'disabled' => $field->shouldDisableByDefault(), | ||||
| ); | |||||
| if (!empty($config['disabled'])) { | if (!empty($config['disabled'])) { | ||||
| if ($fields[$key]->canDisableField()) { | if ($field->canDisableField()) { | ||||
| unset($fields[$key]); | unset($fields[$key]); | ||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| } | |||||
| return $fields; | return $fields; | ||||
| } | } | ||||
| /* -( Core Properties and Field Identity )--------------------------------- */ | /* -( Core Properties and Field Identity )--------------------------------- */ | ||||
| ▲ Show 20 Lines • Show All 1,210 Lines • Show Last 20 Lines | |||||