// Скрипт для ПИ, напоминающй о необходмости указывать статус (через <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}}";
}