ميدياويكي:Gadget-MuttasilAmLa.js

من كوبتيكبيديا
اذهب إلى التنقلاذهب الى البحث
لم تعد النسخة القابلة للطباعة مدعومة وقد تحتوي على أخطاء في العرض. يرجى تحديث علامات متصفحك المرجعية واستخدام وظيفة الطباعة الافتراضية في متصفحك بدلا منها.

ملاحظة: بعد النشر، أنت قد تحتاج إلى إفراغ الكاش الخاص بمتصفحك لرؤية التغييرات.

  • فايرفوكس / سافاري: أمسك Shift أثناء ضغط Reload، أو اضغط على إما Ctrl-F5 أو Ctrl-R (⌘-R على ماك)
  • جوجل كروم: اضغط Ctrl-Shift-R (⌘-Shift-R على ماك)
  • إنترنت إكسبلورر/إيدج: أمسك Ctrl أثناء ضغط Refresh، أو اضغط Ctrl-F5
  • أوبرا: اضغط Ctrl-F5.
// متصل أم لا
if(mw.config.get('wgNamespaceNumber') === 2 || mw.config.get('wgNamespaceNumber') === 3)
mw.loader.using('jquery.tipsy', function() {
    var user=mw.config.get('wgTitle').replace(/\/.*$/, '');
	if (!user)
		return;
		
	function tsToDate(rc) {
		var date = new Date(rc.timestamp);
		if (isNaN(date)) {// all sane browsers can just do new Date(rc.timestanp). only IE refuses.
			dar = rc.timestamp.split(/[^\d]/); // timestamp looks like so: "2011-05-05T18:56:27Z"
			var month = parseInt(dar[1],10) - 1; // "Date" expexts months in the range of 0..11, timestamp is more conventional.
			var minutes = parseInt(dar[4], 10) - new Date().getTimezoneOffset();//ts is UTC, but new Date(y,M,d,h,m,s) assumes local TZ
			date = new Date(dar[0],month,dar[2],dar[3],minutes,dar[5]);
		}
		return date;
	}

	function ago(ms) {
		var s = ms / 1000;
		if (s < 100)
			return 'ثوان';
		var ranges = [
				{r: 60, t: 'دقائق', s: 'دقيقة', d: 'دقيقتين'},
				{r: 60, t: 'ساعات', s: 'ساعة', d: 'ساعتين'},
				{r: 24, t: 'أيام', s: 'يوما', d: 'يومين'},
				{r: 7, t: 'أسابيع', s: 'أسبوعا', d: 'أسبوعين'},
				{r: 52, t: 'سنوات', s: 'سنة', d: 'سنتين'}
			];
			
		var est = '', num;
		for (var i = 0; i < ranges.length; i++) {
			var range = ranges[i];
			s /= range.r;
			if (s < 1)
				break;
			num = '';
			if (s < 2)
				est = range.s;
			else if (s < 3 && range.d)
				est = range.d;
			else {
				num = ' ' + Math.floor(s) + ' ';
				est = range.t;
			}
		}
		return 'نحو ' + num + est;
	}
	
	function pic(recent) {
		return 	recent
			? '//upload.wikimedia.org/wikipedia/commons/3/31/Button_Icon_Green.svg'
			: '//upload.wikimedia.org/wikipedia/commons/0/07/Button_Icon_Red.svg';
	}
	
    $.getJSON(mw.util.wikiScript('api'), 
		{action: 'query', list: 'usercontribs', ucuser: user, uclimit: '1', format:'json'}, 
		function (data) {
		   if (data && data.query && data.query.usercontribs && data.query.usercontribs.length) {
				var lastEditTime = tsToDate(data.query.usercontribs[0]),
					timeSinceEdit = new Date() - lastEditTime;
					recent = timeSinceEdit < 1000 * 60 * 20,
					page = data.query.usercontribs[0].title,
					pageLink = $('<a>', {href: mw.util.getUrl(page), text: page}),
					userLinkTitle = 'راسل ' + user + ' في صفحة النقاش',
					userLink = $('<a>', {href: mw.util.getUrl('User Talk:' + user) + '?action=edit&section=new', title: userLinkTitle, text: user}),
					div = $('<div>')
						.append('آخر تعديل منذ: ' + ago(timeSinceEdit) + '<br />')
						.append('على: ').append(pageLink).append('<br />')
						.append('راسل: ').append(userLink),
					timer = null,
					img = $('<img>',{src: pic(recent)})
						.css({float: 'left'})
						.css({width: '12px'})
						.css({cursor: 'pointer'})
						.tipsy({gravity: 'nw', trigger: 'manual', title: function(){return div.html();}, html: true, fade: true})
						.mouseover(function() {
							img.tipsy('show');
						})
						.mouseout(function() {
							timer = setTimeout(function(){
								img.tipsy('hide');
							}, 5000);
						});
				$('.tipsy')
					.on('mouseover', function() {
						clearTimeout(timer);
					})
					.on('mouseout', function(){
						timer = setTimeout(function(){
							img.tipsy('hide');
						}, 1000);
					});
				$('#firstHeading').prepend(img);
			}
		}
     ); 
});