Changeset View
Changeset View
Standalone View
Standalone View
src/applications/settings/panel/PhabricatorDateTimeSettingsPanel.php
| Show All 12 Lines | final class PhabricatorDateTimeSettingsPanel extends PhabricatorSettingsPanel { | ||||
| public function getPanelGroup() { | public function getPanelGroup() { | ||||
| return pht('Account Information'); | return pht('Account Information'); | ||||
| } | } | ||||
| public function processRequest(AphrontRequest $request) { | public function processRequest(AphrontRequest $request) { | ||||
| $user = $request->getUser(); | $user = $request->getUser(); | ||||
| $username = $user->getUsername(); | $username = $user->getUsername(); | ||||
| $pref_timezone = PhabricatorTimezoneSetting::SETTINGKEY; | |||||
| $pref_time = PhabricatorUserPreferences::PREFERENCE_TIME_FORMAT; | $pref_time = PhabricatorUserPreferences::PREFERENCE_TIME_FORMAT; | ||||
| $pref_date = PhabricatorUserPreferences::PREFERENCE_DATE_FORMAT; | $pref_date = PhabricatorUserPreferences::PREFERENCE_DATE_FORMAT; | ||||
| $pref_week_start = PhabricatorUserPreferences::PREFERENCE_WEEK_START_DAY; | $pref_week_start = PhabricatorUserPreferences::PREFERENCE_WEEK_START_DAY; | ||||
| $pref_ignore = PhabricatorUserPreferences::PREFERENCE_IGNORE_OFFSET; | $pref_ignore = PhabricatorUserPreferences::PREFERENCE_IGNORE_OFFSET; | ||||
| $preferences = $user->loadPreferences(); | $preferences = $user->loadPreferences(); | ||||
| $errors = array(); | $errors = array(); | ||||
| if ($request->isFormPost()) { | if ($request->isFormPost()) { | ||||
| $new_timezone = $request->getStr('timezone'); | $new_timezone = $request->getStr('timezone'); | ||||
| if (in_array($new_timezone, DateTimeZone::listIdentifiers(), true)) { | if (!in_array($new_timezone, DateTimeZone::listIdentifiers(), true)) { | ||||
| $user->setTimezoneIdentifier($new_timezone); | |||||
| } else { | |||||
| $errors[] = pht('The selected timezone is not a valid timezone.'); | $errors[] = pht('The selected timezone is not a valid timezone.'); | ||||
| } | } | ||||
| $preferences | $preferences | ||||
| ->setPreference($pref_timezone, $new_timezone) | |||||
| ->setPreference( | ->setPreference( | ||||
| $pref_time, | $pref_time, | ||||
| $request->getStr($pref_time)) | $request->getStr($pref_time)) | ||||
| ->setPreference( | ->setPreference( | ||||
| $pref_date, | $pref_date, | ||||
| $request->getStr($pref_date)) | $request->getStr($pref_date)) | ||||
| ->setPreference( | ->setPreference( | ||||
| $pref_week_start, | $pref_week_start, | ||||
| $request->getStr($pref_week_start)) | $request->getStr($pref_week_start)) | ||||
| ->setPreference($pref_ignore, null); | ->setPreference($pref_ignore, null); | ||||
| if (!$errors) { | if (!$errors) { | ||||
| $preferences->save(); | $preferences->save(); | ||||
| $user->save(); | |||||
| return id(new AphrontRedirectResponse()) | return id(new AphrontRedirectResponse()) | ||||
| ->setURI($this->getPanelURI('?saved=true')); | ->setURI($this->getPanelURI('?saved=true')); | ||||
| } | } | ||||
| } | } | ||||
| $timezone_ids = DateTimeZone::listIdentifiers(); | $timezone_ids = DateTimeZone::listIdentifiers(); | ||||
| $timezone_id_map = array_fuse($timezone_ids); | $timezone_id_map = array_fuse($timezone_ids); | ||||
| ▲ Show 20 Lines • Show All 67 Lines • Show Last 20 Lines | |||||