משתמש:יוסאריאן/vector.js/afterdelete warning.js
< משתמש:יוסאריאן | vector.js
הערה: לאחר הפרסום, ייתכן שיהיה צורך לנקות את זיכרון המטמון (cache) של הדפדפן כדי להבחין בשינויים.
- פיירפוקס / ספארי: להחזיק את המקש Shift בעת לחיצה על טעינה מחדש (Reload) או ללחוץ על צירוף המקשים Ctrl-F5 או Ctrl-R (במחשב מק: ⌘-R).
- גוגל כרום: ללחוץ על צירוף המקשים Ctrl-Shift-R (במחשב מק: ⌘-Shift-R).
- אינטרנט אקספלורר / אדג': להחזיק את המקש Ctrl בעת לחיצה על רענן (Refresh) או ללחוץ על צירוף המקשים Ctrl-F5.
- אופרה: ללחוץ על Ctrl-F5.
//<syntaxhighlight lang="javascript">
/* For syspos: when deleting a page, add a the name (including links and warnings) of the last person who edited the page.
useful for blocking a person after deleting a page he created.
created by [[User:Yonidebest]], changed by [[User:Mikimik]] */
function lastAuthorOfDeletedPage()
{
function encodeTextToUrl ( text )
{
return encodeURIComponent(text).replace(/%2F/g,"/").replace(/%24/g,"$").replace(/%2C/g,",").replace(/%3A/g,":").replace(/%40/g,"@");
}
function createLink ( url, text )
{
var link = document.createElement("a");
link.href = "/wiki/" + url;
link.appendChild ( document.createTextNode( text ) );
link.title = text;
return link;
}
function createWarningLink ( user, warning )
{
var link = document.createElement("a");
link.href = "javascript:void();";
link.onclick = function()
{
window.open ( mw.config.get('wgServer') + mw.config.get('wgScript') + "?title=User Talk:" + encodeTextToUrl(user) +
"&action=edit&warning=" + encodeTextToUrl(warning) +
"&frompage=" + encodeTextToUrl((wgNamespaceNumber == 6 || wgNamespaceNumber == 14 ? ":" : "" ) + wgPageName) );
}
link.appendChild ( document.createTextNode( warning ) );
link.title = warning;
return link;
}
try
{
if ( !userDeleteWarnings ) var userDeleteWarnings = [ "אזהרה", "ניסויים", "פרסומת", "נחסמת", "שגיאה", "נמחק", "נמחק ניסויים", "הבל" ];
var mwreturnto = document.getElementById ("mw-returnto");
if ( !mwreturnto ) return;
var span = document.createElement("span");
span.id = "lastAuthorOfDeletedPage";
span.innerHTML = "טוען...";
var line = document.createElement("p");
line.innerHTML = "התורם האחרון בדף זה היה: ";
line.appendChild (span);
mwreturnto.parentNode.insertBefore (line, mwreturnto);
var ajaxObj = sajax_init_object();
ajaxObj.open ("GET", wgServer + "/w/api.php?action=query&list=deletedrevs&titles=" + encodeTextToUrl(wgPageName) + "&drprop=user&drlimit=1", true);
ajaxObj.onreadystatechange = function()
{
if ( ajaxObj.readyState != 4 || ajaxObj.status != 200 ) return;
var rx = /user="(\d+\.\d+\.\d+\.\d+|.+)" /;
var m = ajaxObj.responseText.match (rx);
if ( m && m.length )
{
var username = m[0].replace(rx,"$1").replace(/&/g,"&").replace(/&/g,"&").replace(/"/g,'"');
while ( /&#\d+;/.test(username) ) username = username.replace ( /&#\d+;/, String.fromCharCode(username.replace(/.*?&#(\d+);.*/,"$1")) );
var userurl = encodeTextToUrl(username);
var span = document.getElementById("lastAuthorOfDeletedPage");
while ( span.firstChild ) span.removeChild ( span.firstChild );
span.appendChild ( createLink("User:"+userurl,username) );
span.appendChild ( document.createTextNode(" (") );
for ( var i in userDeleteWarnings )
{
span.appendChild ( createWarningLink( username, userDeleteWarnings[i] ) );
span.appendChild ( document.createTextNode(" | ") );
}
span.replaceChild ( document.createTextNode( ") (" ), span.lastChild );
span.appendChild ( createLink("User_Talk:"+userurl,wgUserLanguage == "he" ? "שיחה" : "talk") );
span.appendChild ( document.createTextNode(" | ") );
span.appendChild ( createLink("Special:Contributions/"+userurl,wgUserLanguage == "he" ? "תרומות" : "contributions") );
span.appendChild ( document.createTextNode(" | ") );
span.appendChild ( createLink("Special:Blockip/"+userurl,wgUserLanguage == "he" ? "חסימה" : "block") );
span.appendChild ( document.createTextNode(")") );
}
else document.getElementById("lastAuthorOfDeletedPage").innerHTML = '<span style="color: red;">תקלה</span>';
};
ajaxObj.send(null);
}
catch(e)
{
return; // lets just ignore what's happened
}
}
if ( wgAction == "delete" && !wgArticleId ) addOnloadHook ( lastAuthorOfDeletedPage );
if ( typeof(postWarning) != "function" ) // check if the function was already defined
{
function postWarning()
{
try {
document.getElementById("wpTextbox1").value += "\n== [" + "[" + getParamValue("frompage").replace(/_/g," ") + "]] ==\n{" + "{" + getParamValue("warning") + "}} ~~" + "~~";
document.getElementById("wpSummary").value = getParamValue("warning");
document.getElementById("editform").submit();
}
catch(e)
{ return; }
}
if ( getParamValue("warning") && getParamValue("frompage") ) addOnloadHook ( postWarning );
}
//</syntaxhighlight>