From: Bartosz DziewoƄski Date: Mon, 19 Jun 2017 19:40:27 +0000 (+0200) Subject: mw.action.edit: Fix byte limit for the edit summary field X-Git-Tag: 1.31.0-rc.0~2944^2 X-Git-Url: https://git.cyclocoop.org/%27.WWW_URL.%27admin/?a=commitdiff_plain;h=e9e47c36a473b3819a977637cef9f6f1bf44325e;p=lhc%2Fweb%2Fwiklou.git mw.action.edit: Fix byte limit for the edit summary field In OOUI mode, the `.byteLimit( 255 )` call must be after the edit summary widget is infused. Otherwise, infusing "reverts" the 'maxlength' attribute of the input field back to the original value of 200, as set by the PHP code. (The byte limit was still applied, but in most cases the 'maxlength' applied first.) Bug: T168194 Change-Id: If0117a7af5bb6975c8355b42fdbc8501c6a02919 --- diff --git a/resources/src/mediawiki.action/mediawiki.action.edit.js b/resources/src/mediawiki.action/mediawiki.action.edit.js index 7e2ee5e5c5..49e64b5254 100644 --- a/resources/src/mediawiki.action/mediawiki.action.edit.js +++ b/resources/src/mediawiki.action/mediawiki.action.edit.js @@ -19,26 +19,26 @@ $( function () { var editBox, scrollTop, $editForm; - // Make sure edit summary does not exceed byte limit - // TODO: Replace with this when $wgOOUIEditPage is removed: - // OO.ui.infuse( 'wpSummary' ).$input.byteLimit( 255 ); - $( '#wpSummary' ).byteLimit( 255 ); - - // 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. if ( $( '#editform' ).hasClass( 'mw-editform-ooui' ) ) { mw.loader.using( 'oojs-ui-core' ).then( function () { var wpSummary = OO.ui.infuse( $( '#wpSummaryWidget' ) ); + // Make sure edit summary does not exceed byte limit + wpSummary.$input.byteLimit( 255 ); + + // 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. function updateSummaryLabelCount() { wpSummary.setLabel( String( 255 - $.byteLength( wpSummary.getValue() ) ) ); } - wpSummary.on( 'change', updateSummaryLabelCount ); // Initialise value updateSummaryLabelCount(); } ); + } else { + // Make sure edit summary does not exceed byte limit + $( '#wpSummary' ).byteLimit( 255 ); } // Restore the edit box scroll state following a preview operation,