Abort previous unfinished API request before sending new request

This change requires 81171ab3 from core included in MediaWiki 1.27.

Change-Id: I8dec32bf49e412510cf5d98f2f946bfd337f47a1
This commit is contained in:
Fomafix 2016-01-27 11:07:38 +00:00 committed by [[mw:User:Fomafix]]
parent 708a72b5e7
commit 135716727d
2 changed files with 15 additions and 4 deletions

View file

@ -9,7 +9,7 @@
"descriptionmsg": "codeeditor-desc",
"type": "other",
"requires": {
"MediaWiki": ">= 1.25.0"
"MediaWiki": ">= 1.27.0"
},
"Hooks": {
"EditPage::showEditForm:initial": [

View file

@ -48,7 +48,8 @@
selectedLine = 0,
cookieEnabled,
returnFalse = function () { return false; },
extIconPath = mw.config.get( 'wgCodeEditorAssetsPath', mw.config.get( 'wgExtensionAssetsPath' ) ) + '/CodeEditor/images/';
extIconPath = mw.config.get( 'wgCodeEditorAssetsPath', mw.config.get( 'wgExtensionAssetsPath' ) ) + '/CodeEditor/images/',
api = new mw.Api();
// Initialize state
cookieEnabled = parseInt( mw.cookie.get( 'codeEditor-' + context.instance + '-showInvisibleChars' ), 10 );
@ -293,14 +294,24 @@
context.fn.updateButtonIcon( 'lineWrapping', context.fn.lineWrappingToolbarIcon );
},
setCodeEditorPreference: function ( prefValue ) {
var api = new mw.Api();
// Do not try to save options for anonymous user
if ( mw.user.isAnon() ) {
return;
}
// Abort any previous request
api.abort();
api.saveOption( 'usecodeeditor', prefValue ? 1 : 0 )
.fail( function ( code, result ) {
var message = 'Failed to set code editor preference: ' + code;
var message;
if ( code === 'http' && result.textStatus === 'abort' ) {
// Request was aborted. Ignore error
return;
}
message = 'Failed to set code editor preference: ' + code;
if ( result.error && result.error.info ) {
message += '\n' + result.error.info;
}