diff --git a/assets/controllers/organization_controller.js b/assets/controllers/organization_controller.js index 446de27..126d9d3 100644 --- a/assets/controllers/organization_controller.js +++ b/assets/controllers/organization_controller.js @@ -4,10 +4,24 @@ import {TabulatorFull as Tabulator} from 'tabulator-tables'; import {eyeIconLink, TABULATOR_FR_LANG} from "../js/global.js"; export default class extends Controller { - static values = {aws: String}; + static values = {aws: String, + id: String, + activities: Boolean, + table: Boolean, + }; + static targets = ["activityList", "emptyMessage"] connect() { - this.table(); + if(this.activitiesValue){ + this.loadActivities(); + setInterval(() => { + this.loadActivities(); + }, 5000); // Refresh every 60 seconds + } + if (this.tableValue){ + this.table(); + } + } table(){ @@ -82,4 +96,59 @@ export default class extends Controller { }], }); } + + async loadActivities() { + try { + // 1. Fetch the data using the ID from values + const response = await fetch(`/actions/organization/${this.idValue}/activities-ajax`); + + if (!response.ok) { + throw new Error('Network response was not ok'); + } + + const activities = await response.json(); + + // 2. Render + this.renderActivities(activities); + + } catch (error) { + console.error('Error fetching activities:', error); + this.activityListTarget.innerHTML = `
Aucune activité récente.
- {% else %} - {% set sortedActivities = activities|sort((a, b) => a.date <=> b.date)|reverse %} -{{ userName }} - {{ action }}
-