mirror of
https://we.phorge.it/source/phorge.git
synced 2024-12-22 05:20:56 +01:00
Fix reading ad-hoc settings with no formal Settings object
Summary: Ref T4103. Some settings (like the collapsed/expanded state of the diff filetree) are currently ad-hoc. They weren't being read correctly. Also, simplify the caching code a little bit. Test Plan: Toggled filetree, reloaded page, got sticky behavior. Reviewers: chad Reviewed By: chad Maniphest Tasks: T4103 Differential Revision: https://secure.phabricator.com/D16021
This commit is contained in:
parent
eb673fd783
commit
d5f924b3fa
1 changed files with 11 additions and 8 deletions
|
@ -505,13 +505,13 @@ final class PhabricatorUser
|
|||
->setViewer($this)
|
||||
->assertValidValue($value);
|
||||
|
||||
$this->settingCacheKeys[$key] = true;
|
||||
$this->settingCache[$key] = $value;
|
||||
|
||||
return $value;
|
||||
return $this->writeUserSettingCache($key, $value);
|
||||
} catch (Exception $ex) {
|
||||
// Fall through below and return the default value.
|
||||
}
|
||||
} else {
|
||||
// This is an ad-hoc setting with no controlling object.
|
||||
return $this->writeUserSettingCache($key, $value);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -523,10 +523,7 @@ final class PhabricatorUser
|
|||
$value = null;
|
||||
}
|
||||
|
||||
$this->settingCacheKeys[$key] = true;
|
||||
$this->settingCache[$key] = $value;
|
||||
|
||||
return $value;
|
||||
return $this->writeUserSettingCache($key, $value);
|
||||
}
|
||||
|
||||
|
||||
|
@ -557,6 +554,12 @@ final class PhabricatorUser
|
|||
return $this;
|
||||
}
|
||||
|
||||
private function writeUserSettingCache($key, $value) {
|
||||
$this->settingCacheKeys[$key] = true;
|
||||
$this->settingCache[$key] = $value;
|
||||
return $value;
|
||||
}
|
||||
|
||||
public function getTranslation() {
|
||||
return $this->getUserSetting(PhabricatorTranslationSetting::SETTINGKEY);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue