පරිශීලක:තඹරු විජේසේකර/samepageedit.js
සටහන: සුරැකීමෙන් පසුව, වෙනස් කම් දැකගැනුමට ඔබගේ බ්රවුසරයෙහි කෑෂය මගහැරයෑමට ඔබට සිදුවිය හැක. ගූගල් ක්රෝම්, ෆයර්ෆොක්ස්, මයික්රොසොෆ්ට් එජ් සහ සෆාරි: Reload ඔබන අතරතුර ⇧ Shift ඔබන්න. සවිස්තරාත්ම උපදෙස් සහ වෙනත් බ්රව්සර වලට අදාළ තොරතුරු සඳහා, විකිපීඩියා:කෑෂය මගහැරයෑම වෙතට යොමු වන්න.
$(clickevent);
// This is what is loaded first
function clickevent() {
// on doubleclick go to the change function
if(wgAction == 'view' && wgNamespaceNumber != -1 && document.getElementById('ca-edit')) document.getElementById('bodyContent').addEventListener('dblclick', render, false);
}
function insertAfter(parent, node, referenceNode) {
parent.insertBefore(node, referenceNode.nextSibling);
}
// function qPreview(){
// if (!divPreview) return;
// a = sajax_init_object();
// a.open('POST', wgScriptPath+'/index.php?title='+wgPageName+'&action=submit' + '&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('editbox').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(/>/g,'>').replace(/</g,'<').replace(/"/g,'"').replace(/&/g,'&').replace(/'/g,"'");
// divPreview.innerHTML = html;
// };
// }
function simpleAJAXEdit(page, newtext, summary, minor, watch, callback){
xmlhttp = sajax_init_object();
xmlhttp.query = {
'title': page,
'action': 'submit'
}
xmlhttp.overrideMimeType('text/xml');
xmlhttp.open( 'GET' , mw.config.get('wgServer') + mw.config.get('wgScriptPath') + '/index.php?' + QueryString.create( xmlhttp.query ), true);
xmlhttp.onload = function() {
form = this.responseXML.getElementById( 'editform' );
var text = form.wpTextbox1.value;
var postData = {
'wpMinoredit': minor,
'wpWatchthis': watch,
'wpStarttime': form.wpStarttime.value,
'wpEdittime': form.wpEdittime.value,
'wpAutoSummary': form.wpAutoSummary.value,
'wpEditToken': form.wpEditToken.value,
'wpSummary': summary,
'wpTextbox1': newtext
};
var xmlhttp = sajax_init_object();
xmlhttp.overrideMimeType('text/xml');
xmlhttp.open( 'POST' , mw.config.get('wgServer') + mw.config.get('wgScriptPath') + '/index.php?' + QueryString.create( this.query ), true);
xmlhttp.setRequestHeader('Content-type','application/x-www-form-urlencoded');
xmlhttp.onload = function() {
if(callback){
setTimeout(callback, 100);
}
};
xmlhttp.send( QueryString.create( postData ) );
}
xmlhttp.send( null );
}
function simpleAJAXGetPageContent(page){
xmlhttp = sajax_init_object();
xmlhttp.query = {
'title': page,
'action': 'submit'
}
// if(startsum){
// document.getElementById('contentSub').innerHTML = startsum;
// }
xmlhttp.overrideMimeType('text/xml');
xmlhttp.open( 'GET' , mw.config.get('wgServer') + mw.config.get('wgScriptPath') + '/index.php?' + QueryString.create( xmlhttp.query ), true);
xmlhttp.onload = function() {
document.getElementById('editbox').value = this.responseXML.getElementById( 'editform' ).wpTextbox1.value
}
xmlhttp.send(null);
}
function editpage(){
simpleAJAXEdit(wgPageName, document.getElementById('editbox').value, document.getElementById('summarybox').value, document.getElementById('minoreditbox').checked ? 1 : undefined, false, cancel);
}
function render() {
if(document.getElementById('bodyContent').style.display != 'none') {
document.getElementById('bodyContent').style.display = 'none';
editbox = document.createElement('textarea');
editbox.setAttribute('id', 'editbox');
editbox.setAttribute('rows', '25');
editbox.setAttribute('cols', '80');
// editbox.setAttribute('innerHTML', 'A BUG IS PRESENT, PLEASE CONTACT THE CREATOR(S) OF THIS SCRIPT. SORRY FOR THE INCONVENIENCE.');
cancelbutton = document.createElement('button');
cancelbutton.setAttribute('id', 'cancelbutton');
cancelbutton.innerHTML = 'Cancel';
cancelbutton.addEventListener('click', realcancel, false);
editbutton = document.createElement('button');
editbutton.setAttribute('id', 'editbutton');
editbutton.setAttribute('accesskey', 's');
editbutton.innerHTML = '<b>Save edit</b>';
editbutton.addEventListener('click', editpage, false);
summarybox = document.createElement('input');
summarybox.setAttribute('id', 'summarybox');
summarybox.setAttribute('type', 'text');
summarybox.setAttribute('maxlength', '200');
summarybox.setAttribute('size', '60');
minoreditbox = document.createElement('input');
minoreditbox.setAttribute('id', 'minoreditbox');
minoreditbox.setAttribute('type', 'checkbox');
minoredittext = document.createElement('label');
minoredittext.setAttribute('for', 'minoreditbox');
minoredittext.setAttribute('accesskey', 'i');
minoredittext.setAttribute('title', 'Mark this as a minor edit [i]');
minoredittext.innerHTML = ' This is a minor edit (<a href="/wiki/Help:Minor_edit" title="Help:Minor edit">what'+"'"+'s this?</a>)';
br = document.createElement('br'); // br element
br2 = document.createElement('br'); // br element
space = document.createElement('span'); // nbsp hack
space.innerHTML = ' ';
summarytext = document.createElement('p');
summarytext.innerHTML = '<a href="/wiki/Help:Edit_summary" class="internal" title="Briefly describe the changes you have made" target="_blank">Edit summary</a> <small>(Briefly describe the changes you have made)</small>';
//insert the form elements
document.getElementById('content').insertBefore(editbox, document.getElementById('bodyContent'));
insertAfter(document.getElementById('content'), summarytext, editbox);
insertAfter(document.getElementById('content'), summarybox, summarytext);
insertAfter(document.getElementById('content'), br2, summarybox);
insertAfter(document.getElementById('content'), minoreditbox, br2);
insertAfter(document.getElementById('content'), minoredittext, minoreditbox);
insertAfter(document.getElementById('content'), br, minoredittext);
insertAfter(document.getElementById('content'), editbutton, br);
insertAfter(document.getElementById('content'), space, editbutton);
insertAfter(document.getElementById('content'), cancelbutton, space);
// divPreview = document.createElement('div');
// divPreview.setAttribute('id', 'wikiPreview');
// insertAfter(document.getElementById('content'), divPreview, document.getElementById('cancelbutton'));
// document.getElementById('editbox').addEventListener('keyup', qPreview, false);
oldtitle = document.getElementById('content').getElementsByTagName('h1')[0].innerHTML;
document.getElementById('content').getElementsByTagName('h1')[0].innerHTML = 'Editing ' + document.getElementById('content').getElementsByTagName('h1')[0].innerHTML;
simpleAJAXGetPageContent(wgPageName);
// document.getElementById('editbox').addEventListener('keyup', qPreview, false);
}
}
function cancel() {
window.location.reload();
}
function realcancel() {
// kill the textarea
document.getElementById('content').removeChild(editbox);
// kill the cancel button
document.getElementById('content').removeChild(cancelbutton);
// kill the save button
document.getElementById('content').removeChild(editbutton);
// kill the edit summary box
document.getElementById('content').removeChild(summarybox);
// kill the space
document.getElementById('content').removeChild(space);
// kill the edit summary text
document.getElementById('content').removeChild(summarytext);
// kill the br's
document.getElementById('content').removeChild(br);
document.getElementById('content').removeChild(br2);
// kill the minor edit box
document.getElementById('content').removeChild(minoreditbox);
// kill the text for minor edit
document.getElementById('content').removeChild(minoredittext);
// kill the preview
// document.getElementById('content').removeChild(divPreview);
// change the article name back
document.getElementById('content').getElementsByTagName('h1')[0].innerHTML = oldtitle;
// make the article visible
document.getElementById('bodyContent').style.display = 'block'; // try this
}