From 9cfb9cb9fba4dcfd25a0924237681b7cc86a20df Mon Sep 17 00:00:00 2001 From: Derk-Jan Hartman Date: Mon, 15 Jun 2015 00:13:20 +0200 Subject: [PATCH] Add a wikipage.diff hook Bug: T53583 Change-Id: Iba54f26537e0a7ffaaf9465e2f44de2e4367abdb --- .../mediawiki.action.edit.preview.js | 1 + resources/src/mediawiki/page/startup.js | 15 +++++++++++++++ 2 files changed, 16 insertions(+) diff --git a/resources/src/mediawiki.action/mediawiki.action.edit.preview.js b/resources/src/mediawiki.action/mediawiki.action.edit.preview.js index 5cd4a7e216..6de537abcb 100644 --- a/resources/src/mediawiki.action/mediawiki.action.edit.preview.js +++ b/resources/src/mediawiki.action/mediawiki.action.edit.preview.js @@ -106,6 +106,7 @@ diffHtml = query.pages[ query.pageids[ 0 ] ] .revisions[ 0 ].diff[ '*' ]; $wikiDiff.find( 'table.diff tbody' ).html( diffHtml ); + mw.hook( 'wikipage.diff' ).fire( $wikiDiff.find( 'table.diff' ) ); } catch ( e ) { // "result.blah is undefined" error, ignore mw.log.warn( e ); diff --git a/resources/src/mediawiki/page/startup.js b/resources/src/mediawiki/page/startup.js index 708dcb5c30..f2509e28fc 100644 --- a/resources/src/mediawiki/page/startup.js +++ b/resources/src/mediawiki/page/startup.js @@ -27,6 +27,21 @@ * root) */ mw.hook( 'wikipage.content' ).fire( $( '#mw-content-text' ) ); + + var $diff = $( 'table.diff' ); + if ( $diff.length ) { + /** + * Fired when the diff is added to a page containing a diff + * + * Similar to the {@link mw.hook#event-wikipage_content wikipage.content hook} + * $diff may still be detached when the hook is fired. + * + * @event wikipage_diff + * @member mw.hook + * @param {jQuery} $diff The root element of the MediaWiki diff (`table.diff`). + */ + mw.hook( 'wikipage.diff' ).fire( $diff.eq( 0 ) ); + } } ); }( mediaWiki, jQuery ) ); -- 2.20.1