सदस्य:Shubhamkanodia/editrefs.js
सूचना: यह पृष्ठ सुरक्षित करने बाद, परिवर्तनों को देखने लिए ब्राउज़र का कैश ख़ाली करने की आवश्यकता हो सकती है।
- मोज़िला / फ़ायरफ़ॉक्स / सफ़ारी: shift hold करें जब आप reload क्लिक करते है, या Ctrl-Shift-R (अपल मैक में Cmd-Shift-R) दबाएँ;
- गूगल क्रोम: Ctrl-shift-R (मैक में Cmd-Shift-R) दबाएँ
- इंटरनेट एक्सप्लोरर: Ctrl hold करें जब आप refresh क्लिक करते हैं, या Ctrl-F5 क्लिक करते हैं;
- कॉङ्करर: सिर्फ़ Reload बटन पर क्लिक करें, या F5 क्लिक करें;
- ऑपरा सदस्य को Tools→Preferences में सम्पूर्ण कैश ख़ाली करने की ज़रूरत हो सकती है।
//Author: [[en:User:Dr pda]]
//This function adds a link to the toolbox which, when clicked, searches the article for <ref></ref>
//tags and presents them in textboxes for ease of editing
//To use this function add importScript('User:Dr pda/editrefs.js'); //[[User:Dr pda/editrefs.js]] to your monobook.js
//
function editRefs(){
//Hide edit window
var editform = document.getElementById('editform');
editform.style.cssText += 'display:none';
text = document.getElementById('wpTextbox1').value;
//Hack to cope with HTML comments
text = text.replace(/-->/g,"--@#%");
// var refs = text.match(/<ref[^/]*\/ref>|<ref[^/]*\/>/g);
refs = text.match(/<[Rr]ef(\s*name=[^\>]*)?>[^>]*<\/[Rr]ef>/g);
text = text.replace(/--@#%/g,"-->");
var output = document.createElement("ol");
output.id = 'ref-edit-ol';
if(refs != null){
for (x=0; x<refs.length;x++){
//Hack to cope with HTML comments
refs[x] = refs[x].replace(/--@#%/g,"-->");
var ref_textbox = document.createElement("textarea");
ref_textbox.id = 'ref-box-'+x;
var ref_li = document.createElement("li");
ref_li.id = 'ref-li-'+x;
ref_textbox.value = refs[x];
var newlines = refs[x].match(/\n/g);
var lines = (newlines == null) ? 1 : newlines.length+1;
ref_textbox.rows = (lines > refs[x].length/70) ? lines : refs[x].length/70;
ref_textbox.cols = 70;
ref_textbox.style.cssText = 'display:block;';
ref_li.appendChild(ref_textbox);
output.appendChild(ref_li);
}
}
else{
var ref_li = document.createElement("li");
ref_li.id = 'ref-li';
ref_li.innerHTML = 'This article contains no <ref></ref> tags';
output.appendChild(ref_li);
}
var dummy = document.getElementById("editform");
dummy.parentNode.insertBefore(output, dummy);
//Add buttons
var update = document.createElement("input");
update.id = 'ref-edit-update';
update.value = 'Apply changes and preview';
update.title = 'Apply changes and preview';
update.type = 'button';
update.onclick = updateRefs;
var cancel = document.createElement("input");
cancel.id = 'ref-edit-cancel';
cancel.value = 'Cancel and return to edit';
cancel.title = 'Cancel and return to edit';
cancel.type = 'button';
cancel.onclick = returnToEdit;
var reset = document.createElement("input");
reset.id = 'ref-edit-reset';
reset.value = 'Reset fields';
reset.title = 'Reset fields';
reset.type = 'button';
reset.onclick = resetRefs;
if(refs != null){
output.parentNode.insertBefore(update, output.nextSibling);
update.parentNode.insertBefore(cancel, update.nextSibling);
cancel.parentNode.insertBefore(reset, cancel.nextSibling);
}
else{
output.parentNode.insertBefore(cancel, output.nextSibling);
}
}
function updateRefs(){
var startIndex = -1;
for (x=0; x<refs.length;x++){
var newref = document.getElementById('ref-box-'+x).value;
startIndex = text.indexOf(refs[x],startIndex);
//Only update if changed
if(refs[x] != newref){
text = text.substring(-1,startIndex) + newref + text.substring(startIndex + refs[x].length);
}
startIndex = startIndex + newref.length;
}
var textbox = document.getElementById('wpTextbox1');
textbox.value = text;
//returnToEdit();
document.getElementById('wpPreview').click();
}
function returnToEdit(){
//Hide textboxes and buttons
var output = document.getElementById('ref-edit-ol');
output.parentNode.removeChild(output);
var update = document.getElementById('ref-edit-update');
if(update) update.parentNode.removeChild(update);
var cancel = document.getElementById('ref-edit-cancel');
if(cancel) cancel.parentNode.removeChild(cancel);
var reset = document.getElementById('ref-edit-reset');
if(reset) reset.parentNode.removeChild(reset);
//Show edit window
var editform = document.getElementById('editform');
editform.style.cssText = '';
}
function resetRefs(){
for (x=0; x<refs.length;x++){
var ref_textbox = document.getElementById('ref-box-'+x);
ref_textbox.value = refs[x];
}
function ER_addLink() {
mw.util.addPortletLink('p-tb', 'javascript:editRefs()', 'Edit references', 't-edit-refs', 'Edit <ref></ref> tags', '', '');
}
if(document.forms.editform){
jQuery(document).ready(ER_addLink);
}
}