MediaWiki:Common.js: Difference between revisions
Created page with "$(document).ready(function() { // Ensure the comment form is displayed on page load $('.cs-comment-form').show(); });" |
No edit summary |
||
(18 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
const wikihome = 'https://wiki.defacer.id'; | |||
$(document).ready(function() { | $(document).ready(function() { | ||
$('.cs-comment-form').show(); | $('.cs-comment-form').show(); | ||
}); | }); | ||
$(document).ready(function () { | |||
if (mw.config.get('wgUserGroups').indexOf('sysop') === -1) { | |||
$('#p-tb').hide(); | |||
} | |||
}); | |||
(function() { | |||
function shuffleArray(array) { | |||
for (let i = array.length - 1; i > 0; i--) { | |||
const j = Math.floor(Math.random() * (i + 1)); | |||
[array[i], array[j]] = [array[j], array[i]]; | |||
} | |||
return array; | |||
} | |||
fetch(`${wikihome}/api.php?action=query&list=allcategories&aclimit=max&format=json`) | |||
.then(response => response.json()) | |||
.then(data => { | |||
const allCategories = data.query.allcategories | |||
.map(cat => cat['*']) | |||
.filter(category => category !== 'Pages with ignored display titles'); | |||
const shuffledCategories = shuffleArray(allCategories); | |||
const container = document.getElementById('random-articles'); | |||
container.innerHTML = ''; | |||
shuffledCategories.forEach(category => { | |||
const div = document.createElement('div'); | |||
div.className = 'category-group'; | |||
const categoryTitle = document.createElement('h2'); | |||
const link = document.createElement('a'); | |||
link.href = `${wikihome}/index.php/Category:${encodeURIComponent(category)}`; | |||
link.textContent = category; | |||
categoryTitle.appendChild(link); | |||
div.appendChild(categoryTitle); | |||
const loadingMessage = document.createElement('h3'); | |||
loadingMessage.textContent = 'loading'; | |||
div.appendChild(loadingMessage); | |||
container.appendChild(div); | |||
fetch(`${wikihome}/api.php?action=query&list=categorymembers&cmtitle=Category:${encodeURIComponent(category)}&cmtype=page&cmlimit=10&format=json`) | |||
.then(response => response.json()) | |||
.then(data => { | |||
const articles = data.query.categorymembers.map(member => member.title); | |||
const shuffledArticles = shuffleArray(articles); | |||
div.removeChild(loadingMessage); | |||
shuffledArticles.forEach(articleTitle => { | |||
const articleTitleElement = document.createElement('h3'); | |||
const link = document.createElement('a'); | |||
link.href = `${wikihome}/index.php/${articleTitle.replace(/ /g, "_")}`; | |||
link.textContent = articleTitle; | |||
articleTitleElement.appendChild(link); | |||
div.appendChild(articleTitleElement); | |||
}); | |||
}) | |||
.catch(error => { | |||
console.error('Error fetching category members:', error); | |||
loadingMessage.textContent = 'Error loading articles'; | |||
}); | |||
}); | |||
}) | |||
.catch(error => { | |||
console.error('Error fetching categories:', error); | |||
}); | |||
})(); |
Latest revision as of 09:58, 15 August 2024
const wikihome = 'https://wiki.defacer.id';
$(document).ready(function() {
$('.cs-comment-form').show();
});
$(document).ready(function () {
if (mw.config.get('wgUserGroups').indexOf('sysop') === -1) {
$('#p-tb').hide();
}
});
(function() {
function shuffleArray(array) {
for (let i = array.length - 1; i > 0; i--) {
const j = Math.floor(Math.random() * (i + 1));
[array[i], array[j]] = [array[j], array[i]];
}
return array;
}
fetch(`${wikihome}/api.php?action=query&list=allcategories&aclimit=max&format=json`)
.then(response => response.json())
.then(data => {
const allCategories = data.query.allcategories
.map(cat => cat['*'])
.filter(category => category !== 'Pages with ignored display titles');
const shuffledCategories = shuffleArray(allCategories);
const container = document.getElementById('random-articles');
container.innerHTML = '';
shuffledCategories.forEach(category => {
const div = document.createElement('div');
div.className = 'category-group';
const categoryTitle = document.createElement('h2');
const link = document.createElement('a');
link.href = `${wikihome}/index.php/Category:${encodeURIComponent(category)}`;
link.textContent = category;
categoryTitle.appendChild(link);
div.appendChild(categoryTitle);
const loadingMessage = document.createElement('h3');
loadingMessage.textContent = 'loading';
div.appendChild(loadingMessage);
container.appendChild(div);
fetch(`${wikihome}/api.php?action=query&list=categorymembers&cmtitle=Category:${encodeURIComponent(category)}&cmtype=page&cmlimit=10&format=json`)
.then(response => response.json())
.then(data => {
const articles = data.query.categorymembers.map(member => member.title);
const shuffledArticles = shuffleArray(articles);
div.removeChild(loadingMessage);
shuffledArticles.forEach(articleTitle => {
const articleTitleElement = document.createElement('h3');
const link = document.createElement('a');
link.href = `${wikihome}/index.php/${articleTitle.replace(/ /g, "_")}`;
link.textContent = articleTitle;
articleTitleElement.appendChild(link);
div.appendChild(articleTitleElement);
});
})
.catch(error => {
console.error('Error fetching category members:', error);
loadingMessage.textContent = 'Error loading articles';
});
});
})
.catch(error => {
console.error('Error fetching categories:', error);
});
})();