deformat(pht(<< Icons and Images}. Configure a list of icon specifications. Each icon specification should be a dictionary, which may contain these keys: - `key` //Required string.// Internal key identifying the icon. - `name` //Required string.// Human-readable icon name. - `icon` //Required string.// Specifies which actual icon image to use. - `image` //Optional string.// Selects a default image. Select an image from `resources/builtins/projects/`. - `default` //Optional bool.// Selects a default icon. Exactly one icon must be selected as the default. - `disabled` //Optional bool.// If true, this icon will no longer be available for selection when creating or editing projects. - `special` //Optional string.// Marks an icon as a special icon: - `milestone` This is the icon for milestones. Exactly one icon must be selected as the milestone icon. You can look at the default configuration below for an example of a valid configuration. EOTEXT )); $default_colors = PhabricatorProjectIconSet::getDefaultColorMap(); $colors_type = 'project.colors'; $colors_description = $this->deformat(pht(<< true, ); foreach ($default_fields as $key => $enabled) { $default_fields[$key] = array( 'disabled' => !$enabled, ); } $custom_field_type = 'custom:PhabricatorCustomFieldConfigOptionType'; $subtype_type = 'projects.subtypes'; $subtype_default_key = PhabricatorEditEngineSubtype::SUBTYPE_DEFAULT; $subtype_example = array( array( 'key' => $subtype_default_key, 'name' => pht('Project'), ), array( 'key' => 'team', 'name' => pht('Team'), ), ); $subtype_example = id(new PhutilJSON())->encodeAsList($subtype_example); $subtype_default = array( array( 'key' => $subtype_default_key, 'name' => pht('Project'), ), ); $fields_description = $this->deformat(pht(<<deformat(pht(<<newOption('projects.custom-field-definitions', 'wild', array()) ->setSummary(pht('Custom Projects fields.')) ->setDescription($fields_description) ->addExample( '{"mycompany:motto": {"name": "Project Motto", '. '"type": "text"}}', pht('Valid Setting')), $this->newOption('projects.fields', $custom_field_type, $default_fields) ->setCustomData(id(new PhabricatorProject())->getCustomFieldBaseClass()) ->setDescription(pht('Select and reorder project fields.')), $this->newOption('projects.icons', $icons_type, $default_icons) ->setSummary(pht('Adjust project icons.')) ->setDescription($icons_description), $this->newOption('projects.colors', $colors_type, $default_colors) ->setSummary(pht('Adjust project colors.')) ->setDescription($colors_description), $this->newOption('projects.subtypes', $subtype_type, $subtype_default) ->setSummary(pht('Define project subtypes.')) ->setDescription($subtype_description) ->addExample($subtype_example, pht('Simple Subtypes')), ); } }