מדיה ויקי:סקריפטים/103.js

מתוך אקו-ויקי, מקום מפגש בנושאי אקולוגיה, חברה וכלכלה.
קפיצה לניווט קפיצה לחיפוש

הערה: לאחר השמירה, ייתכן שיהיה צורך לנקות את זיכרון המטמון (cache) של הדפדפן כדי להבחין בשינויים.

  • פיירפוקס / ספארי: להחזיק את המקש Shift בעת לחיצה על טעינה מחדש (Reload), או ללחוץ על צירוף המקשים Ctrl-F5 או Ctrl-R (במחשב מק: ⌘-R).
  • גוגל כרום: ללחוץ על צירוף המקשים Ctrl-Shift-R (במחשב מק: ⌘-Shift-R).
  • אינטרנט אקספלורר: להחזיק את המקש Ctrl בעת לחיצה על רענן (Refresh), או ללחוץ על צירוף המקשים Ctrl-F5.
  • אופרה: לפתוח תפריט ← הגדרות (במחשב מק: Opera ← העדפות) ואז ללחוץ על פרטיות ואבטחה ← מחק היסטוריית גלישה ← Cached images and files.
mw.loader.using( [ "mediawiki.api" ] ).then( function() {
	function Alert(title, html, url) {
		mw.loader.using( [ "jquery.ui" ] ).then( function() {
			$("<div>").html(html).dialog({
				title: title,
				resizable: false,
				modal: true,
				buttons: {
					"הצגת השינוי": function() 
				    {
				    	window.open(url,'_blank');
						$( this ).dialog( "close" );
				    }
				}
			});
		});
	}
	var lastEdit = "",
		api = new mw.Api(),
		apiParams = {
			prop: 'revisions',
			titles: mw.config.get("wgPageName"),
			rvprop: 'ids|timestamp|user',
			rvlimit: 1
		};
	function checkForNewRev() {
		api.get( apiParams ).done(function(k){
			if (k && k.query && k.query.pages && k.query.pages[mw.config.get('wgArticleId')]) {
				var currentRev = k.query.pages[mw.config.get('wgArticleId')].revisions["0"].revid;
				if (lastEdit !== "" && lastEdit !== currentRev) {
					if (window.location.search.match(/action\=edit/)) 
						Alert("אזהרה", "הדף השתנה מאז שהתחלת לערוך אותו.", "/wiki/%D7%9E%D7%99%D7%95%D7%97%D7%93:%D7%94%D7%91%D7%93%D7%9C/" + currentRev);
					else {
						Alert("לידיעתך", "הדף השתנה מאז שהתחלת לקרוא אותו.", "/wiki/%D7%9E%D7%99%D7%95%D7%97%D7%93:%D7%94%D7%91%D7%93%D7%9C/" + currentRev);
					}
					lastEdit = currentRev;
				} else {
					lastEdit = currentRev;
					setTimeout(checkForNewRev, 10000);
				}
			}
		});
	}
	if (~mw.config.get('wgNamespaceNumber')) {
		checkForNewRev();
	}
});