From 5884337c9f97dc36cc31c1623ddbb3233a0c4357 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20Laxstr=C3=B6m?= Date: Fri, 1 Nov 2013 11:16:24 +0000 Subject: [PATCH] Do not load jquery.jStorage for logged in users Change-Id: Ibe77962cecd6aa8504aa60d5d2b8d17a56e1319f --- Resources.php | 9 ++++++++- UniversalLanguageSelector.hooks.php | 6 +++++- resources/js/ext.uls.preferences.js | 10 +++++----- 3 files changed, 18 insertions(+), 7 deletions(-) diff --git a/Resources.php b/Resources.php index f5d4d99c..2f643038 100644 --- a/Resources.php +++ b/Resources.php @@ -118,6 +118,10 @@ $wgResourceModules['ext.uls.interface'] = array( 'position' => 'top', ) + $resourcePaths; +// Anonymous users need 'jquery.jStorage' module for client side preference persistence. +$wgResourceModules['ext.uls.interface.anon'] = $wgResourceModules['ext.uls.interface']; +$wgResourceModules['ext.uls.interface.anon']['dependencies'][] = 'jquery.jStorage'; + $wgResourceModules['ext.uls.languagesettings'] = array( 'scripts' => 'resources/js/ext.uls.languagesettings.js', 'styles' => 'resources/css/ext.uls.languagesettings.css', @@ -133,7 +137,10 @@ $wgResourceModules['ext.uls.preferences'] = array( 'dependencies' => array( 'mediawiki.user', 'mediawiki.api', - 'jquery.jStorage', + 'jquery.json', + // This is quite a big module and only needed for anons. + // Loaded conditionally in ext.uls.interface(.anon). + //'jquery.jStorage', ), ) + $resourcePaths; diff --git a/UniversalLanguageSelector.hooks.php b/UniversalLanguageSelector.hooks.php index 44436a77..82a9c591 100644 --- a/UniversalLanguageSelector.hooks.php +++ b/UniversalLanguageSelector.hooks.php @@ -67,7 +67,11 @@ class UniversalLanguageSelectorHooks { if ( self::isToolbarEnabled( $out->getUser() ) ) { // Enable UI language selection for the user. - $out->addModules( 'ext.uls.interface' ); + if ( $out->getUser()->isAnon() ) { + $out->addModules( 'ext.uls.interface.anon' ); + } else { + $out->addModules( 'ext.uls.interface' ); + } } return true; diff --git a/resources/js/ext.uls.preferences.js b/resources/js/ext.uls.preferences.js index f0cbb5fa..5edde741 100644 --- a/resources/js/ext.uls.preferences.js +++ b/resources/js/ext.uls.preferences.js @@ -115,13 +115,14 @@ * Initialize */ init: function () { + var options; + if ( this.isAnon ) { - this.preferences = $.jStorage.get( this.preferenceName ); + this.preferences = $.jStorage.get( this.preferenceName ) || {}; } else { - var options = mw.user.options.get( this.preferenceName ); - this.preferences = $.parseJSON( options ); + options = mw.user.options.get( this.preferenceName ); + this.preferences = $.parseJSON( options ) || {}; } - this.preferences = this.preferences || {}; }, /** @@ -157,7 +158,6 @@ $.jStorage.set( this.preferenceName, this.preferences ); callback.call( this, true ); } else { - // Logged in user. Use MW APIs to change preferences saveOptionsWithToken( { action: 'options',