https://www.mediawiki.org/wiki/Special:Code/MediaWiki/115430

Revision: 115430
Author:   tparscal
Date:     2012-05-25 00:31:02 +0000 (Fri, 25 May 2012)
Log Message:
-----------
Cleaned up CSS and JavaScript

* Moved repeated CSS rules to a general stylesheet
* Fixed lots of whitespace issues
* Reorganized JS for performance and readability

Modified Paths:
--------------
    trunk/extensions/OnlineStatusBar/OnlineStatusBar.php
    trunk/extensions/OnlineStatusBar/resources/OnlineStatusBar.css
    trunk/extensions/OnlineStatusBar/resources/OnlineStatusBarChick.css
    trunk/extensions/OnlineStatusBar/resources/OnlineStatusBarCologneBlue.css
    trunk/extensions/OnlineStatusBar/resources/OnlineStatusBarModern.css
    trunk/extensions/OnlineStatusBar/resources/OnlineStatusBarMonobook.css
    trunk/extensions/OnlineStatusBar/resources/OnlineStatusBarNostalgia.css
    trunk/extensions/OnlineStatusBar/resources/OnlineStatusBarSimple.css
    trunk/extensions/OnlineStatusBar/resources/OnlineStatusBarStandard.css
    trunk/extensions/OnlineStatusBar/resources/OnlineStatusBarVector.css
    trunk/extensions/OnlineStatusBar/resources/ext.onlinestatusbar.js

Added Paths:
-----------
    trunk/extensions/OnlineStatusBar/resources/OnlineStatusBarDefault.css

Modified: trunk/extensions/OnlineStatusBar/OnlineStatusBar.php
===================================================================
--- trunk/extensions/OnlineStatusBar/OnlineStatusBar.php        2012-05-24 
22:43:24 UTC (rev 115429)
+++ trunk/extensions/OnlineStatusBar/OnlineStatusBar.php        2012-05-25 
00:31:02 UTC (rev 115430)
@@ -29,7 +29,7 @@
 
 $wgResourceModules['ext.OnlineStatusBar'] = array (
        'skinStyles' => array (
-               'default' => array ( 'resources/OnlineStatusBar.css' ),
+               'default' => array ( 'resources/OnlineStatusBarDefault.css' ),
                'chick' => array ( 'resources/OnlineStatusBarChick.css' ),
                'vector' => array ( 'resources/OnlineStatusBarVector.css'),
                'modern' => array ( 'resources/OnlineStatusBarModern.css' ),
@@ -39,6 +39,7 @@
                'cologneblue' => array ( 
'resources/OnlineStatusBarCologneBlue.css' ),
                'nostalgia' => array ( 'resources/OnlineStatusBarNostalgia.css' 
),
        ),
+       'styles' => 'resources/OnlineStatusBar.css',
        'scripts' => 'resources/ext.onlinestatusbar.js',
        'localBasePath' => dirname ( __FILE__ ),
        'remoteExtPath' => 'OnlineStatusBar',

Modified: trunk/extensions/OnlineStatusBar/resources/OnlineStatusBar.css
===================================================================
--- trunk/extensions/OnlineStatusBar/resources/OnlineStatusBar.css      
2012-05-24 22:43:24 UTC (rev 115429)
+++ trunk/extensions/OnlineStatusBar/resources/OnlineStatusBar.css      
2012-05-25 00:31:02 UTC (rev 115430)
@@ -1,24 +1,15 @@
-/*
-This is a part of css used on english wp, it's needed for wikis
-where topicon isn't defined
-*/
-div.onlinestatusbartop {
+/* OnlineStatusBar Styles for all skins */
+
+.onlinestatusbartop {
        position: absolute;
-       top: 2em;
-       margin-right: 0px;
-       display: block !important;
+       display: block;
 }
 
-div.onlinestatusbaricon {
-       border: 0px solid black;
+.onlinestatusbaricon {
+       border: 0 solid black;
        background: transparent;
        float: right;
        position: relative;
-       top: 0px;
+       top: 0;
        padding: 5px;
 }
-
-div.onlinestatusbarbody {
-       right:0px;
-       margin-top:0px;
-}

Modified: trunk/extensions/OnlineStatusBar/resources/OnlineStatusBarChick.css
===================================================================
--- trunk/extensions/OnlineStatusBar/resources/OnlineStatusBarChick.css 
2012-05-24 22:43:24 UTC (rev 115429)
+++ trunk/extensions/OnlineStatusBar/resources/OnlineStatusBarChick.css 
2012-05-25 00:31:02 UTC (rev 115430)
@@ -1,24 +1,11 @@
-/*
-This is a part of css used on english wp, it's needed for wikis
-where topicon isn't defined
-*/
-div.onlinestatusbartop {
-       position: absolute;
+/* OnlineStatusBar Styles for Chick */
+
+.onlinestatusbartop {
        top: 32px;
        margin-right: 4px;
-       display: block !important;
 }
 
-div.onlinestatusbaricon {
-       border: 0px solid black;
-       background: transparent;
-       float: right;
-       position: relative;
-       top: 0px;
-       padding: 5px;
+.onlinestatusbarbody {
+       right: 0;
+       margin-top: 0;
 }
-
-div.onlinestatusbarbody {
-       right:0px;
-       margin-top:0px;
-}

Modified: 
trunk/extensions/OnlineStatusBar/resources/OnlineStatusBarCologneBlue.css
===================================================================
--- trunk/extensions/OnlineStatusBar/resources/OnlineStatusBarCologneBlue.css   
2012-05-24 22:43:24 UTC (rev 115429)
+++ trunk/extensions/OnlineStatusBar/resources/OnlineStatusBarCologneBlue.css   
2012-05-25 00:31:02 UTC (rev 115430)
@@ -1,25 +1,12 @@
-/*
-This is a part of css used on english wp, it's needed for wikis
-where topicon isn't defined
-*/
-div.onlinestatusbartop {
-       position: absolute;
+/* OnlineStatusBar Styles for CologneBlue */
+
+.onlinestatusbartop {
        top: 122px;
        margin-right: 10px;
-       display: block !important;
 }
 
-div.onlinestatusbaricon {
-       border: 0px solid black;
-       background: transparent;
-       float: right;
-       position: relative;
-       top: 0px;
-       padding: 5px;
-}
-
-div.onlinestatusbarbody {
+.onlinestatusbarbody {
        position: absolute;
-       right:0px;
-       margin-top:0px;
+       right: 0;
+       margin-top: 0;
 }

Added: trunk/extensions/OnlineStatusBar/resources/OnlineStatusBarDefault.css
===================================================================
--- trunk/extensions/OnlineStatusBar/resources/OnlineStatusBarDefault.css       
                        (rev 0)
+++ trunk/extensions/OnlineStatusBar/resources/OnlineStatusBarDefault.css       
2012-05-25 00:31:02 UTC (rev 115430)
@@ -0,0 +1,11 @@
+/* OnlineStatusBar Styles for other skins */
+
+.onlinestatusbartop {
+       top: 2em;
+       margin-right: 0;
+}
+
+.onlinestatusbarbody {
+       right: 0;
+       margin-top: 0;
+}

Modified: trunk/extensions/OnlineStatusBar/resources/OnlineStatusBarModern.css
===================================================================
--- trunk/extensions/OnlineStatusBar/resources/OnlineStatusBarModern.css        
2012-05-24 22:43:24 UTC (rev 115429)
+++ trunk/extensions/OnlineStatusBar/resources/OnlineStatusBarModern.css        
2012-05-25 00:31:02 UTC (rev 115430)
@@ -1,25 +1,12 @@
-/*
-This is a part of css used on english wp, it's needed for wikis
-where topicon isn't defined
-*/
-div.onlinestatusbartop {
-       position: absolute;
+/* OnlineStatusBar Styles for Modern */
+
+.onlinestatusbartop {
        top: 6px;
        margin-right: 2px;
        color: white;
-       display: block !important;
 }
 
-div.onlinestatusbaricon {
-       border: 0px solid black;
-       background: transparent;
-       float: right;
-       position: relative;
-       top: 0px;
-       padding: 5px;
+.onlinestatusbarbody {
+       right: 0;
+       margin-top: -3px;
 }
-
-div.onlinestatusbarbody {
-       right:0px;
-       margin-top:-3px;
-}

Modified: trunk/extensions/OnlineStatusBar/resources/OnlineStatusBarMonobook.css
===================================================================
--- trunk/extensions/OnlineStatusBar/resources/OnlineStatusBarMonobook.css      
2012-05-24 22:43:24 UTC (rev 115429)
+++ trunk/extensions/OnlineStatusBar/resources/OnlineStatusBarMonobook.css      
2012-05-25 00:31:02 UTC (rev 115430)
@@ -1,24 +1,11 @@
-/*
-This is a part of css used on english wp, it's needed for wikis
-where topicon isn't defined
-*/
-div.onlinestatusbartop {
-        position: absolute;
+/* OnlineStatusBar Styles for Monobook */
+
+.onlinestatusbartop {
        z-index: 10;
        top: 10px;
-        display: block !important;
 }
 
-div.onlinestatusbaricon {
-        border: 0px solid black;
-        background: transparent;
-        float: right;
-        position: relative;
-        top: 0px;
-        padding: 5px;
+.onlinestatusbarbody {
+       right: 0;
+       margin-top: -2px;
 }
-
-div.onlinestatusbarbody {
-        right:0px;
-        margin-top:-2px;
-}

Modified: 
trunk/extensions/OnlineStatusBar/resources/OnlineStatusBarNostalgia.css
===================================================================
--- trunk/extensions/OnlineStatusBar/resources/OnlineStatusBarNostalgia.css     
2012-05-24 22:43:24 UTC (rev 115429)
+++ trunk/extensions/OnlineStatusBar/resources/OnlineStatusBarNostalgia.css     
2012-05-25 00:31:02 UTC (rev 115430)
@@ -1,24 +1,11 @@
-/*
-This is a part of css used on english wp, it's needed for wikis
-where topicon isn't defined
-*/
-div.onlinestatusbartop {
-       position: absolute;
+/* OnlineStatusBar Styles for Nostalgia */
+
+.onlinestatusbartop {
        top: 18px;
        margin-right: 261px;
-       display: block !important;
 }
 
-div.onlinestatusbaricon {
-       border: 0px solid black;
-       background: transparent;
-       float: right;
-       position: relative;
-       top: 0px;
-       padding: 5px;
+.onlinestatusbarbody {
+       right: 0;
+       margin-top: 0;
 }
-
-div.onlinestatusbarbody {
-       right:0px;
-       margin-top:0px;
-}

Modified: trunk/extensions/OnlineStatusBar/resources/OnlineStatusBarSimple.css
===================================================================
--- trunk/extensions/OnlineStatusBar/resources/OnlineStatusBarSimple.css        
2012-05-24 22:43:24 UTC (rev 115429)
+++ trunk/extensions/OnlineStatusBar/resources/OnlineStatusBarSimple.css        
2012-05-25 00:31:02 UTC (rev 115430)
@@ -1,24 +1,11 @@
-/*
-This is a part of css used on english wp, it's needed for wikis
-where topicon isn't defined
-*/
-div.onlinestatusbartop {
-       position: absolute;
-       top: 0em;
+/* OnlineStatusBar Styles for Simple */
+
+.onlinestatusbartop {
+       top: 0;
        margin-right: 2px;
-       display: block !important;
 }
 
-div.onlinestatusbaricon {
-       border: 0px solid black;
-       background: transparent;
-       float: right;
-       position: relative;
-       top: 0px;
-       padding: 5px;
+.onlinestatusbarbody {
+       right: 0;
+       margin-top: 2px;
 }
-
-div.onlinestatusbarbody {
-       right:0px;
-       margin-top:2px;
-}

Modified: trunk/extensions/OnlineStatusBar/resources/OnlineStatusBarStandard.css
===================================================================
--- trunk/extensions/OnlineStatusBar/resources/OnlineStatusBarStandard.css      
2012-05-24 22:43:24 UTC (rev 115429)
+++ trunk/extensions/OnlineStatusBar/resources/OnlineStatusBarStandard.css      
2012-05-25 00:31:02 UTC (rev 115430)
@@ -1,24 +1,11 @@
-/*
-This is a part of css used on english wp, it's needed for wikis
-where topicon isn't defined
-*/
-div.onlinestatusbartop {
-       position: absolute;
+/* OnlineStatusBar Styles for Standard */
+
+.onlinestatusbartop {
        top: 4em;
        margin-right: 4px;
-       display: block !important;
 }
 
-div.onlinestatusbaricon {
-       border: 0px solid black;
-       background: transparent;
-       float: right;
-       position: relative;
-       top: 0px;
-       padding: 5px;
+.onlinestatusbarbody {
+       right: 0;
+       margin-top: 6px;
 }
-
-div.onlinestatusbarbody {
-       right:0px;
-       margin-top:6px;
-}

Modified: trunk/extensions/OnlineStatusBar/resources/OnlineStatusBarVector.css
===================================================================
--- trunk/extensions/OnlineStatusBar/resources/OnlineStatusBarVector.css        
2012-05-24 22:43:24 UTC (rev 115429)
+++ trunk/extensions/OnlineStatusBar/resources/OnlineStatusBarVector.css        
2012-05-25 00:31:02 UTC (rev 115430)
@@ -1,24 +1,11 @@
-/*
-This is a part of css used on english wp, it's needed for wikis
-where topicon isn't defined
-*/
-div.onlinestatusbartop {
-       position: absolute;
+/* OnlineStatusBar Styles for Vector */
+
+.onlinestatusbartop {
        top: -2em;
-       margin-right: 0px;
-       display: block !important;
+       margin-right: 0;
 }
 
-div.onlinestatusbaricon {
-       border: 0px solid black;
-       background: transparent;
-       float: right;
-       position: relative;
-       top: 0px;
-       padding: 5px;
+.onlinestatusbarbody {
+       right: 0;
+       margin-top: -10px;
 }
-
-div.onlinestatusbarbody {
-       right:0px;
-       margin-top:-10px;
-}

Modified: trunk/extensions/OnlineStatusBar/resources/ext.onlinestatusbar.js
===================================================================
--- trunk/extensions/OnlineStatusBar/resources/ext.onlinestatusbar.js   
2012-05-24 22:43:24 UTC (rev 115429)
+++ trunk/extensions/OnlineStatusBar/resources/ext.onlinestatusbar.js   
2012-05-25 00:31:02 UTC (rev 115430)
@@ -1,43 +1,59 @@
-// script of Online Status Bar extension
-// created by Brion Vibber and Petr Bena
+/**
+ * OnlineStatusBar front-end.
+ *
+ * @file
+ * @author Brion Vibber
+ * @author Petr Bena
+ * @author Trevor Parscal
+ */
 
-$(function() {
+jQuery( function() {
 
-var $statusbar = $('#status-top'),
-       $iconbar = $('.onlinestatusbaricon');
+var $statusbar = $( '#status-top' ),
+       $iconbar = $( '.onlinestatusbaricon' ),
+       imagePath = mw.config.get( 'wgExtensionAssetsPath' ) +
+               '/OnlineStatusBar/resources/images/status',
+       statusImages = {
+               'offline': imagePath + 'red.png',
+               'online': imagePath + 'green.png',
+               'away': imagePath + 'orange.png',
+               'busy': imagePath + 'orange.png'
+       },
+       apiUrl = mw.config.get( 'wgScriptPath' ) + '/api' + mw.config.get( 
'wgScriptExtension' ),
+       // WARNING: This way of determining a username is limited to user pages 
and user talk pages
+       username = mw.config.get( 'wgTitle' );
 
-// Only do the rest if we have the statusbar!
-if ($statusbar.length > 0) {
-       function updateOnlineStatusBar() {
-               // ... code to fetch and update
-               $.ajax({
-                       url: mw.config.get('wgScriptPath') + '/api' + 
mw.config.get('wgScriptExtension'),
-                       data: {
-                               action: "query",
-                               prop: "onlinestatus",
-                               onlinestatususer: mw.config.get('wgTitle'),
-                               format: 'json'
-                       },
-                       success: function( data ) {
-                               // code to update the statusbar based on the 
returned message
-                               var statusMap = {
-                                       offline:'red',
-                                       online:'green',
-                                       away:'orange',
-                                       busy:'orange'
-                               };
-                               var imgName = 
statusMap[data.onlinestatus.result] + '.png';
-                               var $icon = mw.html.element('img', {
-                                       src: 
mw.config.values.wgExtensionAssetsPath + 
"/OnlineStatusBar/resources/images/status" + imgName
-                               });
-                               $statusbar.html(mw.msg('onlinestatusbar-line', 
mw.config.get('wgTitle'),$icon,mw.msg('onlinestatusbar-status-' + 
data.onlinestatus.result)));
-                       }
-               });
-       }
+/**
+ * Fetch the status of the user that owns this page or talk page and update 
the status bar.
+ *
+ * @function
+ */
+function updateOnlineStatusBar() {
+       $.ajax( {
+               'url': apiUrl,
+               'data': {
+                       'action': 'query',
+                       'prop': 'onlinestatus',
+                       'onlinestatususer': username,
+                       'format': 'json'
+               },
+               'success': function( data ) {
+                       // Update the statusbar
+                       var status = data.onlinestatus.result,
+                               image = mw.html.element( 'img', { 'src': 
statusImages[status] } ),
+                               text = mw.msg( 'onlinestatusbar-status-' + 
status );
+                       $statusbar.html( mw.msg( 'onlinestatusbar-line', 
username, image, text ) );
+               }
+       } );
+}
 
+// Only intialize the status bar if we are on the right page - this is 
controlled on the server side
+// so the presence of an element with #status-top is sufficient proof we are 
on the right page
+if ( $statusbar.length > 0 ) {
        // Update the status every couple minutes if we leave the page open
-       window.setInterval(updateOnlineStatusBar, 120 * 1000);
+       setInterval( updateOnlineStatusBar, 120 * 1000 );
+       // Update immediately as well
        updateOnlineStatusBar();
 }
 
-});
+} );


_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs

Reply via email to