diff options
Diffstat (limited to 'resources/src/mediawiki.action/mediawiki.action.edit.js')
-rw-r--r-- | resources/src/mediawiki.action/mediawiki.action.edit.js | 51 |
1 files changed, 34 insertions, 17 deletions
diff --git a/resources/src/mediawiki.action/mediawiki.action.edit.js b/resources/src/mediawiki.action/mediawiki.action.edit.js index 01a25f3b..c9834f04 100644 --- a/resources/src/mediawiki.action/mediawiki.action.edit.js +++ b/resources/src/mediawiki.action/mediawiki.action.edit.js @@ -1,23 +1,40 @@ /*! * Scripts for action=edit at domready */ -jQuery( function ( $ ) { - var editBox, scrollTop, $editForm; +( function ( mw, $ ) { + 'use strict'; - // Make sure edit summary does not exceed byte limit - $( '#wpSummary' ).byteLimit( 255 ); + /** + * Fired when the editform is added to the edit page + * + * Similar to the {@link mw.hook#event-wikipage_content wikipage.content hook} + * $editForm can still be detached when this hook is fired. + * + * @event wikipage_editform + * @member mw.hook + * @param {jQuery} $editForm The most appropriate element containing the + * editform, usually #editform. + */ - // Restore the edit box scroll state following a preview operation, - // and set up a form submission handler to remember this state. - editBox = document.getElementById( 'wpTextbox1' ); - scrollTop = document.getElementById( 'wpScrolltop' ); - $editForm = $( '#editform' ); - if ( $editForm.length && editBox && scrollTop ) { - if ( scrollTop.value ) { - editBox.scrollTop = scrollTop.value; + $( function () { + var editBox, scrollTop, $editForm; + + // Make sure edit summary does not exceed byte limit + $( '#wpSummary' ).byteLimit( 255 ); + + // Restore the edit box scroll state following a preview operation, + // and set up a form submission handler to remember this state. + editBox = document.getElementById( 'wpTextbox1' ); + scrollTop = document.getElementById( 'wpScrolltop' ); + $editForm = $( '#editform' ); + mw.hook( 'wikipage.editform' ).fire( $editForm ); + if ( $editForm.length && editBox && scrollTop ) { + if ( scrollTop.value ) { + editBox.scrollTop = scrollTop.value; + } + $editForm.submit( function () { + scrollTop.value = editBox.scrollTop; + } ); } - $editForm.submit( function () { - scrollTop.value = editBox.scrollTop; - } ); - } -} ); + } ); +}( mediaWiki, jQuery ) ); |