summaryrefslogtreecommitdiff
path: root/resources/mediawiki/mediawiki.log.js
diff options
context:
space:
mode:
Diffstat (limited to 'resources/mediawiki/mediawiki.log.js')
-rw-r--r--resources/mediawiki/mediawiki.log.js95
1 files changed, 49 insertions, 46 deletions
diff --git a/resources/mediawiki/mediawiki.log.js b/resources/mediawiki/mediawiki.log.js
index 38f3411f..ad4c73df 100644
--- a/resources/mediawiki/mediawiki.log.js
+++ b/resources/mediawiki/mediawiki.log.js
@@ -1,67 +1,70 @@
-/*
- * Implementation for mediaWiki.log stub
+/**
+ * Logger for MediaWiki javascript.
+ * Implements the stub left by the main 'mediawiki' module.
+ *
+ * @author Michael Dale <mdale@wikimedia.org>
+ * @author Trevor Parscal <tparscal@wikimedia.org>
*/
-(function( $ ) {
+( function ( $ ) {
/**
- * Log output to the console.
+ * Logs a message to the console.
*
- * In the case that the browser does not have a console available, one is created by appending a
- * <div> element to the bottom of the body and then appending a <div> element to that for each
- * message.
+ * In the case the browser does not have a console API, a console is created on-the-fly by appending
+ * a <div id="mw-log-console"> element to the bottom of the body and then appending this and future
+ * messages to that, instead of the console.
*
- * @author Michael Dale <mdale@wikimedia.org>
- * @author Trevor Parscal <tparscal@wikimedia.org>
- * @param logmsg string Message to output to console.
+ * @param {String} First in list of variadic messages to output to console.
*/
- mw.log = function( logmsg ) {
- // Allow log messages to use a configured prefix to identify the source window (ie. frame)
- if ( mw.config.exists( 'mw.log.prefix' ) ) {
- logmsg = mw.config.get( 'mw.log.prefix' ) + '> ' + logmsg;
- }
+ mw.log = function( /* logmsg, logmsg, */ ) {
+ // Turn arguments into an array
+ var args = Array.prototype.slice.call( arguments ),
+ // Allow log messages to use a configured prefix to identify the source window (ie. frame)
+ prefix = mw.config.exists( 'mw.log.prefix' ) ? mw.config.get( 'mw.log.prefix' ) + '> ' : '';
+
// Try to use an existing console
if ( window.console !== undefined && $.isFunction( window.console.log ) ) {
- window.console.log( logmsg );
- } else {
- // Set timestamp
- var d = new Date();
- var time = ( d.getHours() < 10 ? '0' + d.getHours() : d.getHours() ) +
+ args.unshift( prefix );
+ window.console.log.apply( window.console, args );
+ return;
+ }
+
+ // If there is no console, use our own log box
+ mw.loader.using( 'jquery.footHovzer', function () {
+
+ var d = new Date(),
+ // Create HH:MM:SS.MIL timestamp
+ time = ( d.getHours() < 10 ? '0' + d.getHours() : d.getHours() ) +
':' + ( d.getMinutes() < 10 ? '0' + d.getMinutes() : d.getMinutes() ) +
':' + ( d.getSeconds() < 10 ? '0' + d.getSeconds() : d.getSeconds() ) +
- '.' + ( d.getMilliseconds() < 10 ? '00' + d.getMilliseconds() : ( d.getMilliseconds() < 100 ? '0' + d.getMilliseconds() : d.getMilliseconds() ) );
- // Show a log box for console-less browsers
- var $log = $( '#mw-log-console' );
+ '.' + ( d.getMilliseconds() < 10 ? '00' + d.getMilliseconds() : ( d.getMilliseconds() < 100 ? '0' + d.getMilliseconds() : d.getMilliseconds() ) ),
+ $log = $( '#mw-log-console' );
+
if ( !$log.length ) {
- $log = $( '<div id="mw-log-console"></div>' )
- .css( {
- 'position': 'fixed',
- 'overflow': 'auto',
- 'z-index': 500,
- 'bottom': '0px',
- 'left': '0px',
- 'right': '0px',
- 'height': '150px',
- 'background-color': 'white',
- 'border-top': 'solid 2px #ADADAD'
+ $log = $( '<div id="mw-log-console"></div>' ).css( {
+ overflow: 'auto',
+ height: '150px',
+ backgroundColor: 'white',
+ borderTop: 'solid 2px #ADADAD'
} );
- $( 'body' )
- .css( 'padding-bottom', '150px' ) // don't hide anything
- .append( $log );
+ var hovzer = $.getFootHovzer();
+ hovzer.$.append( $log );
+ hovzer.update();
}
$log.append(
$( '<div></div>' )
.css( {
- 'border-bottom': 'solid 1px #DDDDDD',
- 'font-size': 'small',
- 'font-family': 'monospace',
- 'white-space': 'pre-wrap',
- 'padding': '0.125em 0.25em'
+ borderBottom: 'solid 1px #DDDDDD',
+ fontSize: 'small',
+ fontFamily: 'monospace',
+ whiteSpace: 'pre-wrap',
+ padding: '0.125em 0.25em'
} )
- .text( logmsg )
- .prepend( '<span style="float:right">[' + time + ']</span>' )
+ .text( prefix + args.join( ', ' ) )
+ .prepend( '<span style="float: right;">[' + time + ']</span>' )
);
- }
+ } );
};
-})(jQuery);
+})( jQuery );