सदस्य:राजकुमार/moveR.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 में सम्पूर्ण कैश ख़ाली करने की ज़रूरत हो सकती है।
//<nowiki>
/*
// यह स्क्रिप्ट स्थानांतरण के लिएअनुरोध को आसान बनाने के लिए है।
// संदेश और फॉर्म दिखाने के लिए [[:en:User:Timotheus_Canens/displaymessage.js]] का प्रयोग किया गया है।
*/
// अंगरेजी विकिपीडिया की स्क्रिप्ट को काल किया जाएगा ताकि फॉर्म और संदेश दिखाए जा सकें
mw.loader.load('//en.wikipedia.org/w/index.php?title=User:Timotheus_Canens/displaymessage.js&action=raw&ctype=text/javascript');
if (mw.config.get('wgNamespaceNumber') === 0) { // लेख नामस्थान में कार्य करेगा
// आगे का कोड सबकुछ ठीक-ठाक रहने पर "अधिक" विकल्प में औजार लॉन्च करने का विकल्प जोड़ेगा
$(document).ready( function () {
mw.util.addPortletLink( 'p-cactions', 'javascript:moveR_init()', 'स्थानांतरण अनुरोध', 'ca-moveR', 'लेख का नाम बदलने हेतु अनुरोध करें' );
} );
// अब कुछ वैरिएबल परिभाषित किये जा रहे हैं
var moveR_PageName = mw.config.get('wgPageName');
var moveR_AJAXnumber = 0;
// मुख्य फंक्शन यहाँ शुरू होता है
function moveR_init () {
// फॉर्म की डिजाइन जो दिखलाई पड़ेगी
form = '<div id="moveR_initialform">' +
'<h3>' + moveR_PageName + ' का नाम बदलने हेतु अनुरोध करें... </h3>' +
'<label for="moveR_reason">यहाँ नाम बदले जाने का कारण लिखें:</label><br />' +
'<input type="text" size="120" id="moveR_reason" name="moveR_reason" />' + '<br />' +
'<label for="moveR_target">वह नाम लिखें जो आपके अनुसार बदलाव के बाद होना चाहिए:</label><br />' +
'<input type="text" size="120" id="moveR_target" name="moveR_target" />' +
'<input type="button" id="moveR_merge_button" name="moveR_merge_button" value="अनुरोध जमा करें" onclick="moveR_close(\'स्थानांतरण\')" />' +
'<input type="hidden" value="0" id="moveR_dodelete" name="moveR_dodelete" /></div><div id="moveR_extra"></div>';
displayMessage(form);
}
// फॉर्म जमा करने के बाद कार्य पूरा करने की प्रक्रिया शुरू
function moveR_close(close) {
closetype = close;
if (closetype == "स्थानांतरण") {
var target = document.getElementById('moveR_target').value; //लक्ष्य नाम पढ़ा गया
var reason = document.getElementById('moveR_reason').value; //कारण पढ़ा गया
if (target === null || target === '') {
displayMessage('<div style="color:red; font-size:120%">' + closetype + ' के लिए लक्ष्य नाम नहीं मिला।</div>') //मूल टेम्पलेट में यह जरूरी नहीं पर औजार में अनिवार्य बनाया गया है।
return;
}
if (reason === null || reason === '') {
displayMessage('<div style="color:red; font-size:120%">' + closetype + ' के लिए आपने कारण नहीं भरा।</div>') //मूल टेम्पलेट में यह जरूरी नहीं पर औजार में अनिवार्य बनाया गया है।
return;
}
close += " [[वार्ता:" + target + "]] पर "; //यह पता नहीं क्या है
}
displayMessage('<ul id="moveR_status"></ul><ul id="moveR_finish"></ul>');
document.getElementById('moveR_finish').innerHTML += '<span id="moveR_finished_wrapper"><span id="moveR_finished_main" style="display:none"><li id="moveR_done"><b>पूरा हुआ (<a href="/wiki/वार्ता:' + encodeURI(moveR_PageName) + '?action=view" title="वार्ता:' + moveR_PageName + '">वार्ता पन्ने पर अनुरोध देखें</a>)</b></li></span></span>';
var AFDpage = moveR_getPageText('वार्ता:' + moveR_PageName);
AFDpage = AFDpage + "\n\n{" + "{subst:Move\|" + target + "\|reason =" + reason + "}}"; //सबसे नीचे दो नई लाइन के गैप के बाद स्थानांतरण अनुरोध
token = moveR_getToken(true);
var temptitle = 'वार्ता:' + moveR_PageName;
pagetitle = temptitle; //शायद यह कोड फालतू है
moveR_editPage(moveR_PageName, AFDpage, token, "नाम बदलने का अनुरोध किया गया।"); //रन टाइम डायलाग
var AFDlink = '[[:' + moveR_PageName + ']]';
document.getElementById('moveR_finished_main').style.display = '';
}
// यहाँ वार्ता पन्ने की सामग्री प्राप्त करने का फंक्शन है, ताकि नया अनुरोध सबसे नीचे जोड़ा जा सके।
function moveR_getPageText(title) {
document.getElementById('moveR_status').innerHTML += '<li id="moveR_get' + escape(title) + '"><a href="/wiki/वार्ता:' + encodeURI(title) + '" title="वार्ता:' + title + '">' + title + '</a>प्राप्त किया जा रहा है।</li>'; //रन टाइम डायलाग
var req = new XMLHttpRequest();
req.open("GET", mw.config.get('wgScriptPath') + "/api.php?action=query&prop=revisions&rvprop=content&format=json&indexpageids=1&titles=" + encodeURIComponent(title), false);
req.send(null);
var response = eval('(' + req.responseText + ')');
pageid = response['query']['pageids'][0];
if (pageid == "-1") {
document.getElementById('moveR_get' + escape(title)).innerHTML = '<a class="new" href="/wiki/' + encodeURI(title) + '" title="वार्ता:' + title + '">' + title + '</a> मौज़ूद नहीं है, बना दिया जायेगा।'; //रन टाइम डायलाग
delete req;
return '';
}
pagetext = response['query']['pages'][pageid]['revisions'][0]['*'];
delete req; // तात्कालिक रूप से वार्ता पन्ने को छोड़ दिया गया, आगे सीधे उसपे संपादन हो जायेगा
document.getElementById('moveR_get' + escape(title)).innerHTML = '<a href="/wiki/वार्ता:' + encodeURI(title) + '" title="वार्ता:' + title + '">' + title + '</a> प्राप्त किया जा रहा है।'; //रन टाइम डायलाग
return pagetext;
}
// टोकन प्राप्त करने हेतु कोड यहाँ है
function moveR_getToken(show) {
if (show) {
document.getElementById('moveR_status').innerHTML += '<li id="moveR_gettoken">टोकन प्राप्त किया जा रहा है।</li>';
}
var req = new XMLHttpRequest();
req.open("GET", mw.config.get('wgScriptPath') + "/api.php?action=query&prop=info&indexpageids=1&intoken=edit&format=json&titles=" + encodeURIComponent('वार्ता:' + moveR_PageName), false);
req.send(null);
var response = eval('(' + req.responseText + ')');
pageid = response['query']['pageids'][0];
token = response['query']['pages'][pageid]['edittoken'];
delete req;
if (show) {
document.getElementById('moveR_gettoken').innerHTML = 'टोकन प्राप्त किया जा रहा है'; //रन टाइम डायलाग
}
return token;
}
// वास्तविक संपादन को क्रियान्वित यहाँ किया जा रहा
function moveR_editPage(title, newtext, token, summary) {
document.getElementById('moveR_finished_wrapper').innerHTML = '<span id="moveR_AJAX_finished_' + moveR_AJAXnumber + '" style="display:none">' + document.getElementById('moveR_finished_wrapper').innerHTML + '</span>';
var func_id = moveR_AJAXnumber;
moveR_AJAXnumber++;
document.getElementById('moveR_status').innerHTML += '<li id="moveR_edit' + escape(title) + '"><a href="/wiki/' + encodeURI(title) + '" title=वार्ता:"' + title + '">' + title + '</a> में बदलाव किये जा रहे हैं।</li>';
var req = new XMLHttpRequest();
var params = "action=edit&format=json&token=" + encodeURIComponent(token) + "&title=वार्ता:" + encodeURIComponent(title) + "&text=" + encodeURIComponent(newtext) + "¬minor=1&unwatch=1&summary=" + encodeURIComponent(summary);
url = mw.config.get('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") { //सफलता प्राप्त हुई
document.getElementById('moveR_edit' + escape(title)).innerHTML = '<a href="/wiki/' + encodeURI(title) + '" title="वार्ता:' + title + '">' + title + '</a> को प्रकाशित किया गया।';
} else {
document.getElementById('moveR_edit' + escape(title)).innerHTML = '<div style="color:red"><b><a href="/wiki/' + encodeURI(title) + '" title="वार्ता:' + title + '">' + title + '</a> पर संपादन विफल रहा।</b></div>. Error info:' + response['error']['code'] + ' : ' + response['error']['info'];
}
} catch (err) {
document.getElementById('moveR_edit' + escape(title)).innerHTML = '<div style="color:red"><b><a href="/wiki/' + encodeURI(title) + '" title="वार्ता:' + title + '">' + title + '</a> पर संपादन विफल रहा।</b></div>';
}
document.getElementById('moveR_AJAX_finished_' + func_id).style.display = '';
delete req;
}
}
req.send(params)
}
}
// चलिए यह कोड समाप्त हुआ!
//</nowiki>