Differential D15152 Diff 36584 src/applications/project/controller/PhabricatorProjectProfileController.php
Changeset View
Changeset View
Standalone View
Standalone View
src/applications/project/controller/PhabricatorProjectProfileController.php
| Show All 39 Lines | if ($can_edit) { | ||||
| $header->setImageEditURL($this->getApplicationURI("picture/{$id}/")); | $header->setImageEditURL($this->getApplicationURI("picture/{$id}/")); | ||||
| } | } | ||||
| $properties = $this->buildPropertyListView($project); | $properties = $this->buildPropertyListView($project); | ||||
| $watch_action = $this->renderWatchAction($project); | $watch_action = $this->renderWatchAction($project); | ||||
| $header->addActionLink($watch_action); | $header->addActionLink($watch_action); | ||||
| $milestone_list = $this->buildMilestoneList($project); | |||||
| $subproject_list = $this->buildSubprojectList($project); | |||||
| $member_list = id(new PhabricatorProjectMemberListView()) | $member_list = id(new PhabricatorProjectMemberListView()) | ||||
| ->setUser($viewer) | ->setUser($viewer) | ||||
| ->setProject($project) | ->setProject($project) | ||||
| ->setLimit(5) | ->setLimit(5) | ||||
| ->setBackground(PHUIBoxView::GREY) | ->setBackground(PHUIBoxView::GREY) | ||||
| ->setUserPHIDs($project->getMemberPHIDs()); | ->setUserPHIDs($project->getMemberPHIDs()); | ||||
| $watcher_list = id(new PhabricatorProjectWatcherListView()) | $watcher_list = id(new PhabricatorProjectWatcherListView()) | ||||
| Show All 21 Lines | public function handleRequest(AphrontRequest $request) { | ||||
| $columns = id(new PHUITwoColumnView()) | $columns = id(new PHUITwoColumnView()) | ||||
| ->setMainColumn( | ->setMainColumn( | ||||
| array( | array( | ||||
| $properties, | $properties, | ||||
| $feed, | $feed, | ||||
| )) | )) | ||||
| ->setSideColumn( | ->setSideColumn( | ||||
| array( | array( | ||||
| $milestone_list, | |||||
| $subproject_list, | |||||
| $member_list, | $member_list, | ||||
| $watcher_list, | $watcher_list, | ||||
| )); | )); | ||||
| $crumbs = $this->buildApplicationCrumbs(); | $crumbs = $this->buildApplicationCrumbs(); | ||||
| $crumbs->setBorder(true); | $crumbs->setBorder(true); | ||||
| require_celerity_resource('project-view-css'); | require_celerity_resource('project-view-css'); | ||||
| ▲ Show 20 Lines • Show All 78 Lines • ▼ Show 20 Lines | private function renderWatchAction(PhabricatorProject $project) { | ||||
| return id(new PHUIButtonView()) | return id(new PHUIButtonView()) | ||||
| ->setTag('a') | ->setTag('a') | ||||
| ->setWorkflow(true) | ->setWorkflow(true) | ||||
| ->setIcon($watch_icon) | ->setIcon($watch_icon) | ||||
| ->setText($watch_text) | ->setText($watch_text) | ||||
| ->setHref($watch_href); | ->setHref($watch_href); | ||||
| } | } | ||||
| private function buildMilestoneList(PhabricatorProject $project) { | |||||
| if (!$project->getHasMilestones()) { | |||||
| return null; | |||||
| } | |||||
| $viewer = $this->getViewer(); | |||||
| $id = $project->getID(); | |||||
| $milestones = id(new PhabricatorProjectQuery()) | |||||
| ->setViewer($viewer) | |||||
| ->withParentProjectPHIDs(array($project->getPHID())) | |||||
| ->needImages(true) | |||||
| ->withIsMilestone(true) | |||||
| ->setOrder('newest') | |||||
| ->execute(); | |||||
| if (!$milestones) { | |||||
| return null; | |||||
| } | |||||
| $milestone_list = id(new PhabricatorProjectListView()) | |||||
| ->setUser($viewer) | |||||
| ->setProjects($milestones) | |||||
| ->renderList(); | |||||
| $view_all = id(new PHUIButtonView()) | |||||
| ->setTag('a') | |||||
| ->setIcon( | |||||
| id(new PHUIIconView()) | |||||
| ->setIcon('fa-list-ul')) | |||||
| ->setText(pht('View All')) | |||||
| ->setHref("/project/subprojects/{$id}/"); | |||||
| $header = id(new PHUIHeaderView()) | |||||
| ->setHeader(pht('Milestones')) | |||||
| ->addActionLink($view_all); | |||||
| return id(new PHUIObjectBoxView()) | |||||
| ->setHeader($header) | |||||
| ->setBackground(PHUIBoxView::GREY) | |||||
| ->setObjectList($milestone_list); | |||||
| } | |||||
| private function buildSubprojectList(PhabricatorProject $project) { | |||||
| if (!$project->getHasSubprojects()) { | |||||
| return null; | |||||
| } | |||||
| $viewer = $this->getViewer(); | |||||
| $id = $project->getID(); | |||||
| $limit = 25; | |||||
| $subprojects = id(new PhabricatorProjectQuery()) | |||||
| ->setViewer($viewer) | |||||
| ->withParentProjectPHIDs(array($project->getPHID())) | |||||
| ->needImages(true) | |||||
| ->withIsMilestone(false) | |||||
| ->setLimit($limit) | |||||
| ->execute(); | |||||
| if (!$subprojects) { | |||||
| return null; | |||||
| } | |||||
| $subproject_list = id(new PhabricatorProjectListView()) | |||||
| ->setUser($viewer) | |||||
| ->setProjects($subprojects) | |||||
| ->renderList(); | |||||
| $view_all = id(new PHUIButtonView()) | |||||
| ->setTag('a') | |||||
| ->setIcon( | |||||
| id(new PHUIIconView()) | |||||
| ->setIcon('fa-list-ul')) | |||||
| ->setText(pht('View All')) | |||||
| ->setHref("/project/subprojects/{$id}/"); | |||||
| $header = id(new PHUIHeaderView()) | |||||
| ->setHeader(pht('Subprojects')) | |||||
| ->addActionLink($view_all); | |||||
| return id(new PHUIObjectBoxView()) | |||||
| ->setHeader($header) | |||||
| ->setBackground(PHUIBoxView::GREY) | |||||
| ->setObjectList($subproject_list); | |||||
| } | |||||
| } | } | ||||