משתמש:Neriah/common.js: הבדלים בין גרסאות בדף

מתוך אוצר הספרים היהודי השיתופי
קפיצה לניווט קפיצה לחיפוש
(ייבוא מויקיפדיה + התאמה לאוצר)
אין תקציר עריכה
 
(30 גרסאות ביניים של 2 משתמשים אינן מוצגות)
שורה 1: שורה 1:
/* הסקריפט מוסיף לשוניות "מחיקה", "הגנה" ו"חסימה" על מנת שאפשר יהיה לבקש מחיקת דפים, הגנת דפים וחסימת משתמשים באמצעות דף בקשות ממפעילים. */
/** This script contains the code required for loading [[User:Joeytje50/JWB.js]].
if(mw.config.get('wgNamespaceNumber') + 1) // not a special page
*  All other code is located at that page.
$(function(){
*/
function openDialog(code1, code2, code3, reasons, req) {
 
var dialog = $("<div>").html("סיבה: ").dialog({title: "בקשה ל" + req});
//Idea by [[User:Epicgenius]]
var select = $("<select>").append($("<option>").append("אחר"));
$.when(mw.loader.using(['mediawiki.util'], $.ready)).done( function() {
dialog.append(select);
mw.util.addPortletLink("p-tb", mw.config.get('wgArticlePath').replace('$1', "Project:AutoWikiBrowser/Script"), "AWB אונליין", "tb-awbscript", "Run Javascript Wiki Browser");
for (var id in reasons) {
});
select.append($("<option>").append(reasons[id]));
 
}
if (mw.config.get('wgCanonicalNamespace')+':'+mw.config.get('wgTitle') === 'Project:AutoWikiBrowser/Script' && mw.config.get('wgAction') == 'view')
var input = $("<input>");
mw.loader.load('//en.wikipedia.org/w/index.php?title=User:Joeytje50/JWB.js&action=raw&ctype=text/javascript');
dialog.append($("<br>"), "סיבה אחרת/נוספת: ", input);
 
input.focus();
/*
$(dialog).keypress(function(event) {
// סקריפט לצנזור שם ה' - נכתב ע"י [[user:Neriah]]
if (event.key == "Enter") {
//if (
var value = input["0"].value, selectValue = select["0"].value;
//  mw.config.get('wgNamespaceNumber') === 0 ||
if (value === "" && selectValue == "אחר") alert("לא מולאה סיבה");
//  mw.config.get('wgNamespaceNumber') === 106 ||
if (value !== "" && selectValue == "אחר") code1(value);
//  mw.config.get('wgNamespaceNumber') === 14
if (value === "" && selectValue != "אחר") code2(selectValue);
//)
if (value !== "" && selectValue !== "אחר") code3(value, selectValue);
{
dialog.dialog('close');
  var buttonSpan = document.createElement("span");
}
  buttonSpan.className = "plainlinks mw-ui-button";
});
  buttonSpan.id = "censorButton";
dialog.dialog('option', 'buttons', {
  buttonSpan.innerText = "צנזור שם ה'";
'ביצוע':
 
function(){
  var buttonDiv = document.createElement("div");
var value = input["0"].value, selectValue = select["0"].value;
  buttonDiv.className = "mw-parser-output";
if (value === "" && selectValue == "אחר") alert("לא מולאה סיבה");
  buttonDiv.id = "censorButton-div";
if (value !== "" && selectValue == "אחר") code1(value);
  buttonDiv.appendChild(buttonSpan);
if (value === "" && selectValue != "אחר") code2(selectValue);
 
if (value !== "" && selectValue !== "אחר") code3(value, selectValue);
  var heading = document.getElementById('firstHeading');
dialog.dialog('close');
  heading.appendChild(buttonDiv);
},
 
'סגירה':
  buttonSpan.addEventListener("click", function() {
function() {dialog.dialog('close');}
    function censore(element, word) {
});
    let split_str = word.split("");
}
    const nikud = "[֐-׈/]*"
   
    const reg_list = split_str.reduce((list, elem, i) => {
      list.push(elem, nikud);
      return list;
    }, []);
    reg_list.splice(0, 0, '(');
    reg_list.splice(3, 0, ')', '(');
    reg_list.push(')');
    if (word === "אדני") reg_list[reg_list.length-4] = "[֐-֯/ָּ]*"
   
    const regex = new RegExp(reg_list.join(""), "g");
    element.innerHTML = element.innerHTML.replace(regex, "$1-$2");
    }
 
    var elements = document.getElementsByTagName("*");


function save(title, summary, content, section, next) {
    for (var i = 0; i < elements.length; i++) {
var param = {action: 'edit', title: title, summary: summary.replace(/replaceParam/g, mw.config.get("wgPageName").replace(/_/g, " ")).replace(/replaceUser/g, mw.config.get('wgRelevantUserName')), token: mw.user.tokens.get('csrfToken'), section: section || '0', appendtext: content, format: 'json', tags:'בקשות_ממפעילים'};
      censore(elements[i], "יהוה");
$.post(mw.util.wikiScript('api'), param, function(data) {
      censore(elements[i], "אדני");
if (data && data.error)
      censore(elements[i], "אלוה");
mw.notify('שגיאה בשמירה: ' + ( data.error.info || 'שגיאה לא ידועה' ) );
      censore(elements[i], "אלהי");
else if (data && data.edit && data.edit.result == 'Success' && typeof next == 'function')
      censore(elements[i], "אלהים");
next();
      censore(elements[i], "אלוהים");
});
      censore(elements[i], "צבאות");
      censore(elements[i], "שדי");
    }
  });
}
}
*/


function saveDelete(selectValue, message){
var buttonSpan = document.createElement("span");
save('אוצר:בקשות ממפעילים', '/* בקשות מחיקה */ [[replaceParam]]',
buttonSpan.className = "plainlinks mw-ui-button";
'\n\n* ' + message.replace(/reason/g, selectValue), 1,
buttonSpan.innerText = "הסר ניקוד";
function() { mw.notify('בקשתך נשמרה בדף הבקשות מהמפעילים');});
}


function checkAndSaveDelete(selectValue, message){
var buttonDiv = document.createElement("div");
new mw.Api().get( {
buttonDiv.className = "mw-parser-output";
action:'query',
buttonDiv.style.display = "inline-block";
prop: 'linkshere',
buttonDiv.style.verticalAlign = "left";
titles: mw.config.get('wgPageName'),
buttonDiv.appendChild(buttonSpan);
indexpageids: 1
}).done(function(d) {
d = d.query;
if ( d && d.pageids && d.pageids.length ) {
d = d.pages[d.pageids[0]];
if ( d.linkshere && d.linkshere.length > 0 )
{
mw.loader.using("oojs-ui", function(){
var linkUrl = new mw.Title('מיוחד:דפים_המקושרים_לכאן/' + mw.config.get('wgPageName')).getUrl();
OO.ui.confirm( $('<div>').html('יש '+ d.linkshere.length +' +<a href="'+linkUrl+'">קישורים לדף</a>, האם הם נבדקו לפני בקשת המחיקה?') ).done( function ( confirmed ) {
if ( confirmed ) {
saveDelete(selectValue, message);
} else {
mw.notify('נא לבדוק את הקישורים לפני הבקשה.');
}
});
} );
} else {
saveDelete(selectValue, message);
}
}
else {
saveDelete(selectValue, message);
}
});
}


function checkRequestDuplication() {
var heading = document.getElementById('firstHeading');
var requestChecker = new $.Deferred();
new mw.Api().get( {
action:'query',
prop: 'links',
titles: 'אוצר:בקשות ממפעילים',
pltitles: mw.config.get('wgPageName'),
indexpageids: 1
}).done(function(d) {
d = d.query;
if ( d && d.pageids && d.pageids.length ) {
d = d.pages[d.pageids[0]];
if ( d.links && d.links.length > 0 )
{
if (!confirm('הדף כבר מוזכר בבקשות ממפעילים. האם לשלוח בכל זאת את הבקשה?')) {
requestChecker.reject('הדף כבר מוזכר בבקשות ממפעילים. הבקשה לא בוצעה');
return;
}
}
}
requestChecker.resolve();
});
return requestChecker;
}


function addMenuItem(caption, tooltip, message, accessKey) {
heading.appendChild(buttonDiv);
var a = mw.util.addPortletLink('p-cactions','#',caption,'',tooltip.replace(/replaceParam/g, mw.config.get("wgPageName").replace(/_/g, " ")).replace(/replaceUser/g, mw.config.get('wgRelevantUserName')),(accessKey||''));
$(a).click(function() {
checkRequestDuplication().fail(function(err){
mw.notify(err);
}).done(function(){
if (message.match(/reason/)) {message += ' ~~' + '~~'}else{message += ' – reason ~~' + '~~'}
message = message.replace(/replaceParam/g, mw.config.get('wgPageName').replace(/_/g, " ")).replace(/replaceUser/g, mw.config.get('wgRelevantUserName'));
switch (caption) {
case "מחיקה":
openDialog(function(value){save('אוצר:בקשות ממפעילים', '/* בקשות מחיקה */ [[replaceParam]]', '\n\n* ' + message.replace(/reason/g, value), 1, function() { mw.notify('בקשתך נשמרה בדף הבקשות מהמפעילים');})}, function(selectValue) { checkAndSaveDelete(selectValue, message); } , function(value, selectValue){save('אוצר:בקשות ממפעילים', '/* בקשות מחיקה */ [[replaceParam]]', '\n\n* ' + message.replace(/reason/g, selectValue + ": " + value), 1, function() { mw.notify('בקשתך נשמרה בדף הבקשות מהמפעילים');})}, ["הבל", "מילוני/אולטרה קצרמר", "הפניה בדפי שיחה" ,"הפניה מיותרת", "הפניה שגויה", "לא אנציקלופדי", "פרסומת", "שגוי/טעות", "לבקשת הכותב", "הועבר למרחב טיוטה", "הועבר למרחב המשתמש", "הועבר למרחב הערכים"], "מחוק את הדף");
break;
case "חסימה":
openDialog(function(value){save('אוצר:בקשות ממפעילים', "/* בקשות חסימה / הסרת חסימה */ [[משתמש:replaceUser|replaceUser]] ([[שיחת משתמש:replaceUser|ש]]|[[מיוחד:תרומות/replaceUser|ת]]|[[מיוחד:חסימה/replaceUser|ח]])", '\n\n* ' + message.replace(/reason/g, value), 2, function() { mw.notify('בקשתך נשמרה בדף הבקשות מהמפעילים');})}, function(selectValue){save('אוצר:בקשות ממפעילים', "/* בקשות חסימה / הסרת חסימה */ [[משתמש:replaceUser|replaceUser]] ([[שיחת משתמש:replaceUser|ש]]|[[מיוחד:תרומות/replaceUser|ת]]|[[מיוחד:חסימה/replaceUser|ח]])", '\n\n* ' + message.replace(/reason/g, selectValue), 2, function() { mw.notify('בקשתך נשמרה בדף הבקשות מהמפעילים');})}, function(value, selectValue){save('אוצר:בקשות ממפעילים', "/* בקשות חסימה / הסרת חסימה */ [[משתמש:replaceUser|replaceUser]] ([[שיחת משתמש:replaceUser|ש]]|[[מיוחד:תרומות/replaceUser|ת]]|[[מיוחד:חסימה/replaceUser|ח]])", '\n\n* ' + message.replace(/reason/g, selectValue + ": " + value), 2, function() { mw.notify('בקשתך נשמרה בדף הבקשות מהמפעילים');})}, ["השחתה לאחר אזהרה", "קללות או גסויות", "הפרעה", "כניסה למלחמת עריכה", "העלאת הבלים או ערכים חסרי תוכן", "הסרת תוכן מדפים", "שם משתמש לא מקובל", "לא בא/ה לתרום", "כתובת אנונימית שמשמשת להשחתה", "Upload spam"], "חסום את המשתמש");
break;
case "הגנה":
case "שינוי הגנה":
openDialog(function(value){save('אוצר:בקשות ממפעילים', '/* בקשות הגנה / הסרת הגנה */ [[replaceParam]]', '\n\n* ' + message.replace(/reason/g, value), 3, function() { mw.notify('בקשתך נשמרה בדף הבקשות מהמפעילים');})}, function(selectValue){save('אוצר:בקשות ממפעילים', '/* בקשות הגנה / הסרת הגנה */ [[replaceParam]]', '\n\n* ' + message.replace(/reason/g, selectValue), 3, function() { mw.notify('בקשתך נשמרה בדף הבקשות מהמפעילים');})}, function(value, selectValue){save('אוצר:בקשות ממפעילים', '/* בקשות הגנה / הסרת הגנה */ [[replaceParam]]', '\n\n* ' + message.replace(/reason/g, selectValue + ": " + value), 3, function() { mw.notify('בקשתך נשמרה בדף הבקשות מהמפעילים');})}, ["השחתות רבות", "אקטואלי", "טרול/חסום", "מלחמת עריכה"], "הגן על הדף");
break;
case "הסתרת גרסה":
openDialog(function(value){save('אוצר:בקשות ממפעילים', '/* בקשות מחיקת גרסאות מסוימות */ הסתרת גרסה', '\n\n* ' + message.replace(/reason/g, value), 4, function() { mw.notify('בקשתך נשמרה בדף הבקשות מהמפעילים');})}, function(selectValue){save('אוצר:בקשות ממפעילים', '/* בקשות מחיקת גרסאות מסוימות */ הסתרת גרסה', '\n\n* ' + message.replace(/reason/g, selectValue), 4, function() { mw.notify('בקשתך נשמרה בדף הבקשות מהמפעילים');})}, function(value, selectValue){save('אוצר:בקשות ממפעילים', '/* בקשות מחיקת גרסאות מסוימות */ הסתרת גרסה', '\n\n* ' + message.replace(/reason/g, selectValue + ": " + value), 4, function() { mw.notify('בקשתך נשמרה בדף הבקשות מהמפעילים');})}, ["תוכן פוגעני", "קללות/גסויות", "חשיפת פרטים אישיים", "נאצות/השמצות"], "הסתיר את הגרסה");
break;
}
});
});
}
var ca = $.inArray(mw.config.get('wgNamespaceNumber'), [6, 14]) + 1 ?  ':' : '';
var pageName = mw.config.get('wgPageName').replace( /_/g, " " );
if ($('#t-contributions').length) {
addMenuItem('חסימה', 'בקשה לחסום את replaceUser', "{{לחסום|replaceUser}}", "]");
}
var pageLink = $('.redirectMsg').length ? '{{ללא הפניה|replaceParam}}' : '[[' + ca + 'replaceParam]]';
var protectTemplate = $('.redirectMsg').length ? '{{בקשת הגנה|replaceParam|reason|הפניה=כן}}' : '{{בקשת הגנה|replaceParam|reason}}';
if (mw.config.get('wgRestrictionEdit') && mw.config.get('wgRestrictionEdit').length === 0)
addMenuItem('הגנה', 'בקשה להגן על הדף replaceParam', protectTemplate, '=');
else
addMenuItem('שינוי הגנה', 'בקשה לשנות את ההגנה על הדף replaceParam', protectTemplate, '=');


var deleteTemplate = $('.redirectMsg').length ? '{{בקשת מחיקה|replaceParam|reason|הפניה=כן}}' : '{{בקשת מחיקה|replaceParam|reason}}';
buttonSpan.addEventListener("click", function() {
if (!mw.util.getParamValue('redlink'))
  var elements = document.body.getElementsByTagName("*");
addMenuItem('מחיקה', 'בקשה למחוק את הדף replaceParam', deleteTemplate,'d');
  for (var i = 0; i < elements.length; i++) {
if (mw.util.getParamValue('oldid') && mw.util.getParamValue('diff'))
    elements[i].innerHTML = elements[i].innerHTML.replace(/[֑-ֽֿׁ-ׇׇ]*/g, "");
addMenuItem('הסתרת גרסה', 'בקשה להסתיר את הגרסה ' + mw.util.getParamValue('diff') , '{{הבדל|' + mw.config.get('wgPageName') + '|' + mw.util.getParamValue('diff') + '|' + mw.util.getParamValue('oldid') + '|טקסט=גרסה זו}} ב[['+ ca + mw.config.get('wgPageName').replace( /_/g, " " ) +']]', '[');
  }
$( document ).trigger( 'new-portlet-link' );
});
});

גרסה אחרונה מ־16:49, 12 בינואר 2024

/** This script contains the code required for loading [[User:Joeytje50/JWB.js]].
 *  All other code is located at that page.
 */

//Idea by [[User:Epicgenius]]
$.when(mw.loader.using(['mediawiki.util'], $.ready)).done( function() {
	mw.util.addPortletLink("p-tb", mw.config.get('wgArticlePath').replace('$1', "Project:AutoWikiBrowser/Script"), "AWB אונליין", "tb-awbscript", "Run Javascript Wiki Browser");
});

if (mw.config.get('wgCanonicalNamespace')+':'+mw.config.get('wgTitle') === 'Project:AutoWikiBrowser/Script' && mw.config.get('wgAction') == 'view')
	mw.loader.load('//en.wikipedia.org/w/index.php?title=User:Joeytje50/JWB.js&action=raw&ctype=text/javascript');

/*
// סקריפט לצנזור שם ה' - נכתב ע"י [[user:Neriah]]
//if (
//  mw.config.get('wgNamespaceNumber') === 0 ||
//  mw.config.get('wgNamespaceNumber') === 106 ||
//  mw.config.get('wgNamespaceNumber') === 14
//)
{
  var buttonSpan = document.createElement("span");
  buttonSpan.className = "plainlinks mw-ui-button";
  buttonSpan.id = "censorButton";
  buttonSpan.innerText = "צנזור שם ה'";

  var buttonDiv = document.createElement("div");
  buttonDiv.className = "mw-parser-output";
  buttonDiv.id = "censorButton-div";
  buttonDiv.appendChild(buttonSpan);

  var heading = document.getElementById('firstHeading');
  heading.appendChild(buttonDiv);

  buttonSpan.addEventListener("click", function() {
    function censore(element, word) {
    let split_str = word.split("");
    const nikud = "[֐-׈/]*"
    
    const reg_list = split_str.reduce((list, elem, i) => {
      list.push(elem, nikud);
      return list;
    }, []);
    reg_list.splice(0, 0, '(');
    reg_list.splice(3, 0, ')', '(');
    reg_list.push(')');
    if (word === "אדני") reg_list[reg_list.length-4] = "[֐-֯/ָּ]*"
    
    const regex = new RegExp(reg_list.join(""), "g");
    element.innerHTML = element.innerHTML.replace(regex, "$1-$2");
    }

    var elements = document.getElementsByTagName("*");

    for (var i = 0; i < elements.length; i++) {
      censore(elements[i], "יהוה");
      censore(elements[i], "אדני");
      censore(elements[i], "אלוה");
      censore(elements[i], "אלהי");
      censore(elements[i], "אלהים");
      censore(elements[i], "אלוהים");
      censore(elements[i], "צבאות");
      censore(elements[i], "שדי");
    }
  });
}
*/

var buttonSpan = document.createElement("span");
buttonSpan.className = "plainlinks mw-ui-button";
buttonSpan.innerText = "הסר ניקוד";

var buttonDiv = document.createElement("div");
buttonDiv.className = "mw-parser-output";
buttonDiv.style.display = "inline-block";
buttonDiv.style.verticalAlign = "left";
buttonDiv.appendChild(buttonSpan);

var heading = document.getElementById('firstHeading');

heading.appendChild(buttonDiv);

buttonSpan.addEventListener("click", function() {
  var elements = document.body.getElementsByTagName("*");
  for (var i = 0; i < elements.length; i++) {
    elements[i].innerHTML = elements[i].innerHTML.replace(/[֑-ֽֿׁ-ׇׇ]*/g, "");
  }
});