MediaWiki:Gadget-todolist.js

Från Wikipedia

OBS: Efter du har publicerat sidan kan du behöva tömma din webbläsares cache för att se ändringarna.

  • Firefox / Safari: Håll ned Skift och klicka på Uppdatera sidan eller tryck Ctrl-F5 eller Ctrl-R (⌘-R på Mac)
  • Google Chrome: Tryck Ctrl-Skift-R (⌘-Skift-R på Mac)
  • Internet Explorer / Edge: Håll ned Ctrl och klicka på Uppdatera eller tryck Ctrl-F5
  • Opera: Tryck Ctrl-F5.
$( function() {
	var conf = mw.config.get( [
			'wgPageName',
			'wgUserName',
			'wgCanonicalNamespace',
			'wgNoticeProject'
		] ),
		todoSubpageTitle = 'todo',
		todoPageTitle = new mw.Title( 'User:' + conf.wgUserName + '/' + todoSubpageTitle );

	function addToTodoList() {
		var api = new mw.Api(),
			editToken = mw.user.tokens.get( 'csrfToken' ),
			name = new mw.Title( conf.wgPageName ),
			isCategory = conf.wgCanonicalNamespace === "Category",
			now = '@' + Math.floor( new Date() / 1000 );

		if ( editToken ) {
			api.post( {
				action: 'edit',
				title: todoPageTitle.getPrefixedText(),
				minor: '',
				summary: 'Lägger till [[' + name.getPrefixedText() + ']] till min att göra-lista',
				appendtext: '\n* [[' + ( isCategory ? ':' : '' ) + name.getPrefixedText() + ']] <sup>{{#timel:Y-m-d|' + now + '}}</sup>',
				token: editToken
			} ).then(
				function() {
					var pageLink = '<a href="' + name.getUrl() + '" title="' + name.getPrefixedText() + '">' + name.getPrefixedText() + '</a>',
						todoLink = '<a href="' + todoPageTitle.getUrl() + '" title="' + todoPageTitle.getNameText() + '">att-göra-lista</a>';
					mw.notify(
						$( '<div>Sidan "' + pageLink + '" har lagts till i din <em>' + todoLink + '</em></div>' ),
						{
							'type': 'info',
							'autoHideSeconds': 'long'
						}
					);
				},
				function() {
					mw.notify(
						'Något blev fel. Hoppsan. Försök igen direkt eller om en stund. Har ' + conf.wgNoticeProject + ' driftstörningar kan felet bero på det.',
						{
							'type': 'error'
						}
					);
				}
			);
		}
	}

	mw.util.addPortletLink( 'p-personal', todoPageTitle.getUrl(), 'Att göra-lista⁺', 'pt-todolist', 'Din att göra-lista', '', '#pt-watchlist' );
	var link = mw.util.addPortletLink( 'p-cactions', '#', 'Att göra⁺', 'ca-addtodo', 'Lägg till sidan i din att göra-lista' );

	if ( link ) {
		$( link ).on( 'click', addToTodoList );
	}
} );