User:Acagastya/insatantSave.js

/* Author : Svetlana Tkachenko svetlana@members.fsf.org This file is a part of addInstantSaveToCodeEditor. Licence: GPLv3+ Description: adds 'Instant Save' button to CodeEditor and WikiEditor editors. Version: 0.1 ChangeLog: - Version 0.1 (2018-02-24) - initial release

Description: Adds 'Instant Save' button to CodeEditor and WikiEditor editors.

This button is located at the right of the 'Save Changes', 'Show Preview', 'Show changes' buttons. When clicked, says 'Saving...', saves currently typed text using a MediaWiki API query without reloading the page, and goes back to 'Instant Save' button text. While saving the edit summary is modified to append " (assisted)" at the end.



// Check that CodeEditor is loaded mw.loader.using(['mediawiki.api', 'oojs-ui'], function {	if('.wikiEditor-ui'){		var button = new OO.ui.ButtonWidget( { label: 'Instant Save', accessKey: 'o'		} );		// Instant save on click		button.$element.click(function{ // Update button text button.setLabel( 'Saving...'); // Get text area contents var textbox = $('#wpTextbox1'); var context = textbox && textbox.data('wikiEditor-context'); var currentText = context.$textarea.textSelection( 'getContents' ); // Save the page via AJAX edit api var api = new mw.Api; api.postWithToken("edit", {				action: 'edit',				title: mw.config.get ('wgPageName'),				text: currentText,				summary: $('#wpSummary').val + ' (assisted)'			}).done(function (data){				// Success; Update button text				button.setLabel( 'Instant Save');			}); });		$('#wpDiffWidget').after(button.$element);	} });

//	text: $('#wpTextbox1').text