mirror of
https://we.phorge.it/source/phorge.git
synced 2025-02-20 02:38:39 +01:00
Convert Project Pages to new UI
Summary: Updating the subproject and member pages in Projects to new UI Test Plan: Visit a subproject parent page, visit members pages Reviewers: epriestley Reviewed By: epriestley Subscribers: Korvin Differential Revision: https://secure.phabricator.com/D15687
This commit is contained in:
parent
eae82c51f5
commit
7b16f5d807
2 changed files with 58 additions and 37 deletions
|
@ -22,21 +22,23 @@ final class PhabricatorProjectMembersViewController
|
||||||
$title = pht('Members and Watchers');
|
$title = pht('Members and Watchers');
|
||||||
|
|
||||||
$properties = $this->buildProperties($project);
|
$properties = $this->buildProperties($project);
|
||||||
$actions = $this->buildActions($project);
|
$curtain = $this->buildCurtainView($project);
|
||||||
$properties->setActionList($actions);
|
|
||||||
|
|
||||||
$object_box = id(new PHUIObjectBoxView())
|
$object_box = id(new PHUIObjectBoxView())
|
||||||
->setHeaderText($title)
|
->setHeaderText(pht('Details'))
|
||||||
|
->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
|
||||||
->addPropertyList($properties);
|
->addPropertyList($properties);
|
||||||
|
|
||||||
$member_list = id(new PhabricatorProjectMemberListView())
|
$member_list = id(new PhabricatorProjectMemberListView())
|
||||||
->setUser($viewer)
|
->setUser($viewer)
|
||||||
->setProject($project)
|
->setProject($project)
|
||||||
|
->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
|
||||||
->setUserPHIDs($project->getMemberPHIDs());
|
->setUserPHIDs($project->getMemberPHIDs());
|
||||||
|
|
||||||
$watcher_list = id(new PhabricatorProjectWatcherListView())
|
$watcher_list = id(new PhabricatorProjectWatcherListView())
|
||||||
->setUser($viewer)
|
->setUser($viewer)
|
||||||
->setProject($project)
|
->setProject($project)
|
||||||
|
->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
|
||||||
->setUserPHIDs($project->getWatcherPHIDs());
|
->setUserPHIDs($project->getWatcherPHIDs());
|
||||||
|
|
||||||
$nav = $this->getProfileMenu();
|
$nav = $this->getProfileMenu();
|
||||||
|
@ -44,17 +46,27 @@ final class PhabricatorProjectMembersViewController
|
||||||
|
|
||||||
$crumbs = $this->buildApplicationCrumbs();
|
$crumbs = $this->buildApplicationCrumbs();
|
||||||
$crumbs->addTextCrumb(pht('Members'));
|
$crumbs->addTextCrumb(pht('Members'));
|
||||||
|
$crumbs->setBorder(true);
|
||||||
|
|
||||||
|
$header = id(new PHUIHeaderView())
|
||||||
|
->setHeader($title)
|
||||||
|
->setHeaderIcon('fa-group');
|
||||||
|
|
||||||
|
$view = id(new PHUITwoColumnView())
|
||||||
|
->setHeader($header)
|
||||||
|
->setCurtain($curtain)
|
||||||
|
->setMainColumn(array(
|
||||||
|
$object_box,
|
||||||
|
$member_list,
|
||||||
|
$watcher_list,
|
||||||
|
));
|
||||||
|
|
||||||
|
|
||||||
return $this->newPage()
|
return $this->newPage()
|
||||||
->setNavigation($nav)
|
->setNavigation($nav)
|
||||||
->setCrumbs($crumbs)
|
->setCrumbs($crumbs)
|
||||||
->setTitle(array($project->getDisplayName(), $title))
|
->setTitle(array($project->getName(), $title))
|
||||||
->appendChild(
|
->appendChild($view);
|
||||||
array(
|
|
||||||
$object_box,
|
|
||||||
$member_list,
|
|
||||||
$watcher_list,
|
|
||||||
));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private function buildProperties(PhabricatorProject $project) {
|
private function buildProperties(PhabricatorProject $project) {
|
||||||
|
@ -156,12 +168,11 @@ final class PhabricatorProjectMembersViewController
|
||||||
return $view;
|
return $view;
|
||||||
}
|
}
|
||||||
|
|
||||||
private function buildActions(PhabricatorProject $project) {
|
private function buildCurtainView(PhabricatorProject $project) {
|
||||||
$viewer = $this->getViewer();
|
$viewer = $this->getViewer();
|
||||||
$id = $project->getID();
|
$id = $project->getID();
|
||||||
|
|
||||||
$view = id(new PhabricatorActionListView())
|
$curtain = $this->newCurtainView($project);
|
||||||
->setUser($viewer);
|
|
||||||
|
|
||||||
$is_locked = $project->getIsMembershipLocked();
|
$is_locked = $project->getIsMembershipLocked();
|
||||||
|
|
||||||
|
@ -182,7 +193,7 @@ final class PhabricatorProjectMembersViewController
|
||||||
$viewer_phid = $viewer->getPHID();
|
$viewer_phid = $viewer->getPHID();
|
||||||
|
|
||||||
if (!$project->isUserMember($viewer_phid)) {
|
if (!$project->isUserMember($viewer_phid)) {
|
||||||
$view->addAction(
|
$curtain->addAction(
|
||||||
id(new PhabricatorActionView())
|
id(new PhabricatorActionView())
|
||||||
->setHref('/project/update/'.$project->getID().'/join/')
|
->setHref('/project/update/'.$project->getID().'/join/')
|
||||||
->setIcon('fa-plus')
|
->setIcon('fa-plus')
|
||||||
|
@ -190,7 +201,7 @@ final class PhabricatorProjectMembersViewController
|
||||||
->setWorkflow(true)
|
->setWorkflow(true)
|
||||||
->setName(pht('Join Project')));
|
->setName(pht('Join Project')));
|
||||||
} else {
|
} else {
|
||||||
$view->addAction(
|
$curtain->addAction(
|
||||||
id(new PhabricatorActionView())
|
id(new PhabricatorActionView())
|
||||||
->setHref('/project/update/'.$project->getID().'/leave/')
|
->setHref('/project/update/'.$project->getID().'/leave/')
|
||||||
->setIcon('fa-times')
|
->setIcon('fa-times')
|
||||||
|
@ -200,14 +211,14 @@ final class PhabricatorProjectMembersViewController
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!$project->isUserWatcher($viewer->getPHID())) {
|
if (!$project->isUserWatcher($viewer->getPHID())) {
|
||||||
$view->addAction(
|
$curtain->addAction(
|
||||||
id(new PhabricatorActionView())
|
id(new PhabricatorActionView())
|
||||||
->setWorkflow(true)
|
->setWorkflow(true)
|
||||||
->setHref('/project/watch/'.$project->getID().'/')
|
->setHref('/project/watch/'.$project->getID().'/')
|
||||||
->setIcon('fa-eye')
|
->setIcon('fa-eye')
|
||||||
->setName(pht('Watch Project')));
|
->setName(pht('Watch Project')));
|
||||||
} else {
|
} else {
|
||||||
$view->addAction(
|
$curtain->addAction(
|
||||||
id(new PhabricatorActionView())
|
id(new PhabricatorActionView())
|
||||||
->setWorkflow(true)
|
->setWorkflow(true)
|
||||||
->setHref('/project/unwatch/'.$project->getID().'/')
|
->setHref('/project/unwatch/'.$project->getID().'/')
|
||||||
|
@ -224,7 +235,7 @@ final class PhabricatorProjectMembersViewController
|
||||||
$silence_text = pht('Disable Mail');
|
$silence_text = pht('Disable Mail');
|
||||||
}
|
}
|
||||||
|
|
||||||
$view->addAction(
|
$curtain->addAction(
|
||||||
id(new PhabricatorActionView())
|
id(new PhabricatorActionView())
|
||||||
->setName($silence_text)
|
->setName($silence_text)
|
||||||
->setIcon('fa-envelope-o')
|
->setIcon('fa-envelope-o')
|
||||||
|
@ -234,7 +245,7 @@ final class PhabricatorProjectMembersViewController
|
||||||
|
|
||||||
$can_add = $can_edit && $supports_edit;
|
$can_add = $can_edit && $supports_edit;
|
||||||
|
|
||||||
$view->addAction(
|
$curtain->addAction(
|
||||||
id(new PhabricatorActionView())
|
id(new PhabricatorActionView())
|
||||||
->setName(pht('Add Members'))
|
->setName(pht('Add Members'))
|
||||||
->setIcon('fa-user-plus')
|
->setIcon('fa-user-plus')
|
||||||
|
@ -253,7 +264,7 @@ final class PhabricatorProjectMembersViewController
|
||||||
$lock_icon = 'fa-lock';
|
$lock_icon = 'fa-lock';
|
||||||
}
|
}
|
||||||
|
|
||||||
$view->addAction(
|
$curtain->addAction(
|
||||||
id(new PhabricatorActionView())
|
id(new PhabricatorActionView())
|
||||||
->setName($lock_name)
|
->setName($lock_name)
|
||||||
->setIcon($lock_icon)
|
->setIcon($lock_icon)
|
||||||
|
@ -261,7 +272,7 @@ final class PhabricatorProjectMembersViewController
|
||||||
->setDisabled(!$can_lock)
|
->setDisabled(!$can_lock)
|
||||||
->setWorkflow(true));
|
->setWorkflow(true));
|
||||||
|
|
||||||
return $view;
|
return $curtain;
|
||||||
}
|
}
|
||||||
|
|
||||||
private function isProjectSilenced(PhabricatorProject $project) {
|
private function isProjectSilenced(PhabricatorProject $project) {
|
||||||
|
|
|
@ -52,6 +52,7 @@ final class PhabricatorProjectSubprojectsController
|
||||||
if ($milestones) {
|
if ($milestones) {
|
||||||
$milestone_list = id(new PHUIObjectBoxView())
|
$milestone_list = id(new PHUIObjectBoxView())
|
||||||
->setHeaderText(pht('Milestones'))
|
->setHeaderText(pht('Milestones'))
|
||||||
|
->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
|
||||||
->setObjectList(
|
->setObjectList(
|
||||||
id(new PhabricatorProjectListView())
|
id(new PhabricatorProjectListView())
|
||||||
->setUser($viewer)
|
->setUser($viewer)
|
||||||
|
@ -64,6 +65,7 @@ final class PhabricatorProjectSubprojectsController
|
||||||
if ($subprojects) {
|
if ($subprojects) {
|
||||||
$subproject_list = id(new PHUIObjectBoxView())
|
$subproject_list = id(new PHUIObjectBoxView())
|
||||||
->setHeaderText(pht('Subprojects'))
|
->setHeaderText(pht('Subprojects'))
|
||||||
|
->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
|
||||||
->setObjectList(
|
->setObjectList(
|
||||||
id(new PhabricatorProjectListView())
|
id(new PhabricatorProjectListView())
|
||||||
->setUser($viewer)
|
->setUser($viewer)
|
||||||
|
@ -78,15 +80,15 @@ final class PhabricatorProjectSubprojectsController
|
||||||
$milestones,
|
$milestones,
|
||||||
$subprojects);
|
$subprojects);
|
||||||
|
|
||||||
$action_list = $this->buildActionList(
|
$curtain = $this->buildCurtainView(
|
||||||
$project,
|
$project,
|
||||||
$milestones,
|
$milestones,
|
||||||
$subprojects);
|
$subprojects);
|
||||||
|
|
||||||
$property_list->setActionList($action_list);
|
|
||||||
|
|
||||||
$header_box = id(new PHUIObjectBoxView())
|
$details = id(new PHUIObjectBoxView())
|
||||||
->setHeaderText(pht('Subprojects and Milestones'))
|
->setHeaderText(pht('Details'))
|
||||||
|
->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
|
||||||
->addPropertyList($property_list);
|
->addPropertyList($property_list);
|
||||||
|
|
||||||
$nav = $this->getProfileMenu();
|
$nav = $this->getProfileMenu();
|
||||||
|
@ -94,17 +96,26 @@ final class PhabricatorProjectSubprojectsController
|
||||||
|
|
||||||
$crumbs = $this->buildApplicationCrumbs();
|
$crumbs = $this->buildApplicationCrumbs();
|
||||||
$crumbs->addTextCrumb(pht('Subprojects'));
|
$crumbs->addTextCrumb(pht('Subprojects'));
|
||||||
|
$crumbs->setBorder(true);
|
||||||
|
|
||||||
|
$header = id(new PHUIHeaderView())
|
||||||
|
->setHeader(pht('Subprojects and Milestones'))
|
||||||
|
->setHeaderIcon('fa-sitemap');
|
||||||
|
|
||||||
|
$view = id(new PHUITwoColumnView())
|
||||||
|
->setHeader($header)
|
||||||
|
->setCurtain($curtain)
|
||||||
|
->setMainColumn(array(
|
||||||
|
$details,
|
||||||
|
$milestone_list,
|
||||||
|
$subproject_list,
|
||||||
|
));
|
||||||
|
|
||||||
return $this->newPage()
|
return $this->newPage()
|
||||||
->setNavigation($nav)
|
->setNavigation($nav)
|
||||||
->setCrumbs($crumbs)
|
->setCrumbs($crumbs)
|
||||||
->setTitle(array($project->getName(), pht('Subprojects')))
|
->setTitle(array($project->getName(), pht('Subprojects')))
|
||||||
->appendChild(
|
->appendChild($view);
|
||||||
array(
|
|
||||||
$header_box,
|
|
||||||
$milestone_list,
|
|
||||||
$subproject_list,
|
|
||||||
));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private function buildPropertyList(
|
private function buildPropertyList(
|
||||||
|
@ -174,7 +185,7 @@ final class PhabricatorProjectSubprojectsController
|
||||||
return $view;
|
return $view;
|
||||||
}
|
}
|
||||||
|
|
||||||
private function buildActionList(
|
private function buildCurtainView(
|
||||||
PhabricatorProject $project,
|
PhabricatorProject $project,
|
||||||
array $milestones,
|
array $milestones,
|
||||||
array $subprojects) {
|
array $subprojects) {
|
||||||
|
@ -192,8 +203,7 @@ final class PhabricatorProjectSubprojectsController
|
||||||
$allows_milestones = $project->supportsMilestones();
|
$allows_milestones = $project->supportsMilestones();
|
||||||
$allows_subprojects = $project->supportsSubprojects();
|
$allows_subprojects = $project->supportsSubprojects();
|
||||||
|
|
||||||
$view = id(new PhabricatorActionListView())
|
$curtain = $this->newCurtainView($project);
|
||||||
->setUser($viewer);
|
|
||||||
|
|
||||||
if ($allows_milestones && $milestones) {
|
if ($allows_milestones && $milestones) {
|
||||||
$milestone_text = pht('Create Next Milestone');
|
$milestone_text = pht('Create Next Milestone');
|
||||||
|
@ -204,7 +214,7 @@ final class PhabricatorProjectSubprojectsController
|
||||||
$can_milestone = ($can_create && $can_edit && $allows_milestones);
|
$can_milestone = ($can_create && $can_edit && $allows_milestones);
|
||||||
$milestone_href = "/project/edit/?milestone={$id}";
|
$milestone_href = "/project/edit/?milestone={$id}";
|
||||||
|
|
||||||
$view->addAction(
|
$curtain->addAction(
|
||||||
id(new PhabricatorActionView())
|
id(new PhabricatorActionView())
|
||||||
->setName($milestone_text)
|
->setName($milestone_text)
|
||||||
->setIcon('fa-plus')
|
->setIcon('fa-plus')
|
||||||
|
@ -226,7 +236,7 @@ final class PhabricatorProjectSubprojectsController
|
||||||
$subproject_workflow = !$can_subproject;
|
$subproject_workflow = !$can_subproject;
|
||||||
}
|
}
|
||||||
|
|
||||||
$view->addAction(
|
$curtain->addAction(
|
||||||
id(new PhabricatorActionView())
|
id(new PhabricatorActionView())
|
||||||
->setName(pht('Create Subproject'))
|
->setName(pht('Create Subproject'))
|
||||||
->setIcon('fa-plus')
|
->setIcon('fa-plus')
|
||||||
|
@ -234,7 +244,7 @@ final class PhabricatorProjectSubprojectsController
|
||||||
->setDisabled($subproject_disabled)
|
->setDisabled($subproject_disabled)
|
||||||
->setWorkflow($subproject_workflow));
|
->setWorkflow($subproject_workflow));
|
||||||
|
|
||||||
return $view;
|
return $curtain;
|
||||||
}
|
}
|
||||||
|
|
||||||
private function renderStatus($icon, $target, $note) {
|
private function renderStatus($icon, $target, $note) {
|
||||||
|
|
Loading…
Add table
Reference in a new issue