From: James D. Forrester Date: Thu, 20 Jul 2017 15:18:26 +0000 (-0700) Subject: Live Preview: Cope with the edit summary being an OOjs UI widget X-Git-Tag: 1.31.0-rc.0~2433^2 X-Git-Url: https://git.heureux-cyclage.org/?p=lhc%2Fweb%2Fwiklou.git;a=commitdiff_plain;h=d4a75173298f719d7dc6b46ef4530b84bcb40a6e Live Preview: Cope with the edit summary being an OOjs UI widget Bug: T171156 Change-Id: Idb9118421ffbd438dd7b018a8dbf8bb991036232 --- diff --git a/resources/Resources.php b/resources/Resources.php index 45a90d1654..a89fb42241 100644 --- a/resources/Resources.php +++ b/resources/Resources.php @@ -1452,6 +1452,7 @@ return [ 'mediawiki.diff.styles', 'mediawiki.util', 'mediawiki.jqueryMsg', + 'oojs-ui-core', ], 'messages' => [ // Keep the uses message keys in sync with EditPage#setHeaders diff --git a/resources/src/mediawiki.action/mediawiki.action.edit.preview.js b/resources/src/mediawiki.action/mediawiki.action.edit.preview.js index 2b6fc9d8aa..ec572afd2c 100644 --- a/resources/src/mediawiki.action/mediawiki.action.edit.preview.js +++ b/resources/src/mediawiki.action/mediawiki.action.edit.preview.js @@ -3,12 +3,14 @@ */ ( function ( mw, $ ) { + var oojsuieditform; + /** * @ignore * @param {jQuery.Event} e */ function doLivePreview( e ) { - var isDiff, api, parseRequest, diffRequest, postData, copySelectors, section, + var isDiff, api, parseRequest, diffRequest, postData, copySelectors, section, summary, $wikiPreview, $wikiDiff, $editform, $textbox, $summary, $copyElements, $spinner, $errorBox; isDiff = ( e.target.name === 'wpDiff' ); @@ -16,7 +18,13 @@ $wikiDiff = $( '#wikiDiff' ); $editform = $( '#editform' ); $textbox = $editform.find( '#wpTextbox1' ); - $summary = $editform.find( '#wpSummary' ); + + if ( oojsuieditform ) { + summary = OO.ui.infuse( $( '#wpSummaryWidget' ) ); + } else { + $summary = $editform.find( '#wpSummary' ); + } + $spinner = $( '.mw-spinner-preview' ); $errorBox = $( '.errorbox' ); section = $editform.find( '[name="wpSection"]' ).val(); @@ -78,7 +86,7 @@ formatversion: 2, action: 'parse', title: mw.config.get( 'wgPageName' ), - summary: $summary.textSelection( 'getContents' ), + summary: oojsuieditform ? summary.getValue() : $summary.val(), prop: '' }; @@ -281,6 +289,8 @@ } $( function () { + oojsuieditform = $( '#editform' ).hasClass( 'mw-editform-ooui' ); + // Do not enable on user .js/.css pages, as there's no sane way of "previewing" // the scripts or styles without reloading the page. if ( $( '#mw-userjsyoucanpreview' ).length || $( '#mw-usercssyoucanpreview' ).length ) { @@ -307,7 +317,7 @@ } if ( !$( '.mw-summary-preview' ).length ) { - $( '#wpSummary' ).after( + $( oojsuieditform ? '#wpSummaryWidget' : '#wpSummary' ).after( $( '
' ).addClass( 'mw-summary-preview' ) ); }