Участник:Iluvatar/signCloser.js

// Скрипт для ПИ, напоминающй о необходмости указывать статус (через <nowiki>{{subst:ПИ2}}</nowiki>) при подведении итогов. 
// Автор Iluvatar. Отдельные решения заимств. из https://ru.wikipedia.org/wiki/MediaWiki:Gadget-common-action-edit.js

if ( mw.config.get( 'wgNamespaceNumber' ) === 4 && mw.config.get( 'wgTitle' ).match( '^(К удалению/)' ) ) {
    wpSave = document.getElementById( 'wpSave' ); 
    wpPreView = document.getElementById( 'wpPreview' );
    var tb = document.getElementById("wpTextbox1");
    
	
	var textarea_past = tb ? tb.value : '';
    var res_past;
    res_past = sessionStorage.getItem("res_past");
    if( res_past === null || res_past === "undefined" ) {
        res_past = 0;
	if ( textarea_past.match(/={2,5}\s*Итог\s*={2,5}/ig) !== null ) {
         res_past = textarea_past.match(/={2,5}\s*Итог\s*={2,5}/ig).length; // колв-во ==итогов== после загр стр-цы
	     }
	}
	var warningCloser = false;
	wpSave.onclick = function() {
		try {
			if ( warningCloser ) {
				sessionStorage.clear();
				return true;
			    }
            warningCloser = true;
			var textarea_now = document.getElementById("wpTextbox1").value;
			var res_now = 0;
			if ( textarea_now.match(/={2,5}\s*Итог\s*={2,5}/ig) !== null ) {
                 res_now = textarea_now.match(/={2,5}\s*Итог\s*={2,5}/ig).length; // сколько стало ==итогов== к моменту попытки сохран.
                }
			if( res_now > res_past ) {
				var count_res = res_now - res_past;
				var count_sign = 0;
				if ( textarea_now.match(/\{\{subst:ПИ2}}/ig) !== null ) {
                     count_sign = textarea_now.match(/\{\{subst:ПИ2}}/ig).length;
				     }
            	if( count_sign < count_res ) { // если колв-во подписей менее колв-ва новых ==итогов==
		            var label_var = document.getElementById("wpSummaryLabel").innerHTML;
			        var label = document.getElementById("wpSummaryLabel");
			        label.innerHTML = "<div style='background-color:#F7D358;'>Вы забыли указать свой статус подводящего итоги! <a id='link_Sign' onclick='clickSign()'><code><nowiki>{{subst:ПИ2}}</nowiki></code></a></div>" + label_var;
                    linkSign = document.getElementById( 'link_Sign' );
                    return false;
            	    }
			    }
            } catch ( e ) {
            sessionStorage.clear();
			return true;
		    }
        };
    wpPreView.onclick = function() {
         if( res_past !== null || res_past === "undefined" ) // при предпросмотре помещаем изнач. кол-во итогов в сессию
         sessionStorage.setItem("res_past",res_past);
         };
}
function clickSign() {
    document.getElementById("wpTextbox1").value = " " + document.getElementById("wpTextbox1").value + "{{" + "subst:ПИ2}}";
    }
Prefix: a b c d e f g h i j k l m n o p q r s t u v w x y z 0 1 2 3 4 5 6 7 8 9

Portal di Ensiklopedia Dunia

Kembali kehalaman sebelumnya