* over to the tryUISubmit static method of this class.
*/
class Preferences {
- /** @var array */
- protected static $defaultPreferences = null;
-
/** @var array */
protected static $saveFilters = [
'timecorrection' => [ 'Preferences', 'filterTimezoneInput' ],
* @return array|null
*/
static function getPreferences( $user, IContextSource $context ) {
- if ( self::$defaultPreferences ) {
- return self::$defaultPreferences;
- }
-
$defaultPreferences = [];
self::profilePreferences( $user, $context, $defaultPreferences );
Hooks::run( 'GetPreferences', [ $user, &$defaultPreferences ] );
self::loadPreferenceValues( $user, $context, $defaultPreferences );
- self::$defaultPreferences = $defaultPreferences;
return $defaultPreferences;
}
$defaultPreferences['rcfilters-wl-saved-queries'] = [
'type' => 'api',
];
- $defaultPreferences['rcfilters-saved-queries-versionbackup'] = [
+ // Override RCFilters preferences for RecentChanges 'limit'
+ $defaultPreferences['rcfilters-limit'] = [
'type' => 'api',
];
- $defaultPreferences['rcfilters-wl-saved-queries-versionbackup'] = [
+ $defaultPreferences['rcfilters-saved-queries-versionbackup'] = [
'type' => 'api',
];
- $defaultPreferences['rcfilters-rclimit'] = [
+ $defaultPreferences['rcfilters-wl-saved-queries-versionbackup'] = [
'type' => 'api',
];
-
if ( $config->get( 'RCWatchCategoryMembership' ) ) {
$defaultPreferences['hidecategorization'] = [
'type' => 'toggle',
* @param IContextSource $context
* @param string $formClass
* @param array $remove Array of items to remove
- * @return PreferencesForm|HtmlForm
+ * @return PreferencesForm|HTMLForm
*/
static function getFormObject(
$user,
$formData[$pref] = $user->getOption( $pref, null, true );
}
+ // If the user changed the rclimit preference, also change the rcfilters-rclimit preference
+ if (
+ isset( $formData['rclimit'] ) &&
+ intval( $formData[ 'rclimit' ] ) !== $user->getIntOption( 'rclimit' )
+ ) {
+ $formData['rcfilters-limit'] = $formData['rclimit'];
+ }
+
// Keep old preferences from interfering due to back-compat code, etc.
$user->resetOptions( 'unused', $form->getContext() );