Carte des salles à manger

Salles à manger du campus ouvertes maintenant : la longueur de la file, le repas servi et jusqu’à quand, et ce que chaque station sert.

Chaque hall ouvert indique la longueur de la file, sur une barre montrant son achalandage, puis le repas servi et jusqu’à quand, ainsi que ce que chaque station offre. Les halls qui ouvrent plus tard, ont terminé la journée ou sont fermés sont listés avec leur horaire. Un hall remplit l’écran; plusieurs halls deviennent des rangées pour que chacun soit visible.

Carte en direct

Cette carte est dessinée dans votre navigateur par le même code que les lecteurs, avec des données d’exemple.

Catégorie : Écoles. Étiquettes : Écoles et campus, Horaires, Files d’attente et attentes.

Mises en page

Cette carte plein écran occupe tout l’écran en mode paysage ou portrait et n’est pas placée en coin, puce ou bande.

Mises en page : pleine. Formes : paysage, portrait.

Mises en page, thèmes et publication des cartes. Parcourir les cartes.

Données et confidentialité

Flux : screenrig.dining/v1.

Les documents du flux portent une attribution de source. Le Player fournit le flux à la carte.

Comptages et menus seulement, jamais qui mange.

Propriétés

Pour le thème, l’arrière-plan, l’accent et la position, voir Propriétés communes.

Définissez les propriétés statiques dans les params de la carte lorsque vous la créez. Son document de données ne contient que des propriétés dynamiques. Les lignes imbriquées décrivent le contenu de leur propriété parente.

Propriétés statiques

NomTypePar défautValeurs et limitesDescription
titlestring"Dining halls"maxLength : 40
sortstring"status""status", "feed"status liste d’abord les halls ouverts, puis ceux qui ouvrent plus tard, puis les fermés ; feed garde l’ordre donné.
busyLowinteger40minimum : 1 ; maximum : 90En dessous de ce pourcentage de remplissage, une salle est considérée calme.
busyHighinteger75minimum : 10 ; maximum : 100À ce pourcentage ou plus, une salle est considérée occupée.
maxStationsinteger4minimum : 0 ; maximum : 6
showStationsbooleantrue
staleMinutesinteger30minimum : 1 ; maximum : 1440
hour12booleanfalse
timeZonechaîne, nulnull
backgroundColorchaîne, nulnullmotif : "^#[0-9A-Fa-f]{6}([0-9A-Fa-f]{2})?$"Remplace le fond et la plaque de la carte par une couleur plate ordonnée en CSS. #RRGGBBAA fournit l’opacité. background none a la priorité.
textColorchaîne, nulnullmotif : "^#[0-9A-Fa-f]{6}([0-9A-Fa-f]{2})?$"Remplace les couleurs du texte principal et secondaire. Les couleurs d’accentuation et de statut sémantique conservent leur rôle.

Propriétés dynamiques

NomTypePar défautValeurs et limitesDescription
hallsarray[]maxItems : 8Les salles. Un flux (screenrig.dining/v1) l’emporte lorsqu’il est présent ; le magasin de données fournit les mêmes lignes sinon.
halls[].namestringminLength : 1 ; maxLength : 40 ; Obligatoire
halls[].locationstringmaxLength : 40
halls[].closedbooleanfalseFermé toute la journée (pause, jour férié) ; la note explique pourquoi.
halls[].notestringmaxLength : 60
halls[].mealsarraymaxItems : 8Heures de service d’aujourd’hui.
halls[].meals[].kindstringmaxLength : 20 ; Obligatoirepetit-déjeuner, brunch, déjeuner, dîner, fin de soirée ou collation ; autre texte affiché tel quel.
halls[].meals[].startstringmaxLength : 32 ; ObligatoireISO 8601 ; avec décalage ou heure locale dans la zone de l’écran.
halls[].meals[].endstringmaxLength : 32 ; Obligatoire
halls[].busyPercentintegerminimum : 0 ; maximum : 100À quel point la salle est pleine maintenant.
halls[].waitMinutesintegerminimum : 0 ; maximum : 240La ligne, en minutes.
halls[].stationsarraymaxItems : 12
halls[].stations[].namestringmaxLength : 30 ; Obligatoire
halls[].stations[].mealstringmaxLength : 20Affiche uniquement dans ce repas ; vide : tous les repas.
halls[].stations[].itemsarraymaxItems : 6
updatedstring""maxLength : 32Quand les lectures ont été prises, ISO 8601 (stockage des données uniquement ; un flux porte fetchedAt).

Exemple de canevas

Enregistrez les propriétés statiques comme params.json et créez la carte. Le résultat contient son identifiant crd_.

{
  "theme": "neomustard"
}
screenrig card create --type dining-halls --major 1 --file params.json

Ajoutez cet élément aux primitives d’une page de liste de lecture, en remplaçant l’identifiant de l’exemple par celui de votre carte. Publiez la liste de lecture et assignez un écran.

{
  "id": "dining-halls",
  "primitive": "card",
  "card": "crd_01EXAMPLECARD000000000",
  "layout": "full",
  "content_fit": "fill"
}

Écrire des données en direct

Écrivez le document dans la carte après l’avoir créée, puis remplacez-le pour mettre à jour l’écran sans republier. La carte vérifie chaque écriture par rapport à ses propriétés dynamiques et refuse un document qu’elle rejette. Utilisez le même projet que la liste de lecture.

Enregistrez le document sous card-data.json. La CLI lit le document lui-même, sans enveloppe :

{
  "halls": [],
  "updated": ""
}
screenrig card data put crd_01EXAMPLECARD000000000 --file card-data.json

Ou appelez directement l’API. L’API enveloppe le même document dans un champ document. Un jeton agent nomme déjà son projet, donc aucun en-tête de projet n’est envoyé ; si vous envoyez ScreenRig-Project, il doit correspondre au projet du jeton. Fournissez votre autorisation API via l’environnement ; voir Authentification API.

curl --request PUT "https://api.screenrig.ai/api/cards/crd_01EXAMPLECARD000000000/data" \
  --header "Authorization: Bearer $SCREENRIG_TOKEN" \
  --header "Content-Type: application/json" \
  --data '{"document":{"halls":[],"updated":""}}'