Page Menu
Home
Phabricator
Search
Configure Global Search
Log In
Files
F14833822
D16283.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
27 KB
Referenced Files
None
Subscribers
None
D16283.diff
View Options
diff --git a/src/__phutil_library_map__.php b/src/__phutil_library_map__.php
--- a/src/__phutil_library_map__.php
+++ b/src/__phutil_library_map__.php
@@ -2024,7 +2024,6 @@
'PhabricatorCalendarEventCancelController' => 'applications/calendar/controller/PhabricatorCalendarEventCancelController.php',
'PhabricatorCalendarEventDragController' => 'applications/calendar/controller/PhabricatorCalendarEventDragController.php',
'PhabricatorCalendarEventEditController' => 'applications/calendar/controller/PhabricatorCalendarEventEditController.php',
- 'PhabricatorCalendarEventEditProController' => 'applications/calendar/controller/PhabricatorCalendarEventEditProController.php',
'PhabricatorCalendarEventEditor' => 'applications/calendar/editor/PhabricatorCalendarEventEditor.php',
'PhabricatorCalendarEventEmailCommand' => 'applications/calendar/command/PhabricatorCalendarEventEmailCommand.php',
'PhabricatorCalendarEventFulltextEngine' => 'applications/calendar/search/PhabricatorCalendarEventFulltextEngine.php',
@@ -6633,7 +6632,6 @@
'PhabricatorCalendarEventCancelController' => 'PhabricatorCalendarController',
'PhabricatorCalendarEventDragController' => 'PhabricatorCalendarController',
'PhabricatorCalendarEventEditController' => 'PhabricatorCalendarController',
- 'PhabricatorCalendarEventEditProController' => 'PhabricatorCalendarController',
'PhabricatorCalendarEventEditor' => 'PhabricatorApplicationTransactionEditor',
'PhabricatorCalendarEventEmailCommand' => 'MetaMTAEmailTransactionCommand',
'PhabricatorCalendarEventFulltextEngine' => 'PhabricatorFulltextEngine',
diff --git a/src/applications/calendar/application/PhabricatorCalendarApplication.php b/src/applications/calendar/application/PhabricatorCalendarApplication.php
--- a/src/applications/calendar/application/PhabricatorCalendarApplication.php
+++ b/src/applications/calendar/application/PhabricatorCalendarApplication.php
@@ -47,11 +47,7 @@
'(?P<month>\d+)/)?(?:(?P<day>\d+)/)?)?'
=> 'PhabricatorCalendarEventListController',
'event/' => array(
- $this->getEditRoutePattern('editpro/')
- => 'PhabricatorCalendarEventEditProController',
- 'create/'
- => 'PhabricatorCalendarEventEditController',
- 'edit/(?P<id>[1-9]\d*)/'
+ $this->getEditRoutePattern('edit/')
=> 'PhabricatorCalendarEventEditController',
'drag/(?P<id>[1-9]\d*)/'
=> 'PhabricatorCalendarEventDragController',
@@ -59,8 +55,6 @@
=> 'PhabricatorCalendarEventCancelController',
'(?P<action>join|decline|accept)/(?P<id>[1-9]\d*)/'
=> 'PhabricatorCalendarEventJoinController',
- 'comment/(?P<id>[1-9]\d*)/'
- => 'PhabricatorCalendarEventCommentController',
),
),
);
diff --git a/src/applications/calendar/controller/PhabricatorCalendarController.php b/src/applications/calendar/controller/PhabricatorCalendarController.php
--- a/src/applications/calendar/controller/PhabricatorCalendarController.php
+++ b/src/applications/calendar/controller/PhabricatorCalendarController.php
@@ -2,32 +2,4 @@
abstract class PhabricatorCalendarController extends PhabricatorController {
- protected function buildApplicationCrumbs() {
- $crumbs = parent::buildApplicationCrumbs();
-
- $actions = id(new PhabricatorActionListView())
- ->setUser($this->getViewer())
- ->addAction(
- id(new PhabricatorActionView())
- ->setName(pht('Create Event'))
- ->setHref('/calendar/event/create/'))
- ->addAction(
- id(new PhabricatorActionView())
- ->setName(pht('Create Public Event'))
- ->setHref('/calendar/event/create/?mode=public'))
- ->addAction(
- id(new PhabricatorActionView())
- ->setName(pht('Create Recurring Event'))
- ->setHref('/calendar/event/create/?mode=recurring'));
-
- $crumbs->addAction(
- id(new PHUIListItemView())
- ->setName(pht('Create Event'))
- ->setHref($this->getApplicationURI().'event/create/')
- ->setIcon('fa-plus-square')
- ->setDropdownMenu($actions));
-
- return $crumbs;
- }
-
}
diff --git a/src/applications/calendar/controller/PhabricatorCalendarEventEditController.php b/src/applications/calendar/controller/PhabricatorCalendarEventEditController.php
--- a/src/applications/calendar/controller/PhabricatorCalendarEventEditController.php
+++ b/src/applications/calendar/controller/PhabricatorCalendarEventEditController.php
@@ -3,576 +3,10 @@
final class PhabricatorCalendarEventEditController
extends PhabricatorCalendarController {
- private $id;
-
- public function isCreate() {
- return !$this->id;
- }
-
public function handleRequest(AphrontRequest $request) {
- $viewer = $request->getViewer();
- $user_phid = $viewer->getPHID();
- $this->id = $request->getURIData('id');
-
- $error_name = true;
- $error_recurrence_end_date = null;
- $error_start_date = true;
- $error_end_date = true;
- $validation_exception = null;
-
- $is_recurring_id = celerity_generate_unique_node_id();
- $recurrence_end_date_id = celerity_generate_unique_node_id();
- $frequency_id = celerity_generate_unique_node_id();
- $all_day_id = celerity_generate_unique_node_id();
- $start_date_id = celerity_generate_unique_node_id();
- $end_date_id = celerity_generate_unique_node_id();
-
- $next_workflow = $request->getStr('next');
- $uri_query = $request->getStr('query');
-
- if ($this->isCreate()) {
- $mode = $request->getStr('mode');
- $event = PhabricatorCalendarEvent::initializeNewCalendarEvent(
- $viewer,
- $mode);
-
- $create_start_year = $request->getInt('year');
- $create_start_month = $request->getInt('month');
- $create_start_day = $request->getInt('day');
- $create_start_time = $request->getStr('time');
-
- if ($create_start_year) {
- $start = AphrontFormDateControlValue::newFromParts(
- $viewer,
- $create_start_year,
- $create_start_month,
- $create_start_day,
- $create_start_time);
- if (!$start->isValid()) {
- return new Aphront400Response();
- }
- $start_value = AphrontFormDateControlValue::newFromEpoch(
- $viewer,
- $start->getEpoch());
-
- $end = clone $start_value->getDateTime();
- $end->modify('+1 hour');
- $end_value = AphrontFormDateControlValue::newFromEpoch(
- $viewer,
- $end->format('U'));
-
- } else {
- list($start_value, $end_value) = $this->getDefaultTimeValues($viewer);
- }
-
- $recurrence_end_date_value = clone $end_value;
- $recurrence_end_date_value->setOptional(true);
-
- $submit_label = pht('Create');
- $title = pht('Create Event');
- $header_icon = 'fa-plus-square';
- $redirect = 'created';
- $subscribers = array();
- $invitees = array($user_phid);
- $cancel_uri = $this->getApplicationURI();
- } else {
- $event = id(new PhabricatorCalendarEventQuery())
- ->setViewer($viewer)
- ->withIDs(array($this->id))
- ->requireCapabilities(
- array(
- PhabricatorPolicyCapability::CAN_VIEW,
- PhabricatorPolicyCapability::CAN_EDIT,
- ))
- ->executeOne();
- if (!$event) {
- return new Aphront404Response();
- }
-
- $end_value = AphrontFormDateControlValue::newFromEpoch(
- $viewer,
- $event->getViewerDateTo());
- $start_value = AphrontFormDateControlValue::newFromEpoch(
- $viewer,
- $event->getViewerDateFrom());
- $recurrence_end_date_value = id(clone $end_value)
- ->setOptional(true);
-
- $submit_label = pht('Update');
- $title = pht('Edit Event: %s', $event->getName());
- $header_icon = 'fa-pencil';
-
- $subscribers = PhabricatorSubscribersQuery::loadSubscribersForPHID(
- $event->getPHID());
-
- $invitees = $event->getInviteePHIDsForEdit();
- $cancel_uri = $event->getURI();
- }
-
- if ($this->isCreate()) {
- $projects = array();
- } else {
- $projects = PhabricatorEdgeQuery::loadDestinationPHIDs(
- $event->getPHID(),
- PhabricatorProjectObjectHasProjectEdgeType::EDGECONST);
- $projects = array_reverse($projects);
- }
-
- $name = $event->getName();
- $description = $event->getDescription();
- $is_all_day = $event->getIsAllDay();
- $is_recurring = $event->getIsRecurring();
- $is_parent = $event->isParentEvent();
- $frequency = idx($event->getRecurrenceFrequency(), 'rule');
- $icon = $event->getIcon();
- $edit_policy = $event->getEditPolicy();
- $view_policy = $event->getViewPolicy();
- $space = $event->getSpacePHID();
-
-
- if ($request->isFormPost()) {
- $is_all_day = $request->getStr('isAllDay');
-
- if ($is_all_day) {
- // TODO: This is a very gross temporary hack to get this working
- // reasonably: if this is an all day event, force the viewer's
- // timezone to UTC so the date controls get interpreted as UTC.
- $viewer->overrideTimezoneIdentifier('UTC');
- }
-
- $xactions = array();
- $name = $request->getStr('name');
-
- $start_value = AphrontFormDateControlValue::newFromRequest(
- $request,
- 'start');
- $end_value = AphrontFormDateControlValue::newFromRequest(
- $request,
- 'end');
- $recurrence_end_date_value = AphrontFormDateControlValue::newFromRequest(
- $request,
- 'recurrenceEndDate');
- $recurrence_end_date_value->setOptional(true);
- $projects = $request->getArr('projects');
- $description = $request->getStr('description');
- $subscribers = $request->getArr('subscribers');
- $edit_policy = $request->getStr('editPolicy');
- $view_policy = $request->getStr('viewPolicy');
- $space = $request->getStr('spacePHID');
- $is_recurring = $request->getStr('isRecurring') ? 1 : 0;
- $frequency = $request->getStr('frequency');
- $icon = $request->getStr('icon');
-
- $invitees = $request->getArr('invitees');
-
- $xactions[] = id(new PhabricatorCalendarEventTransaction())
- ->setTransactionType(
- PhabricatorCalendarEventTransaction::TYPE_NAME)
- ->setNewValue($name);
-
- if ($is_recurring && $this->isCreate()) {
- $xactions[] = id(new PhabricatorCalendarEventTransaction())
- ->setTransactionType(
- PhabricatorCalendarEventTransaction::TYPE_RECURRING)
- ->setNewValue($is_recurring);
-
- $xactions[] = id(new PhabricatorCalendarEventTransaction())
- ->setTransactionType(
- PhabricatorCalendarEventTransaction::TYPE_FREQUENCY)
- ->setNewValue(array('rule' => $frequency));
-
- if (!$recurrence_end_date_value->isDisabled()) {
- $xactions[] = id(new PhabricatorCalendarEventTransaction())
- ->setTransactionType(
- PhabricatorCalendarEventTransaction::TYPE_RECURRENCE_END_DATE)
- ->setNewValue($recurrence_end_date_value);
- }
- }
-
- if (($is_recurring && $this->isCreate()) || !$is_parent) {
- $xactions[] = id(new PhabricatorCalendarEventTransaction())
- ->setTransactionType(
- PhabricatorCalendarEventTransaction::TYPE_ALL_DAY)
- ->setNewValue($is_all_day);
-
- $xactions[] = id(new PhabricatorCalendarEventTransaction())
- ->setTransactionType(
- PhabricatorCalendarEventTransaction::TYPE_ICON)
- ->setNewValue($icon);
-
- $xactions[] = id(new PhabricatorCalendarEventTransaction())
- ->setTransactionType(
- PhabricatorCalendarEventTransaction::TYPE_START_DATE)
- ->setNewValue($start_value);
-
- $xactions[] = id(new PhabricatorCalendarEventTransaction())
- ->setTransactionType(
- PhabricatorCalendarEventTransaction::TYPE_END_DATE)
- ->setNewValue($end_value);
- }
-
-
- $xactions[] = id(new PhabricatorCalendarEventTransaction())
- ->setTransactionType(
- PhabricatorTransactions::TYPE_SUBSCRIBERS)
- ->setNewValue(array('=' => array_fuse($subscribers)));
-
- $xactions[] = id(new PhabricatorCalendarEventTransaction())
- ->setTransactionType(
- PhabricatorCalendarEventTransaction::TYPE_INVITE)
- ->setNewValue($invitees);
-
- $xactions[] = id(new PhabricatorCalendarEventTransaction())
- ->setTransactionType(
- PhabricatorCalendarEventTransaction::TYPE_DESCRIPTION)
- ->setNewValue($description);
-
- $xactions[] = id(new PhabricatorCalendarEventTransaction())
- ->setTransactionType(PhabricatorTransactions::TYPE_VIEW_POLICY)
- ->setNewValue($request->getStr('viewPolicy'));
-
- $xactions[] = id(new PhabricatorCalendarEventTransaction())
- ->setTransactionType(PhabricatorTransactions::TYPE_EDIT_POLICY)
- ->setNewValue($request->getStr('editPolicy'));
-
- $xactions[] = id(new PhabricatorCalendarEventTransaction())
- ->setTransactionType(PhabricatorTransactions::TYPE_SPACE)
- ->setNewValue($space);
-
- $editor = id(new PhabricatorCalendarEventEditor())
- ->setActor($viewer)
- ->setContentSourceFromRequest($request)
- ->setContinueOnNoEffect(true);
-
- try {
- $proj_edge_type = PhabricatorProjectObjectHasProjectEdgeType::EDGECONST;
- $xactions[] = id(new PhabricatorCalendarEventTransaction())
- ->setTransactionType(PhabricatorTransactions::TYPE_EDGE)
- ->setMetadataValue('edge:type', $proj_edge_type)
- ->setNewValue(array('=' => array_fuse($projects)));
-
- $xactions = $editor->applyTransactions($event, $xactions);
- $response = id(new AphrontRedirectResponse());
- switch ($next_workflow) {
- case 'day':
- if (!$uri_query) {
- $uri_query = 'month';
- }
- $year = $start_value->getDateTime()->format('Y');
- $month = $start_value->getDateTime()->format('m');
- $day = $start_value->getDateTime()->format('d');
- $response->setURI(
- '/calendar/query/'.$uri_query.'/'.$year.'/'.$month.'/'.$day.'/');
- break;
- default:
- $response->setURI('/E'.$event->getID());
- break;
- }
- return $response;
- } catch (PhabricatorApplicationTransactionValidationException $ex) {
- $validation_exception = $ex;
- $error_name = $ex->getShortMessage(
- PhabricatorCalendarEventTransaction::TYPE_NAME);
- $error_start_date = $ex->getShortMessage(
- PhabricatorCalendarEventTransaction::TYPE_START_DATE);
- $error_end_date = $ex->getShortMessage(
- PhabricatorCalendarEventTransaction::TYPE_END_DATE);
- $error_recurrence_end_date = $ex->getShortMessage(
- PhabricatorCalendarEventTransaction::TYPE_RECURRENCE_END_DATE);
- }
- }
-
- $is_recurring_checkbox = null;
- $recurrence_end_date_control = null;
- $recurrence_frequency_select = null;
-
- $all_day_checkbox = null;
- $start_control = null;
- $end_control = null;
-
- $recurring_date_edit_label = null;
-
- $current_policies = id(new PhabricatorPolicyQuery())
- ->setViewer($viewer)
- ->setObject($event)
- ->execute();
-
- $name = id(new AphrontFormTextControl())
- ->setLabel(pht('Name'))
- ->setName('name')
- ->setValue($name)
- ->setError($error_name);
-
- if ($this->isCreate()) {
- Javelin::initBehavior('recurring-edit', array(
- 'isRecurring' => $is_recurring_id,
- 'frequency' => $frequency_id,
- 'recurrenceEndDate' => $recurrence_end_date_id,
- ));
-
- $is_recurring_checkbox = id(new AphrontFormCheckboxControl())
- ->addCheckbox(
- 'isRecurring',
- 1,
- pht('Recurring Event'),
- $is_recurring,
- $is_recurring_id);
-
- $recurrence_end_date_control = id(new AphrontFormDateControl())
- ->setUser($viewer)
- ->setName('recurrenceEndDate')
- ->setLabel(pht('Recurrence End Date'))
- ->setError($error_recurrence_end_date)
- ->setValue($recurrence_end_date_value)
- ->setID($recurrence_end_date_id)
- ->setIsTimeDisabled(true)
- ->setIsDisabled($recurrence_end_date_value->isDisabled())
- ->setAllowNull(true);
-
- $recurrence_frequency_select = id(new AphrontFormSelectControl())
- ->setName('frequency')
- ->setOptions(array(
- PhabricatorCalendarEvent::FREQUENCY_DAILY => pht('Daily'),
- PhabricatorCalendarEvent::FREQUENCY_WEEKLY => pht('Weekly'),
- PhabricatorCalendarEvent::FREQUENCY_MONTHLY => pht('Monthly'),
- PhabricatorCalendarEvent::FREQUENCY_YEARLY => pht('Yearly'),
- ))
- ->setValue($frequency)
- ->setLabel(pht('Recurring Event Frequency'))
- ->setID($frequency_id)
- ->setDisabled(!$is_recurring);
- }
-
- if ($this->isCreate() || (!$is_parent && !$this->isCreate())) {
- Javelin::initBehavior('event-all-day', array(
- 'allDayID' => $all_day_id,
- 'startDateID' => $start_date_id,
- 'endDateID' => $end_date_id,
- ));
-
- $all_day_checkbox = id(new AphrontFormCheckboxControl())
- ->addCheckbox(
- 'isAllDay',
- 1,
- pht('All Day Event'),
- $is_all_day,
- $all_day_id);
-
- $start_control = id(new AphrontFormDateControl())
- ->setUser($viewer)
- ->setName('start')
- ->setLabel(pht('Start'))
- ->setError($error_start_date)
- ->setValue($start_value)
- ->setID($start_date_id)
- ->setIsTimeDisabled($is_all_day)
- ->setEndDateID($end_date_id);
-
- $end_control = id(new AphrontFormDateControl())
- ->setUser($viewer)
- ->setName('end')
- ->setLabel(pht('End'))
- ->setError($error_end_date)
- ->setValue($end_value)
- ->setID($end_date_id)
- ->setIsTimeDisabled($is_all_day);
- } else if ($is_parent) {
- $recurring_date_edit_label = id(new AphrontFormStaticControl())
- ->setUser($viewer)
- ->setValue(pht('Date and time of recurring event cannot be edited.'));
-
- if (!$recurrence_end_date_value->isDisabled()) {
- $disabled_recurrence_end_date_value =
- $recurrence_end_date_value->getValueAsFormat('M d, Y');
- $recurrence_end_date_control = id(new AphrontFormStaticControl())
- ->setUser($viewer)
- ->setLabel(pht('Recurrence End Date'))
- ->setValue($disabled_recurrence_end_date_value)
- ->setDisabled(true);
- }
-
- $recurrence_frequency_select = id(new AphrontFormSelectControl())
- ->setName('frequency')
- ->setOptions(array(
- 'daily' => pht('Daily'),
- 'weekly' => pht('Weekly'),
- 'monthly' => pht('Monthly'),
- 'yearly' => pht('Yearly'),
- ))
- ->setValue($frequency)
- ->setLabel(pht('Recurring Event Frequency'))
- ->setID($frequency_id)
- ->setDisabled(true);
-
- $all_day_checkbox = id(new AphrontFormCheckboxControl())
- ->addCheckbox(
- 'isAllDay',
- 1,
- pht('All Day Event'),
- $is_all_day,
- $all_day_id)
- ->setDisabled(true);
-
- $start_disabled = $start_value->getValueAsFormat('M d, Y, g:i A');
- $end_disabled = $end_value->getValueAsFormat('M d, Y, g:i A');
-
- $start_control = id(new AphrontFormStaticControl())
- ->setUser($viewer)
- ->setLabel(pht('Start'))
- ->setValue($start_disabled)
- ->setDisabled(true);
-
- $end_control = id(new AphrontFormStaticControl())
- ->setUser($viewer)
- ->setLabel(pht('End'))
- ->setValue($end_disabled);
- }
-
- $projects = id(new AphrontFormTokenizerControl())
- ->setLabel(pht('Tags'))
- ->setName('projects')
- ->setValue($projects)
- ->setUser($viewer)
- ->setDatasource(new PhabricatorProjectDatasource());
-
- $description = id(new PhabricatorRemarkupControl())
- ->setLabel(pht('Description'))
- ->setName('description')
- ->setValue($description)
- ->setUser($viewer);
-
- $view_policies = id(new AphrontFormPolicyControl())
- ->setUser($viewer)
- ->setValue($view_policy)
- ->setCapability(PhabricatorPolicyCapability::CAN_VIEW)
- ->setPolicyObject($event)
- ->setPolicies($current_policies)
- ->setSpacePHID($space)
- ->setName('viewPolicy');
- $edit_policies = id(new AphrontFormPolicyControl())
- ->setUser($viewer)
- ->setValue($edit_policy)
- ->setCapability(PhabricatorPolicyCapability::CAN_EDIT)
- ->setPolicyObject($event)
- ->setPolicies($current_policies)
- ->setName('editPolicy');
-
- $subscribers = id(new AphrontFormTokenizerControl())
- ->setLabel(pht('Subscribers'))
- ->setName('subscribers')
- ->setValue($subscribers)
- ->setUser($viewer)
- ->setDatasource(new PhabricatorMetaMTAMailableDatasource());
-
- $invitees = id(new AphrontFormTokenizerControl())
- ->setLabel(pht('Invitees'))
- ->setName('invitees')
- ->setValue($invitees)
- ->setUser($viewer)
- ->setDatasource(new PhabricatorMetaMTAMailableDatasource());
-
- $icon = id(new PHUIFormIconSetControl())
- ->setLabel(pht('Icon'))
- ->setName('icon')
- ->setIconSet(new PhabricatorCalendarIconSet())
- ->setValue($icon);
-
- $form = id(new AphrontFormView())
- ->addHiddenInput('next', $next_workflow)
- ->addHiddenInput('query', $uri_query)
- ->setUser($viewer)
- ->appendChild($name);
-
- if ($recurring_date_edit_label) {
- $form->appendControl($recurring_date_edit_label);
- }
- if ($is_recurring_checkbox) {
- $form->appendChild($is_recurring_checkbox);
- }
- if ($recurrence_end_date_control) {
- $form->appendChild($recurrence_end_date_control);
- }
- if ($recurrence_frequency_select) {
- $form->appendControl($recurrence_frequency_select);
- }
-
- $form
- ->appendChild($all_day_checkbox)
- ->appendChild($start_control)
- ->appendChild($end_control)
- ->appendControl($view_policies)
- ->appendControl($edit_policies)
- ->appendControl($subscribers)
- ->appendControl($invitees)
- ->appendChild($projects)
- ->appendChild($description)
- ->appendChild($icon);
-
-
- if ($request->isAjax()) {
- return $this->newDialog()
- ->setTitle($title)
- ->setWidth(AphrontDialogView::WIDTH_FULL)
- ->appendForm($form)
- ->addCancelButton($cancel_uri)
- ->addSubmitButton($submit_label);
- }
-
- $submit = id(new AphrontFormSubmitControl())
- ->addCancelButton($cancel_uri)
- ->setValue($submit_label);
-
- $form->appendChild($submit);
-
- $form_box = id(new PHUIObjectBoxView())
- ->setHeaderText(pht('Event'))
- ->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
- ->setValidationException($validation_exception)
- ->setForm($form);
-
- $crumbs = $this->buildApplicationCrumbs();
-
- if (!$this->isCreate()) {
- $crumbs->addTextCrumb('E'.$event->getId(), '/E'.$event->getId());
- $crumb_title = pht('Edit Event');
- } else {
- $crumb_title = pht('Create Event');
- }
-
- $crumbs->addTextCrumb($crumb_title);
- $crumbs->setBorder(true);
-
- $header = id(new PHUIHeaderView())
- ->setHeader($title)
- ->setHeaderIcon($header_icon);
-
- $view = id(new PHUITwoColumnView())
- ->setHeader($header)
- ->setFooter($form_box);
-
- return $this->newPage()
- ->setTitle($title)
- ->setCrumbs($crumbs)
- ->appendChild($view);
- }
-
-
- private function getDefaultTimeValues($viewer) {
- $start = new DateTime('@'.time());
- $start->setTimeZone($viewer->getTimeZone());
-
- $start->setTime($start->format('H'), 0, 0);
- $start->modify('+1 hour');
- $end = id(clone $start)->modify('+1 hour');
-
- $start_value = AphrontFormDateControlValue::newFromEpoch(
- $viewer,
- $start->format('U'));
- $end_value = AphrontFormDateControlValue::newFromEpoch(
- $viewer,
- $end->format('U'));
-
- return array($start_value, $end_value);
+ return id(new PhabricatorCalendarEditEngine())
+ ->setController($this)
+ ->buildResponse();
}
}
diff --git a/src/applications/calendar/controller/PhabricatorCalendarEventEditProController.php b/src/applications/calendar/controller/PhabricatorCalendarEventEditProController.php
deleted file mode 100644
--- a/src/applications/calendar/controller/PhabricatorCalendarEventEditProController.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-
-final class PhabricatorCalendarEventEditProController
- extends PhabricatorCalendarController {
-
- public function handleRequest(AphrontRequest $request) {
- return id(new PhabricatorCalendarEditEngine())
- ->setController($this)
- ->buildResponse();
- }
-
-}
diff --git a/src/applications/calendar/controller/PhabricatorCalendarEventListController.php b/src/applications/calendar/controller/PhabricatorCalendarEventListController.php
--- a/src/applications/calendar/controller/PhabricatorCalendarEventListController.php
+++ b/src/applications/calendar/controller/PhabricatorCalendarEventListController.php
@@ -19,24 +19,19 @@
$controller = id(new PhabricatorApplicationSearchController())
->setQueryKey($request->getURIData('queryKey'))
- ->setSearchEngine($engine)
- ->setNavigation($this->buildSideNav());
+ ->setSearchEngine($engine);
+
return $this->delegateToController($controller);
}
- public function buildSideNav() {
- $user = $this->getRequest()->getUser();
-
- $nav = new AphrontSideNavFilterView();
- $nav->setBaseURI(new PhutilURI($this->getApplicationURI()));
-
- id(new PhabricatorCalendarEventSearchEngine())
- ->setViewer($user)
- ->addNavigationItems($nav->getMenu());
+ protected function buildApplicationCrumbs() {
+ $crumbs = parent::buildApplicationCrumbs();
- $nav->selectFilter(null);
+ id(new PhabricatorCalendarEditEngine())
+ ->setViewer($this->getViewer())
+ ->addActionToCrumbs($crumbs);
- return $nav;
+ return $crumbs;
}
}
diff --git a/src/applications/calendar/editor/PhabricatorCalendarEditEngine.php b/src/applications/calendar/editor/PhabricatorCalendarEditEngine.php
--- a/src/applications/calendar/editor/PhabricatorCalendarEditEngine.php
+++ b/src/applications/calendar/editor/PhabricatorCalendarEditEngine.php
@@ -56,7 +56,7 @@
}
protected function getEditorURI() {
- return $this->getApplication()->getApplicationURI('event/editpro/');
+ return $this->getApplication()->getApplicationURI('event/edit/');
}
protected function buildCustomEditFields($object) {
diff --git a/src/applications/people/query/PhabricatorPeopleQuery.php b/src/applications/people/query/PhabricatorPeopleQuery.php
--- a/src/applications/people/query/PhabricatorPeopleQuery.php
+++ b/src/applications/people/query/PhabricatorPeopleQuery.php
@@ -410,6 +410,11 @@
}
}
+ // We need to load these users' timezone settings to figure out their
+ // availability if they're attending all-day events.
+ $this->needUserSettings(true);
+ $this->fillUserCaches($rebuild);
+
foreach ($rebuild as $phid => $user) {
$events = idx($map, $phid, array());
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Fri, Jan 31, 12:33 PM (14 h, 21 m)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
7076455
Default Alt Text
D16283.diff (27 KB)
Attached To
Mode
D16283: Switch Calendar to EditEngine
Attached
Detach File
Event Timeline
Log In to Comment