feat: ajout de la pagination et des filtres dans le store d'activités, mise à jour des composants pour gérer l'affichage des jobs, et amélioration de la gestion des états des jobs. Intégration d'une nouvelle composante de pagination pour une navigation optimisée.
This commit is contained in:
parent
b456f9304d
commit
b4bfa48d00
@@ -23,6 +23,8 @@ export class ApiJobRepository extends JobRepositoryInterface {
|
||||
url += `&status=${status.join(',')}`;
|
||||
}
|
||||
|
||||
console.log('Fetching jobs from URL:', url);
|
||||
|
||||
const response = await fetch(url);
|
||||
|
||||
if (!response.ok) {
|
||||
@@ -30,14 +32,53 @@ export class ApiJobRepository extends JobRepositoryInterface {
|
||||
}
|
||||
|
||||
const data = await response.json();
|
||||
console.log('API Response:', data);
|
||||
|
||||
// Gérer différents formats de réponse API
|
||||
let jobs, total, currentPage, limit_returned, hasNext, hasPrev;
|
||||
|
||||
if (Array.isArray(data)) {
|
||||
// Si l'API retourne directement un tableau
|
||||
jobs = data;
|
||||
total = data.length;
|
||||
currentPage = page;
|
||||
limit_returned = limit;
|
||||
hasNext = false;
|
||||
hasPrev = false;
|
||||
} else if (data.items || data.data) {
|
||||
// Si l'API retourne un objet avec les données dans items ou data
|
||||
jobs = data.items || data.data || [];
|
||||
total = data.total || data.totalCount || jobs.length;
|
||||
currentPage = data.page || data.currentPage || page;
|
||||
limit_returned = data.limit || data.perPage || limit;
|
||||
hasNext = data.hasNextPage || data.hasNext || (currentPage * limit_returned < total);
|
||||
hasPrev = data.hasPreviousPage || data.hasPrev || currentPage > 1;
|
||||
} else {
|
||||
// Format par défaut
|
||||
jobs = data || [];
|
||||
total = data.total || 0;
|
||||
currentPage = data.page || 1;
|
||||
limit_returned = data.limit || limit;
|
||||
hasNext = !!data.hasNextPage;
|
||||
hasPrev = !!data.hasPreviousPage;
|
||||
}
|
||||
|
||||
console.log('Processed data:', {
|
||||
jobs: jobs.length,
|
||||
total,
|
||||
currentPage,
|
||||
limit_returned,
|
||||
hasNext,
|
||||
hasPrev
|
||||
});
|
||||
|
||||
return new JobCollection(
|
||||
data || [],
|
||||
data.total || 0,
|
||||
data.page || 1,
|
||||
data.limit || limit,
|
||||
!!data.hasNextPage,
|
||||
!!data.hasPreviousPage
|
||||
jobs,
|
||||
total,
|
||||
currentPage,
|
||||
limit_returned,
|
||||
hasNext,
|
||||
hasPrev
|
||||
);
|
||||
} catch (error) {
|
||||
console.error('API Error:', error);
|
||||
|
||||
Reference in New Issue
Block a user