Add very basic UI for creating milestones and subprojects

Summary:
Ref T10010. This has a lot of UI/UX problems but I think it:

  - technically allows subproject creation;
  - technically allows milestone creation;
  - doesn't let users unwittingly destroy their installs (probably).

Test Plan:
  - Created milestones.
  - Created subprojects.
  - Created and edited normal projects.
  - Observed some reasonable interactions (e.g., you can't create milestones for a milestone or edit a superproject's members).
  - Observed plenty of silly/confusing interactions that need additional work.

{F1046657}

{F1046658}

{F1046655}

{F1046656}

{F1046654}

Reviewers: chad

Reviewed By: chad

Maniphest Tasks: T10010

Differential Revision: https://secure.phabricator.com/D14904
This commit is contained in:
epriestley
2015-12-27 05:16:36 -08:00
parent 7732f9c03c
commit 7c5ad63fd1
14 changed files with 583 additions and 84 deletions

View File

@@ -99,7 +99,6 @@ abstract class PhabricatorProjectController extends PhabricatorController {
$nav->addFilter("board/{$id}/", pht('Workboard'));
$nav->addFilter("members/{$id}/", pht('Members'));
$nav->addFilter("feed/{$id}/", pht('Feed'));
$nav->addFilter("details/{$id}/", pht('Edit Details'));
}
$nav->addFilter('create', pht('Create Project'));
}
@@ -149,11 +148,29 @@ abstract class PhabricatorProjectController extends PhabricatorController {
$nav->addIcon("feed/{$id}/", pht('Feed'), 'fa-newspaper-o');
$nav->addIcon("members/{$id}/", pht('Members'), 'fa-group');
$nav->addIcon("details/{$id}/", pht('Edit Details'), 'fa-pencil');
if (PhabricatorEnv::getEnvConfig('phabricator.show-prototypes')) {
$nav->addIcon("subprojects/{$id}/", pht('Subprojects'), 'fa-sitemap');
$nav->addIcon("milestones/{$id}/", pht('Milestones'), 'fa-map-marker');
if ($project->supportsSubprojects()) {
$subprojects_icon = 'fa-sitemap';
} else {
$subprojects_icon = 'fa-sitemap grey';
}
if ($project->supportsMilestones()) {
$milestones_icon = 'fa-map-marker';
} else {
$milestones_icon = 'fa-map-marker grey';
}
$nav->addIcon(
"subprojects/{$id}/",
pht('Subprojects'),
$subprojects_icon);
$nav->addIcon(
"milestones/{$id}/",
pht('Milestones'),
$milestones_icon);
}
@@ -170,8 +187,8 @@ abstract class PhabricatorProjectController extends PhabricatorController {
$ancestors[] = $project;
foreach ($ancestors as $ancestor) {
$crumbs->addTextCrumb(
$project->getName(),
$project->getURI());
$ancestor->getName(),
$ancestor->getURI());
}
}