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 @@ -70,6 +70,12 @@ $recurrence_end_date_value = clone $end_value; $recurrence_end_date_value->setOptional(true); + $pref_space = PhabricatorUserPreferences::PREFERENCE_CALENDAR_SPACE; + $preferences = $viewer->loadPreferences(); + $space = $preferences->getPreference( + $pref_space, + $viewer->getDefaultSpacePHID()); + $submit_label = pht('Create'); $page_title = pht('Create Event'); $redirect = 'created'; @@ -137,6 +143,7 @@ } } + $space = $event->getSpacePHID(); $cancel_uri = '/'.$event->getMonogram(); } @@ -158,7 +165,6 @@ $icon = $event->getIcon(); $edit_policy = $event->getEditPolicy(); $view_policy = $event->getViewPolicy(); - $space = $event->getSpacePHID(); if ($request->isFormPost()) { $xactions = array(); diff --git a/src/applications/settings/panel/PhabricatorDateTimeSettingsPanel.php b/src/applications/settings/panel/PhabricatorDateTimeSettingsPanel.php --- a/src/applications/settings/panel/PhabricatorDateTimeSettingsPanel.php +++ b/src/applications/settings/panel/PhabricatorDateTimeSettingsPanel.php @@ -18,6 +18,8 @@ $user = $request->getUser(); $username = $user->getUsername(); + $space_phid = $user->getDefaultSpacePHID(); + $pref_event_space = PhabricatorUserPreferences::PREFERENCE_CALENDAR_SPACE; $pref_time = PhabricatorUserPreferences::PREFERENCE_TIME_FORMAT; $pref_date = PhabricatorUserPreferences::PREFERENCE_DATE_FORMAT; $pref_week_start = PhabricatorUserPreferences::PREFERENCE_WEEK_START_DAY; @@ -41,7 +43,10 @@ $request->getStr($pref_date)) ->setPreference( $pref_week_start, - $request->getStr($pref_week_start)); + $request->getStr($pref_week_start)) + ->setPreference( + $pref_event_space, + $request->getStr($pref_event_space)); if (!$errors) { $preferences->save(); @@ -93,10 +98,26 @@ ->setName($pref_week_start) ->setCaption( pht('Calendar weeks will start with this day.')) - ->setValue($preferences->getPreference($pref_week_start, 0))) - ->appendChild( - id(new AphrontFormSubmitControl()) - ->setValue(pht('Save Account Settings'))); + ->setValue($preferences->getPreference($pref_week_start, 0))); + + if (PhabricatorSpacesNamespaceQuery::getViewerSpacesExist($user)) { + $form->appendChild( + id(new AphrontFormSelectControl()) + ->setOptions( + PhabricatorSpacesNamespaceQuery::getSpaceOptionsForViewer( + $user, + $space_phid)) + ->setLabel(pht('Default Calendar Space')) + ->setCaption( + pht('Calendar events will default to the visibility of '. + 'this space.')) + ->setName($pref_event_space) + ->setValue($preferences->getPreference($pref_event_space))); + } + + $form->appendChild( + id(new AphrontFormSubmitControl()) + ->setValue(pht('Save Account Settings'))); $form_box = id(new PHUIObjectBoxView()) ->setHeaderText(pht('Date and Time Settings')) diff --git a/src/applications/settings/storage/PhabricatorUserPreferences.php b/src/applications/settings/storage/PhabricatorUserPreferences.php --- a/src/applications/settings/storage/PhabricatorUserPreferences.php +++ b/src/applications/settings/storage/PhabricatorUserPreferences.php @@ -11,6 +11,7 @@ const PREFERENCE_DATE_FORMAT = 'date-format'; const PREFERENCE_TIME_FORMAT = 'time-format'; const PREFERENCE_WEEK_START_DAY = 'week-start-day'; + const PREFERENCE_CALENDAR_SPACE = 'calendar-space'; const PREFERENCE_RE_PREFIX = 're-prefix'; const PREFERENCE_NO_SELF_MAIL = 'self-mail';