Участник:OneLittleMouse/warnings.js

Материал из Википедии — свободной энциклопедии
//Автор исходного скрипта - DerLetzteRegenbogen
( function () {
function warnbuttons() {
	if (!$('#warnbuttonselect').length) {
		$('<div id="warnbuttonselect">').append([
			$('<input type="button" value="Вандализм" />').click(qwarnVandalism)[0],
						$('<input type="button" value="Вандализм+дифф" />').click(qwarnVandalismDiff)[0],
			$('<input type="button" value="Спам-ссылки" />').click(qwarnSpam)[0],
                        $('<input type="button" value="Спам-статья" />').click(qwarnSpamArt)[0],
			$('<input type="button" value="Тест" />').click(qwarnTest)[0],
			$('<input type="button" value="Уд-уд" />').click(qwarnDelRemove)[0],
			$('<input type="button" value="Копивио(CV)" />').click(qwarnCopyvio)[0],
			$('<input type="button" value="Повтор CV" />').click(qwarnCopyvioAgain)[0],
			$('<input type="button" value="Незначимо" />').click(qwarnNN)[0],
			$('<input type="button" value="Добро п." />').click(qwarnWelcome)[0],
                        $('<input type="button" value="Привет анониму" />').click(qwarnAnon)[0],
			$('<input type="button" value="Отмена" />').click(hideInitialWarnbuttonselect)[0]
		]).prependTo($('#editform'));
	} else {
		$('#warnbuttonselect').toggle();
	}
}
 
function hideInitialWarnbuttonselect() {
	document.getElementById('warnbuttonselect').style.display = 'none';
}
 
function diffSimplify(lnk){
	var tempLink = lnk.replace(/(.*)\?.*diff=(prev|next|cur|[0-9]+).*oldid=([0-9]+)/, '$1?diff=$2&oldid=$3');
	tempLink = tempLink.replace(/diff=prev&oldid=([0-9]+)/, 'diff=$1');
	return tempLink;
}
 
function postWarn(sumString, warnString) {
	var text = document.getElementById('wpTextbox1');
	if (text.value.indexOf('\{\{Новые сверху') != -1) {
		var hdrregexp = /(\r?\n==.*==\r?\n)/;
		if (text.value.search(hdrregexp) != -1) {
		text.value = text.value.replace (hdrregexp, '\n'+warnString+'\n$1');
		}
		else text.value += '\n'+warnString+'\n';
	}
	else {
		text.value += '\n'+warnString+'\n';
	}
	var minorcb = document.getElementById('wpMinoredit');
	if (minorcb && minorcb.checked) minorcb.checked = false;
        var section = document.getElementsByName('wpSection')[0];
	var sum = document.getElementById('wpSummary');
	if (sum && (section.value != "new")) sum.value = sumString;
}
 
function qwarnVandalism() {
	postWarn('Предупреждение о [[ВП:Вандализм|вандализме]].', '== Предупреждение \{\{subst:CURRENTDAY\}\}.\{\{subst:CURRENTMONTH\}\}.\{\{subst:CURRENTYEAR\}\} ==\n\{\{Вандализм\}\} \~\~\~\~');
}
 
function qwarnVandalismDiff() {
	var lnk = diffSimplify(prompt('Скопируйте сюда ссылку на дифф (будет упрощена автоматически):'));
	postWarn('Предупреждение о [[ВП:Вандализм|вандализме]].', '== Предупреждение \{\{subst:CURRENTDAY\}\}.\{\{subst:CURRENTMONTH\}\}.\{\{subst:CURRENTYEAR\}\} ==\n\{\{Вандализм|diff='+lnk+'\}\} \~\~\~\~');
}
 
function qwarnSpam() {
	postWarn('Предупреждение: [[ВП:Чем не является Википедия|Википедия не является каталогом ссылок]].', '\{\{subst:spam\}\} \~\~\~\~');
}

function qwarnSpamArt() {
	postWarn('Предупреждение: [[ВП:Чем не является Википедия|Википедия не является площадкой для рекламы]].', '\{\{subst:Спам-статья\}\} \~\~\~\~');
}

function qwarnTest() {
	postWarn('Предупреждение: используйте для тестов [[ВП:Песочница|песочницу]].', '\{\{subst:test\}\} \~\~\~\~');
}
 
function qwarnDelRemove() {
	var pagename = prompt('Введите название статьи:');
	postWarn('Предупреждение: неправомерное удаление шаблона о возможном удалении страницы.', '== Предупреждение \{\{subst:CURRENTDAY\}\}.\{\{subst:CURRENTMONTH\}\}.\{\{subst:CURRENTYEAR\}\}  ==\n\{\{subst:уд-уд|'+pagename+'\}\} \~\~\~\~');
}
 
function qwarnCopyvio() {
	var pagename = prompt('Введите название статьи:');
	var cvurl = prompt('Скопируйте сюда ссылку на непереработанный материал:');
	postWarn('Предупреждение: нарушение [[ВП:Авторские права|авторских прав]].', '\{\{subst:nothanks cv|url='+cvurl+'|'+pagename+'\}\} \~\~\~\~');
}
 
function qwarnCopyvioAgain() {
	postWarn('Предупреждение: повторное нарушение [[ВП:Авторские права|авторских прав]].', '== Предупреждение \{\{subst:CURRENTDAY\}\}.\{\{subst:CURRENTMONTH\}\}.\{\{subst:CURRENTYEAR\}\} ==\n\{\{subst:Cv warning\}\} \~\~\~\~');
}

function qwarnNN() {
	var pagename = prompt('Введите название статьи:');
	postWarn('Спасибо, незначимо', '\{\{subst:СпасибоНезначимо|'+pagename+'\}\} \~\~\~\~');
}

function qwarnWelcome() {
	postWarn('Добро пожаловать', '\{\{subst:welcome\}\} \~\~\~\~');
}

function qwarnAnon() {
	postWarn('Зарегистрируйтесь!', '\{\{subst:anon\}\} \~\~\~\~');
}

var customizeToolbar = function () {
/*начало*/
$( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
	'section': 'main',
        'group': 'insert',
	'tools': {
		'warnbuttons': {
			label: 'Предупреждения', // or use labelMsg for a localized label, see above
			type: 'button',
			icon: '//upload.wikimedia.org/wikipedia/commons/6/6d/Button_exclamation_1.png',
			filters: [ 'body.ns-3' ],
			action: {
				type: 'callback',
				execute: function(context){
					warnbuttons();
				}
			}
		}
	}
} );

/*конец*/
};


if ( $.inArray( mw.config.get( 'wgAction' ), [ 'edit', 'submit' ] ) !== -1 ) {
	mw.loader.using( 'user.options' ).then( function () {
			if ( mw.user.options.get( 'usebetatoolbar' ) == 1 ) {
			$.when(
				mw.loader.using( 'ext.wikiEditor' ), $.ready
			).then( customizeToolbar );
		}
	} );
}
}() );