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',
|
||||
'PhabricatorCalendarHolidayTestCase' => 'applications/calendar/storage/__tests__/PhabricatorCalendarHolidayTestCase.php',
|
||||
'PhabricatorCalendarPHIDTypeEvent' => 'applications/calendar/phid/PhabricatorCalendarPHIDTypeEvent.php',
|
||||
'PhabricatorCalendarViewController' => 'applications/calendar/controller/PhabricatorCalendarViewController.php',
|
||||
'PhabricatorCampfireProtocolAdapter' => 'infrastructure/daemon/bot/adapter/PhabricatorCampfireProtocolAdapter.php',
|
||||
'PhabricatorChangeParserTestCase' => 'applications/repository/worker/__tests__/PhabricatorChangeParserTestCase.php',
|
||||
'PhabricatorChangesetResponse' => 'infrastructure/diff/PhabricatorChangesetResponse.php',
|
||||
|
@ -4032,6 +4033,7 @@ phutil_register_library_map(array(
|
|||
'PhabricatorCalendarHoliday' => 'PhabricatorCalendarDAO',
|
||||
'PhabricatorCalendarHolidayTestCase' => 'PhabricatorTestCase',
|
||||
'PhabricatorCalendarPHIDTypeEvent' => 'PhabricatorPHIDType',
|
||||
'PhabricatorCalendarViewController' => 'PhabricatorCalendarController',
|
||||
'PhabricatorCampfireProtocolAdapter' => 'PhabricatorBotBaseStreamingProtocolAdapter',
|
||||
'PhabricatorChangeParserTestCase' => 'PhabricatorWorkingCopyTestCase',
|
||||
'PhabricatorChangesetResponse' => 'AphrontProxyResponse',
|
||||
|
|
|
@ -35,7 +35,8 @@ final class PhabricatorApplicationCalendar extends PhabricatorApplication {
|
|||
public function getRoutes() {
|
||||
return array(
|
||||
'/calendar/' => array(
|
||||
'' => 'PhabricatorCalendarBrowseController',
|
||||
'' => 'PhabricatorCalendarViewController',
|
||||
'all/' => 'PhabricatorCalendarBrowseController',
|
||||
'event/' => array(
|
||||
'(?:query/(?P<queryKey>[^/]+)/)?' =>
|
||||
'PhabricatorCalendarEventListController',
|
||||
|
|
|
@ -73,14 +73,14 @@ final class PhabricatorCalendarBrowseController
|
|||
|
||||
$date = new DateTime("{$year}-{$month}-01");
|
||||
$crumbs = $this->buildApplicationCrumbs();
|
||||
$crumbs->addTextCrumb(pht('All Events'));
|
||||
$crumbs->addTextCrumb($date->format('F Y'));
|
||||
|
||||
$nav = $this->buildSideNavView();
|
||||
$nav->selectFilter('/');
|
||||
$nav->selectFilter('all/');
|
||||
$nav->appendChild(
|
||||
array(
|
||||
$crumbs,
|
||||
$this->getNoticeView(),
|
||||
$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->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'));
|
||||
|
||||
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