משתמש:מוטל'ה/טיוטה

מתוך ויקיסוגיה
קפיצה לניווט קפיצה לחיפוש

/* הסקריפט מוסיף לשוניות "מחיקה", "הגנה" ו"חסימה" על מנת שאפשר יהיה לבקש מחיקת דפים, הגנת דפים וחסימת משתמשים באמצעות דף בקשות ממפעילים. */ if(mw.config.get('wgNamespaceNumber') + 1) // not a special page $(function(){ function openDialog(code1, code2, code3, reasons, req) {

var dialog = $("

").html("סיבה: ").dialog({title: "בקשה ל" + req});

var select = $("<select>").append($("<option>").append("אחר")); dialog.append(select); for (var id in reasons) { select.append($("<option>").append(reasons[id])); } var input = $("<input>"); dialog.append($("
"), "סיבה אחרת/נוספת: ", input); input.focus(); $(dialog).keypress(function(event) { if (event.key == "Enter") { var value = input["0"].value, selectValue = select["0"].value; if (value === "" && selectValue == "אחר") alert("לא מולאה סיבה"); if (value !== "" && selectValue == "אחר") code1(value); if (value === "" && selectValue != "אחר") code2(selectValue); if (value !== "" && selectValue !== "אחר") code3(value, selectValue); dialog.dialog('close'); } }); dialog.dialog('option', 'buttons', { 'ביצוע': function(){ var value = input["0"].value, selectValue = select["0"].value; if (value === "" && selectValue == "אחר") alert("לא מולאה סיבה"); if (value !== "" && selectValue == "אחר") code1(value); if (value === "" && selectValue != "אחר") code2(selectValue); if (value !== "" && selectValue !== "אחר") code3(value, selectValue); dialog.dialog('close'); }, 'סגירה': function() {dialog.dialog('close');} }); }

function save(title, summary, content, section, next) { 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'}; $.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 saveDelete(selectValue, message){ save('ויקיסוגיה:בקשות ממפעילים', '/* בקשות מחיקה */ replaceParam', '\n\n* ' + message.replace(/reason/g, selectValue), 1, function() { mw.notify('בקשתך נשמרה בדף הבקשות מהמפעילים');}); }

function checkAndSaveDelete(selectValue, message){ new mw.Api().get( { action:'query', prop: 'linkshere', titles: 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.linkshere && d.linkshere.length > 0 ) { mw.loader.using("oojs-ui", function(){ var linkUrl = new mw.Title('מיוחד:דפים_המקושרים_לכאן/' + mw.config.get('wgPageName')).getUrl();

OO.ui.confirm( $('
').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 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) { 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 (ש|ת|ח)", '\n\n* ' + message.replace(/reason/g, value), 2, function() { mw.notify('בקשתך נשמרה בדף הבקשות מהמפעילים');})}, function(selectValue){save('ויקיסוגיה:בקשות ממפעילים', "/* בקשות חסימה / הסרת חסימה */ replaceUser (ש|ת|ח)", '\n\n* ' + message.replace(/reason/g, selectValue), 2, function() { mw.notify('בקשתך נשמרה בדף הבקשות מהמפעילים');})}, function(value, selectValue){save('ויקיסוגיה:בקשות ממפעילים', "/* בקשות חסימה / הסרת חסימה */ 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'; if (!mw.util.getParamValue('redlink')) addMenuItem('מחיקה', 'בקשה למחוק את הדף replaceParam', deleteTemplate,'d'); if (mw.util.getParamValue('oldid') && mw.util.getParamValue('diff')) addMenuItem('הסתרת גרסה', 'בקשה להסתיר את הגרסה ' + mw.util.getParamValue('diff') , '(+ mw.util.getParamValue('diff') + '&oldid=' + mw.util.getParamValue('oldid') + ' גרסה זו) ב'+ ca + mw.config.get('wgPageName').replace( /_/g, " " ) +'', '['); $( document ).trigger( 'new-portlet-link' ); });