מדיה ויקי:סקריפטים/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 );
	}
	
} )();