משתמש:ממוני גבך/בקשת העברת דף.js
מראה
לתשומת ליבך: לאחר הפרסום, ייתכן שיהיה צורך לנקות את זיכרון המטמון (cache) של הדפדפן כדי להבחין בשינויים.
- פיירפוקס / ספארי: להחזיק את המקש Shift בעת לחיצה על טעינה מחדש (Reload) או ללחוץ על צירוף המקשים Ctrl-F5 או Ctrl-R (במחשב מק: ⌘-R).
- גוגל כרום: ללחוץ על צירוף המקשים Ctrl-Shift-R (במחשב מק: ⌘-Shift-R).
- אדג': להחזיק את המקש Ctrl בעת לחיצה על רענן (Refresh) או ללחוץ על צירוף המקשים Ctrl-F5.
/* הסקריפט מוסיף לשונית "בקש העברה", על מנת שאפשר יהיה לבקש העברת דפים באמצעות דף בקשות ממפעילים. */
if(mw.config.get('wgNamespaceNumber') + 1) // not a special page
$(function(){
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();
openMoveRequestDialog();
break;
}
});
});
}
/**
* פונקציה חדשה המנהלת את הדיאלוג והשליחה
*/
function openMoveRequestDialog() {
// יצירת חלון הדיאלוג באמצעות OOjs UI
function MoveDialog(config) {
MoveDialog.super.call(this, config);
}
OO.inheritClass(MoveDialog, OO.ui.ProcessDialog);
MoveDialog.static.name = 'moveDialog';
MoveDialog.static.title = 'בקשת העברת דף';
MoveDialog.static.actions = [
{ action: 'save', label: 'שליחה', flags: ['primary', 'progressive'] },
{ label: 'ביטול', flags: 'safe' }
];
MoveDialog.prototype.initialize = function () {
MoveDialog.super.prototype.initialize.apply(this, arguments);
this.content = new OO.ui.PanelLayout({ padded: true, expanded: false });
this.targetPage = new OO.ui.TextInputWidget({ placeholder: 'שם דף היעד' });
this.targetField = new OO.ui.FieldLayout(this.targetPage, { label: 'דף יעד:', align: 'top' });
this.reasonDropdown = new OO.ui.DropdownWidget({
menu: {
items: [
new OO.ui.MenuOptionWidget({ data: 'משמעות ראשית', label: 'משמעות ראשית' }),
new OO.ui.MenuOptionWidget({ data: 'שינוי שם לשם המקובל', label: 'שינוי שם לשם המקובל' }),
new OO.ui.MenuOptionWidget({ data: 'תיקון שגיאת כתיב', label: 'תיקון שגיאת כתיב' }),
new OO.ui.MenuOptionWidget({ data: 'אחר', label: 'אחר' })
]
}
});
this.reasonField = new OO.ui.FieldLayout(this.reasonDropdown, { label: 'סיבה:', align: 'top' });
this.detailsInput = new OO.ui.TextInputWidget({ placeholder: 'פירוט נוסף (אופציונלי)' });
this.detailsField = new OO.ui.FieldLayout(this.detailsInput, { label: 'פירוט נוסף:', align: 'top' });
this.content.$element.append(this.targetField.$element, this.reasonField.$element, this.detailsField.$element);
this.$body.append(this.content.$element);
};
MoveDialog.prototype.getActionProcess = function (action) {
var dialog = this;
if (action === 'save') {
var target = this.targetPage.getValue().trim();
var reasonItem = this.reasonDropdown.getMenu().findSelectedItem();
var details = this.detailsInput.getValue().trim();
if (!target || !reasonItem) {
mw.notify('יש למלא דף יעד ולבחור סיבה', { type: 'error' });
return new OO.ui.Process();
}
return new OO.ui.Process(function () {
return executeMoveSubmission(target, reasonItem.getData(), details).then(function () {
dialog.close();
mw.notify('הבקשה נשלחה בהצלחה');
}, function (err) {
mw.notify('שגיאה בשליחה: ' + err, { type: 'error' });
});
});
}
return MoveDialog.super.prototype.getActionProcess.call(this, action);
};
var windowManager = new OO.ui.WindowManager();
$(document.body).append(windowManager.$element);
var dialog = new MoveDialog({ size: 'medium' });
windowManager.addWindows([dialog]);
windowManager.openWindow(dialog);
}
var deleteTemplate = $('.redirectMsg').length ? '{{בקשת העברה+|replaceParam|reason|הפניה=כן}}' : '{{בקשת העברה+|replaceParam|reason}}';
if (!mw.util.getParamValue('redlink'))
addMenuItem('בקשת העברה', 'בקשה להעביר את הדף replaceParam', deleteTemplate,'d');
});