2011-01-16 22:51:39 +01:00
|
|
|
<?php
|
|
|
|
|
2014-01-26 21:26:13 +01:00
|
|
|
final class PhabricatorHomeMainController
|
|
|
|
extends PhabricatorHomeController {
|
2011-01-16 22:51:39 +01:00
|
|
|
|
Replace home directory list with a dashboard
Summary:
Rough cut that still needs a lot of polish, but replace the directory list with
more of a dashboard type thing:
- Show "Unbreak Now", triage-in-your-projects, and other stuff that you're
supposed to deal with, then feed.
- Move tools a click a way behind nav -- this also lets us put more stuff
there and subtools, etc., later.
- Remove tabs.
- Merge the category/item editing views.
- I also added a light blue wash to the side nav, not sure if I like that or
not.
Test Plan:
- Viewed all elements in empty and nonempty states.
- Viewed applications, edited items/categories.
Reviewers: btrahan, aran
Reviewed By: btrahan
CC: aran, epriestley, davidreuss
Maniphest Tasks: T21, T631
Differential Revision: https://secure.phabricator.com/D1574
2012-02-08 01:04:48 +01:00
|
|
|
private $filter;
|
2013-01-17 23:02:18 +01:00
|
|
|
private $minipanels = array();
|
Replace home directory list with a dashboard
Summary:
Rough cut that still needs a lot of polish, but replace the directory list with
more of a dashboard type thing:
- Show "Unbreak Now", triage-in-your-projects, and other stuff that you're
supposed to deal with, then feed.
- Move tools a click a way behind nav -- this also lets us put more stuff
there and subtools, etc., later.
- Remove tabs.
- Merge the category/item editing views.
- I also added a light blue wash to the side nav, not sure if I like that or
not.
Test Plan:
- Viewed all elements in empty and nonempty states.
- Viewed applications, edited items/categories.
Reviewers: btrahan, aran
Reviewed By: btrahan
CC: aran, epriestley, davidreuss
Maniphest Tasks: T21, T631
Differential Revision: https://secure.phabricator.com/D1574
2012-02-08 01:04:48 +01:00
|
|
|
|
2014-01-27 00:28:55 +01:00
|
|
|
public function shouldAllowPublic() {
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
2012-02-16 02:48:14 +01:00
|
|
|
public function willProcessRequest(array $data) {
|
|
|
|
$this->filter = idx($data, 'filter');
|
|
|
|
}
|
|
|
|
|
2011-01-16 22:51:39 +01:00
|
|
|
public function processRequest() {
|
Replace home directory list with a dashboard
Summary:
Rough cut that still needs a lot of polish, but replace the directory list with
more of a dashboard type thing:
- Show "Unbreak Now", triage-in-your-projects, and other stuff that you're
supposed to deal with, then feed.
- Move tools a click a way behind nav -- this also lets us put more stuff
there and subtools, etc., later.
- Remove tabs.
- Merge the category/item editing views.
- I also added a light blue wash to the side nav, not sure if I like that or
not.
Test Plan:
- Viewed all elements in empty and nonempty states.
- Viewed applications, edited items/categories.
Reviewers: btrahan, aran
Reviewed By: btrahan
CC: aran, epriestley, davidreuss
Maniphest Tasks: T21, T631
Differential Revision: https://secure.phabricator.com/D1574
2012-02-08 01:04:48 +01:00
|
|
|
$user = $this->getRequest()->getUser();
|
|
|
|
|
2013-01-16 00:41:22 +01:00
|
|
|
if ($this->filter == 'jump') {
|
|
|
|
return $this->buildJumpResponse();
|
2012-02-16 02:49:23 +01:00
|
|
|
}
|
Replace home directory list with a dashboard
Summary:
Rough cut that still needs a lot of polish, but replace the directory list with
more of a dashboard type thing:
- Show "Unbreak Now", triage-in-your-projects, and other stuff that you're
supposed to deal with, then feed.
- Move tools a click a way behind nav -- this also lets us put more stuff
there and subtools, etc., later.
- Remove tabs.
- Merge the category/item editing views.
- I also added a light blue wash to the side nav, not sure if I like that or
not.
Test Plan:
- Viewed all elements in empty and nonempty states.
- Viewed applications, edited items/categories.
Reviewers: btrahan, aran
Reviewed By: btrahan
CC: aran, epriestley, davidreuss
Maniphest Tasks: T21, T631
Differential Revision: https://secure.phabricator.com/D1574
2012-02-08 01:04:48 +01:00
|
|
|
|
2013-01-16 00:41:22 +01:00
|
|
|
$nav = $this->buildNav();
|
|
|
|
|
|
|
|
$project_query = new PhabricatorProjectQuery();
|
|
|
|
$project_query->setViewer($user);
|
|
|
|
$project_query->withMemberPHIDs(array($user->getPHID()));
|
|
|
|
$projects = $project_query->execute();
|
2012-02-16 02:48:14 +01:00
|
|
|
|
2013-01-16 00:41:22 +01:00
|
|
|
return $this->buildMainResponse($nav, $projects);
|
2012-02-16 02:48:14 +01:00
|
|
|
}
|
|
|
|
|
2012-04-03 21:10:45 +02:00
|
|
|
private function buildMainResponse($nav, array $projects) {
|
|
|
|
assert_instances_of($projects, 'PhabricatorProject');
|
|
|
|
|
2013-04-06 20:39:59 +02:00
|
|
|
$maniphest = 'PhabricatorApplicationManiphest';
|
|
|
|
if (PhabricatorApplication::isClassInstalled($maniphest)) {
|
2013-09-17 20:31:32 +02:00
|
|
|
$unbreak_panel = $this->buildUnbreakNowPanel();
|
|
|
|
$triage_panel = $this->buildNeedsTriagePanel($projects);
|
2012-02-18 01:08:35 +01:00
|
|
|
$tasks_panel = $this->buildTasksPanel();
|
|
|
|
} else {
|
2013-09-17 20:31:32 +02:00
|
|
|
$unbreak_panel = null;
|
|
|
|
$triage_panel = null;
|
2012-02-18 01:08:35 +01:00
|
|
|
$tasks_panel = null;
|
|
|
|
}
|
2012-02-27 18:48:18 +01:00
|
|
|
|
2013-10-10 00:25:03 +02:00
|
|
|
$audit = 'PhabricatorApplicationAudit';
|
|
|
|
if (PhabricatorApplication::isClassInstalled($audit)) {
|
|
|
|
$audit_panel = $this->buildAuditPanel();
|
|
|
|
$commit_panel = $this->buildCommitPanel();
|
|
|
|
} else {
|
|
|
|
$audit_panel = null;
|
|
|
|
$commit_panel = null;
|
|
|
|
}
|
|
|
|
|
2013-03-22 00:02:35 +01:00
|
|
|
if (PhabricatorEnv::getEnvConfig('welcome.html') !== null) {
|
|
|
|
$welcome_panel = $this->buildWelcomePanel();
|
|
|
|
} else {
|
|
|
|
$welcome_panel = null;
|
|
|
|
}
|
2013-10-10 00:25:03 +02:00
|
|
|
|
2012-02-16 02:49:23 +01:00
|
|
|
$jump_panel = $this->buildJumpPanel();
|
Replace home directory list with a dashboard
Summary:
Rough cut that still needs a lot of polish, but replace the directory list with
more of a dashboard type thing:
- Show "Unbreak Now", triage-in-your-projects, and other stuff that you're
supposed to deal with, then feed.
- Move tools a click a way behind nav -- this also lets us put more stuff
there and subtools, etc., later.
- Remove tabs.
- Merge the category/item editing views.
- I also added a light blue wash to the side nav, not sure if I like that or
not.
Test Plan:
- Viewed all elements in empty and nonempty states.
- Viewed applications, edited items/categories.
Reviewers: btrahan, aran
Reviewed By: btrahan
CC: aran, epriestley, davidreuss
Maniphest Tasks: T21, T631
Differential Revision: https://secure.phabricator.com/D1574
2012-02-08 01:04:48 +01:00
|
|
|
$revision_panel = $this->buildRevisionPanel();
|
2011-01-25 20:31:40 +01:00
|
|
|
|
Replace home directory list with a dashboard
Summary:
Rough cut that still needs a lot of polish, but replace the directory list with
more of a dashboard type thing:
- Show "Unbreak Now", triage-in-your-projects, and other stuff that you're
supposed to deal with, then feed.
- Move tools a click a way behind nav -- this also lets us put more stuff
there and subtools, etc., later.
- Remove tabs.
- Merge the category/item editing views.
- I also added a light blue wash to the side nav, not sure if I like that or
not.
Test Plan:
- Viewed all elements in empty and nonempty states.
- Viewed applications, edited items/categories.
Reviewers: btrahan, aran
Reviewed By: btrahan
CC: aran, epriestley, davidreuss
Maniphest Tasks: T21, T631
Differential Revision: https://secure.phabricator.com/D1574
2012-02-08 01:04:48 +01:00
|
|
|
$content = array(
|
2012-02-27 22:14:32 +01:00
|
|
|
$jump_panel,
|
2013-03-22 00:02:35 +01:00
|
|
|
$welcome_panel,
|
2013-09-17 20:31:32 +02:00
|
|
|
$unbreak_panel,
|
|
|
|
$triage_panel,
|
Replace home directory list with a dashboard
Summary:
Rough cut that still needs a lot of polish, but replace the directory list with
more of a dashboard type thing:
- Show "Unbreak Now", triage-in-your-projects, and other stuff that you're
supposed to deal with, then feed.
- Move tools a click a way behind nav -- this also lets us put more stuff
there and subtools, etc., later.
- Remove tabs.
- Merge the category/item editing views.
- I also added a light blue wash to the side nav, not sure if I like that or
not.
Test Plan:
- Viewed all elements in empty and nonempty states.
- Viewed applications, edited items/categories.
Reviewers: btrahan, aran
Reviewed By: btrahan
CC: aran, epriestley, davidreuss
Maniphest Tasks: T21, T631
Differential Revision: https://secure.phabricator.com/D1574
2012-02-08 01:04:48 +01:00
|
|
|
$revision_panel,
|
|
|
|
$tasks_panel,
|
2012-02-27 18:48:18 +01:00
|
|
|
$audit_panel,
|
2012-02-29 06:10:39 +01:00
|
|
|
$commit_panel,
|
2013-01-17 23:02:18 +01:00
|
|
|
$this->minipanels,
|
Replace home directory list with a dashboard
Summary:
Rough cut that still needs a lot of polish, but replace the directory list with
more of a dashboard type thing:
- Show "Unbreak Now", triage-in-your-projects, and other stuff that you're
supposed to deal with, then feed.
- Move tools a click a way behind nav -- this also lets us put more stuff
there and subtools, etc., later.
- Remove tabs.
- Merge the category/item editing views.
- I also added a light blue wash to the side nav, not sure if I like that or
not.
Test Plan:
- Viewed all elements in empty and nonempty states.
- Viewed applications, edited items/categories.
Reviewers: btrahan, aran
Reviewed By: btrahan
CC: aran, epriestley, davidreuss
Maniphest Tasks: T21, T631
Differential Revision: https://secure.phabricator.com/D1574
2012-02-08 01:04:48 +01:00
|
|
|
);
|
|
|
|
|
|
|
|
$nav->appendChild($content);
|
Modernize file uploads
Summary:
Modernizes file uploads. In particular:
- Adds a mobile menu, with an "Upload File" item.
- Adds crumbs to the list view, detail view and upload view.
- Adds "Upload File" action to crumbs.
- Moves upload file to a separate page.
- Removes the combined upload file + recent files page.
- Makes upload file use a normal file control by default (works on mobile).
- Home page, file list and file upload page are now global drop targets which accept files dropped anywhere on them. Dragging a file into the window shows a mask and an instructional message.
- User education on this is a little weak but I think that's a big can of worms?
- Fixes a bug where dropping multiple files into a Remarkup text area produced bad results (resolves T2190).
T879 is related, although it's specifically about Maniphest. I've declined to make global drop targets yet there because there are multiple drop targets on the page with different meanings. That UI needs updating in general.
@chad, do we have an "upload" icon (counterpart to "download")?
Test Plan: Uploaded files in Maniphest, Differential, Files, and from Home. Dragged and dropped multiple files into Differential. Used crumbs, mobile.
Reviewers: chad, btrahan
Reviewed By: btrahan
CC: aran
Maniphest Tasks: T2190
Differential Revision: https://secure.phabricator.com/D4200
2012-12-17 01:34:01 +01:00
|
|
|
$nav->appendChild(new PhabricatorGlobalUploadTargetView());
|
Replace home directory list with a dashboard
Summary:
Rough cut that still needs a lot of polish, but replace the directory list with
more of a dashboard type thing:
- Show "Unbreak Now", triage-in-your-projects, and other stuff that you're
supposed to deal with, then feed.
- Move tools a click a way behind nav -- this also lets us put more stuff
there and subtools, etc., later.
- Remove tabs.
- Merge the category/item editing views.
- I also added a light blue wash to the side nav, not sure if I like that or
not.
Test Plan:
- Viewed all elements in empty and nonempty states.
- Viewed applications, edited items/categories.
Reviewers: btrahan, aran
Reviewed By: btrahan
CC: aran, epriestley, davidreuss
Maniphest Tasks: T21, T631
Differential Revision: https://secure.phabricator.com/D1574
2012-02-08 01:04:48 +01:00
|
|
|
|
2013-03-22 19:50:30 +01:00
|
|
|
return $this->buildApplicationPage(
|
Replace home directory list with a dashboard
Summary:
Rough cut that still needs a lot of polish, but replace the directory list with
more of a dashboard type thing:
- Show "Unbreak Now", triage-in-your-projects, and other stuff that you're
supposed to deal with, then feed.
- Move tools a click a way behind nav -- this also lets us put more stuff
there and subtools, etc., later.
- Remove tabs.
- Merge the category/item editing views.
- I also added a light blue wash to the side nav, not sure if I like that or
not.
Test Plan:
- Viewed all elements in empty and nonempty states.
- Viewed applications, edited items/categories.
Reviewers: btrahan, aran
Reviewed By: btrahan
CC: aran, epriestley, davidreuss
Maniphest Tasks: T21, T631
Differential Revision: https://secure.phabricator.com/D1574
2012-02-08 01:04:48 +01:00
|
|
|
$nav,
|
|
|
|
array(
|
2013-03-30 20:46:03 +01:00
|
|
|
'title' => 'Phabricator',
|
2013-03-22 19:50:30 +01:00
|
|
|
'device' => true,
|
2012-02-16 02:48:14 +01:00
|
|
|
));
|
|
|
|
}
|
|
|
|
|
2013-01-16 00:41:22 +01:00
|
|
|
private function buildJumpResponse() {
|
2012-02-16 02:49:23 +01:00
|
|
|
$request = $this->getRequest();
|
2012-07-24 02:41:46 +02:00
|
|
|
$jump = $request->getStr('jump');
|
|
|
|
|
2013-10-02 22:11:56 +02:00
|
|
|
$response = PhabricatorJumpNavHandler::getJumpResponse(
|
|
|
|
$request->getUser(),
|
|
|
|
$jump);
|
2013-01-19 00:54:53 +01:00
|
|
|
|
2012-07-24 02:41:46 +02:00
|
|
|
if ($response) {
|
2013-01-19 00:54:53 +01:00
|
|
|
|
2012-07-24 02:41:46 +02:00
|
|
|
return $response;
|
|
|
|
} else if ($request->isFormPost()) {
|
|
|
|
$query = new PhabricatorSearchQuery();
|
|
|
|
$query->setQuery($jump);
|
|
|
|
$query->save();
|
|
|
|
|
|
|
|
return id(new AphrontRedirectResponse())
|
|
|
|
->setURI('/search/'.$query->getQueryKey().'/');
|
2013-01-16 00:41:22 +01:00
|
|
|
} else {
|
|
|
|
return id(new AphrontRedirectResponse())->setURI('/');
|
2012-02-16 02:49:23 +01:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2013-09-17 20:31:32 +02:00
|
|
|
private function buildUnbreakNowPanel() {
|
|
|
|
$unbreak_now = PhabricatorEnv::getEnvConfig(
|
|
|
|
'maniphest.priorities.unbreak-now');
|
|
|
|
if (!$unbreak_now) {
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
|
|
|
|
$user = $this->getRequest()->getUser();
|
|
|
|
|
|
|
|
$task_query = id(new ManiphestTaskQuery())
|
|
|
|
->setViewer($user)
|
|
|
|
->withStatuses(array(ManiphestTaskStatus::STATUS_OPEN))
|
|
|
|
->withPriorities(array($unbreak_now))
|
|
|
|
->setLimit(10);
|
|
|
|
|
|
|
|
$tasks = $task_query->execute();
|
|
|
|
|
|
|
|
if (!$tasks) {
|
|
|
|
return $this->renderMiniPanel(
|
|
|
|
'No "Unbreak Now!" Tasks',
|
|
|
|
'Nothing appears to be critically broken right now.');
|
|
|
|
}
|
|
|
|
|
2014-01-21 23:23:36 +01:00
|
|
|
$href = '/maniphest/?statuses[]=0&priorities[]='.$unbreak_now.'#R';
|
|
|
|
$title = pht('Unbreak Now!');
|
2013-09-17 20:31:32 +02:00
|
|
|
$panel = new AphrontPanelView();
|
2014-01-21 23:23:36 +01:00
|
|
|
$panel->setHeader($this->renderSectionHeader($title, $href));
|
2013-09-17 20:31:32 +02:00
|
|
|
$panel->appendChild($this->buildTaskListView($tasks));
|
|
|
|
$panel->setNoBackground();
|
|
|
|
|
|
|
|
return $panel;
|
|
|
|
}
|
|
|
|
|
|
|
|
private function buildNeedsTriagePanel(array $projects) {
|
|
|
|
assert_instances_of($projects, 'PhabricatorProject');
|
|
|
|
|
|
|
|
$needs_triage = PhabricatorEnv::getEnvConfig(
|
|
|
|
'maniphest.priorities.needs-triage');
|
|
|
|
if (!$needs_triage) {
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
|
|
|
|
$user = $this->getRequest()->getUser();
|
|
|
|
if (!$user->isLoggedIn()) {
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
|
|
|
|
if ($projects) {
|
|
|
|
$task_query = id(new ManiphestTaskQuery())
|
|
|
|
->setViewer($user)
|
|
|
|
->withStatuses(array(ManiphestTaskStatus::STATUS_OPEN))
|
|
|
|
->withPriorities(array($needs_triage))
|
|
|
|
->withAnyProjects(mpull($projects, 'getPHID'))
|
|
|
|
->setLimit(10);
|
|
|
|
$tasks = $task_query->execute();
|
|
|
|
} else {
|
|
|
|
$tasks = array();
|
|
|
|
}
|
|
|
|
|
|
|
|
if (!$tasks) {
|
|
|
|
return $this->renderMiniPanel(
|
|
|
|
'No "Needs Triage" Tasks',
|
|
|
|
hsprintf(
|
|
|
|
'No tasks in <a href="/project/">projects you are a member of</a> '.
|
|
|
|
'need triage.'));
|
|
|
|
}
|
|
|
|
|
2014-01-21 23:23:36 +01:00
|
|
|
$title = pht('Needs Triage');
|
|
|
|
$href = '/maniphest/?statuses[]=0&priorities[]='.$needs_triage.
|
|
|
|
'&userProjects[]='.$user->getPHID().'#R';
|
2013-09-17 20:31:32 +02:00
|
|
|
$panel = new AphrontPanelView();
|
2014-01-21 23:23:36 +01:00
|
|
|
$panel->setHeader($this->renderSectionHeader($title, $href));
|
2013-09-17 20:31:32 +02:00
|
|
|
$panel->appendChild($this->buildTaskListView($tasks));
|
|
|
|
$panel->setNoBackground();
|
|
|
|
|
|
|
|
return $panel;
|
|
|
|
}
|
|
|
|
|
Replace home directory list with a dashboard
Summary:
Rough cut that still needs a lot of polish, but replace the directory list with
more of a dashboard type thing:
- Show "Unbreak Now", triage-in-your-projects, and other stuff that you're
supposed to deal with, then feed.
- Move tools a click a way behind nav -- this also lets us put more stuff
there and subtools, etc., later.
- Remove tabs.
- Merge the category/item editing views.
- I also added a light blue wash to the side nav, not sure if I like that or
not.
Test Plan:
- Viewed all elements in empty and nonempty states.
- Viewed applications, edited items/categories.
Reviewers: btrahan, aran
Reviewed By: btrahan
CC: aran, epriestley, davidreuss
Maniphest Tasks: T21, T631
Differential Revision: https://secure.phabricator.com/D1574
2012-02-08 01:04:48 +01:00
|
|
|
private function buildRevisionPanel() {
|
|
|
|
$user = $this->getRequest()->getUser();
|
|
|
|
$user_phid = $user->getPHID();
|
|
|
|
|
2013-07-01 21:38:27 +02:00
|
|
|
$revision_query = id(new DifferentialRevisionQuery())
|
|
|
|
->setViewer($user)
|
|
|
|
->withStatus(DifferentialRevisionQuery::STATUS_OPEN)
|
|
|
|
->withResponsibleUsers(array($user_phid))
|
|
|
|
->needRelationships(true);
|
Replace home directory list with a dashboard
Summary:
Rough cut that still needs a lot of polish, but replace the directory list with
more of a dashboard type thing:
- Show "Unbreak Now", triage-in-your-projects, and other stuff that you're
supposed to deal with, then feed.
- Move tools a click a way behind nav -- this also lets us put more stuff
there and subtools, etc., later.
- Remove tabs.
- Merge the category/item editing views.
- I also added a light blue wash to the side nav, not sure if I like that or
not.
Test Plan:
- Viewed all elements in empty and nonempty states.
- Viewed applications, edited items/categories.
Reviewers: btrahan, aran
Reviewed By: btrahan
CC: aran, epriestley, davidreuss
Maniphest Tasks: T21, T631
Differential Revision: https://secure.phabricator.com/D1574
2012-02-08 01:04:48 +01:00
|
|
|
|
|
|
|
$revisions = $revision_query->execute();
|
|
|
|
|
2013-01-24 01:37:08 +01:00
|
|
|
list($blocking, $active, ) = DifferentialRevisionQuery::splitResponsible(
|
|
|
|
$revisions,
|
|
|
|
array($user_phid));
|
Replace home directory list with a dashboard
Summary:
Rough cut that still needs a lot of polish, but replace the directory list with
more of a dashboard type thing:
- Show "Unbreak Now", triage-in-your-projects, and other stuff that you're
supposed to deal with, then feed.
- Move tools a click a way behind nav -- this also lets us put more stuff
there and subtools, etc., later.
- Remove tabs.
- Merge the category/item editing views.
- I also added a light blue wash to the side nav, not sure if I like that or
not.
Test Plan:
- Viewed all elements in empty and nonempty states.
- Viewed applications, edited items/categories.
Reviewers: btrahan, aran
Reviewed By: btrahan
CC: aran, epriestley, davidreuss
Maniphest Tasks: T21, T631
Differential Revision: https://secure.phabricator.com/D1574
2012-02-08 01:04:48 +01:00
|
|
|
|
2013-01-24 01:37:08 +01:00
|
|
|
if (!$blocking && !$active) {
|
2012-02-27 22:14:32 +01:00
|
|
|
return $this->renderMiniPanel(
|
|
|
|
'No Waiting Revisions',
|
|
|
|
'No revisions are waiting on you.');
|
|
|
|
}
|
|
|
|
|
2014-01-21 23:23:36 +01:00
|
|
|
$title = pht('Revisions Waiting on You');
|
|
|
|
$href = '/differential';
|
Replace home directory list with a dashboard
Summary:
Rough cut that still needs a lot of polish, but replace the directory list with
more of a dashboard type thing:
- Show "Unbreak Now", triage-in-your-projects, and other stuff that you're
supposed to deal with, then feed.
- Move tools a click a way behind nav -- this also lets us put more stuff
there and subtools, etc., later.
- Remove tabs.
- Merge the category/item editing views.
- I also added a light blue wash to the side nav, not sure if I like that or
not.
Test Plan:
- Viewed all elements in empty and nonempty states.
- Viewed applications, edited items/categories.
Reviewers: btrahan, aran
Reviewed By: btrahan
CC: aran, epriestley, davidreuss
Maniphest Tasks: T21, T631
Differential Revision: https://secure.phabricator.com/D1574
2012-02-08 01:04:48 +01:00
|
|
|
$panel = new AphrontPanelView();
|
2014-01-21 23:23:36 +01:00
|
|
|
$panel->setHeader($this->renderSectionHeader($title, $href));
|
Replace home directory list with a dashboard
Summary:
Rough cut that still needs a lot of polish, but replace the directory list with
more of a dashboard type thing:
- Show "Unbreak Now", triage-in-your-projects, and other stuff that you're
supposed to deal with, then feed.
- Move tools a click a way behind nav -- this also lets us put more stuff
there and subtools, etc., later.
- Remove tabs.
- Merge the category/item editing views.
- I also added a light blue wash to the side nav, not sure if I like that or
not.
Test Plan:
- Viewed all elements in empty and nonempty states.
- Viewed applications, edited items/categories.
Reviewers: btrahan, aran
Reviewed By: btrahan
CC: aran, epriestley, davidreuss
Maniphest Tasks: T21, T631
Differential Revision: https://secure.phabricator.com/D1574
2012-02-08 01:04:48 +01:00
|
|
|
|
2012-02-27 22:14:32 +01:00
|
|
|
$revision_view = id(new DifferentialRevisionListView())
|
2012-08-20 23:05:46 +02:00
|
|
|
->setHighlightAge(true)
|
2013-01-24 01:37:08 +01:00
|
|
|
->setRevisions(array_merge($blocking, $active))
|
2013-03-01 02:15:09 +01:00
|
|
|
->setFields(DifferentialRevisionListView::getDefaultFields($user))
|
2012-08-17 21:46:26 +02:00
|
|
|
->setUser($user)
|
|
|
|
->loadAssets();
|
2012-02-27 22:14:32 +01:00
|
|
|
$phids = array_merge(
|
|
|
|
array($user_phid),
|
|
|
|
$revision_view->getRequiredHandlePHIDs());
|
2012-09-05 04:02:56 +02:00
|
|
|
$handles = $this->loadViewerHandles($phids);
|
Replace home directory list with a dashboard
Summary:
Rough cut that still needs a lot of polish, but replace the directory list with
more of a dashboard type thing:
- Show "Unbreak Now", triage-in-your-projects, and other stuff that you're
supposed to deal with, then feed.
- Move tools a click a way behind nav -- this also lets us put more stuff
there and subtools, etc., later.
- Remove tabs.
- Merge the category/item editing views.
- I also added a light blue wash to the side nav, not sure if I like that or
not.
Test Plan:
- Viewed all elements in empty and nonempty states.
- Viewed applications, edited items/categories.
Reviewers: btrahan, aran
Reviewed By: btrahan
CC: aran, epriestley, davidreuss
Maniphest Tasks: T21, T631
Differential Revision: https://secure.phabricator.com/D1574
2012-02-08 01:04:48 +01:00
|
|
|
|
2012-02-27 22:14:32 +01:00
|
|
|
$revision_view->setHandles($handles);
|
Replace home directory list with a dashboard
Summary:
Rough cut that still needs a lot of polish, but replace the directory list with
more of a dashboard type thing:
- Show "Unbreak Now", triage-in-your-projects, and other stuff that you're
supposed to deal with, then feed.
- Move tools a click a way behind nav -- this also lets us put more stuff
there and subtools, etc., later.
- Remove tabs.
- Merge the category/item editing views.
- I also added a light blue wash to the side nav, not sure if I like that or
not.
Test Plan:
- Viewed all elements in empty and nonempty states.
- Viewed applications, edited items/categories.
Reviewers: btrahan, aran
Reviewed By: btrahan
CC: aran, epriestley, davidreuss
Maniphest Tasks: T21, T631
Differential Revision: https://secure.phabricator.com/D1574
2012-02-08 01:04:48 +01:00
|
|
|
|
2013-07-03 15:24:46 +02:00
|
|
|
$list_view = $revision_view->render();
|
|
|
|
$list_view->setFlush(true);
|
|
|
|
|
|
|
|
$panel->appendChild($list_view);
|
2013-01-17 23:02:18 +01:00
|
|
|
$panel->setNoBackground();
|
Replace home directory list with a dashboard
Summary:
Rough cut that still needs a lot of polish, but replace the directory list with
more of a dashboard type thing:
- Show "Unbreak Now", triage-in-your-projects, and other stuff that you're
supposed to deal with, then feed.
- Move tools a click a way behind nav -- this also lets us put more stuff
there and subtools, etc., later.
- Remove tabs.
- Merge the category/item editing views.
- I also added a light blue wash to the side nav, not sure if I like that or
not.
Test Plan:
- Viewed all elements in empty and nonempty states.
- Viewed applications, edited items/categories.
Reviewers: btrahan, aran
Reviewed By: btrahan
CC: aran, epriestley, davidreuss
Maniphest Tasks: T21, T631
Differential Revision: https://secure.phabricator.com/D1574
2012-02-08 01:04:48 +01:00
|
|
|
|
|
|
|
return $panel;
|
|
|
|
}
|
|
|
|
|
2013-03-22 00:02:35 +01:00
|
|
|
private function buildWelcomePanel() {
|
|
|
|
$panel = new AphrontPanelView();
|
|
|
|
$panel->appendChild(
|
|
|
|
phutil_safe_html(
|
|
|
|
PhabricatorEnv::getEnvConfig('welcome.html')));
|
|
|
|
$panel->setNoBackground();
|
|
|
|
|
|
|
|
return $panel;
|
|
|
|
}
|
|
|
|
|
Replace home directory list with a dashboard
Summary:
Rough cut that still needs a lot of polish, but replace the directory list with
more of a dashboard type thing:
- Show "Unbreak Now", triage-in-your-projects, and other stuff that you're
supposed to deal with, then feed.
- Move tools a click a way behind nav -- this also lets us put more stuff
there and subtools, etc., later.
- Remove tabs.
- Merge the category/item editing views.
- I also added a light blue wash to the side nav, not sure if I like that or
not.
Test Plan:
- Viewed all elements in empty and nonempty states.
- Viewed applications, edited items/categories.
Reviewers: btrahan, aran
Reviewed By: btrahan
CC: aran, epriestley, davidreuss
Maniphest Tasks: T21, T631
Differential Revision: https://secure.phabricator.com/D1574
2012-02-08 01:04:48 +01:00
|
|
|
private function buildTasksPanel() {
|
|
|
|
$user = $this->getRequest()->getUser();
|
|
|
|
$user_phid = $user->getPHID();
|
|
|
|
|
2013-09-10 16:44:22 +02:00
|
|
|
$task_query = id(new ManiphestTaskQuery())
|
|
|
|
->setViewer($user)
|
|
|
|
->withStatus(ManiphestTaskQuery::STATUS_OPEN)
|
|
|
|
->setGroupBy(ManiphestTaskQuery::GROUP_PRIORITY)
|
|
|
|
->withOwners(array($user_phid))
|
|
|
|
->setLimit(10);
|
Replace home directory list with a dashboard
Summary:
Rough cut that still needs a lot of polish, but replace the directory list with
more of a dashboard type thing:
- Show "Unbreak Now", triage-in-your-projects, and other stuff that you're
supposed to deal with, then feed.
- Move tools a click a way behind nav -- this also lets us put more stuff
there and subtools, etc., later.
- Remove tabs.
- Merge the category/item editing views.
- I also added a light blue wash to the side nav, not sure if I like that or
not.
Test Plan:
- Viewed all elements in empty and nonempty states.
- Viewed applications, edited items/categories.
Reviewers: btrahan, aran
Reviewed By: btrahan
CC: aran, epriestley, davidreuss
Maniphest Tasks: T21, T631
Differential Revision: https://secure.phabricator.com/D1574
2012-02-08 01:04:48 +01:00
|
|
|
|
|
|
|
$tasks = $task_query->execute();
|
|
|
|
|
2012-02-27 22:14:32 +01:00
|
|
|
|
|
|
|
if (!$tasks) {
|
|
|
|
return $this->renderMiniPanel(
|
|
|
|
'No Assigned Tasks',
|
|
|
|
'You have no assigned tasks.');
|
|
|
|
}
|
|
|
|
|
2014-01-21 23:23:36 +01:00
|
|
|
$title = pht('Assigned Tasks');
|
|
|
|
$href = '/maniphest';
|
Replace home directory list with a dashboard
Summary:
Rough cut that still needs a lot of polish, but replace the directory list with
more of a dashboard type thing:
- Show "Unbreak Now", triage-in-your-projects, and other stuff that you're
supposed to deal with, then feed.
- Move tools a click a way behind nav -- this also lets us put more stuff
there and subtools, etc., later.
- Remove tabs.
- Merge the category/item editing views.
- I also added a light blue wash to the side nav, not sure if I like that or
not.
Test Plan:
- Viewed all elements in empty and nonempty states.
- Viewed applications, edited items/categories.
Reviewers: btrahan, aran
Reviewed By: btrahan
CC: aran, epriestley, davidreuss
Maniphest Tasks: T21, T631
Differential Revision: https://secure.phabricator.com/D1574
2012-02-08 01:04:48 +01:00
|
|
|
$panel = new AphrontPanelView();
|
2014-01-21 23:23:36 +01:00
|
|
|
$panel->setHeader($this->renderSectionHeader($title, $href));
|
2012-02-27 22:14:32 +01:00
|
|
|
$panel->appendChild($this->buildTaskListView($tasks));
|
2013-01-17 23:02:18 +01:00
|
|
|
$panel->setNoBackground();
|
Replace home directory list with a dashboard
Summary:
Rough cut that still needs a lot of polish, but replace the directory list with
more of a dashboard type thing:
- Show "Unbreak Now", triage-in-your-projects, and other stuff that you're
supposed to deal with, then feed.
- Move tools a click a way behind nav -- this also lets us put more stuff
there and subtools, etc., later.
- Remove tabs.
- Merge the category/item editing views.
- I also added a light blue wash to the side nav, not sure if I like that or
not.
Test Plan:
- Viewed all elements in empty and nonempty states.
- Viewed applications, edited items/categories.
Reviewers: btrahan, aran
Reviewed By: btrahan
CC: aran, epriestley, davidreuss
Maniphest Tasks: T21, T631
Differential Revision: https://secure.phabricator.com/D1574
2012-02-08 01:04:48 +01:00
|
|
|
|
|
|
|
return $panel;
|
|
|
|
}
|
|
|
|
|
|
|
|
private function buildTaskListView(array $tasks) {
|
2012-04-03 21:10:45 +02:00
|
|
|
assert_instances_of($tasks, 'ManiphestTask');
|
Replace home directory list with a dashboard
Summary:
Rough cut that still needs a lot of polish, but replace the directory list with
more of a dashboard type thing:
- Show "Unbreak Now", triage-in-your-projects, and other stuff that you're
supposed to deal with, then feed.
- Move tools a click a way behind nav -- this also lets us put more stuff
there and subtools, etc., later.
- Remove tabs.
- Merge the category/item editing views.
- I also added a light blue wash to the side nav, not sure if I like that or
not.
Test Plan:
- Viewed all elements in empty and nonempty states.
- Viewed applications, edited items/categories.
Reviewers: btrahan, aran
Reviewed By: btrahan
CC: aran, epriestley, davidreuss
Maniphest Tasks: T21, T631
Differential Revision: https://secure.phabricator.com/D1574
2012-02-08 01:04:48 +01:00
|
|
|
$user = $this->getRequest()->getUser();
|
|
|
|
|
2012-04-02 19:27:31 +02:00
|
|
|
$phids = array_merge(
|
|
|
|
array_filter(mpull($tasks, 'getOwnerPHID')),
|
|
|
|
array_mergev(mpull($tasks, 'getProjectPHIDs')));
|
|
|
|
|
2012-09-05 04:02:56 +02:00
|
|
|
$handles = $this->loadViewerHandles($phids);
|
Replace home directory list with a dashboard
Summary:
Rough cut that still needs a lot of polish, but replace the directory list with
more of a dashboard type thing:
- Show "Unbreak Now", triage-in-your-projects, and other stuff that you're
supposed to deal with, then feed.
- Move tools a click a way behind nav -- this also lets us put more stuff
there and subtools, etc., later.
- Remove tabs.
- Merge the category/item editing views.
- I also added a light blue wash to the side nav, not sure if I like that or
not.
Test Plan:
- Viewed all elements in empty and nonempty states.
- Viewed applications, edited items/categories.
Reviewers: btrahan, aran
Reviewed By: btrahan
CC: aran, epriestley, davidreuss
Maniphest Tasks: T21, T631
Differential Revision: https://secure.phabricator.com/D1574
2012-02-08 01:04:48 +01:00
|
|
|
|
|
|
|
$view = new ManiphestTaskListView();
|
|
|
|
$view->setTasks($tasks);
|
|
|
|
$view->setUser($user);
|
|
|
|
$view->setHandles($handles);
|
|
|
|
|
|
|
|
return $view;
|
|
|
|
}
|
|
|
|
|
2012-07-24 02:41:46 +02:00
|
|
|
private function buildJumpPanel($query=null) {
|
2012-02-16 02:49:23 +01:00
|
|
|
$request = $this->getRequest();
|
|
|
|
$user = $request->getUser();
|
|
|
|
|
|
|
|
$uniq_id = celerity_generate_unique_node_id();
|
|
|
|
|
|
|
|
Javelin::initBehavior(
|
|
|
|
'phabricator-autofocus',
|
|
|
|
array(
|
|
|
|
'id' => $uniq_id,
|
|
|
|
));
|
|
|
|
|
|
|
|
require_celerity_resource('phabricator-jump-nav');
|
|
|
|
|
2012-02-16 02:52:47 +01:00
|
|
|
$doc_href = PhabricatorEnv::getDocLink('article/Jump_Nav_User_Guide.html');
|
2013-01-18 03:57:09 +01:00
|
|
|
$doc_link = phutil_tag(
|
2012-02-16 02:49:23 +01:00
|
|
|
'a',
|
|
|
|
array(
|
|
|
|
'href' => $doc_href,
|
|
|
|
),
|
2012-02-22 00:10:11 +01:00
|
|
|
'Jump Nav User Guide');
|
2012-02-16 02:49:23 +01:00
|
|
|
|
2013-01-18 03:39:02 +01:00
|
|
|
$jump_input = phutil_tag(
|
2012-02-16 02:49:23 +01:00
|
|
|
'input',
|
|
|
|
array(
|
|
|
|
'type' => 'text',
|
|
|
|
'class' => 'phabricator-jump-nav',
|
|
|
|
'name' => 'jump',
|
|
|
|
'id' => $uniq_id,
|
2012-07-24 02:41:46 +02:00
|
|
|
'value' => $query,
|
2012-02-27 22:14:32 +01:00
|
|
|
));
|
2013-01-18 09:32:58 +01:00
|
|
|
$jump_caption = phutil_tag(
|
2012-02-27 22:14:32 +01:00
|
|
|
'p',
|
|
|
|
array(
|
|
|
|
'class' => 'phabricator-jump-nav-caption',
|
|
|
|
),
|
2013-02-08 00:57:37 +01:00
|
|
|
hsprintf(
|
2013-01-18 09:32:58 +01:00
|
|
|
'Enter the name of an object like <tt>D123</tt> to quickly jump to '.
|
2013-02-08 00:57:37 +01:00
|
|
|
'it. See %s or type <tt>help</tt>.',
|
|
|
|
$doc_link));
|
2012-02-16 02:49:23 +01:00
|
|
|
|
2013-04-01 17:33:14 +02:00
|
|
|
$form = phabricator_form(
|
|
|
|
$user,
|
|
|
|
array(
|
|
|
|
'action' => '/jump/',
|
|
|
|
'method' => 'POST',
|
|
|
|
'class' => 'phabricator-jump-nav-form',
|
|
|
|
),
|
|
|
|
array(
|
|
|
|
$jump_input,
|
|
|
|
$jump_caption,
|
|
|
|
));
|
|
|
|
|
2012-02-16 02:49:23 +01:00
|
|
|
$panel = new AphrontPanelView();
|
2013-04-01 17:33:14 +02:00
|
|
|
$panel->setNoBackground();
|
|
|
|
// $panel->appendChild();
|
2012-02-27 22:14:32 +01:00
|
|
|
|
2013-04-01 17:33:14 +02:00
|
|
|
$list_filter = new AphrontListFilterView();
|
|
|
|
$list_filter->appendChild($form);
|
|
|
|
|
2013-04-02 18:01:09 +02:00
|
|
|
$container = phutil_tag('div',
|
|
|
|
array('class' => 'phabricator-jump-nav-container'),
|
|
|
|
$list_filter);
|
|
|
|
|
|
|
|
return $container;
|
2012-02-27 22:14:32 +01:00
|
|
|
}
|
|
|
|
|
2014-01-21 23:23:36 +01:00
|
|
|
private function renderSectionHeader($title, $href) {
|
|
|
|
$header = phutil_tag(
|
|
|
|
'a',
|
|
|
|
array(
|
|
|
|
'href' => $href,
|
|
|
|
),
|
|
|
|
$title);
|
|
|
|
return $header;
|
|
|
|
}
|
|
|
|
|
2012-02-27 22:14:32 +01:00
|
|
|
private function renderMiniPanel($title, $body) {
|
|
|
|
$panel = new AphrontMiniPanelView();
|
|
|
|
$panel->appendChild(
|
2013-01-29 03:41:43 +01:00
|
|
|
phutil_tag(
|
2012-02-27 22:14:32 +01:00
|
|
|
'p',
|
|
|
|
array(
|
|
|
|
),
|
2013-01-29 03:41:43 +01:00
|
|
|
array(
|
Fix every HTML issue I could find
Summary:
I attempted to test every interface. I probably missed some stuff, but I at least have some level of confidence that the `phutil_tag` branch is fairly stable.
Fixed these issues:
[1] Fixed a Herald issue with object links in transcripts. Some actions return
links; this was previously hard-coded.
[2] DarkConsole refactoring created an issue where the "`" event handler registered too many times.
[3] Fixed a bug where `strlen($value)` was being checked, but fields may now return array(). Possibly we should implement phutil_is_empty_html() or similar.
[4] Fixed a undefined variable issue for image edit transactions.
[5] Fixed an issue with rendering participant transactions. This required phutil_safe_html() because `pht()` can't handle `array()` for `%s`.
[6] Fixed an issue where feed was entirely overescaped by reverting an overly ambitious render_tag -> tag.
[7] Fixed an issue with strict tables and inserting `''` instead of `0` into an integer column.
[8] Fixed an issue where • was shown escaped.
[9] Fixed an issue where "no data" was overescaped.
[10] Fixed an issue with strict tables and inserting `''` instead of `0` into an integer column.
[11] Fixed an issue with strict tables and inserting `''`.
[12] Fixed an issue with missing space after ":" for mini panels.
Encountered (but did not fix) these issues:
[X1] "e" works incorrectly on comments you are not allowed to edit. Did not fix.
[X2] Coverage currently interacts incorrectly with "--everything" for Phutil tests.
Test Plan:
- Viewed Differential.
- Created a diff via copy/paste.
- Viewed standalone diff.
- Jumped to diff via changeset table.
- Created a revision.
- Updated revision.
- Added a comment.
- Edited revision dependencies.
- Edited revision tasks.
- Viewed MetaMTA transcripts.
- Viewed Herald transcripts [1].
- Downloaded raw diff.
- Flagged / unflagged revision.
- Added/edited/deleted inline comment.
- Collapsed/expanded file.
- Did show raw left.
- Did show raw right.
- Checked previews for available actions.
- Clicked remarkup buttons
- Used filetree view.
- Used keyboard: F, j, k, J, K, n, p, t, h, "?" [2] [X1].
- Created a meme.
- Uploaded a file via drag and drop.
- Viewed a revision with no reviewers.
- Viewed a revision with >100 files.
- Viewed various other revisions [3].
- Viewed an image diff.
- Added image diff inline comments.
- Viewed Maniphest.
- Ran various queries.
- Created task.
- Created similar task.
- Added comments to tasks.
- Ran custom query.
- Saved custom query.
- Edited custom queries.
- Drag-reordered tasks.
- Batch edited tasks.
- Exported tasks to excel.
- Looked at reports (issue in T2311 notwithstanding).
- Viewed Diffusion.
- Browsed Git, SVN, HG repositories.
- Looked at history, browse, change, commit views.
- Viewed audit.
- Performed various audit searches.
- Viewed Paste.
- Performed paste searches.
- Created, edited, forked paste.
- Viewed Phriction.
- Edited a page.
- Viewed edit history.
- Used search typeahead to search for user / application.
- Used search to search for text.
- Viewed Phame.
- Viewed Blog, Post.
- Viewed live post.
- Published/unpublished post.
- Previewed post.
- Viewed Pholio.
- Edited/commented mock.
- Viewed ponder.
- Viewed question.
- Added answer/comment.
- Viewed Diviner.
- Viewed Conpherence [4] [5].
- Made Conpherence updates.
- Viewed calendar.
- Created status.
- Viewed status.
- Viewed Feed [6].
- Viewed Projects.
- Viewed project detail.
- Edited project.
- Viewed Owners.
- Viewed package detail.
- Edited package [7].
- Viewed flags.
- Edited flag.
- Deleted flag.
- Viewed Herald.
- Viewed rules.
- Created rule.
- Edited rule.
- Viewed edit log.
- Viewed transcripts.
- Inspected a transcript.
- Viewed People.
- Viewed list.
- Administrated user.
- Checked username/delete stuff.
- Looked at create/import LDAP/activity logs.
- Looked at a user profile.
- Looked at user about page.
- Looked at Repositories.
- Edited repository.
- Edited arcanist project.
- Looked at daemons.
- Looked at all daemons [8].
- Viewed combined log.
- Looked at configuration.
- Edited configuration.
- Looked at setup issues [9].
- Looked at current settings.
- Looked at application list.
- Installed / uninstalled applications [10].
- Looked at mailing lists.
- Created a mailing list.
- Edited a mailing list.
- Looked at sent mail.
- Looked at received mail.
- Looked at send/receive tests.
- Looked at settings.
- Clicked through all the panels.
- Looked at slowvote.
- Created a slowvote [11].
- Voted in a slowvote.
- Looked at Macro.
- Created a macro.
- Edited a macro.
- Commented on a macro.
- Looked at Countdown.
- Created a Countdown.
- Looked at it.
- Looked at Drydock.
- Poked around a bit.
- Looked at Fact.
- Poked around a bit.
- Looked at files.
- Looked at a file.
- Uploaded a file.
- Looked at Conduit.
- Made a Conduit call.
- Looked at UIExamples.
- Looked at PHPAST.
- Looked at PHIDs.
- Looked at notification menu.
- Looked at notification detail.
- Logged out.
- Logged in.
- Looked at homepage [12].
- Ran `arc unit --everything --no-coverage` [X2].
Reviewers: vrana, btrahan
Reviewed By: vrana
CC: aran
Maniphest Tasks: T2432
Differential Revision: https://secure.phabricator.com/D4807
2013-02-05 02:06:34 +01:00
|
|
|
phutil_tag('strong', array(), $title.': '),
|
2013-01-29 03:41:43 +01:00
|
|
|
$body
|
|
|
|
)));
|
2013-01-17 23:02:18 +01:00
|
|
|
$this->minipanels[] = $panel;
|
2012-02-16 02:49:23 +01:00
|
|
|
}
|
|
|
|
|
2012-02-27 18:48:18 +01:00
|
|
|
public function buildAuditPanel() {
|
|
|
|
$request = $this->getRequest();
|
|
|
|
$user = $request->getUser();
|
|
|
|
|
|
|
|
$phids = PhabricatorAuditCommentEditor::loadAuditPHIDsForUser($user);
|
|
|
|
|
|
|
|
$query = new PhabricatorAuditQuery();
|
|
|
|
$query->withAuditorPHIDs($phids);
|
|
|
|
$query->withStatus(PhabricatorAuditQuery::STATUS_OPEN);
|
2012-03-26 18:44:06 +02:00
|
|
|
$query->withAwaitingUser($user);
|
2012-03-13 19:18:01 +01:00
|
|
|
$query->needCommitData(true);
|
2012-02-27 18:48:18 +01:00
|
|
|
$query->setLimit(10);
|
|
|
|
|
|
|
|
$audits = $query->execute();
|
2012-03-13 19:18:01 +01:00
|
|
|
$commits = $query->getCommits();
|
2012-02-27 18:48:18 +01:00
|
|
|
|
|
|
|
if (!$audits) {
|
2012-02-29 06:10:39 +01:00
|
|
|
return $this->renderMinipanel(
|
|
|
|
'No Audits',
|
|
|
|
'No commits are waiting for you to audit them.');
|
2012-02-27 18:48:18 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
$view = new PhabricatorAuditListView();
|
|
|
|
$view->setAudits($audits);
|
2012-03-13 19:18:01 +01:00
|
|
|
$view->setCommits($commits);
|
2012-07-24 01:11:35 +02:00
|
|
|
$view->setUser($user);
|
2012-02-27 18:48:18 +01:00
|
|
|
|
|
|
|
$phids = $view->getRequiredHandlePHIDs();
|
2012-09-05 04:02:56 +02:00
|
|
|
$handles = $this->loadViewerHandles($phids);
|
2012-02-27 18:48:18 +01:00
|
|
|
$view->setHandles($handles);
|
|
|
|
|
2014-01-21 23:23:36 +01:00
|
|
|
$title = pht('Audits');
|
|
|
|
$href = '/audit/';
|
2012-02-27 18:48:18 +01:00
|
|
|
$panel = new AphrontPanelView();
|
2014-01-21 23:23:36 +01:00
|
|
|
$panel->setHeader($this->renderSectionHeader($title, $href));
|
2012-02-27 18:48:18 +01:00
|
|
|
$panel->appendChild($view);
|
2013-01-17 23:02:18 +01:00
|
|
|
$panel->setNoBackground();
|
2012-02-27 18:48:18 +01:00
|
|
|
|
|
|
|
return $panel;
|
|
|
|
}
|
|
|
|
|
2012-02-29 06:10:39 +01:00
|
|
|
public function buildCommitPanel() {
|
|
|
|
$request = $this->getRequest();
|
|
|
|
$user = $request->getUser();
|
|
|
|
|
|
|
|
$phids = array($user->getPHID());
|
|
|
|
|
|
|
|
$query = new PhabricatorAuditCommitQuery();
|
|
|
|
$query->withAuthorPHIDs($phids);
|
2013-03-02 01:42:03 +01:00
|
|
|
$query->withStatus(PhabricatorAuditCommitQuery::STATUS_CONCERN);
|
2012-02-29 06:10:39 +01:00
|
|
|
$query->needCommitData(true);
|
|
|
|
$query->setLimit(10);
|
|
|
|
|
|
|
|
$commits = $query->execute();
|
|
|
|
|
|
|
|
if (!$commits) {
|
|
|
|
return $this->renderMinipanel(
|
|
|
|
'No Problem Commits',
|
|
|
|
'No one has raised concerns with your commits.');
|
|
|
|
}
|
|
|
|
|
|
|
|
$view = new PhabricatorAuditCommitListView();
|
|
|
|
$view->setCommits($commits);
|
|
|
|
$view->setUser($user);
|
|
|
|
|
|
|
|
$phids = $view->getRequiredHandlePHIDs();
|
2012-09-05 04:02:56 +02:00
|
|
|
$handles = $this->loadViewerHandles($phids);
|
2012-02-29 06:10:39 +01:00
|
|
|
$view->setHandles($handles);
|
|
|
|
|
2014-01-21 23:23:36 +01:00
|
|
|
$title = pht('Problem Commits');
|
|
|
|
$href = '/audit/';
|
2012-02-29 06:10:39 +01:00
|
|
|
$panel = new AphrontPanelView();
|
2014-01-21 23:23:36 +01:00
|
|
|
$panel->setHeader($this->renderSectionHeader($title, $href));
|
2012-02-29 06:10:39 +01:00
|
|
|
$panel->appendChild($view);
|
2013-01-17 23:02:18 +01:00
|
|
|
$panel->setNoBackground();
|
2012-02-29 06:10:39 +01:00
|
|
|
|
|
|
|
return $panel;
|
|
|
|
}
|
|
|
|
|
2011-01-16 22:51:39 +01:00
|
|
|
}
|