User:DarkShadow/saveandedit.js

//////////////////////////////////////////////// // To use that script add following line to your Special:MyPage/skin.js (without the //): // importScript('User:Mabdul/saveandedit.js'); //adding a new button next to the edit field for saving and editing //////////////////////////////////////////////// //adding a new buttom if(document.getElementsByClassName('editButtons')[0]!='undefined') {	document.getElementsByClassName('editButtons')[0].innerHTML += ''; }

//function for returning function saveandedit_prompt{ //for displaying message on fail: form = ' '; jsMsg(form); var newtext = document.editform.wpTextbox1.value; var summary = document.editform.wpSummary.value; var notminor = document.editform.wpMinoredit.checked; summary += ' (using Save&Edit)'; //some advertising

//get the token var req = sajax_init_object; req.open("GET", wgScriptPath + "/api.php?action=query&prop=info&indexpageids=1&intoken=edit&format=json&titles="+encodeURIComponent(wgPageName), false); req.send(null); var response = eval('(' + req.responseText + ')'); pageid = response['query']['pageids'][0]; token = response['query']['pages'][pageid]['edittoken']; delete req;

//Check if only a section will be edited var url = String(window.location); var section = "no"; if(window.location.search != ""){ var undef = url.split("?"); var args = undef[1].split("&"); for(i=0; i < args.length; i++) { var a = args[i].split("="); if(a[0] == 'section') section = a[1]; }	}

//do the edit var req = sajax_init_object; var params = "action=edit"; if(section!="no") params += "&section="+section; params += "&format=json&token="+encodeURIComponent(token)+"&title="+encodeURIComponent(wgPageName)+"&text="+encodeURIComponent(newtext)+"&notminor="+notminor+"&summary="+encodeURIComponent(summary); url = wgScriptPath + "/api.php"; req.open("POST", url, true); req.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); req.setRequestHeader("Content-length", params.length); req.setRequestHeader("Connection", "close"); req.onreadystatechange = function { if(req.readyState == 4 && req.status == 200) { response = eval('(' + req.responseText + ')'); try { if (response['edit']['result'] == "Success") { //reload on the success window.location.reload; } else { //or handle out the error message document.getElementById('saveandedit_status').innerHTML = ' Edit failed on '+wgPageName+'. Best try it again (Don\'t forget to copy the text). Error info:' +response['error']['code'] + ' : ' + response['error']['info']; }			}			catch(err) { document.getElementById('saveandedit_status').innerHTML = ' Edit failed on '+wgPageName+' '; }			delete req; }	};	req.send(params); }