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 @@ -1742,6 +1742,7 @@ 'PhabricatorDataCacheSpec' => 'applications/cache/spec/PhabricatorDataCacheSpec.php', 'PhabricatorDataNotAttachedException' => 'infrastructure/storage/lisk/PhabricatorDataNotAttachedException.php', 'PhabricatorDatabaseSetupCheck' => 'applications/config/check/PhabricatorDatabaseSetupCheck.php', + 'PhabricatorDateTimeSettingsPanel' => 'applications/settings/panel/PhabricatorDateTimeSettingsPanel.php', 'PhabricatorDebugController' => 'applications/system/controller/PhabricatorDebugController.php', 'PhabricatorDefaultSearchEngineSelector' => 'applications/search/selector/PhabricatorDefaultSearchEngineSelector.php', 'PhabricatorDestructibleInterface' => 'applications/system/interface/PhabricatorDestructibleInterface.php', @@ -5134,6 +5135,7 @@ 'PhabricatorDataCacheSpec' => 'PhabricatorCacheSpec', 'PhabricatorDataNotAttachedException' => 'Exception', 'PhabricatorDatabaseSetupCheck' => 'PhabricatorSetupCheck', + 'PhabricatorDateTimeSettingsPanel' => 'PhabricatorSettingsPanel', 'PhabricatorDebugController' => 'PhabricatorController', 'PhabricatorDefaultSearchEngineSelector' => 'PhabricatorSearchEngineSelector', 'PhabricatorDestructionEngine' => 'Phobject', diff --git a/src/applications/settings/panel/PhabricatorAccountSettingsPanel.php b/src/applications/settings/panel/PhabricatorAccountSettingsPanel.php --- a/src/applications/settings/panel/PhabricatorAccountSettingsPanel.php +++ b/src/applications/settings/panel/PhabricatorAccountSettingsPanel.php @@ -18,18 +18,8 @@ $user = $request->getUser(); $username = $user->getUsername(); - $pref_time = PhabricatorUserPreferences::PREFERENCE_TIME_FORMAT; - $preferences = $user->loadPreferences(); - $errors = array(); if ($request->isFormPost()) { - $new_timezone = $request->getStr('timezone'); - if (in_array($new_timezone, DateTimeZone::listIdentifiers(), true)) { - $user->setTimezoneIdentifier($new_timezone); - } else { - $errors[] = pht('The selected timezone is not a valid timezone.'); - } - $sex = $request->getStr('sex'); $sexes = array(PhutilPerson::SEX_MALE, PhutilPerson::SEX_FEMALE); if (in_array($sex, $sexes)) { @@ -41,19 +31,13 @@ // Checked in runtime. $user->setTranslation($request->getStr('translation')); - $preferences->setPreference($pref_time, $request->getStr($pref_time)); - if (!$errors) { - $preferences->save(); $user->save(); return id(new AphrontRedirectResponse()) ->setURI($this->getPanelURI('?saved=true')); } } - $timezone_ids = DateTimeZone::listIdentifiers(); - $timezone_id_map = array_fuse($timezone_ids); - $label_unknown = pht('%s updated their profile', $username); $label_her = pht('%s updated her profile', $username); $label_his = pht('%s updated his profile', $username); @@ -93,10 +77,10 @@ ->setUser($user) ->appendChild( id(new AphrontFormSelectControl()) - ->setLabel(pht('Timezone')) - ->setName('timezone') - ->setOptions($timezone_id_map) - ->setValue($user->getTimezoneIdentifier())) + ->setOptions($translations) + ->setLabel(pht('Translation')) + ->setName('translation') + ->setValue($user->getTranslation())) ->appendRemarkupInstructions(pht('**Choose the pronoun you prefer:**')) ->appendChild( id(new AphrontFormSelectControl()) @@ -105,32 +89,6 @@ ->setName('sex') ->setValue($user->getSex())) ->appendChild( - id(new AphrontFormSelectControl()) - ->setOptions($translations) - ->setLabel(pht('Translation')) - ->setName('translation') - ->setValue($user->getTranslation())) - ->appendRemarkupInstructions( - pht( - "**Custom Date and Time Formats**\n\n". - "You can specify custom formats which will be used when ". - "rendering dates and times of day. Examples:\n\n". - "| Format | Example | Notes |\n". - "| ------ | -------- | ----- |\n". - "| `g:i A` | 2:34 PM | Default 12-hour time. |\n". - "| `G.i a` | 02.34 pm | Alternate 12-hour time. |\n". - "| `H:i` | 14:34 | 24-hour time. |\n". - "\n\n". - "You can find a [[%s | full reference in the PHP manual]].", - 'http://www.php.net/manual/en/function.date.php')) - ->appendChild( - id(new AphrontFormTextControl()) - ->setLabel(pht('Time-of-Day Format')) - ->setName($pref_time) - ->setCaption( - pht('Format used when rendering a time of day.')) - ->setValue($preferences->getPreference($pref_time))) - ->appendChild( id(new AphrontFormSubmitControl()) ->setValue(pht('Save Account Settings'))); diff --git a/src/applications/settings/panel/PhabricatorAccountSettingsPanel.php b/src/applications/settings/panel/PhabricatorDateTimeSettingsPanel.php copy from src/applications/settings/panel/PhabricatorAccountSettingsPanel.php copy to src/applications/settings/panel/PhabricatorDateTimeSettingsPanel.php --- a/src/applications/settings/panel/PhabricatorAccountSettingsPanel.php +++ b/src/applications/settings/panel/PhabricatorDateTimeSettingsPanel.php @@ -1,13 +1,13 @@ getStr('sex'); - $sexes = array(PhutilPerson::SEX_MALE, PhutilPerson::SEX_FEMALE); - if (in_array($sex, $sexes)) { - $user->setSex($sex); - } else { - $user->setSex(null); - } - - // Checked in runtime. - $user->setTranslation($request->getStr('translation')); - $preferences->setPreference($pref_time, $request->getStr($pref_time)); if (!$errors) { @@ -54,40 +43,6 @@ $timezone_ids = DateTimeZone::listIdentifiers(); $timezone_id_map = array_fuse($timezone_ids); - $label_unknown = pht('%s updated their profile', $username); - $label_her = pht('%s updated her profile', $username); - $label_his = pht('%s updated his profile', $username); - - $sexes = array( - PhutilPerson::SEX_UNKNOWN => $label_unknown, - PhutilPerson::SEX_MALE => $label_his, - PhutilPerson::SEX_FEMALE => $label_her, - ); - - $locales = PhutilLocale::loadAllLocales(); - $is_serious = PhabricatorEnv::getEnvConfig('phabricator.serious-business'); - $is_dev = PhabricatorEnv::getEnvConfig('phabricator.developer-mode'); - - $translations = array(); - foreach ($locales as $locale) { - if ($is_serious && $locale->isSillyLocale()) { - // Omit silly locales on serious business installs. - continue; - } - if (!$is_dev && $locale->isTestLocale()) { - // Omit test locales on installs which aren't in development mode. - continue; - } - $translations[$locale->getLocaleCode()] = $locale->getLocaleName(); - } - - asort($translations); - // TODO: Implement "locale.default" and use it here. - $default = 'en_US'; - $translations = array( - '' => pht('Server Default: %s', $locales[$default]->getLocaleName()), - ) + $translations; - $form = new AphrontFormView(); $form ->setUser($user) @@ -97,19 +52,6 @@ ->setName('timezone') ->setOptions($timezone_id_map) ->setValue($user->getTimezoneIdentifier())) - ->appendRemarkupInstructions(pht('**Choose the pronoun you prefer:**')) - ->appendChild( - id(new AphrontFormSelectControl()) - ->setOptions($sexes) - ->setLabel(pht('Pronoun')) - ->setName('sex') - ->setValue($user->getSex())) - ->appendChild( - id(new AphrontFormSelectControl()) - ->setOptions($translations) - ->setLabel(pht('Translation')) - ->setName('translation') - ->setValue($user->getTranslation())) ->appendRemarkupInstructions( pht( "**Custom Date and Time Formats**\n\n". @@ -135,7 +77,7 @@ ->setValue(pht('Save Account Settings'))); $form_box = id(new PHUIObjectBoxView()) - ->setHeaderText(pht('Account Settings')) + ->setHeaderText(pht('Date and Time Settings')) ->setFormSaved($request->getStr('saved')) ->setFormErrors($errors) ->setForm($form);