משתמש:איסתרק/בקשת עדכון ערך.js
מראה
לתשומת ליבך: לאחר הפרסום, ייתכן שיהיה צורך לנקות את זיכרון המטמון (cache) של הדפדפן כדי להבחין בשינויים.
- פיירפוקס / ספארי: להחזיק את המקש Shift בעת לחיצה על טעינה מחדש (Reload) או ללחוץ על צירוף המקשים Ctrl-F5 או Ctrl-R (במחשב מק: ⌘-R).
- גוגל כרום: ללחוץ על צירוף המקשים Ctrl-Shift-R (במחשב מק: ⌘-Shift-R).
- אדג': להחזיק את המקש Ctrl בעת לחיצה על רענן (Refresh) או ללחוץ על צירוף המקשים Ctrl-F5.
/*
מועתק מגאדג'ט בקשת עדכון ערך
(מדיה ויקי:Gadget-UpdateRequest.js)
עם התאמה קלה לצרכיי
*/
if(mw.config.get('wgNamespaceNumber') == 0 || 4 || 8 || 10 || 12 ) // not a special page
$(function(){
var linkPage =$( '<div class="mw-notification-content">בקשתך נשמרה בדף <a href="/המכלול:בקשת_עדכון_ערך# ' + mw.config.get("wgPageName") + '"</a>הבקשות.</div>');
function openDialog(code1, reasons, req) {
var dialog = $("<div>").html("סיבת הבקשה: ").dialog({title: "בקשה ל" + req});
var select = $("<select>").append($("<option>").append("ערך אקטואלי"));
dialog.append(select);
for (var id in reasons) {
select.append($("<option>").append(reasons[id]));
}
$(dialog).keypress(function(event) {
if (event.key == "Enter") {
var selectValue = select["0"].value;
if (selectValue !== "אחר") code1(selectValue);
dialog.dialog('close');
}
});
dialog.dialog('option', 'buttons', {
'בוצע':
function(){
var selectValue = select["0"].value;
if (selectValue !== "אחר") code1(selectValue);
dialog.dialog('close');
},
'סגור':
function() {dialog.dialog('close');}
});
}
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('הדף כבר מוזכר בדף הבקשות. האם לשלוח בכל זאת את הבקשה?')) alert(".הדף כבר מוזכר בדף הבקשות. הבקשה לא נשמרה");{
requestChecker.reject('.הדף כבר מוזכר בדף הבקשות. הבקשה לא נשמרה');
return;
}
}
}
requestChecker.resolve();
});
return requestChecker;
}
function save(title, summary, content, 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'), appendtext: content, format: 'json'};
$.post(mw.util.wikiScript('api'), param, function(data) {
if (data && data.error)
mw.notify('שגיאה בשמירה: ' + data.erro.info);
else if (data && data.edit && data.edit.result == 'Success' && typeof next == 'function')
next();
});
}
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() {
checkRequest().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(selectValue){save('המכלול:בקשת עדכון ערך','[[replaceParam]]','\n\n== ' + '[[' +mw.config.get('wgPageName').replace(/_/g, " ") + ']]' + ' ==\n' +message.replace(/reason/g, selectValue), function() { mw.notify(linkPage);})},
[
"לא עודכן זמן רב",
"ערך חסום לעדכון בנטפרי",
"אני מעוניין לערוך את הדף, חבל לי שעריכותי יאבדו",
"הערך בויקיפדיה אנציקלופדי יותר",
"הערך בוויקיפדיה גדול יותר"
],
"עדכן את הערך מויקיפדיה העברית");
break;
}
});
});
}
addMenuItem('בקש עדכון', 'בקשה לעדכון הערך replaceParam','-', 'g');
$( document ).trigger( 'new-portlet-link' );
});