diff --git a/src/applications/project/conduit/ProjectConduitAPIMethod.php b/src/applications/project/conduit/ProjectConduitAPIMethod.php index fc400284f8..419adc2c36 100644 --- a/src/applications/project/conduit/ProjectConduitAPIMethod.php +++ b/src/applications/project/conduit/ProjectConduitAPIMethod.php @@ -1,43 +1,48 @@ buildProjectInfoDictionaries(array($project)); return idx($results, $project->getPHID()); } protected function buildProjectInfoDictionaries(array $projects) { assert_instances_of($projects, 'PhabricatorProject'); if (!$projects) { return array(); } $result = array(); foreach ($projects as $project) { $member_phids = $project->getMemberPHIDs(); $member_phids = array_values($member_phids); $project_slugs = $project->getSlugs(); $project_slugs = array_values(mpull($project_slugs, 'getSlug')); + $project_icon = PhabricatorProjectIcon::getAPIName($project->getIcon()); + $result[$project->getPHID()] = array( - 'id' => $project->getID(), - 'phid' => $project->getPHID(), - 'name' => $project->getName(), - 'members' => $member_phids, - 'slugs' => $project_slugs, - 'dateCreated' => $project->getDateCreated(), - 'dateModified' => $project->getDateModified(), + 'id' => $project->getID(), + 'phid' => $project->getPHID(), + 'name' => $project->getName(), + 'profileImagePHID' => $project->getProfileImagePHID(), + 'icon' => $project_icon, + 'color' => $project->getColor(), + 'members' => $member_phids, + 'slugs' => $project_slugs, + 'dateCreated' => $project->getDateCreated(), + 'dateModified' => $project->getDateModified(), ); } return $result; } } diff --git a/src/applications/project/icon/PhabricatorProjectIcon.php b/src/applications/project/icon/PhabricatorProjectIcon.php index 7ed9d1c535..ae6efa9b6e 100644 --- a/src/applications/project/icon/PhabricatorProjectIcon.php +++ b/src/applications/project/icon/PhabricatorProjectIcon.php @@ -1,55 +1,59 @@ pht('Briefcase'), 'fa-tags' => pht('Tag'), 'fa-folder' => pht('Folder'), 'fa-users' => pht('Team'), 'fa-bug' => pht('Bug'), 'fa-trash-o' => pht('Garbage'), 'fa-calendar' => pht('Deadline'), 'fa-flag-checkered' => pht('Goal'), 'fa-envelope' => pht('Communication'), 'fa-truck' => pht('Release'), 'fa-lock' => pht('Policy'), 'fa-umbrella' => pht('An Umbrella'), 'fa-cloud' => pht('The Cloud'), 'fa-building' => pht('Company'), 'fa-credit-card' => pht('Accounting'), 'fa-flask' => pht('Experimental'), ); } public static function getColorMap() { $shades = PHUITagView::getShadeMap(); $shades = array_select_keys( $shades, array(PhabricatorProject::DEFAULT_COLOR)) + $shades; unset($shades[PHUITagView::COLOR_DISABLED]); return $shades; } public static function getLabel($key) { $map = self::getIconMap(); return $map[$key]; } + public static function getAPIName($key) { + return substr($key, 3); + } + public static function renderIconForChooser($icon) { $project_icons = PhabricatorProjectIcon::getIconMap(); return phutil_tag( 'span', array(), array( id(new PHUIIconView())->setIconFont($icon), ' ', idx($project_icons, $icon, pht('Unknown Icon')), )); } }