Page Menu
Home
Phabricator
Search
Configure Global Search
Log In
Files
F14021978
D16015.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
22 KB
Referenced Files
None
Subscribers
None
D16015.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
@@ -2594,6 +2594,7 @@
'PhabricatorInlineCommentPreviewController' => 'infrastructure/diff/PhabricatorInlineCommentPreviewController.php',
'PhabricatorInlineSummaryView' => 'infrastructure/diff/view/PhabricatorInlineSummaryView.php',
'PhabricatorInstructionsEditField' => 'applications/transactions/editfield/PhabricatorInstructionsEditField.php',
+ 'PhabricatorInternalSetting' => 'applications/settings/setting/PhabricatorInternalSetting.php',
'PhabricatorInternationalizationManagementExtractWorkflow' => 'infrastructure/internationalization/management/PhabricatorInternationalizationManagementExtractWorkflow.php',
'PhabricatorInternationalizationManagementWorkflow' => 'infrastructure/internationalization/management/PhabricatorInternationalizationManagementWorkflow.php',
'PhabricatorInvalidConfigSetupCheck' => 'applications/config/check/PhabricatorInvalidConfigSetupCheck.php',
@@ -3353,6 +3354,7 @@
'PhabricatorSearchResultBucketGroup' => 'applications/search/buckets/PhabricatorSearchResultBucketGroup.php',
'PhabricatorSearchResultView' => 'applications/search/view/PhabricatorSearchResultView.php',
'PhabricatorSearchSchemaSpec' => 'applications/search/storage/PhabricatorSearchSchemaSpec.php',
+ 'PhabricatorSearchScopeSetting' => 'applications/settings/setting/PhabricatorSearchScopeSetting.php',
'PhabricatorSearchSelectController' => 'applications/search/controller/PhabricatorSearchSelectController.php',
'PhabricatorSearchSelectField' => 'applications/search/field/PhabricatorSearchSelectField.php',
'PhabricatorSearchStringListField' => 'applications/search/field/PhabricatorSearchStringListField.php',
@@ -3538,6 +3540,7 @@
'PhabricatorTimeFormatSetting' => 'applications/settings/setting/PhabricatorTimeFormatSetting.php',
'PhabricatorTimeGuard' => 'infrastructure/time/PhabricatorTimeGuard.php',
'PhabricatorTimeTestCase' => 'infrastructure/time/__tests__/PhabricatorTimeTestCase.php',
+ 'PhabricatorTimezoneIgnoreOffsetSetting' => 'applications/settings/setting/PhabricatorTimezoneIgnoreOffsetSetting.php',
'PhabricatorTimezoneSetting' => 'applications/settings/setting/PhabricatorTimezoneSetting.php',
'PhabricatorTimezoneSetupCheck' => 'applications/config/check/PhabricatorTimezoneSetupCheck.php',
'PhabricatorTitleGlyphsSetting' => 'applications/settings/setting/PhabricatorTitleGlyphsSetting.php',
@@ -7196,6 +7199,7 @@
'PhabricatorInlineCommentPreviewController' => 'PhabricatorController',
'PhabricatorInlineSummaryView' => 'AphrontView',
'PhabricatorInstructionsEditField' => 'PhabricatorEditField',
+ 'PhabricatorInternalSetting' => 'PhabricatorSetting',
'PhabricatorInternationalizationManagementExtractWorkflow' => 'PhabricatorInternationalizationManagementWorkflow',
'PhabricatorInternationalizationManagementWorkflow' => 'PhabricatorManagementWorkflow',
'PhabricatorInvalidConfigSetupCheck' => 'PhabricatorSetupCheck',
@@ -8103,6 +8107,7 @@
'PhabricatorSearchResultBucketGroup' => 'Phobject',
'PhabricatorSearchResultView' => 'AphrontView',
'PhabricatorSearchSchemaSpec' => 'PhabricatorConfigSchemaSpec',
+ 'PhabricatorSearchScopeSetting' => 'PhabricatorInternalSetting',
'PhabricatorSearchSelectController' => 'PhabricatorSearchBaseController',
'PhabricatorSearchSelectField' => 'PhabricatorSearchField',
'PhabricatorSearchStringListField' => 'PhabricatorSearchField',
@@ -8304,6 +8309,7 @@
'PhabricatorTimeFormatSetting' => 'PhabricatorSelectSetting',
'PhabricatorTimeGuard' => 'Phobject',
'PhabricatorTimeTestCase' => 'PhabricatorTestCase',
+ 'PhabricatorTimezoneIgnoreOffsetSetting' => 'PhabricatorInternalSetting',
'PhabricatorTimezoneSetting' => 'PhabricatorOptionGroupSetting',
'PhabricatorTimezoneSetupCheck' => 'PhabricatorSetupCheck',
'PhabricatorTitleGlyphsSetting' => 'PhabricatorSelectSetting',
diff --git a/src/aphront/response/AphrontAjaxResponse.php b/src/aphront/response/AphrontAjaxResponse.php
--- a/src/aphront/response/AphrontAjaxResponse.php
+++ b/src/aphront/response/AphrontAjaxResponse.php
@@ -64,8 +64,8 @@
if ($request) {
$viewer = $request->getViewer();
if ($viewer) {
- $postprocessor_key = $viewer->getPreference(
- PhabricatorUserPreferences::PREFERENCE_RESOURCE_POSTPROCESSOR);
+ $postprocessor_key = $viewer->getUserSetting(
+ PhabricatorAccessibilitySetting::SETTINGKEY);
if (strlen($postprocessor_key)) {
$response->setPostprocessorKey($postprocessor_key);
}
diff --git a/src/applications/people/storage/PhabricatorUser.php b/src/applications/people/storage/PhabricatorUser.php
--- a/src/applications/people/storage/PhabricatorUser.php
+++ b/src/applications/people/storage/PhabricatorUser.php
@@ -66,7 +66,9 @@
private $authorities = array();
private $handlePool;
private $csrfSalt;
- private $timezoneOverride;
+
+ private $settingCacheKeys = array();
+ private $settingCache = array();
protected function readField($field) {
switch ($field) {
@@ -481,19 +483,50 @@
public function getUserSetting($key) {
+ // NOTE: We store available keys and cached values separately to make it
+ // faster to check for `null` in the cache, which is common.
+ if (isset($this->settingCacheKeys[$key])) {
+ return $this->settingCache[$key];
+ }
+
$settings_key = PhabricatorUserPreferencesCacheType::KEY_PREFERENCES;
$settings = $this->requireCacheData($settings_key);
+ $defaults = PhabricatorSetting::getAllEnabledSettings($this);
+
if (array_key_exists($key, $settings)) {
- return $settings[$key];
+ $value = $settings[$key];
+
+ // Make sure the value is valid before we return it. This makes things
+ // more robust when options are changed or removed.
+ if (isset($defaults[$key])) {
+ try {
+ id(clone $defaults[$key])
+ ->setViewer($this)
+ ->assertValidValue($value);
+
+ $this->settingCacheKeys[$key] = true;
+ $this->settingCache[$key] = $value;
+
+ return $value;
+ } catch (Exception $ex) {
+ // Fall through below and return the default value.
+ }
+ }
}
- $defaults = PhabricatorSetting::getAllEnabledSettings($this);
if (isset($defaults[$key])) {
- return $defaults[$key]->getSettingDefaultValue();
+ $value = id(clone $defaults[$key])
+ ->setViewer($this)
+ ->getSettingDefaultValue();
+ } else {
+ $value = null;
}
- return null;
+ $this->settingCacheKeys[$key] = true;
+ $this->settingCache[$key] = $value;
+
+ return $value;
}
@@ -510,15 +543,25 @@
return ($actual == $value);
}
+
+ /**
+ * @task settings
+ */
+ public function clearUserSettingCache() {
+ $this->settingCacheKeys = array();
+ $this->settingCache = array();
+
+ $settings_key = PhabricatorUserPreferencesCacheType::KEY_PREFERENCES;
+ $this->clearCacheData($settings_key);
+
+ return $this;
+ }
+
public function getTranslation() {
return $this->getUserSetting(PhabricatorTranslationSetting::SETTINGKEY);
}
public function getTimezoneIdentifier() {
- if ($this->timezoneOverride) {
- return $this->timezoneOverride;
- }
-
return $this->getUserSetting(PhabricatorTimezoneSetting::SETTINGKEY);
}
@@ -533,7 +576,9 @@
* @task settings
*/
public function overrideTimezoneIdentifier($identifier) {
- $this->timezoneOverride = $identifier;
+ $timezone_key = PhabricatorTimezoneSetting::SETTINGKEY;
+ $this->settingCacheKeys[$timezone_key] = true;
+ $this->settingCache[$timezone_key] = $identifier;
return $this;
}
@@ -578,17 +623,17 @@
$line,
PhabricatorRepository $repository = null) {
- $editor = $this->loadPreferences()->getPreference(
- PhabricatorUserPreferences::PREFERENCE_EDITOR);
+ $editor = $this->getUserSetting(PhabricatorEditorSetting::SETTINGKEY);
if (is_array($path)) {
- $multiedit = $this->loadPreferences()->getPreference(
- PhabricatorUserPreferences::PREFERENCE_MULTIEDIT);
+ $multi_key = PhabricatorEditorMultipleSetting::SETTINGKEY;
+ $multiedit = $this->getUserSetting($multi_key);
switch ($multiedit) {
- case '':
+ case PhabricatorEditorMultipleSetting::VALUE_SPACES:
$path = implode(' ', $path);
break;
- case 'disable':
+ case PhabricatorEditorMultipleSetting::VALUE_SINGLE:
+ default:
return null;
}
}
@@ -848,48 +893,13 @@
$format = 'M j';
} else {
// Same year, month and day so show a time of day.
- $pref_time = PhabricatorUserPreferences::PREFERENCE_TIME_FORMAT;
- $format = $this->getPreference($pref_time);
+ $pref_time = PhabricatorTimeFormatSetting::SETTINGKEY;
+ $format = $this->getUserSetting($pref_time);
}
return $when->format($format);
}
- public function getPreference($key) {
- $preferences = $this->loadPreferences();
-
- // TODO: After T4103 and T7707 this should eventually be pushed down the
- // stack into modular preference definitions and role profiles. This is
- // just fixing T8601 and mildly anticipating those changes.
- $value = $preferences->getPreference($key);
-
- $allowed_values = null;
- switch ($key) {
- case PhabricatorUserPreferences::PREFERENCE_TIME_FORMAT:
- $allowed_values = array(
- 'g:i A',
- 'H:i',
- );
- break;
- case PhabricatorUserPreferences::PREFERENCE_DATE_FORMAT:
- $allowed_values = array(
- 'Y-m-d',
- 'n/j/Y',
- 'd-m-Y',
- );
- break;
- }
-
- if ($allowed_values !== null) {
- $allowed_values = array_fuse($allowed_values);
- if (empty($allowed_values[$value])) {
- $value = head($allowed_values);
- }
- }
-
- return $value;
- }
-
public function __toString() {
return $this->getUsername();
}
diff --git a/src/applications/settings/controller/PhabricatorSettingsTimezoneController.php b/src/applications/settings/controller/PhabricatorSettingsTimezoneController.php
--- a/src/applications/settings/controller/PhabricatorSettingsTimezoneController.php
+++ b/src/applications/settings/controller/PhabricatorSettingsTimezoneController.php
@@ -30,7 +30,7 @@
if ($request->isFormPost()) {
$timezone = $request->getStr('timezone');
- $pref_ignore = PhabricatorUserPreferences::PREFERENCE_IGNORE_OFFSET;
+ $pref_ignore = PhabricatorTimezoneIgnoreOffsetSetting::SETTINGKEY;
$pref_timezone = PhabricatorTimezoneSetting::SETTINGKEY;
$preferences = $viewer->loadPreferences();
@@ -56,8 +56,7 @@
->setPreference($pref_timezone, $timezone)
->save();
- $viewer->clearCacheData(
- PhabricatorUserPreferencesCacheType::KEY_PREFERENCES);
+ $viewer->clearUserSettingCache();
}
}
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
@@ -22,7 +22,7 @@
$pref_time = PhabricatorUserPreferences::PREFERENCE_TIME_FORMAT;
$pref_date = PhabricatorUserPreferences::PREFERENCE_DATE_FORMAT;
$pref_week_start = PhabricatorUserPreferences::PREFERENCE_WEEK_START_DAY;
- $pref_ignore = PhabricatorUserPreferences::PREFERENCE_IGNORE_OFFSET;
+ $pref_ignore = PhabricatorTimezoneIgnoreOffsetSetting::SETTINGKEY;
$preferences = $user->loadPreferences();
$errors = array();
diff --git a/src/applications/settings/setting/PhabricatorInternalSetting.php b/src/applications/settings/setting/PhabricatorInternalSetting.php
new file mode 100644
--- /dev/null
+++ b/src/applications/settings/setting/PhabricatorInternalSetting.php
@@ -0,0 +1,4 @@
+<?php
+
+abstract class PhabricatorInternalSetting
+ extends PhabricatorSetting {}
diff --git a/src/applications/settings/setting/PhabricatorSearchScopeSetting.php b/src/applications/settings/setting/PhabricatorSearchScopeSetting.php
new file mode 100644
--- /dev/null
+++ b/src/applications/settings/setting/PhabricatorSearchScopeSetting.php
@@ -0,0 +1,16 @@
+<?php
+
+final class PhabricatorSearchScopeSetting
+ extends PhabricatorInternalSetting {
+
+ const SETTINGKEY = 'search-scope';
+
+ public function getSettingName() {
+ return pht('Search Scope');
+ }
+
+ public function getSettingDefaultValue() {
+ return 'all';
+ }
+
+}
diff --git a/src/applications/settings/setting/PhabricatorSetting.php b/src/applications/settings/setting/PhabricatorSetting.php
--- a/src/applications/settings/setting/PhabricatorSetting.php
+++ b/src/applications/settings/setting/PhabricatorSetting.php
@@ -89,6 +89,10 @@
return;
}
+ public function assertValidValue($value) {
+ $this->validateTransactionValue($value);
+ }
+
public function getTransactionNewValue($value) {
return $value;
}
diff --git a/src/applications/settings/setting/PhabricatorTimezoneIgnoreOffsetSetting.php b/src/applications/settings/setting/PhabricatorTimezoneIgnoreOffsetSetting.php
new file mode 100644
--- /dev/null
+++ b/src/applications/settings/setting/PhabricatorTimezoneIgnoreOffsetSetting.php
@@ -0,0 +1,12 @@
+<?php
+
+final class PhabricatorTimezoneIgnoreOffsetSetting
+ extends PhabricatorInternalSetting {
+
+ const SETTINGKEY = 'time.offset.ignore';
+
+ public function getSettingName() {
+ return pht('Timezone Ignored Offset');
+ }
+
+}
diff --git a/src/applications/settings/setting/PhabricatorTimezoneSetting.php b/src/applications/settings/setting/PhabricatorTimezoneSetting.php
--- a/src/applications/settings/setting/PhabricatorTimezoneSetting.php
+++ b/src/applications/settings/setting/PhabricatorTimezoneSetting.php
@@ -13,6 +13,31 @@
return date_default_timezone_get();
}
+ public function assertValidValue($value) {
+ // NOTE: This isn't doing anything fancy, it's just a much faster
+ // validator than doing all the timezone calculations to build the full
+ // list of options.
+
+ if (!$value) {
+ return;
+ }
+
+ static $identifiers;
+ if ($identifiers === null) {
+ $identifiers = DateTimeZone::listIdentifiers();
+ $identifiers = array_fuse($identifiers);
+ }
+
+ if (isset($identifiers[$value])) {
+ return;
+ }
+
+ throw new Exception(
+ pht(
+ 'Timezone "%s" is not a valid timezone identiifer.',
+ $value));
+ }
+
protected function getSelectOptionGroups() {
$timezones = DateTimeZone::listIdentifiers();
$now = new DateTime('@'.PhabricatorTime::getNow());
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
@@ -24,8 +24,6 @@
const PREFERENCE_VARY_SUBJECT = 'vary-subject';
const PREFERENCE_HTML_EMAILS = 'html-emails';
- const PREFERENCE_SEARCH_SCOPE = 'search-scope';
-
const PREFERENCE_DIFFUSION_BLAME = 'diffusion-blame';
const PREFERENCE_DIFFUSION_COLOR = 'diffusion-color';
@@ -46,7 +44,6 @@
const PREFERENCE_PROFILE_MENU_COLLAPSED = 'profile-menu.collapsed';
const PREFERENCE_FAVORITE_POLICIES = 'policy.favorites';
- const PREFERENCE_IGNORE_OFFSET = 'time.offset.ignore';
// These are in an unusual order for historic reasons.
const MAILTAG_PREFERENCE_NOTIFY = 0;
diff --git a/src/view/form/control/AphrontFormDateControl.php b/src/view/form/control/AphrontFormDateControl.php
--- a/src/view/form/control/AphrontFormDateControl.php
+++ b/src/view/form/control/AphrontFormDateControl.php
@@ -113,7 +113,7 @@
return $result;
}
- $readable = $this->formatTime($epoch, 'Y!m!d!g:i A');
+ $readable = $this->formatTime($epoch, 'Y!m!d!'.$this->getTimeFormat());
$readable = explode('!', $readable, 4);
$year = $readable[0];
@@ -140,13 +140,15 @@
}
private function getTimeFormat() {
- return $this->getViewer()
- ->getPreference(PhabricatorUserPreferences::PREFERENCE_TIME_FORMAT);
+ $viewer = $this->getViewer();
+ $time_key = PhabricatorTimeFormatSetting::SETTINGKEY;
+ return $viewer->getUserSetting($time_key);
}
private function getDateFormat() {
- return $this->getViewer()
- ->getPreference(PhabricatorUserPreferences::PREFERENCE_DATE_FORMAT);
+ $viewer = $this->getViewer();
+ $date_key = PhabricatorDateFormatSetting::SETTINGKEY;
+ return $viewer->getUserSetting($date_key);
}
private function getTimeInputValue() {
@@ -241,7 +243,6 @@
'format' => $this->getTimeFormat(),
));
-
$time_sel = javelin_tag(
'input',
array(
@@ -262,9 +263,9 @@
),
$time_sel);
- $preferences = $this->getViewer()->loadPreferences();
- $pref_week_start = PhabricatorUserPreferences::PREFERENCE_WEEK_START_DAY;
- $week_start = $preferences->getPreference($pref_week_start, 0);
+ $viewer = $this->getViewer();
+ $week_key = PhabricatorWeekStartDaySetting::SETTINGKEY;
+ $week_start = $viewer->getUserSetting($week_key);
Javelin::initBehavior('fancy-datepicker', array(
'format' => $this->getDateFormat(),
diff --git a/src/view/form/control/AphrontFormDateControlValue.php b/src/view/form/control/AphrontFormDateControlValue.php
--- a/src/view/form/control/AphrontFormDateControlValue.php
+++ b/src/view/form/control/AphrontFormDateControlValue.php
@@ -207,13 +207,15 @@
}
private function getTimeFormat() {
- return $this->getViewer()
- ->getPreference(PhabricatorUserPreferences::PREFERENCE_TIME_FORMAT);
+ $viewer = $this->getViewer();
+ $time_key = PhabricatorTimeFormatSetting::SETTINGKEY;
+ return $viewer->getUserSetting($time_key);
}
private function getDateFormat() {
- return $this->getViewer()
- ->getPreference(PhabricatorUserPreferences::PREFERENCE_DATE_FORMAT);
+ $viewer = $this->getViewer();
+ $date_key = PhabricatorDateFormatSetting::SETTINGKEY;
+ return $viewer->getUserSetting($date_key);
}
private function getFormattedDateFromDate($date, $time) {
diff --git a/src/view/page/PhabricatorBarePageView.php b/src/view/page/PhabricatorBarePageView.php
--- a/src/view/page/PhabricatorBarePageView.php
+++ b/src/view/page/PhabricatorBarePageView.php
@@ -130,8 +130,8 @@
if ($this->getRequest()) {
$viewer = $this->getRequest()->getViewer();
if ($viewer) {
- $postprocessor_key = $viewer->getPreference(
- PhabricatorUserPreferences::PREFERENCE_RESOURCE_POSTPROCESSOR);
+ $postprocessor_key = $viewer->getUserSetting(
+ PhabricatorAccessibilitySetting::SETTINGKEY);
if (strlen($postprocessor_key)) {
$response->setPostProcessorKey($postprocessor_key);
}
diff --git a/src/view/page/PhabricatorStandardPageView.php b/src/view/page/PhabricatorStandardPageView.php
--- a/src/view/page/PhabricatorStandardPageView.php
+++ b/src/view/page/PhabricatorStandardPageView.php
@@ -225,13 +225,8 @@
if ($user->isLoggedIn()) {
$offset = $user->getTimeZoneOffset();
- $preferences = $user->loadPreferences();
- $ignore_key = PhabricatorUserPreferences::PREFERENCE_IGNORE_OFFSET;
-
- $ignore = $preferences->getPreference($ignore_key);
- if (!strlen($ignore)) {
- $ignore = null;
- }
+ $ignore_key = PhabricatorTimezoneIgnoreOffsetSetting::SETTINGKEY;
+ $ignore = $user->getUserSetting($ignore_key);
Javelin::initBehavior(
'detect-timezone',
diff --git a/src/view/page/menu/PhabricatorMainMenuSearchView.php b/src/view/page/menu/PhabricatorMainMenuSearchView.php
--- a/src/view/page/menu/PhabricatorMainMenuSearchView.php
+++ b/src/view/page/menu/PhabricatorMainMenuSearchView.php
@@ -50,7 +50,7 @@
'');
$search_datasource = new PhabricatorSearchDatasource();
- $scope_key = PhabricatorUserPreferences::PREFERENCE_SEARCH_SCOPE;
+ $scope_key = PhabricatorSearchScopeSetting::SETTINGKEY;
Javelin::initBehavior(
'phabricator-search-typeahead',
@@ -177,10 +177,8 @@
'href' => PhabricatorEnv::getDoclink('Search User Guide'),
);
- $scope_key = PhabricatorUserPreferences::PREFERENCE_SEARCH_SCOPE;
- $current_value = $viewer->loadPreferences()->getPreference(
- $scope_key,
- 'all');
+ $scope_key = PhabricatorSearchScopeSetting::SETTINGKEY;
+ $current_value = $viewer->getUserSetting($scope_key);
$current_icon = 'fa-globe';
foreach ($items as $item) {
diff --git a/src/view/phui/calendar/PHUICalendarListView.php b/src/view/phui/calendar/PHUICalendarListView.php
--- a/src/view/phui/calendar/PHUICalendarListView.php
+++ b/src/view/phui/calendar/PHUICalendarListView.php
@@ -147,16 +147,18 @@
}
private function getEventTooltip(AphrontCalendarEventView $event) {
- $time_pref = $this->getUser()
- ->getPreference(PhabricatorUserPreferences::PREFERENCE_TIME_FORMAT);
+ $viewer = $this->getViewer();
+ $time_key = PhabricatorTimeFormatSetting::SETTINGKEY;
+ $time_pref = $viewer->getUserSetting($time_key);
Javelin::initBehavior('phabricator-tooltips');
$start = id(AphrontFormDateControlValue::newFromEpoch(
- $this->getUser(),
+ $viewer,
$event->getEpochStart()));
+
$end = id(AphrontFormDateControlValue::newFromEpoch(
- $this->getUser(),
+ $viewer,
$event->getEpochEnd()));
$start_date = $start->getDateTime()->format('m d Y');
diff --git a/src/view/viewutils.php b/src/view/viewutils.php
--- a/src/view/viewutils.php
+++ b/src/view/viewutils.php
@@ -31,21 +31,21 @@
}
function phabricator_time($epoch, $user) {
- $time_key = PhabricatorUserPreferences::PREFERENCE_TIME_FORMAT;
+ $time_key = PhabricatorTimeFormatSetting::SETTINGKEY;
return phabricator_format_local_time(
$epoch,
$user,
- $user->getPreference($time_key));
+ $user->getUserSetting($time_key));
}
function phabricator_datetime($epoch, $user) {
- $time_key = PhabricatorUserPreferences::PREFERENCE_TIME_FORMAT;
+ $time_key = PhabricatorTimeFormatSetting::SETTINGKEY;
return phabricator_format_local_time(
$epoch,
$user,
pht('%s, %s',
phutil_date_format($epoch),
- $user->getPreference($time_key)));
+ $user->getUserSetting($time_key)));
}
/**
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Thu, Nov 7, 2:14 PM (1 w, 4 d ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
6750231
Default Alt Text
D16015.diff (22 KB)
Attached To
Mode
D16015: Continue modernizing application access to user preferences
Attached
Detach File
Event Timeline
Log In to Comment