User:Gryllida/NewArticle/common.js

Note: After saving, you may have to bypass your browser's cache to see the changes. Mozilla / Firefox / Safari: hold down Shift while clicking Reload, or press Ctrl-Shift-R (Cmd-Shift-R on Apple Mac); IE: hold Ctrl while clicking Refresh, or press Ctrl-F5; Konqueror: simply click the Reload button, or press F5; Opera users may need to completely clear their cache in Tools→Preferences. — More skins

/*
Author : Svetlana Tkachenko svetlana@members.fsf.org
This file is a part of addInstantSaveToCodeEditor.
Licence: GPLv3+
Release date: 2018-03-13 [[Category:Gryllida New article experiment]]
Description: adds an instant save button to spans with gryllida-instant-save class
*/ 

mw.loader.using(['mediawiki.api', 'oojs-ui'], function () {
	if('.gryllida-instant-save'){
		// for spans
		var saveThePageForSpan = function(){
			// Update button text
			$('.gryllida-instant-save').text('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() + ' ([[User:Gryllida/js/addInstantSaveToNewArticle.js|assisted]])'
			}).done(function (data){
				// Success; Update button text
				$('.gryllida-instant-save').text('Saved');
				$('.gryllida-create-article-nav').css('visibility', 'visible');
				textbox.on('input propertychange paste', function(){
					$('.gryllida-instant-save').text('Save');
					$('.gryllida-create-article-nav').css('visibility', 'hidden');
				});
			});
		};
	$('.gryllida-instant-save').click(function(){saveThePageForSpan();});
	$('.gryllida-instant-save').css('visibility', 'visible');
	}
});

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