Nischayn22 has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/49392


Change subject: (bug 37947) disable Moodbar using user prefs
......................................................................

(bug 37947) disable Moodbar using user prefs

Change-Id: I0af9f522cc679ffbc060cad4d6f6a4db57815cef
---
M MoodBar.hooks.php
M MoodBar.i18n.php
M MoodBar.php
M modules/ext.moodBar/ext.moodBar.core.js
M modules/ext.moodBar/ext.moodBar.init.js
5 files changed, 49 insertions(+), 7 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/MoodBar 
refs/changes/92/49392/1

diff --git a/MoodBar.hooks.php b/MoodBar.hooks.php
index fb6559d..76ed100 100644
--- a/MoodBar.hooks.php
+++ b/MoodBar.hooks.php
@@ -76,6 +76,10 @@
                        return false;
                }
 
+               if ( $skin->getUser()->getOption( 'moodbar-disable' ) == 1 ) {
+                       return false;
+               }
+
                if ( $skin->getUser()->isAnon() ) {
                        return false;
                }
@@ -181,4 +185,18 @@
                //sort($buckets);
                return $buckets;
        }
+
+       /**
+        * Sets the preferences for disabling moodbar.
+        */
+       public static function onGetPreferences( $user, &$preferences ) {
+        // A checkbox
+               $preferences['moodbar-disable'] = array(
+                       'type' => 'toggle',
+                       'label-message' => 'moodbar-disable', // a system 
message
+                       'section' => 'misc/moodbar',
+        );
+
+               return true;
+       }
 }
diff --git a/MoodBar.i18n.php b/MoodBar.i18n.php
index 12be4d5..beb5de6 100644
--- a/MoodBar.i18n.php
+++ b/MoodBar.i18n.php
@@ -204,6 +204,9 @@
 Thanks for being part of the community.
 
 -- {{SITENAME}}',
+       // Preferences
+       'moodbar-disable' => 'Disable Moodbar',
+       'prefs-moodbar' => 'Moodbar',
 );
 
 /** Message documentation (Message documentation)
@@ -412,6 +415,9 @@
 *$3 is the responder talk page
 *$4 is the response text
 *$5 is commenter talk page',
+       // Preferences
+       'moodbar-disable' => 'Text for checkbox to disable moodbar',
+       'prefs-moodbar' => 'Moodbar section heading on Misc tab in Preferences',
 );
 
 /** Afrikaans (Afrikaans)
diff --git a/MoodBar.php b/MoodBar.php
index 0c528e5..f284b37 100644
--- a/MoodBar.php
+++ b/MoodBar.php
@@ -44,6 +44,7 @@
 $wgHooks['MakeGlobalVariablesScript'][] = 
'MoodBarHooks::makeGlobalVariablesScript';
 $wgHooks['LoadExtensionSchemaUpdates'][] = 
'MoodBarHooks::onLoadExtensionSchemaUpdates';
 $wgHooks['onMarkItemAsHelpful'][] = 'MoodBarHooks::onMarkItemAsHelpful';
+$wgHooks['GetPreferences'][] = 'MoodBarHooks::onGetPreferences';
 
 // Special pages
 $wgAutoloadClasses['SpecialMoodBar'] = $moodBarDir . 'SpecialMoodBar.php';
diff --git a/modules/ext.moodBar/ext.moodBar.core.js 
b/modules/ext.moodBar/ext.moodBar.core.js
index 8d2f20b..3a3d501 100644
--- a/modules/ext.moodBar/ext.moodBar.core.js
+++ b/modules/ext.moodBar/ext.moodBar.core.js
@@ -121,11 +121,29 @@
 
                        disable: function( e ) {
                                e.preventDefault();
-                               $.cookie(
-                                       mb.cookiePrefix() + 'disabled',
-                                       '1',
-                                       { 'path': '/', 'expires': Number( 
mb.conf.disableExpiration ) }
+
+                               var tokenRequest = {
+                                       'action': 'tokens',
+                                       'type' : 'options'
+                               };
+                               var prefRequest = {
+                                       'action': 'options',
+                                       'change': 'moodbar-disable=1'
+                               };
+
+                               var api = new mw.Api();
+                               api.post( tokenRequest,
+                                       function( data ) {
+                                               try {
+                                                       var token = 
data.tokens.optionstoken;
+                                               } catch ( e ) {
+                                                       throw new Error( 'Could 
not get token to set user preferences (requires MediaWiki 1.20).' );
+                                               }
+                                               prefRequest.token = token;
+                                               api.post( prefRequest, 
function() { return true; } );
+                                       }
                                );
+
                                mb.ui.overlay.fadeOut( 'fast' );
                                mb.ui.trigger.fadeOut( 'fast' );
                        },
diff --git a/modules/ext.moodBar/ext.moodBar.init.js 
b/modules/ext.moodBar/ext.moodBar.init.js
index 0464114..bf2c15d 100644
--- a/modules/ext.moodBar/ext.moodBar.init.js
+++ b/modules/ext.moodBar/ext.moodBar.init.js
@@ -17,15 +17,14 @@
                },
 
                isDisabled: function() {
-                       var cookieDisabled = ($.cookie( mb.cookiePrefix() + 
'disabled' ) === '1'),
-                               browserDisabled = false,
+                       var browserDisabled = false,
                                clientInfo = $.client.profile();
 
                        if ( clientInfo.name === 'msie' && 
clientInfo.versionNumber < 7 ) {
                                browserDisabled = true;
                        }
 
-                       return cookieDisabled || browserDisabled;
+                       return browserDisabled;
                },
 
                ui: {

-- 
To view, visit https://gerrit.wikimedia.org/r/49392
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I0af9f522cc679ffbc060cad4d6f6a4db57815cef
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/MoodBar
Gerrit-Branch: master
Gerrit-Owner: Nischayn22 <nischay...@gmail.com>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to