Page MenuHomePhabricator

Continue modernizing application access to user preferences

Authored by epriestley on Jun 3 2016, 12:56 AM.



Ref T4103. This is just incremental cleanup:

  • Add "internal" settings, which aren't editable via the UI. They can still do validation and run through the normal pathway. Move a couple settings to use this.
  • Remove getPreference() on PhabricatorUser, which was a sort of prototype version of getUserSetting().
  • Make getUserSetting() validate setting values before returning them, to improve robustness if we change allowable values later.
  • Add a user setting cache, since reading user settings was getting fairly expensive on Calendar.
  • Improve performance of setting validation for timezone setting (don't require building/computing all timezone offsets).
  • Since we have the cache anyway, make the timezone override a little more general in its approach.
  • Move editor stuff to use getUserSetting().
Test Plan
  • Changed search scopes.
  • Reconciled local and server timezone settings by ignoring and changing timezones.
  • Changed date/time settings, browsed Calendar, queried date ranges.
  • Verified editor links generate properly in Diffusion.
  • Browsed around with time/date settings looking at timestamps.
  • Grepped for getPreference(), nuked all the ones coming off $user or $viewer that I could find.
  • Changed accessiblity to high-contrast colors.
  • Ran all unit tests.
  • Grepped for removed constants.

Diff Detail

rP Phabricator
Automatic diff as part of commit; lint not applicable.
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

epriestley updated this revision to Diff 38542.Jun 3 2016, 12:56 AM
epriestley retitled this revision from to Continue modernizing application access to user preferences.
epriestley updated this object.
epriestley edited the test plan for this revision. (Show Details)
epriestley added a reviewer: chad.
epriestley added inline comments.Jun 3 2016, 12:57 AM

This change is pretty much what this comment was anticipating.


This fixes a bug with initial values in date controls with 24-hour time.

chad accepted this revision.Jun 3 2016, 1:37 AM
chad edited edge metadata.
This revision is now accepted and ready to land.Jun 3 2016, 1:37 AM
codeforuk edited the test plan for this revision. (Show Details)Jun 3 2016, 7:33 AM
codeforuk edited edge metadata.
asherkin edited the test plan for this revision. (Show Details)Jun 3 2016, 8:09 AM
This revision was automatically updated to reflect the committed changes.