Участник:Denisbaltin/qsave.js

Материал из Википедии — свободной энциклопедии
if (mw.config.get('wgAction') == 'save' || mw.config.get('wgAction') == 'submit') 
 addOnloadHook(addQSaveButton);
 
 
function addQSaveButton(){ 
 if (!window.qSaveName) qSaveName = 'QSave';
 var accesskey = window.qSaveKey || '';
 if (window.qSaveAtBottom) 
   addSystemButton(qSaveName, qSave, 'btnQSave', 'Quick Save', accesskey);
 else
   addToolbarButton(qSaveName, qSave, 'btnQSave', 'Quick Save', accesskey);
}
 
function qSave(){
 var divSave = document.getElementById('wikiSave');
 if (!divSave) return;
 var btnQSave = document.getElementById('btnQSave');
 var btnWidth = Math.max(btnQSave.scrollWidth, btnQSave.offsetWidth);
 if (btnQSave) btnQSave.value = window.qSaveWait || 'Wait...';
 btnQSave.style.width = btnWidth + 'px';
 a = sajax_init_object();
 a.open('POST', document.editform.action+'&live', true);
 var Boundary = '--------p1415';
 a.setRequestHeader('Content-Type', 'multipart/form-data; boundary='+Boundary);
 var PostData = '--' + Boundary 
  + '\nContent-Disposition: form-data; name="wpTextbox1"\n\n'
  + document.getElementById('wpTextbox1').value + '\n--'+Boundary;
 if (a.overrideMimeType) a.overrideMimeType('text/html');
 a.send(PostData);
 a.onreadystatechange = function(){
  if (a.readyState != 4) return;
	var html = a.responseText;
	html = html.replace(/&gt;/g,'>').replace(/&lt;/g,'<').replace(/&quot;/g,'"').replace(/&amp;/g,'&').replace(/&apos;/g,"'");
	divSave.innerHTML = html;
	if (btnQSave)  btnQSave.value =  qSaveName;
 };
}
 
function addSystemButton(name, onclick, id, tooltip, accesskey){ 
	var wpSave = document.getElementById('wpSave');
	if (!wpSave) return;
	var newBtn = document.createElement('input');
	newBtn.type = 'button'; 
	if (name) newBtn.value = name; 
	if (onclick) newBtn.onclick = onclick;
	if (id) newBtn.id = id;
	if (tooltip) newBtn.title = tooltip; 
	if (accesskey) { 
		newBtn.accessKey = accesskey; 
		newBtn.title += ' [' + tooltipAccessKeyPrefix + accesskey + ']';
	}	
	wpSave.parentNode.insertBefore(newBtn, wpSave);
	return newBtn;
}
 
//Adds a text button to edit toolbar
function addToolbarButton(name, onclick, id, tooltip, accesskey){
	var toolbar = document.getElementById('toolbar');
	if (!toolbar) return;
	var newBtn = document.createElement('input');
	newBtn.type = 'button'; 
	newBtn.style.background = '#adbede';
	newBtn.style.height = '22px'; 
	newBtn.style.verticalAlign = 'middle';
	if (name) newBtn.value = name; 
	if (onclick) newBtn.onclick = onclick;
	if (id) newBtn.id = id;
	if (tooltip) newBtn.title = tooltip; 
	if (accesskey) newBtn.accessKey = accesskey; 
	toolbar.appendChild(newBtn);
	return newBtn;
}