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