From e9e47c36a473b3819a977637cef9f6f1bf44325e Mon Sep 17 00:00:00 2001 From: =?utf8?q?Bartosz=20Dziewo=C5=84ski?= Date: Mon, 19 Jun 2017 21:40:27 +0200 Subject: [PATCH] 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 --- .../mediawiki.action/mediawiki.action.edit.js | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) 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, -- 2.20.1