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.js64
1 files changed, 64 insertions, 0 deletions
diff --git a/resources/mediawiki/mediawiki.log.js b/resources/mediawiki/mediawiki.log.js
new file mode 100644
index 00000000..55bf77f0
--- /dev/null
+++ b/resources/mediawiki/mediawiki.log.js
@@ -0,0 +1,64 @@
+/*
+ * Implementation for mediaWiki.log stub
+ */
+
+(function ($, mw) {
+
+ /**
+ * Log output 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.
+ *
+ * @author Michael Dale <mdale@wikimedia.org>
+ * @author Trevor Parscal <tparscal@wikimedia.org>
+ * @param {string} string Message to output to console
+ */
+ mediaWiki.log = function( string ) {
+ // Allow log messages to use a configured prefix
+ if ( mw.config.exists( 'mw.log.prefix' ) ) {
+ string = mw.config.get( 'mw.log.prefix' ) + '> ' + string;
+ }
+ // Try to use an existing console
+ if ( typeof window.console !== 'undefined' && typeof window.console.log == 'function' ) {
+ window.console.log( string );
+ } else {
+ // Set timestamp
+ var d = new Date();
+ var 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' );
+ if ( !$log.length ) {
+ $log = $( '<div id="mw-log-console"></div>' )
+ .css( {
+ 'position': 'absolute',
+ 'overflow': 'auto',
+ 'z-index': 500,
+ 'bottom': '0px',
+ 'left': '0px',
+ 'right': '0px',
+ 'height': '150px',
+ 'background-color': 'white',
+ 'border-top': 'solid 2px #ADADAD'
+ } )
+ .appendTo( 'body' );
+ }
+ $log.append(
+ $( '<div></div>' )
+ .css( {
+ 'border-bottom': 'solid 1px #DDDDDD',
+ 'font-size': 'small',
+ 'font-family': 'monospace',
+ 'padding': '0.125em 0.25em'
+ } )
+ .text( string )
+ .append( '<span style="float:right">[' + time + ']</span>' )
+ );
+ }
+ };
+
+})(jQuery, mediaWiki);