@recaptime-dev's working patches + fork for Phorge, a community fork of Phabricator. (Upstream dev and stable branches are at upstream/main and upstream/stable respectively.) hq.recaptime.dev/wiki/Phorge
phorge phabricator
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Use transactions to apply Ajax settings mutations

Summary:
Ref T4103. Some settings (mostly nav collapsed/expanded states) use this endpoint to make adjustments when users press keys (like `\` to toggle the durable column).

All of these settings are now formal, so swap things over to transactions.

Test Plan: Collapsed/expanded various navs, reloaded pages, settings stuck.

Reviewers: chad

Reviewed By: chad

Maniphest Tasks: T4103

Differential Revision: https://secure.phabricator.com/D16035

+16 -6
+16 -6
src/applications/settings/controller/PhabricatorSettingsAdjustController.php
··· 4 4 extends PhabricatorController { 5 5 6 6 public function handleRequest(AphrontRequest $request) { 7 - $user = $request->getUser(); 7 + $viewer = $this->getViewer(); 8 8 9 - $prefs = $user->loadPreferences(); 10 - $prefs->setPreference( 11 - $request->getStr('key'), 12 - $request->getStr('value')); 13 - $prefs->save(); 9 + $preferences = PhabricatorUserPreferences::loadUserPreferences($viewer); 10 + 11 + $editor = id(new PhabricatorUserPreferencesEditor()) 12 + ->setActor($viewer) 13 + ->setContentSourceFromRequest($request) 14 + ->setContinueOnNoEffect(true) 15 + ->setContinueOnMissingFields(true); 16 + 17 + $key = $request->getStr('key'); 18 + $value = $request->getStr('value'); 19 + 20 + $xactions = array(); 21 + $xactions[] = $preferences->newTransaction($key, $value); 22 + 23 + $editor->applyTransactions($preferences, $xactions); 14 24 15 25 return id(new AphrontAjaxResponse())->setContent(array()); 16 26 }