לדלג לתוכן

מדיה ויקי:Gadget-WLM.js: הבדלים בין גרסאות בדף

מתוך צפונות ויקי
אין תקציר עריכה
אין תקציר עריכה
שורה 107: שורה 107:
if (window.WLM !== 'unhide') hider();
if (window.WLM !== 'unhide') hider();
mw.loader.using('mediawiki.util').done( function() {  
mw.loader.using('mediawiki.util').done( function() {  
$( mw.util.addPortletLink('p-personal', '#', i18n('hideAll'), 'hideAll') ).click(hider);
$('#mw-watchlist-form').after($('<input>', {value: i18n('hideAll'), id: 'hideAll', type: 'submit'}))
$( mw.util.addPortletLink('p-personal', '#', i18n('showAll'), 'showAll') ).click(function() {
.after($('<span>', {text: 'place'}).css('visibility', 'hidden'))
.after($('<input>', {value: i18n('showAll'), id: 'showAll', type: 'submit'}))
.after($('<div>', {text: 'place'}).css({visibility: 'hidden', 'font-size': '50%'}));
$('#hideAll').click(hider);
$('#showAll').click(function() {
$('[class*="mw-changeslist"]').show();
$('[class*="mw-changeslist"]').show();
} );
} );
} );
} );
}
}

גרסה מ־19:33, 22 בספטמבר 2016

function i18n(name) {
	var msg = {
		mark: ['סימון כעריכה שנקראה', 'Mark as read'],
		unmark: ['סימון כעריכה שלא נקראה', 'Mark as unread'],
		close: ['הסתרת העריכה', 'Hide revision'],
		markFlow: ['סימון כעריכה שנקראה', 'Mark flow as read'],
		hideAll: ['הסתרת עריכות שנקראו', 'Hide all read'],
		showAll: ['הצגת עריכות שהוסתרו', 'Show all hidden']
	};
	return msg[name][lang];
}
function seen(obj) {
	obj.before(
		$('<a>', {text: '\u200f', title: i18n('mark'), href: '#nw', class: 'mark-all-edits WLM-icon'}).click(function() {
			var $this = $(this);
			if (window.script96 !== 'unhide') $('.yellowedit').hide();
			var diff = /diff=([0-9]+)/.exec($this.parent().find('a[href*="diff"]').prop('href'))[1];
			new mw.Api().postWithToken('csrf', {
				action: 'setnotificationtimestamp',
				titles: $this.next().text(),
				newerthanrevid: diff
			}).done(function() {
				unseen($this);
				$this.closest('.mw-changeslist-line-watched').removeClass('mw-changeslist-line-watched blueedit')
					.addClass('mw-changeslist-line-not-watched yellowedit');
				var name = $this.closest('.mw-changeslist-line-not-watched').find('.mw-changeslist-title').text();
				var prevs = $('.mw-changeslist-line-watched .mw-changeslist-title').filter(function() {
					var thediff = /.*diff=([0-9]+).*oldid.*/.exec($(this).closest('.mw-changeslist-line-watched')
						.find('a[href*="diff"]').prop('href'));
			  		return thediff && $(this).text() == name && thediff[1] < diff;
				}).closest('.mw-changeslist-line-watched');
				prevs.removeClass('mw-changeslist-line-watched blueedit')
					.addClass('mw-changeslist-line-not-watched yellowedit').find('.mark-all-edits').remove();
				prevs.show();
				unseen(prevs.find('span.mw-title'));
				$this.remove();
			});
	}) ).filter(function () {return $(this).closest('.mw-changeslist-line-watched').find('a[href*="diff"]').length <= 0})
		.prev().remove();
}
function unseen(obj) {
	obj.before(
		$('<a>', {text: '\u200f', title: i18n('unmark'), href: '#nw', class: 'unmark-edits WLM-icon'}).click(function() {
			var $this = $(this);
			var diffcond = $this.closest('.mw-changeslist-line-not-watched').find('abbr.newpage').length > 0;
			var oldrev = diffcond ? 0 : /oldid=([0-9]+)/.exec($this.parent().find('a[href*="oldid"]').prop('href'))[1];
			var diff = diffcond ? 0 : /diff=([0-9]+)/.exec($this.parent().find('a[href*="diff"]').prop('href'))[1];
			new mw.Api().postWithToken('csrf', {
				action: 'setnotificationtimestamp',
				titles: $this.next().text(),
				newerthanrevid: oldrev
			}).done(function() {
				$this.closest('.mw-changeslist-line-not-watched').removeClass('mw-changeslist-line-not-watched yellowedit')
					.addClass('mw-changeslist-line-watched blueedit');
				seen($this);
				var name = $this.closest('.mw-changeslist-line-watched').find('.mw-changeslist-title').text();
				var prevs = $('.mw-changeslist-line-not-watched .mw-changeslist-title').filter(function() {
					var thediff = /.*diff=([0-9]+).*oldid.*/.exec($(this).closest('.mw-changeslist-line-not-watched')
						.find('a[href*="diff"]').prop('href'));
	  				return thediff && $(this).text() == name && thediff[1] > diff;
				}).closest('.mw-changeslist-line-not-watched');
				prevs.removeClass('mw-changeslist-line-not-watched yellowedit')
					.addClass('mw-changeslist-line-watched blueedit').find('.unmark-edits').remove();
				prevs.show();
				seen(prevs.find('span.mw-title'));
				$this.remove();
		});
	} ) );
}
function hider() {
	$('.mw-changeslist-line-not-watched, [class*="mw-changeslist-log"]').hide();
	$('abbr.wikibase-edit').closest('.mw-changeslist-line-watched').hide();
}
function closeedit() {
	$('td.mw-enhanced-rc, li span.mw-changeslist-date').parent().filter(function() {
				return $(this).find('td.mw-enhanced-rc-nested').length <= 0;
			}).prepend($('<a>', {text: '\u200f', title: i18n('close'), href: '#nw', class: 'close-edit'}).click(function() {
				$(this).closest('.mw-changeslist-line-not-watched, .mw-changeslist-line-watched').hide();
	} ) );
	$('td.mw-enhanced-rc').parent().find('td.mw-enhanced-rc-nested').prev().before($('<td>'));
}
function flowseen() {
	$('.mw-changeslist-line-watched a.mw-title').before(
		$('<a>', {text: '\u200f', title: i18n('markFlow'), href: '#nw', class: 'mark-all-flow-edits WLM-icon'})
				.click(function() {
			var $this = $(this);
			var topic = 'נושא:' + /title=[^:]*:(.+)&/.exec($this.parent().find('a[href*="fromnotif"]').prop('href'))[1];
			var page = $this.parent().find('a.mw-title').prop('title');
			new mw.Api().postWithToken('csrf', {
				action: 'setnotificationtimestamp',
				titles: topic + '|' + page,
			}).done(function() {
				$this.closest('.mw-changeslist-line-watched').removeClass('mw-changeslist-line-watched blueedit')
					.addClass('mw-changeslist-line-not-watched yellowedit').hide();
				$this.remove();
			});
	} ) );
}
if ( mw.config.get( 'wgCanonicalSpecialPageName' ) == 'Watchlist' ) {
	$('.mw-body-content').addClass((typeof window.orientation == 'undefined') ? 'WLM-desktop' : 'WLM-mobile');
	importStylesheet('User:IKhitron/96.css');
	var lang = mw.user.options.get( 'language' ) == 'he' ? 0 : 1;
	seen($('.mw-changeslist-line-watched span.mw-title'));
	unseen($('.mw-changeslist-line-not-watched span.mw-title'));
	flowseen();
	closeedit();
	if (window.WLM !== 'unhide') hider();
	mw.loader.using('mediawiki.util').done( function() { 
		$('#mw-watchlist-form').after($('<input>', {value: i18n('hideAll'), id: 'hideAll', type: 'submit'}))
			.after($('<span>', {text: 'place'}).css('visibility', 'hidden'))
			.after($('<input>', {value: i18n('showAll'), id: 'showAll', type: 'submit'}))
			.after($('<div>', {text: 'place'}).css({visibility: 'hidden', 'font-size': '50%'}));
		$('#hideAll').click(hider);
		$('#showAll').click(function() {
			$('[class*="mw-changeslist"]').show();
			} );
		} );
}