mirror of
https://we.phorge.it/source/phorge.git
synced 2024-11-19 21:32:43 +01:00
Make "My Events" default on Calendar
Summary: Moves Browse to "View All" and makes "My Events" the default on Calendar. Test Plan: Browse both pages. Reviewers: btrahan, epriestley Reviewed By: epriestley CC: Korvin, epriestley, aran Differential Revision: https://secure.phabricator.com/D8397
This commit is contained in:
parent
e78df59ced
commit
dd60f25232
5 changed files with 105 additions and 25 deletions
|
@ -1317,6 +1317,7 @@ phutil_register_library_map(array(
|
||||||
'PhabricatorCalendarHoliday' => 'applications/calendar/storage/PhabricatorCalendarHoliday.php',
|
'PhabricatorCalendarHoliday' => 'applications/calendar/storage/PhabricatorCalendarHoliday.php',
|
||||||
'PhabricatorCalendarHolidayTestCase' => 'applications/calendar/storage/__tests__/PhabricatorCalendarHolidayTestCase.php',
|
'PhabricatorCalendarHolidayTestCase' => 'applications/calendar/storage/__tests__/PhabricatorCalendarHolidayTestCase.php',
|
||||||
'PhabricatorCalendarPHIDTypeEvent' => 'applications/calendar/phid/PhabricatorCalendarPHIDTypeEvent.php',
|
'PhabricatorCalendarPHIDTypeEvent' => 'applications/calendar/phid/PhabricatorCalendarPHIDTypeEvent.php',
|
||||||
|
'PhabricatorCalendarViewController' => 'applications/calendar/controller/PhabricatorCalendarViewController.php',
|
||||||
'PhabricatorCampfireProtocolAdapter' => 'infrastructure/daemon/bot/adapter/PhabricatorCampfireProtocolAdapter.php',
|
'PhabricatorCampfireProtocolAdapter' => 'infrastructure/daemon/bot/adapter/PhabricatorCampfireProtocolAdapter.php',
|
||||||
'PhabricatorChangeParserTestCase' => 'applications/repository/worker/__tests__/PhabricatorChangeParserTestCase.php',
|
'PhabricatorChangeParserTestCase' => 'applications/repository/worker/__tests__/PhabricatorChangeParserTestCase.php',
|
||||||
'PhabricatorChangesetResponse' => 'infrastructure/diff/PhabricatorChangesetResponse.php',
|
'PhabricatorChangesetResponse' => 'infrastructure/diff/PhabricatorChangesetResponse.php',
|
||||||
|
@ -4032,6 +4033,7 @@ phutil_register_library_map(array(
|
||||||
'PhabricatorCalendarHoliday' => 'PhabricatorCalendarDAO',
|
'PhabricatorCalendarHoliday' => 'PhabricatorCalendarDAO',
|
||||||
'PhabricatorCalendarHolidayTestCase' => 'PhabricatorTestCase',
|
'PhabricatorCalendarHolidayTestCase' => 'PhabricatorTestCase',
|
||||||
'PhabricatorCalendarPHIDTypeEvent' => 'PhabricatorPHIDType',
|
'PhabricatorCalendarPHIDTypeEvent' => 'PhabricatorPHIDType',
|
||||||
|
'PhabricatorCalendarViewController' => 'PhabricatorCalendarController',
|
||||||
'PhabricatorCampfireProtocolAdapter' => 'PhabricatorBotBaseStreamingProtocolAdapter',
|
'PhabricatorCampfireProtocolAdapter' => 'PhabricatorBotBaseStreamingProtocolAdapter',
|
||||||
'PhabricatorChangeParserTestCase' => 'PhabricatorWorkingCopyTestCase',
|
'PhabricatorChangeParserTestCase' => 'PhabricatorWorkingCopyTestCase',
|
||||||
'PhabricatorChangesetResponse' => 'AphrontProxyResponse',
|
'PhabricatorChangesetResponse' => 'AphrontProxyResponse',
|
||||||
|
|
|
@ -35,7 +35,8 @@ final class PhabricatorApplicationCalendar extends PhabricatorApplication {
|
||||||
public function getRoutes() {
|
public function getRoutes() {
|
||||||
return array(
|
return array(
|
||||||
'/calendar/' => array(
|
'/calendar/' => array(
|
||||||
'' => 'PhabricatorCalendarBrowseController',
|
'' => 'PhabricatorCalendarViewController',
|
||||||
|
'all/' => 'PhabricatorCalendarBrowseController',
|
||||||
'event/' => array(
|
'event/' => array(
|
||||||
'(?:query/(?P<queryKey>[^/]+)/)?' =>
|
'(?:query/(?P<queryKey>[^/]+)/)?' =>
|
||||||
'PhabricatorCalendarEventListController',
|
'PhabricatorCalendarEventListController',
|
||||||
|
|
|
@ -73,14 +73,14 @@ final class PhabricatorCalendarBrowseController
|
||||||
|
|
||||||
$date = new DateTime("{$year}-{$month}-01");
|
$date = new DateTime("{$year}-{$month}-01");
|
||||||
$crumbs = $this->buildApplicationCrumbs();
|
$crumbs = $this->buildApplicationCrumbs();
|
||||||
|
$crumbs->addTextCrumb(pht('All Events'));
|
||||||
$crumbs->addTextCrumb($date->format('F Y'));
|
$crumbs->addTextCrumb($date->format('F Y'));
|
||||||
|
|
||||||
$nav = $this->buildSideNavView();
|
$nav = $this->buildSideNavView();
|
||||||
$nav->selectFilter('/');
|
$nav->selectFilter('all/');
|
||||||
$nav->appendChild(
|
$nav->appendChild(
|
||||||
array(
|
array(
|
||||||
$crumbs,
|
$crumbs,
|
||||||
$this->getNoticeView(),
|
|
||||||
$month_view,
|
$month_view,
|
||||||
));
|
));
|
||||||
|
|
||||||
|
@ -92,25 +92,4 @@ final class PhabricatorCalendarBrowseController
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
private function getNoticeView() {
|
|
||||||
$request = $this->getRequest();
|
|
||||||
$view = null;
|
|
||||||
|
|
||||||
if ($request->getExists('created')) {
|
|
||||||
$view = id(new AphrontErrorView())
|
|
||||||
->setSeverity(AphrontErrorView::SEVERITY_NOTICE)
|
|
||||||
->setTitle(pht('Successfully created your status.'));
|
|
||||||
} else if ($request->getExists('updated')) {
|
|
||||||
$view = id(new AphrontErrorView())
|
|
||||||
->setSeverity(AphrontErrorView::SEVERITY_NOTICE)
|
|
||||||
->setTitle(pht('Successfully updated your status.'));
|
|
||||||
} else if ($request->getExists('deleted')) {
|
|
||||||
$view = id(new AphrontErrorView())
|
|
||||||
->setSeverity(AphrontErrorView::SEVERITY_NOTICE)
|
|
||||||
->setTitle(pht('Successfully deleted your status.'));
|
|
||||||
}
|
|
||||||
|
|
||||||
return $view;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,7 +8,8 @@ abstract class PhabricatorCalendarController extends PhabricatorController {
|
||||||
$nav->setBaseURI(new PhutilURI($this->getApplicationURI()));
|
$nav->setBaseURI(new PhutilURI($this->getApplicationURI()));
|
||||||
|
|
||||||
$nav->addLabel(pht('Calendar'));
|
$nav->addLabel(pht('Calendar'));
|
||||||
$nav->addFilter('/', pht('View All'));
|
$nav->addFilter('/', pht('My Events'));
|
||||||
|
$nav->addFilter('all/', pht('View All'));
|
||||||
$nav->addFilter('event/create/', pht('Create Event'));
|
$nav->addFilter('event/create/', pht('Create Event'));
|
||||||
|
|
||||||
if ($status && $status->getID()) {
|
if ($status && $status->getID()) {
|
||||||
|
|
|
@ -0,0 +1,97 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
final class PhabricatorCalendarViewController
|
||||||
|
extends PhabricatorCalendarController {
|
||||||
|
|
||||||
|
public function processRequest() {
|
||||||
|
$user = $this->getRequest()->getUser();
|
||||||
|
|
||||||
|
$now = time();
|
||||||
|
$request = $this->getRequest();
|
||||||
|
$year_d = phabricator_format_local_time($now, $user, 'Y');
|
||||||
|
$year = $request->getInt('year', $year_d);
|
||||||
|
$month_d = phabricator_format_local_time($now, $user, 'm');
|
||||||
|
$month = $request->getInt('month', $month_d);
|
||||||
|
$day = phabricator_format_local_time($now, $user, 'j');
|
||||||
|
|
||||||
|
|
||||||
|
$holidays = id(new PhabricatorCalendarHoliday())->loadAllWhere(
|
||||||
|
'day BETWEEN %s AND %s',
|
||||||
|
"{$year}-{$month}-01",
|
||||||
|
"{$year}-{$month}-31");
|
||||||
|
|
||||||
|
$statuses = id(new PhabricatorCalendarEventQuery())
|
||||||
|
->setViewer($user)
|
||||||
|
->withInvitedPHIDs(array($user->getPHID()))
|
||||||
|
->withDateRange(
|
||||||
|
strtotime("{$year}-{$month}-01"),
|
||||||
|
strtotime("{$year}-{$month}-01 next month"))
|
||||||
|
->execute();
|
||||||
|
|
||||||
|
if ($month == $month_d && $year == $year_d) {
|
||||||
|
$month_view = new PHUICalendarMonthView($month, $year, $day);
|
||||||
|
} else {
|
||||||
|
$month_view = new PHUICalendarMonthView($month, $year);
|
||||||
|
}
|
||||||
|
|
||||||
|
$month_view->setBrowseURI($request->getRequestURI());
|
||||||
|
$month_view->setUser($user);
|
||||||
|
$month_view->setHolidays($holidays);
|
||||||
|
|
||||||
|
$phids = mpull($statuses, 'getUserPHID');
|
||||||
|
$handles = $this->loadViewerHandles($phids);
|
||||||
|
|
||||||
|
foreach ($statuses as $status) {
|
||||||
|
$event = new AphrontCalendarEventView();
|
||||||
|
$event->setEpochRange($status->getDateFrom(), $status->getDateTo());
|
||||||
|
$event->setUserPHID($status->getUserPHID());
|
||||||
|
$event->setName($status->getHumanStatus());
|
||||||
|
$event->setDescription($status->getDescription());
|
||||||
|
$event->setEventID($status->getID());
|
||||||
|
$month_view->addEvent($event);
|
||||||
|
}
|
||||||
|
|
||||||
|
$date = new DateTime("{$year}-{$month}-01");
|
||||||
|
$crumbs = $this->buildApplicationCrumbs();
|
||||||
|
$crumbs->addTextCrumb(pht('My Events'));
|
||||||
|
$crumbs->addTextCrumb($date->format('F Y'));
|
||||||
|
|
||||||
|
$nav = $this->buildSideNavView();
|
||||||
|
$nav->selectFilter('/');
|
||||||
|
$nav->appendChild(
|
||||||
|
array(
|
||||||
|
$crumbs,
|
||||||
|
$this->getNoticeView(),
|
||||||
|
$month_view,
|
||||||
|
));
|
||||||
|
|
||||||
|
return $this->buildApplicationPage(
|
||||||
|
$nav,
|
||||||
|
array(
|
||||||
|
'title' => pht('Calendar'),
|
||||||
|
'device' => true,
|
||||||
|
));
|
||||||
|
}
|
||||||
|
|
||||||
|
private function getNoticeView() {
|
||||||
|
$request = $this->getRequest();
|
||||||
|
$view = null;
|
||||||
|
|
||||||
|
if ($request->getExists('created')) {
|
||||||
|
$view = id(new AphrontErrorView())
|
||||||
|
->setSeverity(AphrontErrorView::SEVERITY_NOTICE)
|
||||||
|
->setTitle(pht('Successfully created your status.'));
|
||||||
|
} else if ($request->getExists('updated')) {
|
||||||
|
$view = id(new AphrontErrorView())
|
||||||
|
->setSeverity(AphrontErrorView::SEVERITY_NOTICE)
|
||||||
|
->setTitle(pht('Successfully updated your status.'));
|
||||||
|
} else if ($request->getExists('deleted')) {
|
||||||
|
$view = id(new AphrontErrorView())
|
||||||
|
->setSeverity(AphrontErrorView::SEVERITY_NOTICE)
|
||||||
|
->setTitle(pht('Successfully deleted your status.'));
|
||||||
|
}
|
||||||
|
|
||||||
|
return $view;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in a new issue