Перейти до вмісту

Користувач:Andriy.v/Gadget-DeleteRedirects.js

Матеріал з Вікіпедії — вільної енциклопедії.

Увага: Після публікування слід очистити кеш браузера, щоб побачити зміни.

  • Firefox / Safari: тримайте Shift, коли натискаєте Оновити, або натисніть Ctrl-F5 чи Ctrl-Shift-R (⌘-R на Apple Mac)
  • Google Chrome: натисніть Ctrl-Shift-R (⌘-Shift-R на Apple Mac)
  • Edge: тримайте Ctrl, коли натискаєте Оновити, або натисніть Ctrl-F5.
if (typeof(window.DeleteRedirects) == 'undefined') {
	window.DeleteRedirects = {
		display_option: function (redirects) {
			var $target = $('#wpConfirmB');
			var $redir = $target.clone().attr("id","wpConfirmR");
			$redir.html('<button type="submit" tabindex="6" name="wpConfirmR" value="" class="oo-ui-inputWidget-input oo-ui-buttonElement-button"><span>Вилучити перенаправлення</span></button>');
			$('#deleteconfirm').after($redir);
			this.check(redirects);
		},
		check: function (redirects) {
			var dr = this;
			if (redirects.length > 0) {
				$('#wpConfirmR').click(function () {
					$( "#mw-content-text" ).append('<div id="dr-dialog"></div>');
					//dr.wait('Вилучення перенаправлень');
					mw.notify('Вилучення перенаправлень');
					dr.delete_pages(redirects);
				});
			}
		},
		delete_pages: function (redirects) {
			var dr = this;
			var redirect = redirects.pop();
			var params = {
				action: 'delete',
				title: redirect.title,
				reason: 'перенаправлення на вилучену сторінку [['  mw.config.get('wgPageName').replace(/_/g,' ')  ']]',
				format: 'json'
			},
			api = new mw.Api();
			api.postWithToken( 'csrf', params ).done( function ( data ) {
				if (redirects.length > 0)
					dr.delete_pages(redirects);
				else
					dr.success();
			} ).fail(function(error){
				alarm(error);
			});
		},
		success: function () {
			//this.wait('Перенаправлення вилучені');
			mw.notify('Перенаправлення вилучені');
			setTimeout(function(){
				//$( '#dr-dialog' ).dialog('close');
				$('#wpConfirmR')[0].style.display = "none" },500
			);			
		},
		wait: function (mes) {
			$('#dr-dialog').prop('title', 'Зачекайте, будь ласка...');
			$('#dr-dialog').html('<p style="font-size: 120%; font-weight:bold;">'   mes   '</p>');
			$('#dr-dialog').dialog({
				modal: true,
				buttons: false
			});
		}
	};
	if (mw.config.get('wgAction') == 'delete') {
		var params = {
			action: 'query',
			titles: mw.config.get('wgPageName'),
			prop: 'redirects',
			format: 'json'
		},
		api = new mw.Api();
		api.get( params ).done( function ( data ) {
		var pages = data.query.pages;
		var redirects = pages[Object.keys(pages)].redirects;
			if (redirects != undefined) {
				DeleteRedirects.display_option(redirects);
    		}
		});
	}
}