diff options
Diffstat (limited to 'www/wiki/resources/src/mediawiki.action/mediawiki.action.edit.js')
-rw-r--r-- | www/wiki/resources/src/mediawiki.action/mediawiki.action.edit.js | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/www/wiki/resources/src/mediawiki.action/mediawiki.action.edit.js b/www/wiki/resources/src/mediawiki.action/mediawiki.action.edit.js new file mode 100644 index 00000000..a85e740a --- /dev/null +++ b/www/wiki/resources/src/mediawiki.action/mediawiki.action.edit.js @@ -0,0 +1,51 @@ +/*! + * Scripts for action=edit at domready + */ +( function ( mw, $ ) { + 'use strict'; + + /** + * 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. + */ + + $( function () { + var editBox, scrollTop, $editForm, + summaryCodePointLimit = mw.config.get( 'wgCommentCodePointLimit' ), + summaryByteLimit = mw.config.get( 'wgCommentByteLimit' ), + wpSummary = OO.ui.infuse( $( '#wpSummaryWidget' ) ); + + // Show a byte-counter to users with how many bytes are left for their edit summary. + // TODO: This looks a bit weird, as there is no unit in the UI, just numbers; showing + // 'bytes' confused users in testing, and showing 'chars' would be a lie. See T42035. + // (Showing 'chars' is still confusing with the code point limit, since it's not obvious + // that e.g. combining diacritics or zero-width punctuation count as characters.) + if ( summaryCodePointLimit ) { + mw.widgets.visibleCodePointLimit( wpSummary, summaryCodePointLimit ); + } else if ( summaryByteLimit ) { + mw.widgets.visibleByteLimit( wpSummary, summaryByteLimit ); + } + + // 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; + } ); + } + } ); +}( mediaWiki, jQuery ) ); |