Add a wikipage.diff hook
authorDerk-Jan Hartman <hartman.wiki@gmail.com>
Sun, 14 Jun 2015 22:13:20 +0000 (00:13 +0200)
committerTimo Tijhof <krinklemail@gmail.com>
Tue, 1 Dec 2015 01:52:07 +0000 (01:52 +0000)
Bug: T53583
Change-Id: Iba54f26537e0a7ffaaf9465e2f44de2e4367abdb

resources/src/mediawiki.action/mediawiki.action.edit.preview.js
resources/src/mediawiki/page/startup.js

index 5cd4a7e..6de537a 100644 (file)
                                        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 );
index 708dcb5..f2509e2 100644 (file)
                 *   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 ) );