מדיה ויקי:Gadget-DeleteRequest.js: הבדלים בין גרסאות בדף

מתוך אוצר הספרים היהודי השיתופי
קפיצה לניווט קפיצה לחיפוש
(תודה לקיפודנחש)
אין תקציר עריכה
שורה 12: שורה 12:
title : 'ויקיפדיה:בקשות_ממפעילים',
title : 'ויקיפדיה:בקשות_ממפעילים',
token : mw.user.tokens.get('editToken')
token : mw.user.tokens.get('editToken')
}).done(function(d){ if (d) {mw.notify('הבקשה נשלחה בהצלחה!');}});
}).done(function(d){ if (d) {mw.notify('הבקשה נשלחה בהצלחה!');$(".ui-dialog").remove();}});
}
}
function doneDelReq(){
function doneDelReq(){

גרסה מ־05:59, 18 במאי 2017

/* הסקריפט מוסיף לשוניות "מחיקה", "הגנה" ו"חסימה" על מנת שאפשר יהיה לבקש מחיקת דפים, הגנת דפים וחסימת משתמשים באמצעות דף בקשות ממפעילים. */
if(mw.config.get('wgNamespaceNumber') + 1) // not a special page
$(function(){
function saveRequest(Reason) {
	var nameOfpage = mw.config.get( 'wgPageName' ).replace(new RegExp('_', 'g'), ' ');
	new mw.Api().post({
		action : 'edit',
		prependtext : '* {{בקשת מחיקה|' + nameOfpage + '|' + Reason + '}} ~~' + '~~\n' ,
		section: 2,
		tags: 'בקשות_ממפעילים',
		summary : '/* בקשות מחיקה */ [[' + nameOfpage + ']]',
		title : 'ויקיפדיה:בקשות_ממפעילים',
		token : mw.user.tokens.get('editToken')
	}).done(function(d){ if (d) {mw.notify('הבקשה נשלחה בהצלחה!');$(".ui-dialog").remove();}});
}
function doneDelReq(){
	if ($("#SelectDelReq")["0"].value == "אחר" && $("#elseReason")["0"].value === ""){
		alert("לא מולאה סיבה");
	}else{
		if ($("#SelectDelReq")["0"].value == "אחר") {
			saveRequest($('.redirectMsg').length ? $("#elseReason")["0"].value + "|הפניה=כן" : $("#elseReason")["0"].value);
		}else{
			if ($("#SelectDelReq")["0"].value !== "אחר" && $("#elseReason")["0"].value === ""){
				saveRequest($('.redirectMsg').length ? $("#SelectDelReq")["0"].value + "|הפניה=כן" : $("#SelectDelReq")["0"].value);
			}else{
				saveRequest($('.redirectMsg').length ? $("#SelectDelReq")["0"].value + ": " + $("#elseReason")["0"].value + "|הפניה=כן" : $("#SelectDelReq")["0"].value + ": " + $("#elseReason")["0"].value);
			}
		}
	}
}
function openDialog() {
checkRequest().fail(function(err){
	mw.notify(err);
}).done(function(){
var elseReason = $("<select id='SelectDelReq'>")
	.append($("<option>").append("אחר"))
	.append($("<option>").append("הבל"))
	.append($("<option>").append("מילוני/אולטרה קצרמר"))
	.append($("<option>").append("הפרת זכויות יוצרים"))
	.append($("<option>").append("הפניה מיותרת"))
	.append($("<option>").append("לא אנציקלופדי"))
	.append($("<option>").append("פרסומת"))
	.append($("<option>").append("לבקשת הכותב"))
	.append($("<option>").append("הועבר למרחב טיוטה"))
	.append($("<option>").append("הועבר למרחב המשתמש"))
	.append($("<option>").append("הועבר למרחב הערכים"))
	.append($("<option>").append("הפניה שגויה"))
	.append($("<option>").append("שגוי/טעות"));
var DialogDelReq = $('<div>').dialog()
	.append(elseReason)
	.dialog('option', 'buttons', {
		'בוצע':
			doneDelReq,
		'סגור':
			function() {DialogDelReq.dialog('close');}
	})
	.dialog({title: "בקשה למחוק את הדף", width: "400", height: "170", position: [$('body').width() * 0.05, $('body').height() * 0.05]});
$("#SelectDelReq").after($("<input type='text' size='40' id='elseReason'>"));
$("#SelectDelReq").before("סיבה למחיקה: ");
$("#SelectDelReq").after($("<br />"));
$("#elseReason").before("סיבה אחרת/נוספת: ");
});
}
//validate the page is not already linked from sysop request page
function checkRequest()
{
	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 save(title, summary, content, section, next) {
	var param = {action: 'edit', title: title, summary: summary, token: mw.user.tokens.get('editToken'), section: section || '0', appendtext: content, format: 'json', tags:'בקשות_ממפעילים'};
	$.post(mw.util.wikiScript('api'), param, function(data) {
		if (data && data.error)
			mw.notify('שגיאה בשמירה: ' + data.error['info']);
		else if (data && data.edit && data.edit.result == 'Success' && typeof next == 'function')
			next();
	});
}

function addMenuItem(caption, tooltip, section, message, summary, accessKey, replaceParam) {
	var a = mw.util.addPortletLink('p-cactions','#',caption,'',tooltip,(accessKey||'')),
	    hasReason = /reason/.test(message);
	$(a).click(function() {
		checkRequest().fail(function(err){
			mw.notify(err);
		}).done(function(){
			var reason = prompt("הסיבה לבקשת ה" + caption);
			if ($.trim(reason) == '')
				return;
			if (replaceParam) {
				var r = /replaceParam|reason/g;
				tooltip = tooltip.replace(r, function(m) { if(m=='reason') { return reason; } return replaceParam; });
				message = message.replace(r, function(m) { if(m=='reason') { return reason; } return replaceParam; });
				summary = summary.replace(r, function(m) { if(m=='reason') { return reason; } return replaceParam; });
			}
			message += ( hasReason? '' : ' - ' + reason ) + ' ~~' + '~~';
			save('ויקיפדיה:בקשות ממפעילים', summary, '\n\n* ' + message, section, function() { mw.notify('בקשתך נשמרה בדף הבקשות מהמפעילים');});	
		});
	});
}

var ca = $.inArray(mw.config.get('wgNamespaceNumber'), [6, 14]) + 1 ?  ':' : '';
var pageName = mw.config.get('wgPageName').replace( /_/g, " " );
if ($('#t-contributions').length) {
	var badUser = mw.config.get('wgTitle').split('/')[0];
	addMenuItem('חסימה', 'בקשה לחסום את replaceParam', 2, "{{לחסום|replaceParam}}", '/* בקשות חסימה / הסרת חסימה */ [[משתמש:replaceParam|replaceParam]] ([[שיחת משתמש:replaceParam|ש]]|[[מיוחד:תרומות/replaceParam|ת]]|[[מיוחד:חסימה/replaceParam|ח]])',']', badUser);
}
var pageLink = $('.redirectMsg').length ? '{{ללא הפניה|replaceParam}}' : '[[' + ca + 'replaceParam]]';
addMenuItem('הגנה', 'בקשה להגן על הדף replaceParam', 3, pageLink, '/* בקשות הגנה / הסרת הגנה */ [[replaceParam]]','=', pageName);
var AMI = mw.util.addPortletLink('p-cactions','#', "מחיקה", "delReqID", "בקשה למחוק את הדף", "d");
$(AMI).click(function(){openDialog()});
if (mw.util.getParamValue('oldid') && mw.util.getParamValue('diff'))
	addMenuItem('הסתרת גרסה', 'בקשה להסתיר את הגרסה ' + mw.util.getParamValue('diff') , 4, '{{הבדל|' + mw.config.get('wgPageName') + '|' + mw.util.getParamValue('diff') + '|' + mw.util.getParamValue('oldid') + '|טקסט=גרסה זו}} ב[['+ mw.config.get('wgPageName').replace( /_/g, " " ) +']]', '/* בקשות מחיקת גרסאות מסוימות */ הסתרת גרסה','[');
$( document ).trigger( 'new-portlet-link' );
});