Revamp Projects with new navigation
Summary:
A refresh of Projects including a new navigations UI.
- New Navigation UI.
- Auto switch default page if Workboard has been initialized
- Move Feed to it's own page
- Increase 'tasks' on Project Home to 50 over 10
- Fix various display bugs on Workboards
- Remove 'crumbs' from Project portal (unneeded).
Test Plan:
- clicked a link for a project with no workboard and saw the profile
- clicked a link for a project with a workboard and saw the workboard
- navigated around the various edit pages, inspecting links and making sure things linked back to the new profile uri
{F266460}
{F266461}
{F266462}
{F266463}
{F266464}
Reviewers: epriestley, btrahan
Reviewed By: epriestley, btrahan
Subscribers: Korvin, epriestley
Differential Revision: https://secure.phabricator.com/D11272
This commit is contained in:
@@ -2,23 +2,56 @@
|
||||
|
||||
abstract class PhabricatorProjectController extends PhabricatorController {
|
||||
|
||||
public function buildApplicationMenu() {
|
||||
return $this->buildSideNavView(true)->getMenu();
|
||||
}
|
||||
|
||||
public function buildSideNavView($for_app = false) {
|
||||
$user = $this->getRequest()->getUser();
|
||||
|
||||
$nav = new AphrontSideNavFilterView();
|
||||
$nav->setBaseURI(new PhutilURI($this->getApplicationURI()));
|
||||
|
||||
$id = null;
|
||||
if ($for_app) {
|
||||
$user = $this->getRequest()->getUser();
|
||||
$id = $this->getRequest()->getURIData('id');
|
||||
if ($id) {
|
||||
$nav->addFilter("profile/{$id}/", pht('Profile'));
|
||||
$nav->addFilter("board/{$id}/", pht('Workboard'));
|
||||
$nav->addFilter("members/{$id}/", pht('Members'));
|
||||
$nav->addFilter("feed/{$id}/", pht('Feed'));
|
||||
$nav->addFilter("edit/{$id}/", pht('Edit'));
|
||||
}
|
||||
$nav->addFilter('create', pht('Create Project'));
|
||||
}
|
||||
|
||||
id(new PhabricatorProjectSearchEngine())
|
||||
->setViewer($user)
|
||||
->addNavigationItems($nav->getMenu());
|
||||
if (!$id) {
|
||||
id(new PhabricatorProjectSearchEngine())
|
||||
->setViewer($user)
|
||||
->addNavigationItems($nav->getMenu());
|
||||
}
|
||||
|
||||
$nav->selectFilter(null);
|
||||
|
||||
return $nav;
|
||||
}
|
||||
|
||||
public function buildIconNavView(PhabricatorProject $project) {
|
||||
$id = $project->getID();
|
||||
$picture = $project->getProfileImageURI();
|
||||
$name = $project->getName();
|
||||
|
||||
$nav = new AphrontSideNavFilterView();
|
||||
$nav->setIconNav(true);
|
||||
$nav->setBaseURI(new PhutilURI($this->getApplicationURI()));
|
||||
$nav->addIcon("profile/{$id}/", $name, null, $picture);
|
||||
$nav->addIcon("board/{$id}/", pht('Workboard'), 'fa-columns');
|
||||
$nav->addIcon("feed/{$id}/", pht('Feed'), 'fa-newspaper-o');
|
||||
$nav->addIcon("members/{$id}/", pht('Members'), 'fa-group');
|
||||
$nav->addIcon("edit/{$id}/", pht('Edit'), 'fa-pencil');
|
||||
|
||||
return $nav;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user