מדיה ויקי:סקריפטים/109.js
הערה: לאחר הפרסום, ייתכן שיהיה צורך לנקות את זיכרון המטמון (cache) של הדפדפן כדי להבחין בשינויים.
- פיירפוקס / ספארי: להחזיק את המקש Shift בעת לחיצה על טעינה מחדש (Reload) או ללחוץ על צירוף המקשים Ctrl-F5 או Ctrl-R (במחשב מק: ⌘-R).
- גוגל כרום: ללחוץ על צירוף המקשים Ctrl-Shift-R (במחשב מק: ⌘-Shift-R).
- אינטרנט אקספלורר / אדג': להחזיק את המקש Ctrl בעת לחיצה על רענן (Refresh) או ללחוץ על צירוף המקשים Ctrl-F5.
- אופרה: ללחוץ על Ctrl-F5.
/*
הצגת אזהרה בעת עריכת דף עם תבנית בעבודה
Written by: [[User:Guycn2]]
*/
( function() {
"use strict";
var pageID = mw.config.get( "wgArticleId" );
function checkForTemplate() {
mw.loader.using( "mediawiki.api", function() {
var api = new mw.Api();
api.get( {
prop: "templates",
pageids: pageID,
tllimit: 1,
tltemplates: "תבנית:בעבודה"
} ).done( function(data) {
if (
data.query.pages[ pageID ].templates &&
data.query.pages[ pageID ].templates.length
) {
mw.loader.using( "mediawiki.util", function() {
checkIfSection( api );
} );
}
} );
} );
}
function checkIfSection( api ) {
$.get(
mw.util.wikiScript(),
{ title: mw.config.get( "wgPageName" ), action: "raw" },
function( data ) {
var regex = /{{\s*בעבודה\s*\|\s*פסקה\s*=\s*כן\s*}}/;
regex.test( data ) ? showWarning( api, true ) : showWarning( api, false );
}
);
}
function showWarning( api, isSection ) {
api.get( {
prop: "revisions",
pageids: pageID,
rvprop: "user|timestamp",
rvlimit: 1
} ).done( function( data ) {
var revInfo = data.query.pages[ pageID ].revisions[ 0 ],
revUser = revInfo.user,
revDate = new Date( revInfo.timestamp ).toLocaleDateString();
if ( revUser === mw.config.get( "wgUserName" ) ) return;
mw.loader.using( "oojs-ui-windows", function() {
var message = "<strong>לתשומת ליבך</strong>: נראה " +
( isSection ? "שפסקה מסוימת בדף זה מכילה" : "שדף זה מכיל" ) + " תבנית \{\{בעבודה\}\}.<br />" +
"אם " + ( isSection ? "אכן יש בדף פסקה עם התבנית הזו" : "הוא אכן מכיל תבנית זו" ) +
", יש להימנע " + ( isSection ? "מעריכתה" : "מעריכתו" ) + ".<br />" +
"הדף נערך לאחרונה על־ידי " + revUser + " בתאריך " + revDate + ".";
OO.ui.alert( $( "<div>", { html: message } ) );
} );
} );
}
if ( mw.config.get( "wgAction" ) === "edit" ) {
checkForTemplate();
} else {
mw.hook( "ve.activate" ).add( checkForTemplate );
}
} )();