Editer une entrée
Une entrée lexicale sera organisée en blocs. Une définition, un exemple, une sous-définition, un sous-exemple, une prononciation, les traductions associées à un bloc, sont les différents types de blocs existant. Chaque bloc aura une ID permettant de l'identifier et le différencier des autres blocs. Nous mettrons en place la création d'ID au niveau du wikstraktor. Exemple :
[
{
"water":[
{
"pos":"N",
"pronunciations":[
{
"ID":"p_1",
"accent":"RP",
"transcript":"/ˈwɔːtə/",
"sounds":[
{
"accent":"RP",
"url":"https://upload.wikimedia.org/wikipedia/commons/1/19/LL-Q1860_%28eng%29-Back_ache-water.wav"
}
]
}
],
"senses":{
"water_N0_1":[
{
"Definition":{
"ID":"d_1",
"lang":"en",
"text":"A substance (of molecular formula H2O) found at room temperature and pressure as a clear liquid; it is present naturally as rain, and found in rivers, lakes and seas; its solid form is ice and its gaseous form is steam."
},
"Subsenses":[
{
"water_N0_1_1":{
"Definition":{
"ID":"sd_1_1",
"lang":"en",
"text":"The liquid form of this substance: liquid H2O."
},
"Examples":[
{
"ID":"se_1_1_1",
"example":"May I have a glass of '''water'''?"
}
],
"Translations":[
{
"ID":"t_1_1_1",
"lang":"fr",
"text":"Eau"
}
]
}
}
],
"Examples":[
{
"ID":"e_1_1",
"example":"By the action of electricity, the '''water''' was resolved into its two parts, oxygen and hydrogen."
}
],
"Translations":[
{
"ID":"t_1_1",
"lang":"fr",
"text":"Eau"
}
]
}
]
}
}
]
}
]
Représentation des données
Les informations lexicales seront représentées selon le modèle suivant. Les traductions, associées à une définition ou une sous-définition seront cachable/montrable au moyen d'un toggle. En mode lecture, les traductions ne seront par défaut pas montrées et l'utilisateur devra cliquer sur le toggle. En mode édition toutes les infos cachées dans un toggle seront affichées.
Un bouton permettra de passer du mode lecture au mode édition. En mode lecture, l'utilisateur pourra ajouter/éditer/supprimer les commentaires, ajouter/supprimer des lables, revenir au lexique, et passer en mode édition.
En mode édition, un bouton à côté du mot-vedette permettra de supprimer l'entrée du lexique. Lors de la sélection d'un bloc, 4 boutons permettront à l'utilisateur de modifier le contenu de l'entrée lexicale :
- supprimer des blocs
- éditer un bloc
- ajouter un bloc
- commenter un bloc
Chaque bloc apparait cliquable au survol de la souris. Lorsque l'utilisateur clique sur un bloc, les 4 icônes supprimer/ajouter/modifier/commenter et un bouton annuler apparaissent à gauche du bloc en question. Pour signifier qu'un bloc est sélectionné, la couleur du fond sera rendue plus foncée et une checkbox cochée apparaitra à gauche du bloc correspondant. L'utilisateur peut sélectionner d'autres blocs en cliquant dessus et les déselectionner en recliquant dessus. Dès que plusieurs blocs sont sélectionnés, les icônes ajouter et modifier disparaissent et seul les boutons supprimer et annuler demeurent à côté du 1er bloc. Un système de drag and drop (on peut discuter de ce qui est le plus simple/pratique à mettre en place) permettra d'échanger de place deux blocs de même niveau et "voisins" dans l'arborescence (sous la même entité mère), c-à-d deux partOfSpeech, deux définitions fille de la même partOfSpeech, deux exemples de la même définition, etc... Si les éléments déplacés ont des éléménts enfants, les déplacer avec eux.
Supprimer des blocs
Si l'utilisateur clique sur une seule définition possédant des sous-définitions puis sur le bouton supprimer, demander à l'utilisateur : "Supprimer également les sous-définitions associées OU Supprimer la définition et conserver les sous-définitions". Si l'utilisateur continue de sélectionner d'autres blocs, on passe aux règles de sélection multiple. Règles de sélection multiple:
- si l'utilisateur sélectionne une définition ou une sous-définition, les exemples associés seront également sélectionnés automatiquement et non déselectionnables par l'utilisateur (car un exemple ne peut pas exister sans définition).
- si l'utilisateur sélectionne une définition, ses sous-défintions sont cochés automatiquement mais restent désélectionnables par l'utilisateur. Si celui-ci désélectionne une ou plusieurs sous-définitions, celle(s)-ci prennent le statut de définition, et les sous-exemples associés deviennent donc des exemples.
- pour tout le reste, un bloc cliqué est un bloc sélectionné.
Une fois que que le ou les blocs seront sélectionnés, l'utilisateur peut cliquer sur l'icône supprimer ou "annuler" pour tout déselectionner
Réactualiser les ID des blocs affectés par la suppression. Si une partOfSpeech n'a plus de définition, on la supprime.
Editer un bloc
(NON PRIORITAIRE)_Un système de drag and drop permettra de déplacer un bloc verticalement sans modifier sa nature. L'utilisateur pourra ainsi réorganiser ses définitons exemples, prononciations, etc... Il faudra alors mettre à jour l'ID des blocs correspondant afin re respecter l'ordre apparent. _
Au clic de l'utilisateur sur l'icône "éditer" à gauche d'un bloc, celui-ci prendra l'apparence d'une fenêtre où il pourra modifier le texte (comme Gitlab lorsqu'on clique sur l'icône stylo en haut à droite de l'issue) puis un bouton "Appliquer les modifications" permettra de sauvegarder le bloc, et à côté un bouton "cancel" permettant de revenir en arrière sans appliquer les modifications.
Ajouter un bloc
Au clic de l'utilisateur sur l'icône "Ajouter bloc" :
- si c'est une pronciation, un exemple ou un sous-exemple, ouvrir un encadré similaire à l'édition d'un bloc pour entrer du contenu, puis ajouter le bloc sous le bloc cliqué par l'utilisateur.
- si c'est une définition ou une sous-définition, demander à l'utilisateur "Ajouter une définition", "Ajouter une sous-définition", "Ajouter un exemple" ou "Ajouter une traduction". Ouvrir un encadré similaire à l'édition d'un bloc pour entrer du contenu, puis ajouter le bloc à l'endroit correspondant au choix de l'utilisateur (toujours en-dessous du bloc sélectionné).
Actions sur les titres (partOfSpeech et Prononciations)
En mode édition, cliquer sur un partOfSpeech provoquera l'apparition des boutons ajouter, supprimer, commenter et annuler. Si l'utilisateur clique sur supprimer, afficher un message d'alerte "Êtes-vous bien sûr de vouloir supprimer cette nature ainsi que tout le contenu associé ?" avec les boutons continuer et annuler, puis agir en fonction de sa réponse. S'il clique sur commenter, faire pareil que pour un commentaire normal. S'il clique sur ajouter, lui proposer une liste déroulante de toutes les partOfSpeech qu'il peut choisir (nous fournirons la liste). Il faudra bien retirer (ou rendre non cliquables, ou prévenir qu'elle existe déjà par un message) les partOfSpeech déjà présente dans l'entrée afin qu'il ne puisse pas créer de doublon. L'ajout d'une partOfSpeech nécessitera l'ajout d'au moins un élément fille (une définition pour une POS, une prononciation pour la section "Pronounciations").
La section "Pronunciations" sera considérée de la même manière, c-à-d qu'elle est soumise au même fonctionnement et elle apparait dans la liste si l'entrée n'a pas de telle section.