メニューを切り替える
個人設定を切り替える
ログインしていません
編集を行うと、IPアドレスが公開されます。

MediaWiki:Gadget-MarkAsPatrolled.js

MediaWikiインターフェイスページ
2024年5月27日 (月) 15:03時点におけるWaki285 (トーク | 投稿記録)による版 (ページの作成:「→‎* * Adds a [mark as patrolled] link to change list items, which have the red exclamation mark.: →‎global mw, $: →‎jslint vars: true, unparam: true, white: true: ( function () { 'use strict'; if ( mw.config.get( 'wgCanonicalSpecialPageName' ) !== 'Watchlist' && mw.config.get( 'wgCanonicalSpecialPageName' ) !== 'Recentchanges' && mw.config.get( 'wgCanonicalSpecialPageName' ) !== 'Recentchangeslinked' ) { return; } var messages = 'markaspatroll…」)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)

注意: 保存後、変更を確認するにはブラウザーのキャッシュを消去する必要がある場合があります。

  • Firefox / Safari: Shift を押しながら 再読み込み をクリックするか、Ctrl-F5 または Ctrl-R を押してください (Mac では ⌘-R)
  • Google Chrome: Ctrl-Shift-R を押してください (Mac では ⌘-Shift-R)
  • Internet Explorer / Microsoft Edge: Ctrl を押しながら 最新の情報に更新 をクリックするか、Ctrl-F5 を押してください
  • Opera: Ctrl-F5を押してください
/**
 * Adds a [mark as patrolled] link to change list items, which have the red exclamation mark.
 */
/*global mw, $ */
/*jslint vars: true, unparam: true, white: true */
( function () {
	'use strict';

	if (
		mw.config.get( 'wgCanonicalSpecialPageName' ) !== 'Watchlist' &&
		mw.config.get( 'wgCanonicalSpecialPageName' ) !== 'Recentchanges' &&
		mw.config.get( 'wgCanonicalSpecialPageName' ) !== 'Recentchangeslinked'
	) {
		return;
	}

	var messages = 'markaspatrolleddiff';

	function markPatrolled( event ) {
		new mw.Api()
		.postWithToken( 'patrol', { formatversion: 2, action: 'patrol', revid: event.data.revid } )
		.then( function () {
			$( event.target ).closest( '.patrollink' ).remove();
		} );
		event.preventDefault();
	}

	function main( element ) {
		$( element ).find( 'abbr.unpatrolled' ).closest( 'li, tr' ).each( function () {
			var href = $( this ).find( 'a[href*="&diff="]' ).attr( 'href' );
			if ( href === undefined ) {
				return;
			}

			var revid = href.match( /&diff=(\d*)/ )[ 1 ];
			if ( revid === '0' ) {
				revid = href.match( /&oldid=(\d*)/ )[ 1 ];
			}

			var $target = this.nodeName === 'TR' ? $( this ).children( 'td:last' ) : $( this );

			$target
			.append( ' ',
				$( '<span>' ).addClass( 'patrollink' )
				.append( '[',
					$( '<a>' ).attr( 'href', '#' )
					.text( mw.msg( 'markaspatrolleddiff' ) )
					.click( { revid: revid }, markPatrolled ),
				']' )
			);
		} );
	}

	new mw.Api().loadMessages( messages )
	.then( function () {
		mw.hook( 'wikipage.content' ).add( main );
	} );

}() );
Cookieは私達のサービスを提供するのに役立ちます。このサービスを使用することにより、お客様はCookieの使用に同意するものとします。