میڈیا وکی:Gadget-saveandedit.js

یاددہانی: محفوظ کرݨ دے بعد انہاں تبدیلیاں کوں ݙیکھݨ کیتے تہاکوں آپݨے براؤزر دا کیشی (cache) صاف کرݨاں ہوسی۔

  • فائرفاکس/ سفاری: ڄݙݨ Reload تے کلک کرو تاں Shift دبا تے رکھو، یا Ctrl-F5 یا Ctrl-R دباؤ (Mac تے R-⌘)
  • گوگل کروم: Ctrl-Shift-R دباؤ (Mac تے Shift-R-⌘)
  • انٹرنیٹ ایکسپلورر: ڄݙݨ Refresh تے کلک کرو تاں Ctrl یا Ctrl-F5 دباؤ
  • اوپیرا: Ctrl-F5 دباؤ۔
//[[en:User:Mabdul/saveandedit.js]]
 
//adding a new buttom
var editButtons = document.getElementsByClassName('editButtons')[0];
if(editButtons)
{
	editButtons.innerHTML += '<input type="button" id="saveandedit_button" name="saveandedit_button" value="محفوظ پھر ترمیم" onclick="saveandedit_prompt()" />';
}
 
//function for returning
function saveandedit_prompt(){
	//for displaying message on fail:
	form = '<div id="saveandedit_status"></div>';
	jsMsg(form);
	var newtext = document.editform.wpTextbox1.value;
	var summary = document.editform.wpSummary.value;
	var notminor = document.editform.wpMinoredit.checked;
	summary += ' “[[MediaWiki:Gadget-saveandedit|محفوظ پھر ترمیم]]” '; 
 
	//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(mw.config.get('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(mw.config.get('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() {
		var saveAndEdit = document.getElementById('saveandedit_status');
		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 if (saveAndEdit) {
					//or handle out the error message
					saveAndEdit.innerHTML = '<div style="color:red"><b>Edit failed on <a href="'+mw.config.get('wgArticlePath').replace("$1", encodeURI(mw.config.get('wgPageName')))+'" title="'+mw.config.get('wgPageName')+'">'+mw.config.get('wgPageName')+'</a></b></div>. Best try it again (<b>Don\'t forget to copy the text</b>). Error info:' +response['error']['code'] + ' : ' + response['error']['info'];
				}
			}
			catch(err) {
				if(saveAndEdit)	saveAndEdit.innerHTML = '<div style="color:red"><b>Edit failed on <a href="'+mw.config.get('wgArticlePath').replace("$1", encodeURI(mw.config.get('wgPageName')))+'" title="'+mw.config.get('wgPageName')+'">'+mw.config.get('wgPageName')+'</a></b></div>';
			}
			delete req;
		}
	};
	req.send(params);
}