Contrôleur - Geoffrey013/oc-p8-Take-existing-project-over GitHub Wiki

Le Contrôleur

Controlleur.js va jouer le rôle du Contrôleur. Il servira d’intermédiaire entre le Modèle et la Vue. Il va permettre de prendre les décisions suite aux événements déclenchés par l’utilisateur, en bénéficiant des données liées au DOM (données de l’input, checkbox checked ou non...).

Il va transmettre ces instructions au Modele (ajout du Todo, mise à jour s’il vient d’être complété etc..) qui mettra à jour le Store.

Une fois le Store mis à jour, le Contrôleur va renvoyer les données mises à jour à la Vue, afin qu’elle puisse ajuster le DOM.

Controlleur.js

méthode arguments description
setView locationHash (string) initialise la vue en fonction de locationHash (‘ ‘, active, completed)
showAll récupère l’ensemble des todos via le Modèle (read) et demande leur affichage par la Vue (render, showEntries)
showActive récupère les todos actifs via le Modèle et demande leur affichage par la Vue
showCompleted récupère les todos complétés via le Modèle et demande leur affichage par la Vue
addItem title (string) demande au Modèle l'ajout d'un nouveau todo et de réinitialiser le champ de saisie à la Vue
editItem id (number) demande au Model de récupérer le todo dont l’id est donné en argument et active le mode édition de la Vue (render, editItem)
editItemSave id (number) title (string) appelée lorsque la modification apportée est validée (click hors de la zone de saisie, ou touche Entrer) elle demande au Modèle la mise à jour du todo correspondant et fait sortir la Vue du mode édition ( editItemDone, { id, title })
editItemCancel id (number) appelée lors de l’edition si l’utilisateur appuie sur Echap, elle demande au Model les infos du todo (read, id) (sans modification apportées) puis fait sortir la Vue du mode édition ( editItemDone, { todo })
removeItem id (number) demande au Modèle la suppression d'un todo
removeCompletedItems id (number) demande au Modèle des todos complétés pour les supprimer (removeItem)
toggleComplete id (number) completed (booleen) demande au Modèle de modifier un todo en "complété" ou "non complété" puis demande la mise à jour de la Vue
toggleAll completed (booleen) demande au Modèle la mise à jour de tous les todos en "complétés ou "non complétés". Si certains todos sont complétés et d’autres actifs, alors, ils seront tous “complétés”
_updateCount demande le nombre de todos au Modèle puis demande à la Vue la mise à jour des éléments de la page que cela impacte (render, updateElementCount)
_filter force(boolean) filtre les todos en fonction de la sélection actuelle (showAll, showActive, showCompleted)
_updateFilterState currentPage(string) met à jour le filtre des todos lors de la modification de ceux-ci (puis appelle _filter)