Участник:X-romix/check descr.js

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
//Скрипт проверяет наличие описания к правке.
//Автор: X-romix

if (mw.config.get('wgAction') == 'edit' || mw.config.get('wgAction') == 'submit')
$(function(){
	var wpSave = document.getElementById('wpSave');
	if (!wpSave) return;
	$(wpSave).on('click', XRomix_CheckDescrHandler);
});	

function XRomix_CheckDescrHandler(e){
	var isCancel=false;
	
	var w = document.getElementById('XRomix_editpage_CheckDescr');
	if(w) return; //уже есть надпись с предупреждением
	
	if (!XRomix_CheckDescr()){
		var wpSummary = document.getElementById('wpSummary')
		if (!wpSummary) return
 
		var w = document.createElement('span')
		w.id = 'XRomix_editpage_CheckDescr'
		wpSummary.parentNode.insertBefore(w, wpSummary.nextSibling)
		w.innerHTML = '<div style="padding:10px; margin:5px; background:#D0FF80; border:1px solid green;">'+
		'Не указано описание правки. ' + 
	    ' (<a href="' + mw.config.get('wgArticlePath').replace(/\$1/, 'Википедия:Описание изменений') +
	    '" title="(ссылка откроется в новом окне)" target=_blank>подробнее&nbsp;↗</a>)</div>';
		isCancel=true;
	}
 
	if (isCancel){ //отменить нажатие кнопки
		e = e || window.event //из-за различий в IE и стандартных браузерах
		if (e.preventDefault) e.preventDefault(); else e.returnValue = false //остановить действие, снова по-разному
		return false //на всякий случай
	}

	
	function XRomix_CheckDescr(){
		var wpSummary = document.getElementById('wpSummary')
		if(!wpSummary) return true; //если нет поля описания в наличии
		
	    var temp=wpSummary.value;
	    temp=temp.replace(/\/\*.*?\*\// , ""); //комментарии
	    temp=temp.replace(/[\s]*/ , ""); //пробелы
	    if (temp==""){
			return false; //нету описания
		}
		return true;//есть описание
	}
	
}//function