mirror of
https://gerrit.wikimedia.org/r/mediawiki/extensions/DiscussionTools
synced 2024-11-27 09:43:30 +00:00
ReplyWidget: Load modules required by the content when previewing
Unfortunately mw.Api#parse doesn't provide us with that part of the response, so we have to manually construct the parameters. Bug: T241193 Change-Id: Ie91d5ebc2ef483a69524b838dd3cb852e7c85cd2
This commit is contained in:
parent
e9b1037ec6
commit
0de5591889
|
@ -159,24 +159,33 @@ ReplyWidget.prototype.onInputChange = function () {
|
|||
// wikitext = surface.getDom();
|
||||
wikitext = this.textWidget.getValue();
|
||||
if ( !wikitext.trim() ) {
|
||||
parsePromise = $.Deferred().resolve( '' ).promise();
|
||||
parsePromise = $.Deferred().resolve( null ).promise();
|
||||
} else {
|
||||
wikitext = controller.autoSign( wikitext );
|
||||
wikitext = wikitext.slice( 0, -4 ) + '<span style="opacity: 0.5;">~~~~</span>';
|
||||
wikitext = indent + wikitext.replace( /\n/g, '\n' + indent );
|
||||
this.previewRequest = parsePromise = this.api.parse( wikitext, {
|
||||
this.previewRequest = parsePromise = this.api.post( {
|
||||
formatversion: 2,
|
||||
action: 'parse',
|
||||
text: wikitext,
|
||||
pst: true,
|
||||
prop: [ 'text', 'modules' ],
|
||||
title: mw.config.get( 'wgPageName' )
|
||||
} );
|
||||
}
|
||||
// TODO: Add list context
|
||||
|
||||
parsePromise.then( function ( html ) {
|
||||
parsePromise.then( function ( response ) {
|
||||
var heightAfter,
|
||||
heightBefore = widget.$preview.outerHeight( true );
|
||||
widget.$preview.html( html );
|
||||
widget.$preview.html( response ? response.parse.text : '' );
|
||||
heightAfter = widget.$preview.outerHeight( true );
|
||||
|
||||
if ( response ) {
|
||||
mw.loader.load( response.parse.modulestyles );
|
||||
mw.loader.load( response.parse.modules );
|
||||
}
|
||||
|
||||
// TODO: IE11?
|
||||
window.scrollBy( 0, heightAfter - heightBefore );
|
||||
} );
|
||||
|
|
Loading…
Reference in a new issue