jenkins-bot has submitted this change and it was merged. Change subject: MWWikitextStringTransferHandler: Show indeterminate progress bar while converting ......................................................................
MWWikitextStringTransferHandler: Show indeterminate progress bar while converting Also store the abortable API request so it can be cancelled by the dialog. To test this, put sleep(4); in ApiVisualEditor.php. Depends on Ied21e574baa in core. Change-Id: I83ffa9e0b7164ca4a34eae86cde452d8f38dc853 --- M extension.json M modules/ve-mw/i18n/en.json M modules/ve-mw/i18n/qqq.json M modules/ve-mw/tests/ui/datatransferhandlers/ve.ui.MWWikitextStringTransferHandler.test.js M modules/ve-mw/ui/datatransferhandlers/ve.ui.MWWikitextStringTransferHandler.js 5 files changed, 31 insertions(+), 5 deletions(-) Approvals: Jforrester: Looks good to me, approved jenkins-bot: Verified diff --git a/extension.json b/extension.json index ee590c2..ad1d4f4 100644 --- a/extension.json +++ b/extension.json @@ -1042,6 +1042,7 @@ "visualeditor-viewpage-savewarning-discard", "visualeditor-viewpage-savewarning-keep", "visualeditor-viewpage-savewarning-title", + "visualeditor-wikitext-progress", "visualeditor-wikitext-warning-title", "visualeditor-window-title", "ooui-dialog-process-continue", diff --git a/modules/ve-mw/i18n/en.json b/modules/ve-mw/i18n/en.json index 1725c00..0e74169 100644 --- a/modules/ve-mw/i18n/en.json +++ b/modules/ve-mw/i18n/en.json @@ -315,6 +315,7 @@ "visualeditor-viewpage-savewarning-discard": "Discard edits", "visualeditor-viewpage-savewarning-keep": "Continue editing", "visualeditor-viewpage-savewarning-title": "Are you sure?", + "visualeditor-wikitext-progress": "Converting wikitext", "visualeditor-wikitext-warning": "You are using the visual editor - [[{{MediaWiki:visualeditor-wikitext-warning-link}}|wikitext]] does not work here. To switch to source editing at any time without losing your changes, open the dropdown menu next to \"{{int:visualeditor-toolbar-savedialog}}\" and select \"{{int:visualeditor-mweditmodesource-title}}\".", "visualeditor-wikitext-warning-link": "mediawikiwiki:Special:MyLanguage/Help:Formatting", "visualeditor-wikitext-warning-title": "Wikitext markup detected" diff --git a/modules/ve-mw/i18n/qqq.json b/modules/ve-mw/i18n/qqq.json index d992247..c82cf65 100644 --- a/modules/ve-mw/i18n/qqq.json +++ b/modules/ve-mw/i18n/qqq.json @@ -324,6 +324,7 @@ "visualeditor-viewpage-savewarning-discard": "Text shown on the button which closes VE and discards changes when the user confirms that they want to leave the editor.\n\nPreceded by the prompt {{msg-mw|Visualeditor-viewpage-savewarning}}.\n\nFollowed by the button {{msg-mw|Visualeditor-viewpage-savewarning-keep}}.", "visualeditor-viewpage-savewarning-keep": "Text shown on the button which does not do anything when the user decides that they do not want to leave the editor.\n\nPreceded by the button {{msg-mw|Visualeditor-viewpage-savewarning-discard}}.", "visualeditor-viewpage-savewarning-title": "Title of the dialog shown when the user tries to leave the editor without saving their changes.\n\nFollowed by the following buttons:\n* {{msg-mw|Visualeditor-viewpage-savewarning-discard}}\n* {{msg-mw|Visualeditor-viewpage-savewarning-keep}}\n{{Identical|Are you sure?}}", + "visualeditor-wikitext-progress": "Label for progress bar shown while converting pasted wikitext.", "visualeditor-wikitext-warning": "Contents of notification displayed when Wikitext has been detected.\n\nRefers to:\n* {{msg-mw|Visualeditor-wikitext-warning-link}}\n* {{msg-mw|Visualeditor-toolbar-cancel}}\n* {{msg-mw|Visualeditor-mweditmodesource-title}}\nSee also:\n* {{msg-mw|Visualeditor-beta-warning}}", "visualeditor-wikitext-warning-link": "Link to page describing what Wikitext is.\n\nUsed in:\n* {{msg-mw|Visualeditor-wikitext-warning}}.\n\nTranslate to a title where most wikis in the language you're translating to have one such help page; if they don't have one, you can use [[mw:Special:MyLanguage/Help:Formatting]] as target.", "visualeditor-wikitext-warning-title": "Title of notification displayed when Wikitext has been detected" diff --git a/modules/ve-mw/tests/ui/datatransferhandlers/ve.ui.MWWikitextStringTransferHandler.test.js b/modules/ve-mw/tests/ui/datatransferhandlers/ve.ui.MWWikitextStringTransferHandler.test.js index d57deb9..484689a 100644 --- a/modules/ve-mw/tests/ui/datatransferhandlers/ve.ui.MWWikitextStringTransferHandler.test.js +++ b/modules/ve-mw/tests/ui/datatransferhandlers/ve.ui.MWWikitextStringTransferHandler.test.js @@ -26,6 +26,9 @@ return doc; } }; + }, + createProgress: function () { + return $.Deferred().promise(); } }; diff --git a/modules/ve-mw/ui/datatransferhandlers/ve.ui.MWWikitextStringTransferHandler.js b/modules/ve-mw/ui/datatransferhandlers/ve.ui.MWWikitextStringTransferHandler.js index e520c2b..3620cd5 100644 --- a/modules/ve-mw/ui/datatransferhandlers/ve.ui.MWWikitextStringTransferHandler.js +++ b/modules/ve-mw/ui/datatransferhandlers/ve.ui.MWWikitextStringTransferHandler.js @@ -18,6 +18,9 @@ ve.ui.MWWikitextStringTransferHandler = function VeUiMWWikitextStringTransferHandler() { // Parent constructor ve.ui.MWWikitextStringTransferHandler.super.apply( this, arguments ); + + // Properties + this.parsoidRequest = null; }; /* Inheritance */ @@ -74,8 +77,7 @@ * @inheritdoc */ ve.ui.MWWikitextStringTransferHandler.prototype.process = function () { - var xhr, - handler = this, + var handler = this, wikitext = this.item.getAsString(); function failure() { @@ -85,12 +87,15 @@ } // Convert wikitext to html using Parsoid. - xhr = new mw.Api().post( { + this.parsoidRequest = new mw.Api().post( { action: 'visualeditor', paction: 'parsefragment', page: mw.config.get( 'wgRelevantPageName' ), wikitext: wikitext - } ).then( function ( response ) { + } ); + + // Don't immediately chain, as this.parsoidRequest must be abortable + this.parsoidRequest.then( function ( response ) { var doc, surface; if ( ve.getProp( response, 'visualeditor', 'result' ) !== 'success' ) { return failure(); @@ -112,9 +117,24 @@ // Sometimes there are multiple <p> tags in the output. // That's okay: ignore the error and paste what we've got. } - handler.resolve( doc ); }, failure ); + + this.createProgress( this.parsoidRequest, ve.msg( 'visualeditor-wikitext-progress' ) ); + // Indeterminate progress + this.setProgress( null ); +}; + +/** + * @inheritdoc + */ +ve.ui.MWWikitextStringTransferHandler.prototype.abort = function () { + // Parent method + ve.ui.MWWikitextStringTransferHandler.super.prototype.abort.apply( this, arguments ); + + if ( this.parsoidRequest ) { + this.parsoidRequest.abort(); + } }; /* Registration */ -- To view, visit https://gerrit.wikimedia.org/r/233205 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: merged Gerrit-Change-Id: I83ffa9e0b7164ca4a34eae86cde452d8f38dc853 Gerrit-PatchSet: 4 Gerrit-Project: mediawiki/extensions/VisualEditor Gerrit-Branch: master Gerrit-Owner: Esanders <esand...@wikimedia.org> Gerrit-Reviewer: Cscott <canan...@wikimedia.org> Gerrit-Reviewer: Jforrester <jforres...@wikimedia.org> Gerrit-Reviewer: Siebrand <siebr...@kitano.nl> Gerrit-Reviewer: jenkins-bot <> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits