- Licence : AGPL v3 - Copyright Ville de Paris, Région Nouvelle Aquitaine, Région Hauts de France
- Propriétaire(s) : CGI
- Mainteneur(s) : CGI
- Financeur(s) : Ville de Paris, Région Nouvelle Aquitaine
- Description : Application de création et de gestion de tableaux dans l'OPEN ENT.
Dans le fichier 'ent-core.json.template' du projet OPEN ENT :
{ "name": "fr.cgi~magneto~1.0-SNAPSHOT", "config": { "main" : "fr.cgi.magneto.Magneto", "port" : 8205, "app-name" : "Magneto", "app-address" : "/magneto", "app-icon" : "${host}/magneto/public/img/uni-magneto.png", "host": "${host}", "ssl" : $ssl, "auto-redeploy": false, "userbook-host": "${host}", "integration-mode" : "HTTP", "app-registry.port" : 8012, "mode" : "${mode}", "entcore.port" : 8009, "magnetoUpdateFrequency": "${magnetoUpdateFrequency}", "magnetoIsStandalone": "${magnetoIsStandalone}", "websocket-config": { "wsPort": 4404, "endpoint-proxy": "/magneto/eventbus" } } }
Dans votre springboard, vous devez inclure des variables d'environnement :
conf.properties | Utilisation | Exemple |
---|---|---|
"${magnetoUpdateFrequency}" | Temps de fréquence de rafraichissement des favoris (en ms) | 10000 |
"${magnetoIsStandalone}" | Informe de si Magneto est standalone ou pas | false |
Associer une route d'entrée à la configuration du module proxy intégré ("name": "com.wse~http-proxy~1.0.0"
) :
{ "location": "/magneto", "proxy_pass": "http://localhost:8205" }
Magneto est un outil de création permettant aux utilisateurs de créer et d’échanger des tableaux. Il contient des aimants, chaque aimant ayant son propre type (texte, image, lien etc..).
Depuis sa version React, magneto a deux dépendances à rajouter à son actif afin de faire fonctionner la MediaLibrary vidéo (création d'aimant multimédia) à son plein potentiel.
- Compiler le module video : cloner le dépot : https://github.com/edificeio/video.git. Récupérer le code via la branche dev et faire l'installation comme un module classique de l'ENT.
- Déployer le module sur le springboard : rajouter les lignes suivantes dans les fichiers suivants :
build.gradle :
deployment "com.opendigitaleducation:video:$videoVersion:deployment"
; gradle.properties :videoVersion=1.5-SNAPSHOT
; Puis relancez votre springboard en pensant bien à effectuer un init generateConf. - Installer la dépendance "ffpmeg" dans votre vertx : Dans le container vertx, exécutez les commandes suivantes :
docker exec -u 0 -it /bin/bash apt update apt install ffmpeg
où <container_name> est le nom du container vertx, exemple : vertx
Deux collections sont utilisées :
- magneto.boards" : un document représente un tableau
- magneto.cards" : un document représente un aimant
Exemple de document de la collection "magneto.boards" :
{ "_id" : "91d937c9-9c64-4f07-b432-c07ce9e3fdcb", "title" : "Mon premier tableau", "imageUrl" : "/workspace/document/51e9c801-4abd-49ab-9e13-2f024723cc32", "description" : "Ma première description", "tags" : [ "tableau", "keyword" ], "public" : false, "modificationDate" : "2022-11-17 13:56:45", "creationDate" : "2022-11-17 13:56:45", "deleted" : false, "ownerId" : "fb7391bf-32f9-4380-a0fe-1762b10c4f4c", "ownerName" : "Rhita Rahni", "cardIds" : [] }
Description des champs d'un document de la collection "magneto.boards" :
{ "_id" : "Identifiant du tableau", "title" : "Titre du tableau", "imageUrl" : "Chemin vers une image du tableau, stockée dans l'application workspace", "description" : "Description du tableau. Ce champ est facultatif", "tags" : "Tag permettant la recherche par mot-clé", "creationDate" : "Date de création", "modificationDate" : "Date de dernière modification", "deleted" : "Permet de savoir si le tableau a été archivé ou non", "ownerId" : "Identifiant du créateur du tableau", "ownerName" : "Prénom et nom du créateur du tableau", "public" : "Permet de savoir si le tableau a été partagé au public ou non", "cardIds" : "Tableau contenant l'identifiant de tout les aimants le constituant" }
Exemple de document de la collection "magneto.cards" :
{ "_id" : "132e3289-2534-469a-bfbc-308148616c7d", "title" : "Mon premier aimant image", "resourceType" : "image", "resourceId" : "51e9c801-4abd-49ab-9e13-2f024723cc32", "resourceUrl" : "/workspace/document/51e9c801-4abd-49ab-9e13-2f024723cc32", "description" : "Ma description", "caption" : "Ma légende", "boardId" : "91d937c9-9c64-4f07-b432-c07ce9e3fdcb", "modificationDate" : "2022-11-17 14:19:30", "lastModifierId" : null, "lastModifierName" : null, "creationDate" : "2022-11-17 14:19:30", "ownerId" : "fb7391bf-32f9-4380-a0fe-1762b10c4f4c", "ownerName" : "Rahni Rhita", "parentId" : null }
Description des champs d'un document de la collection "magneto.cards" :
{ "_id" : "Identifiant de l'aimant", "title" : "Titre de l'aimant", "resourceType" : "Type de l'aimant (texte, image, lien etc...)", "resourceId" : "Identifiant de la ressource contenue dans le workspace", "resourceUrl" : "Lien de la ressource (workspace ou externe)", "description" : "Description de l'aimant", "caption" : "Légende de l'aimant", "boardId" : "Identifiant du tableau contenant l'aimant", "creationDate" : "Date de création", "modificationDate" : "Date de dernière modification", "lastModifierId" : "Identifiant du dernier utilisateur ayant modifié l'aimant", "lastModifierName" : "Prénom et nom du dernier utilisateur ayant modifié l'aimant", "ownerId" : "Identifiant du créateur de l'aimant", "ownerName" : "Prénom et nom du créateur de l'aimant", "parentId" : "Identifiant de l'aimant parent si l'aimant a été dupliqué" }
Les droits de type "resource" sont gérés au niveau des boards. On en distingue 4 :
- Lecture ("magneto.read") : lecture des tableaux
- Contribution ("magneto.contrib") : réutilisation des tableaux / aimants
- Modération ("magneto.publish") : créer des tableaux / gestion des aimants
- Gestion ("magneto.manager") : modification des tableaux
Il y a 3 droits de type "workflow" :
- "magneto.board.publish" : Partage et publication de tableau
- "magneto.board.manage" : Création et gestion de tableau
- "magneto.view" : Accéder a Magneto
Le modèle front-end manipule 3 types d'objets :
- "Boards" comprend une collection de "Board"
- "Cards" comprend une collection de "Card"
- "Folder"