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

Материал из Википедии — свободной энциклопедии
function warnbuttons() {
	var mwCustomEditButtons  = window.mwCustomEditButtons;
	if (mwCustomEditButtons && document.getElementById('toolbar') ) {
		button = document.createElement('a');
		button.href = "javascript:quickWarnMain()";
		button.title = "Установить предупреждение";
		buttonimage = document.createElement('img');
		buttonimage.src = "http://upload.wikimedia.org/wikipedia/commons/6/6d/Button_exclamation_1.png";
		buttonimage.alt = "Установить предупреждение";
		button.appendChild(buttonimage);
		var toolbar = document.getElementById('toolbar');
		if (navigator.userAgent.indexOf('MSIE') == -1) {
			if (toolbar.style != null) {
				toolbar.style.height = 'auto';
			}
			else {
				toolbar.setAttribute('style', 'margin-bottom: 6px; height: auto;');
			}
			toolbar.appendChild(button);
			warnmain = document.createElement('div');
			warnmain.style.display = 'none';
			warnmain.style.margin = '0.2em 0 -0.2em 0';
			warnmain.setAttribute('Id', 'warnselect');
			warnmain.appendChild( addOption("qwarnVandalism()", "Вандализм") );
			warnmain.appendChild( addOption("qwarnVandalismDiff()", "Вандализм+дифф") );
			warnmain.appendChild( addOption("qwarnSpam()", "Спам") );
			warnmain.appendChild( addOption("qwarnTest()", "Тест") );
			warnmain.appendChild( addOption("qwarnDelRemove()", "Уд-уд") );
			warnmain.appendChild( addOption("qwarnCopyvio()", "Копивио(CV)") );
			warnmain.appendChild( addOption("qwarnCopyvioAgain()", "Повтор CV") );
			warnmain.appendChild( addOption("hideInitial()", "Отмена") );
			toolbar.appendChild(warnmain);
		}
		else {
			toolbar.appendChild(button);
			selection = '<div id="citeselect" style="display:none">'+
			'<input type="button" value="Вандализм" onclick="qwarnVandalism()" />'+
			'<input type="button" value="Вандализм+дифф" onclick="qwarnVandalismDiff()" />'+
			'<input type="button" value="Спам-ссылки" onclick="qwarnSpam()" />'+
			'<input type="button" value="Тест" onclick="qwarnTest()" />'+
			'<input type="button" value="Уд-уд" onclick="qwarnDelRemove())" />'+
			'<input type="button" value="Копивио(CV)" onclick="qwarnCopyvio()" />'+
			'<input type="button" value="Повтор CV" onclick="qwarnCopyvioAgain()" />'+
			'<input type="button" value="Отмена" onclick="hideInitial()" /></div>';
			document.getElementById('editform').innerHTML = selection + document.getElementById('editform').innerHTML;
			}
	}
}

function quickWarnMain() {
	document.getElementById('warnselect').style.display = '';
}

function hideInitial() {
	document.getElementById('warnselect').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 sum = document.getElementById('wpSummary');
	if (sum) sum.value = sumString;
}

function qwarnVandalism() {
	postWarn('Предупреждение о вероятном [[ВП:Вандализм|вандализме]].', '== Предупреждение ==\n\{\{Вандализм\}\} \~\~\~\~');
}

function qwarnVandalismDiff() {
	var lnk = diffSimplify(prompt('Скопируйте сюда ссылку на дифф (будет упрощена автоматически):'));
	postWarn('Предупреждение о вероятном [[ВП:Вандализм|вандализме]].', '== Предупреждение ==\n\{\{Вандализм|diff='+lnk+'\}\} \~\~\~\~');
}
 
function qwarnSpam() {
	postWarn('Предупреждение: [[ВП:Чем не является Википедия|Википедия не является каталогом ссылок]].', '\{\{subst:spam\}\} \~\~\~\~');
}

function qwarnTest() {
	postWarn('Предупреждение: используйте для тестов [[ВП:Песочница|песочницу]].', '\{\{subst:test\}\} \~\~\~\~');
}

function qwarnDelRemove() {
	var pagename = prompt('Введите название статьи:');
	postWarn('Предупреждение: неправомерное удаление шаблона о возможном удалении страницы.', '\{\{subst:уд-уд|'+pagename+'\}\} \~\~\~\~');
}

function qwarnCopyvio() {
	var pagename = prompt('Введите название статьи:');
	var cvurl = prompt('Скопируйте сюда ссылку на непереработанный материал:');
	postWarn('Предупреждение: нарушение [[ВП:Авторские права|авторских прав]].', '\{\{subst:nothanks cv|url='+cvurl+'|'+pagename+'\}\} \~\~\~\~');
}

function qwarnCopyvioAgain() {
	postWarn('Предупреждение: повторное нарушение [[ВП:Авторские права|авторских прав]].', '\{\{subst:Cv warning\}\} \~\~\~\~');
}

$(warnbuttons);