From f6d65e533c62f6deb21342d4901ece24497b433e Mon Sep 17 00:00:00 2001 From: Pierre Schmitz Date: Thu, 4 Jun 2015 07:31:04 +0200 Subject: Update to MediaWiki 1.25.1 --- extensions/WikiEditor/modules/ext.wikiEditor.js | 81 +++++++++++++++++++++++-- 1 file changed, 77 insertions(+), 4 deletions(-) (limited to 'extensions/WikiEditor/modules/ext.wikiEditor.js') diff --git a/extensions/WikiEditor/modules/ext.wikiEditor.js b/extensions/WikiEditor/modules/ext.wikiEditor.js index 46087989..7e3baed6 100644 --- a/extensions/WikiEditor/modules/ext.wikiEditor.js +++ b/extensions/WikiEditor/modules/ext.wikiEditor.js @@ -1,7 +1,80 @@ /* * JavaScript for WikiEditor */ -jQuery( document ).ready( function ( $ ) { - // Initialize wikiEditor - $( '#wpTextbox1' ).wikiEditor(); -} ); + +( function ( $, mw ) { + function logEditEvent( action, data ) { + if ( mw.loader.getState( 'schema.Edit' ) === null ) { + return; + } + + mw.loader.using( 'schema.Edit' ).done( function () { + data = $.extend( { + version: 1, + action: action, + editor: 'wikitext', + platform: 'desktop', // FIXME + integration: 'page', + 'page.id': mw.config.get( 'wgArticleId' ), + 'page.title': mw.config.get( 'wgPageName' ), + 'page.ns': mw.config.get( 'wgNamespaceNumber' ), + 'page.revid': mw.config.get( 'wgRevisionId' ), + 'page.length': -1, // FIXME + 'user.id': mw.user.getId(), + 'user.editCount': mw.config.get( 'wgUserEditCount', 0 ), + 'mediawiki.version': mw.config.get( 'wgVersion' ) + }, data ); + + if ( mw.user.isAnon() ) { + data['user.class'] = 'IP'; + } + + data['action.' + action + '.type'] = data.type; + data['action.' + action + '.mechanism'] = data.mechanism; + data['action.' + action + '.timing'] = data.timing === undefined ? + 0 : Math.floor( data.timing ); + // Remove renamed properties + delete data.type; + delete data.mechanism; + delete data.timing; + + mw.eventLog.logEvent( 'Edit', data ); + } ); + } + + $( function () { + var $textarea = $( '#wpTextbox1' ), + editingSessionIdInput = $( '#editingStatsId' ), + editingSessionId, submitting, onUnloadFallback; + + // Initialize wikiEditor + $textarea.wikiEditor(); + + if ( editingSessionIdInput.length ) { + editingSessionId = editingSessionIdInput.val(); + logEditEvent( 'ready', { + editingSessionId: editingSessionId + } ); + $textarea.closest( 'form' ).submit( function () { + submitting = true; + } ); + onUnloadFallback = window.onunload; + window.onunload = function () { + var fallbackResult; + + if ( onUnloadFallback ) { + fallbackResult = onUnloadFallback(); + } + + if ( !submitting ) { + logEditEvent( 'abort', { + editingSessionId: editingSessionId, + // TODO: abort.type + } ); + } + + return fallbackResult; + }; + } + } ); +}( jQuery, mediaWiki ) ); \ No newline at end of file -- cgit v1.2.2