fix: load more button
This commit is contained in:
+22
-33
@@ -320,51 +320,42 @@ document.addEventListener('DOMContentLoaded', function() {
|
||||
viewMoreButtons.forEach(button => {
|
||||
// Déterminer le type de vidéos à charger
|
||||
const section = button.closest('.video-section');
|
||||
const sectionTitle = section.querySelector('.section-title').textContent.trim().toLowerCase();
|
||||
const videoGrid = section.querySelector('.video-grid');
|
||||
let videoType = '';
|
||||
let categoryId = null;
|
||||
|
||||
if (sectionTitle.includes('dernières')) {
|
||||
videoType = 'recent';
|
||||
} else if (sectionTitle.includes('tendances')) {
|
||||
videoType = 'trending';
|
||||
} else if (sectionTitle.includes('indépendance')) {
|
||||
videoType = 'independence';
|
||||
} else {
|
||||
// Vérifier si c'est une section de catégorie
|
||||
const categorySection = section.querySelector('[data-category-id]');
|
||||
if (categorySection) {
|
||||
videoType = 'category';
|
||||
categoryId = categorySection.dataset.categoryId;
|
||||
} else if (section.hasAttribute('data-category-id')) {
|
||||
videoType = 'category';
|
||||
categoryId = section.dataset.categoryId;
|
||||
}
|
||||
|
||||
// Utiliser l'attribut data-video-type si présent (méthode prioritaire)
|
||||
if (section.hasAttribute('data-video-type')) {
|
||||
videoType = section.dataset.videoType;
|
||||
} else if (section.hasAttribute('data-category-id')) {
|
||||
// Section de catégorie
|
||||
videoType = 'category';
|
||||
categoryId = section.dataset.categoryId;
|
||||
}
|
||||
|
||||
|
||||
// Si aucun type reconnu, ne pas configurer l'événement
|
||||
if (!videoType) return;
|
||||
|
||||
// Stocker le numéro de page actuel
|
||||
button.dataset.page = '1';
|
||||
|
||||
|
||||
button.addEventListener('click', function() {
|
||||
const page = parseInt(this.dataset.page);
|
||||
|
||||
// Compter les vidéos déjà affichées pour calculer l'offset
|
||||
const currentCount = videoGrid.querySelectorAll('.video-card').length;
|
||||
|
||||
// Changer le texte du bouton pendant le chargement
|
||||
button.textContent = 'Chargement...';
|
||||
button.disabled = true;
|
||||
|
||||
// Préparer l'URL avec les paramètres
|
||||
let url = `ajax/load-more-videos.php?type=${videoType}&page=${page}`;
|
||||
|
||||
// Préparer l'URL avec les paramètres (utiliser offset au lieu de page)
|
||||
let url = `ajax/load-more-videos?type=${videoType}&offset=${currentCount}`;
|
||||
if (videoType === 'category' && categoryId) {
|
||||
url += `&category=${categoryId}`;
|
||||
}
|
||||
|
||||
// Préparer les données avec token CSRF
|
||||
const formData = new FormData();
|
||||
formData.append('csrf_token', document.querySelector('meta[name="csrf-token"]').getAttribute('content'));
|
||||
const csrfMeta = document.querySelector('meta[name="csrf-token"]');
|
||||
if (csrfMeta) {
|
||||
formData.append('csrf_token', csrfMeta.getAttribute('content'));
|
||||
}
|
||||
|
||||
// Faire la requête AJAX
|
||||
fetch(url, {
|
||||
@@ -372,7 +363,8 @@ document.addEventListener('DOMContentLoaded', function() {
|
||||
headers: {
|
||||
'X-Requested-With': 'XMLHttpRequest'
|
||||
},
|
||||
body: formData
|
||||
body: formData,
|
||||
credentials: 'same-origin'
|
||||
})
|
||||
.then(response => response.json())
|
||||
.then(data => {
|
||||
@@ -386,9 +378,6 @@ document.addEventListener('DOMContentLoaded', function() {
|
||||
videoGrid.appendChild(tempDiv.firstChild);
|
||||
}
|
||||
|
||||
// Mettre à jour le numéro de page
|
||||
this.dataset.page = data.page + 1;
|
||||
|
||||
// Réinitialiser le texte du bouton
|
||||
button.textContent = 'Voir plus';
|
||||
button.disabled = false;
|
||||
|
||||
Reference in New Issue
Block a user