MediaWiki:Gadget-twinklediff.js

// <nowiki>


(function($) {


/*
 ****************************************
 *** twinklediff.js: Diff module
 ****************************************
 * Mode of invocation:     Tab on non-diff pages ("Cuối"); tabs on diff pages ("Từ trước", "Từ tôi", "Hiện tại")
 * Active on:              Existing non-special pages
 */

Twinkle.diff = function twinklediff() {
	if (mw.config.get('wgNamespaceNumber') < 0 || !mw.config.get('wgArticleId')) {
		return;
	}
	Twinkle.addPortletLink(mw.util.getUrl(mw.config.get('wgPageName'), {diff: 'cur', oldid: 'prev'}), 'Cuối', 'tw-lastdiff', 'Xem khác biệt từ sửa đổi cuối của thành viên trước');

	// Show additional tabs only on diff pages
	if (mw.util.getParamValue('diff')) {
		Twinkle.addPortletLink(function() {
			Twinkle.diff.evaluate(false);
		}, 'Từ trước', 'tw-since', 'Xem khác biệt từ sửa đổi cuối của thành viên trước');
		Twinkle.addPortletLink(function() {
			Twinkle.diff.evaluate(true);
		}, 'Từ tôi', 'tw-sincemine', 'Xem khác biệt từ sửa đổi cuối của tôi');

		var oldid = /oldid=(.+)/.exec($('#mw-diff-ntitle1').find('strong a').first().attr('href'))[1];
		Twinkle.addPortletLink(mw.util.getUrl(mw.config.get('wgPageName'), {diff: 'cur', oldid: oldid}), 'Hiện tại', 'tw-curdiff', 'Hiển thị sự khác biệt đối với bản sửa đổi hiện tại');
	}
};

Twinkle.diff.evaluate = function twinklediffEvaluate(me) {

	var user;
	if (me) {
		user = mw.config.get('wgUserName');
	} else {
		var node = document.getElementById('mw-diff-ntitle2');
		if (!node) {
			// nothing to do?
			return;
		}
		user = $(node).find('a').first().text();
	}
	var query = {
		'prop': 'revisions',
		'action': 'query',
		'titles': mw.config.get('wgPageName'),
		'rvlimit': 1,
		'rvprop': [ 'ids', 'user' ],
		'rvstartid': mw.config.get('wgCurRevisionId') - 1, // i.e. not the current one
		'rvuser': user
	};
	Morebits.status.init(document.getElementById('mw-content-text'));
	var wikipedia_api = new Morebits.wiki.api('Thu thập dữ liệu của người đóng góp ban đầu', query, Twinkle.diff.callbacks.main);
	wikipedia_api.params = { user: user };
	wikipedia_api.post();
};

Twinkle.diff.callbacks = {
	main: function(self) {
		var xmlDoc = self.responseXML;
		var revid = $(xmlDoc).find('rev').attr('revid');

		if (!revid) {
			self.statelem.error('không tìm thấy bản sửa đổi phù hợp trước đó, hoặc ' + self.params.user + ' là người đóng góp duy nhất. Hủy bỏ.');
			return;
		}
		window.location = mw.util.getUrl(mw.config.get('wgPageName'), {
			diff: mw.config.get('wgCurRevisionId'),
			oldid: revid
		});
	}
};

Twinkle.addInitCallback(Twinkle.diff, 'diff');
})(jQuery);


// </nowiki>
Chúng tôi bán
Bài viết liên quan
[Guide] Hướng dẫn build Layla (Khiên Support) - Genshin Impact
[Guide] Hướng dẫn build Layla (Khiên Support) - Genshin Impact
Layla là đại diện hoàn hảo cho tôi ở trường, lol (có lẽ tôi nên đi ngủ sớm hơn)
[Chap 1] Cậu của ngày hôm nay cũng là tất cả đáng yêu
[Chap 1] Cậu của ngày hôm nay cũng là tất cả đáng yêu
Truyện ngắn “Cậu của ngày hôm nay cũng là tất cả đáng yêu” (Phần 1)
Võ thuật tổng hợp (MMA): Lịch sử và Nguồn Gốc
Võ thuật tổng hợp (MMA): Lịch sử và Nguồn Gốc
Những ngôi sao điện ảnh như Bruce Lee (Lý Tiểu Long) là người đưa võ thuật đến gần hơn với công chúng
Bạn biết những biện pháp bảo vệ mắt nào?
Bạn biết những biện pháp bảo vệ mắt nào?
Cùng tìm hiểu những biện pháp bảo vệ đôi mắt các bạn nhé