MediaWiki:Gadget-Gerekceyardimcisi.js
Not: Sayfayı kaydettikten sonra değişiklikleri görebilmek için tarayıcınızın önbelleğinizi temizlemeniz gerekir. Google Chrome, Firefox, Microsoft Edge ve Safari: ⇧ Shift tuşuna basılı tutun ve Yeniden Yükle araç çubuğu düğmesine tıklayın. Ayrıntılar ve diğer tarayıcılara yönelik yönergeler için Vikipedi:Önbelleğinizi atlayın sayfasını inceleyin.
$.when(mw.loader.using(["mediawiki.user", "oojs-ui-core", "oojs-ui-widgets", "oojs-ui-toolbars", "oojs-ui-windows"]), $.ready).then(function() {
// Özet alanını seçiyoruz
var sum = $('#wpReason');
// Özet alanı mevcut değilse veya yeni bir bölüm oluşturuluyorsa işlemi sonlandır
if(!sum.length || (sum[0].form && sum[0].form.wpSection && sum[0].form.wpSection.value == 'new')) {
return;
}
// Sayfanın özel adını alıyoruz
var pageName = mw.config.get('wgCanonicalSpecialPageName');
// Eğer sayfa adı "RevisionReview" değilse işlemi sonlandır
if(pageName != "RevisionReview") {
return;
}
// Özet butonlarını içerecek konteyner oluşturuyoruz
var summaryButtonsContainer = new OO.ui.MessageWidget({
type: 'notice',
icon: 'none',
inline: true,
});
// Konteynerın CSS ile stilini ayarlıyoruz
summaryButtonsContainer.$element.css({
'padding-top': '10px',
'padding-left': '5px'
});
// Özet alanına stil sınıfı ekliyoruz
sum.addClass("reasonInputV2");
// Özetlerin listesi ve açıklamaları
var summaries = [{
label: "Deneme",
data: "Deneme amaçlı değişiklik"
}, {
label: "Kaynak",
data: "[[Vikipedi:Doğrulanabilirlik|Kaynak gerektiren değişiklik]]"
}, {
label: "Reklam",
data: "[[Vikipedi:Reklam|Reklam amaçlı değişiklik]]"
}, {
label: "Silme",
data: "Nedensiz içerik silinmesi"
}, {
label: "Telif",
data: "[[Vikipedi:Telif hakları|Telif hakkı ihlali]]"
}, {
label: "Yapıcı olmayan",
data: "Yapıcı olmayan değişiklik"
}, {
label: "Vandalizm",
data: "[[Vikipedi:Vandalizm|Vandalizm amaçlı değişiklik]]"
}];
// Her özet için bir buton oluşturuyoruz
var buttonItems = summaries.map(function(summary) {
var button = new OO.ui.ButtonWidget({
label: summary.label,
title: summary.data,
});
// Buton tıklama işlemi
button.on('click', function() {
insertSummary(summary.data);
});
return button;
});
// Butonları gruplayıp konteynere ekliyoruz
var buttonGroup = new OO.ui.ButtonGroupWidget({
items: buttonItems
});
summaryButtonsContainer.$element.append(buttonGroup.$element);
// Özet eklemeyi gerçekleştiren işlev
function insertSummary(summary) {
var reason_count = summaries.findIndex(function(item) {
return item.data === summary;
}) + 1;
var text = summary;
var vv = sum.val();
// Eğer özet metni zaten içeriyorsa işlemi sonlandır
if(vv.indexOf(text) != -1) {
return;
}
// Metin sonunda boşluk kontrolü
if(/[^ ]$/.test(vv)) {
vv += (reason_count === 1 ? ' ' : ' + ');
}
// Özet metnini güncelle
sum.val(vv + text);
}
// Konteyneri özet alanının sonrasına ekliyoruz
summaryButtonsContainer.$element.insertAfter(sum);
});
/* </nowiki> */