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

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

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

  • פיירפוקס / ספארי: להחזיק את המקש Shift בעת לחיצה על טעינה מחדש (Reload), או ללחוץ על צירוף המקשים Ctrl-F5 או Ctrl-R (במחשב מק: ⌘-R).
  • גוגל כרום: ללחוץ על צירוף המקשים Ctrl-Shift-R (במחשב מק: ⌘-Shift-R).
  • אינטרנט אקספלורר: להחזיק את המקש Ctrl בעת לחיצה על רענן (Refresh), או ללחוץ על צירוף המקשים Ctrl-F5.
  • אופרה: לפתוח תפריט ← הגדרות (במחשב מק: Opera ← העדפות) ואז ללחוץ על פרטיות ואבטחה ← מחק היסטוריית גלישה ← Cached images and files.
/**
 * written by [[User:ערן]]. Add delete log from commons near broken links to images.
 **/
$(function(){
	if (mw.config.get( 'wgNamespaceNumber', 0 ) < 0 ) return;
        mw.messages.set({'tooManyBrokenFiles': 'הדף מכיל יותר מדי קישורים שבורים לקבצים ולכן לא יופעל בו סקריפט לבדיקת מצב בוויקישיתוף'});
	function handleDeletedFile($ele, fileName) {
			var commonsApi = new mw.Api( { ajax: { url: 'https://commons.wikimedia.org/w/api.php' } });
			commonsApi.get({
				action: 'query',
				list: 'logevents',
				letype: 'delete',
				letitle: fileName,
				origin: location.origin
			}).done(function(data){
				if (!data.query || !data.query.logevents || data.query.logevents.length===0 ) return;
				var $deleteDiv = $('<div>').text( $.map(data.query.logevents, function(e, i){return e.comment+' ('+e.user+'; '+e.timestamp+')'}).join('') );
				$deleteDiv.css( {
					'color': '#600',
					'direction': 'ltr',
					'font-size': '85%',
					'font-style': 'italic',
					'font-weight': 'bold'
				});
				$ele.after( $deleteDiv );
				$ele.prop( 'href', 'https://commons.wikimedia.org/wiki/'+fileName );
			});
	}

	$('.gallerybox .thumb').filter(function(){ return ($(this).children().length===0)}).each(function(){
		var fileName = 'File:'+$(this).text();
		handleDeletedFile($(this), fileName);
	});
        var relevantFiles = [];
	$('a[title^="קובץ:"].new').each(function(){
			var fileName= $(this).prop( 'title' ).split('קובץ:');
			if (fileName.length>2) return;
			fileName = 'File:' + fileName[1];
			relevantFiles.push([$(this), fileName]);
	});
        if (relevantFiles.length<10) {
			for(var i=0;i<relevantFiles.length;i++){
				handleDeletedFile(relevantFiles[i][0],relevantFiles[i][1]);
			}
        } else {
			mw.notify(mw.msg('tooManyBrokenFiles'));
        }
});