Skip to main content

Chat, logbook, notifications et présence

Chat

_command/add_chat.js lit teams et chats, ajoute la ligne de chat, met à jour les données nécessaires, sauvegarde les deux documents puis envoie new_chat à l'équipe. get_chats.js lit le document chats.

sequenceDiagram
participant U as Unity
participant C as add_chat
participant T as teams
participant CH as chats
participant RTT as RTT
U->>C: AddChat(teamUid, message)
C->>T: getDocumentData
C->>CH: getDocumentData
C->>CH: append message
C->>T: save
C->>CH: save
C->>RTT: new_chat
RTT-->>U: refresh chat

Logbook

save_logbook.js écrit dans teamsLogbooks et envoie logbook_changed à l'équipe et au professeur. Le runtime commun est représenté par Logbook et exposé via TeamBaseController.Logbook.

Le système supporte aussi restauration d'historique et évaluation du logbook.

Notifications

Le client possède NotificationsListPopupControl, NotificationListItem et écoute NEW_NOTIFICATION. Certaines opérations de notification passent par les endpoints Web exposés dans BackEndBase (GetNotifications, SaveNotification) plutôt que par un Cloud Script BrainCloud classique.

Présence

set_presence.js charge userDetails, puis simulation/activity afin de maintenir la présence dans le contexte courant. By Year ajoute les stubs de présence annuels pour l'évaluation.

lastChatTime

Le modèle équipe conserve LastChatTime; le backend expose SetLastChatTime afin que le client puisse distinguer les nouveaux messages.

Debug

  • Chat absent : vérifier chats, puis message new_chat.
  • Logbook désynchronisé : vérifier teamsLogbooks, puis logbook_changed.
  • Notification absente : vérifier si le flux concerné utilise RTT BrainCloud ou l'endpoint Web.
  • Présence erronée : vérifier heartbeat, userDetails et activité courante.