- Au démarrage :
Jtimer web tente de récupérer les éléments sur le serveur (findTasks(type
de classement)) le serveur va demander à la base de donnée ou au serveur
distant de lui fournir la liste des tâches selon un classement spécifié (
sans tache cachée, seulement les récentes... ) et va la fournir à l'UI.
- A l'extinction :
Les tâches dont le chrono n'est pas arrêté font la demande d'ajout de temps
au serveur (addTime) et le serveur fait la demande à la base/serveur
distant pour que le temps soit ajouté.
Si une tâche doit être caché alors l'information est envoyé au serveur puis
à la base
- Création/ Ajout/ Suppression de tâche/ sous-tâche.
Lorsque l'utilisateur souhaite :
1/ Créer une tâche/ sous-tâche : il clique sur l'élément permettant de
créer des tâches qui ouvre un éditeur de champ et entre un nom, l'UI
demande alors au serveur de créer la tâche (createTask) avec les infos
spécifiées, la tâche est ensuite créée et stockée dans la base de donnée
(dans le cas d'une sous-tâche le parent est spécifié).
La base de donnée envoie ensuite une réponse success ou fail.
2/ Supprimer une tâche/sous-tâche : il clique sur l'élément qui supprime le
tâche,
si la tâche est une tâche feuille, on la supprime, on informe le serveur
qui informe la base de donnée.
si la tâche est un nœud (racine ou autre), l'ui s'assure que l'utilisateur
est certain de son choix, si l'utilisateur est certain alors on demande au
serveur de faire la suppression qui demande à la base la suppression
récursive de ces éléments.
-Activation/ Désactivation de tâche qui lance le compteur.
1/ Lorsque l'utilisateur active le chrono l'UI gère seule le chronométrage.
2/ Lorsque l'utilisateur désactive le chrono ou ferme le processus
(stopTime) sans avoir désactivé un/plusieurs chrono alors l'UI demande
d'ajouter ces informations (temps début,temps fin, tâche caché = false) au
serveur qui demande d'enregistrer la date au début et en fin de chrono à la
base de données.
- Augmenter/Diminuer le temps passé sur une tâche.
1/ La tâche est en cours de chronométrage, l'UI le prend en compte.
2/ La tâche n'est pas en cours de chronométrage, l'UI envoie une demande de
modification de temps (modifyTime) au serveur, il gère alors la demande à
la base pour modifier la base de donnée (savoir quelle date modifiée, si il
y a eu modification dans la journée ou pas)
- Masquer/ Faire apparaître des tâches.
1/ Bouton au niveau de l'UI changement du statut de la tâche (la tâche
passe sous un menu tâche caché ou visible). Lors de l'extinction de
l'appli, l'information est envoyé au serveur pour que cette tâche ne soit
plus affiché au prochain démarrage, la base est donc mise à jour.
- Commenter une tâche.
1/ Bouton au niveau de l'UI changement de la note sur la tâche (un petit
post-it peut être sur la tâche ). Demande serveur pour changer le
commentaire sur la tâche, demande à la base.
- Poser/ Enlever des alertes sur une tâche du type :
-temps total à ne pas dépasser par tâche :
clique droit ou clique sur symbole horloge de la tache projet côté UI
demande au serveur d'ajouter une contrainte de temps ajout dans la base
d'un temps limite pour la tâche.
temps total à ne pas dépasser par jour sur une tâche :
clic droit ou clique sur symbole horloge de la tache projet côté UI
si temps respecté dans la journée alors pas de report reste dans l'UI sinon
un popup demande si la contrainte doit être ajoutée pour la fois d'après si
oui c'est enregistrer par le serveur dans la base.
-Détection de l'inactivité (techno envisagée go).
Gérer par l'UI, si inactif pas d'incrémentation du temps donc lorsqu'on
ferme la fenêtre appel de addTime sans temps pas pris en compte.
-Classement des taches : (tâches récentes ou par tag)
Gérer par l'UI avec un menu défilant, l'affichage change en fonction de ce
menu. Si affichage non typique type classement envoyée au serveur pour
prochaine ouverture.