ميدياويكي:Gadget-ControlRequests.js
المظهر
هذه الصفحة هي جزء من الإضافة «ControlRequests»، يستعملها 30 مستخدم. |
ملاحظة: بعد الحفظ، قد يلزمك إفراغ الكاش لرؤية التغييرات ( ).
/*
[[ويكيبيديا:الميدان/تقنية#اقتراح_إضافة_لإخفاء_الطلبات_قيد_التنفيذ_أو_المجابة]]
القالب المتعلق: [[قالب:تحكم طلبات]]
تعمل الإضافة فقط إذا كان
[[تصنيف:Gadget-ControlRequests]]
موجود في الصفحة
[[مستخدم:Mr. Ibrahem]]
*/
const categoryToIcon = {
'مؤجل': 'moajal',
'جار': 'jar',
'مقبول': 'maqboul',
'مرفوض': 'marfoud',
'انتظار': 'intidar',
'all': 'all'
};
function filterDivs(className) {
const iconClass = categoryToIcon[className] || '';
$('.control1 > span').removeClass('active');
$(`.control1 .icon-${iconClass}`).addClass('active');
const allDivs = $('.جار, .مقبول, .مرفوض, .انتظار, .مؤجل');
allDivs.each(function () {
const div = $(this);
if (div.hasClass(className) || className === 'all') {
div.show();
// Parsoid
// div.closest('section').show();
const section = div.closest('section');
if (section.length) {
section.show();
} else {
// legacy parser
div.prevAll('.mw-heading:first').show();
div.nextUntil('.mw-heading').show();
// div.next('dl').show();
// div.nextAll('hr:first').show();
}
} else {
div.hide();
// Parsoid
// div.closest('section').hide();
const section = div.closest('section');
if (section.length) {
section.hide();
} else {
// legacy parser
div.prevAll('.mw-heading:first').hide();
div.nextUntil('.mw-heading').hide();
// div.next('dl').hide();
// div.nextAll('hr:first').hide();
}
}
});
}
function updateCounters() {
const categories = Object.keys(categoryToIcon).filter(category => category !== 'all'); // استبعاد 'all'
let total = 0;
categories.forEach(category => {
const count = $(`.${category}`).length;
const iconClass = categoryToIcon[category] || '';
if (count > 0) {
total += count;
if (iconClass) {
const currentText = $(`.icon-${iconClass}`).text();
$(`.icon-${iconClass}`).text(`${currentText} (${count})`);
}
} else {
// remove on click event
$(`.icon-${iconClass}`).off('click');
// disable the icon
$(`.icon-${iconClass}`).css('opacity', '0.5');
$(`.icon-${iconClass}`).removeClass('cicons');
}
});
if (total > 0) {
const currentAllText = $('.icon-all').text();
$('.icon-all').text(`${currentAllText} (${total})`);
}
}
$(document).ready(function () {
const controlDiv = $('.control1');
if (controlDiv.length > 0) {
controlDiv.show();
controlDiv.find('.icon-jar').on('click', () => filterDivs('جار'));
controlDiv.find('.icon-maqboul').on('click', () => filterDivs('مقبول'));
controlDiv.find('.icon-marfoud').on('click', () => filterDivs('مرفوض'));
controlDiv.find('.icon-intidar').on('click', () => filterDivs('انتظار'));
controlDiv.find('.icon-moajal').on('click', () => filterDivs('مؤجل'));
controlDiv.find('.icon-all').on('click', () => filterDivs('all'));
updateCounters();
}
});