משתמש:Kotz/LastEditedBy.js

מתוך ויקיפדיה, האנציקלופדיה החופשית

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

  • פיירפוקס / ספארי: להחזיק את המקש Shift בעת לחיצה על טעינה מחדש (Reload) או ללחוץ על צירוף המקשים Ctrl-F5 או Ctrl-R (במחשב מק: ⌘-R).
  • גוגל כרום: ללחוץ על צירוף המקשים Ctrl-Shift-R (במחשב מק: ⌘-Shift-R).
  • אינטרנט אקספלורר / אדג': להחזיק את המקש Ctrl בעת לחיצה על רענן (Refresh) או ללחוץ על צירוף המקשים Ctrl-F5.
  • אופרה: ללחוץ על Ctrl-F5.
location.search.indexOf("printable=yes") === -1 && mw.config.get( "wgPageContentModel" ) !== "wikibase-item" && $(function ($) {
	var translate = {
		'en': {
			label_date: "Date of last edit",
			label_dates: "(x days ago)",
    		label_user: "by",
	    	label_size1: "Size",
	    	label_size2: "bytes",
	    	label_comment: "Comment",
	    	wikiterm_specialcontrib: "Special:Contributions" // should probably be done differently
    	},
    	'he': {
	    	label_date: "תאריך עריכה אחרונה",
	    	label_dates: "(לפני x ימים)",
	    	label_user: "על ידי",
	    	label_size1: "גודל",
	    	label_size2: "בתים",
	    	label_comment: "תקציר עריכה",
	    	wikiterm_specialcontrib: "מיוחד:תרומות" // should probably be done differently
    	}
	};
	
	var namespace = mw.config.get('wgNamespaceNumber'),
		lang = mw.config.get('wgContentLanguage'),
		page = ( namespace -= ( namespace > 0 && namespace % 2 ) ) === 0 ? mw.config.get('wgTitle') : mw.config.get('wgFormattedNamespaces')[ namespace ] + ':' + mw.config.get('wgTitle');

	if (mw.config.get('wgNamespaceNumber') >= 0)
	mw.loader.using( [ 'mediawiki.util', 'mediawiki.api' ] ).then( function() {
		$.getJSON(
			mw.util.wikiScript('api'), 
			{action: 'query', prop: 'revisions', titles: mw.config.get('wgPageName'), rvlimit: 1, rvprop: 'size|timestamp|user|comment|ids', format: 'json'}, 
			function(data) {
				if (data && data.query && data.query.pages)
				{
					for (var pageid in data.query.pages) {
						var page = data.query.pages[pageid];
						if (page && page.revisions && page.revisions.length)
						{
							var rev = page.revisions[0],
								size = rev.size || '',
								user = rev.user || '',
								date = (rev.timestamp || '').replace(/[TZ]/g, ' '),
								comment = (rev.comment || '').replaceAll(
                                                                                                        "[[קטגוריה:",
                                                                                                        "[[:קטגוריה:");
							var dateArr = [];
							dateArr[1] = date.match(/(\d\d\d\d)-/)[1], dateArr[2] = date.match(/-(\d\d)-/)[1].replace(/0(\d)/, "$1"), dateArr[3] = date.match(/-\d\d-(\d\d)/)[1].replace(/0(\d)/, "$1");
							var currentDay = new Date();
							currentDay[1] = currentDay.getFullYear(), currentDay[2] = currentDay.getMonth() + 1, currentDay[3] = currentDay.getDate();
							var firstDate = new Date(dateArr[1], dateArr[2], dateArr[3]);
							var secondDate = new Date(currentDay[1], currentDay[2], currentDay[3]);
							var diffDays = Math.round(Math.abs((firstDate.getTime() - secondDate.getTime())/(24*60*60*1000)));
							var api = new mw.Api();
							api.post ({action: 'parse', text: comment, wrapoutputclass: '' }).done(function(data){
								var parsed_comment_html=data.parse.text;	
								var $d = $("<div style='color: brown'>").addClass("WDI-box").appendTo("#contentSub"),
								    m = translate[ mw.config.get('wgUserLanguage') ] || translate.en;
							
								$d.append(
									m.label_date + ": " + date + " " + m.label_dates.replace(/x/, diffDays),
									" ",
									m.label_user + ": ",
									$("<a>")
									  .attr("href", "/wiki/"+m.wikiterm_specialcontrib+"/"+user)
									  .text(user),
									" ",
									m.label_size1+": "+ size+" "+m.label_size2,
									$("<br>"),
									m.label_comment+": ",
									$('<div>').html(parsed_comment_html['*']).find('p:eq(0)').html(),
									' &rlm;(',
									$("<a>", {href: "/w/index.php?diff=" + rev.revid, accesskey: "g"}).append("שינויים"),
									")"
								); // append
							}); // api.post
						} // if
					} // for
				} //if
			});
	} //if
	);
});