Attention, tout ceci concerne la branche _parking_map_updatable_
La map est un composant à part entière qui ne peut être géré et piloté directement depuis un composant de type page comme c'est le cas pour les états "classiques".
Elle possède son propre store et une palanqué d'actions associés au fonctionnement Leaflet.
Leaflet n'est instancié qu'une fois lors du premier affichage
Création de places multiples
La partie Frontend est opérationelle. Les places sont créées dans le store de la carte, associés à leurs informations et prêtes à être envoyées côté serveur pour l'enregistrement.
Avant de les sauvegarder il faudra:
Récupérer les informations du parking via ajax grâce aux parkingId et niveauId transmis à la carte.
Récupérer AU MOINS les zones et allées par défaut
Assigner l'allée par défaut aux places
Le cycle de vie création places multiples :
_MAP_ click sur l'outil places multiples -> Actions.map.mode_place_auto()
_STORE_ appel de onMode_place_auto Puis trigger pour changer de mode dans la _MAP_
_UTILISATEUR_ dessine un triangle -> passe dans onDraw_created du _STORE_
createParallelogramme sur le _STORE_
trigger vers le composant _MAP_ avec le parallélogramme en paramètres
_MAP_ passe dans _onNewPlaceAuto pour lancer l'ordre d'ouvrir la modale (Fonctionnement ReactBootstrap)
_MAP_ Passe dans renderOverlay pour choisir la modale à ouvrir, en l’occurrence, this._modalPlaceMultiple() Cette modale est un composant à part qui fonctionne avec la validation des formulaires traditionnelle.
_UTILISATEUR_ remplissage et validation du formulaire
_STORE_ le formulaire a été validé donc on passe dans onSubmit_form en fonction de l'id du form on sait qu'il s'agit de places multiples donc on appelle :
_STORE_ this.handlePlacesMultiples avec toutes les infos nécessaires. Test si l'espacement des poteaux fourni est cohérent avec le nombre de places
_MAP_HELPER_ appel de mapHelper.createPlacesFromParallelogramme pour générer la liste des places puis trigger vers la _MAP_
_MAP_ Passe dans onStoreTrigger puis this.onFormesAdded
Partie backend de la config parking
Pour le moment en l'état de squelette. Pour plus de détails, voir mes commits d'aujourd'hui:
00f0fb94bab82d075f01a396c8d842ff13c95177 : génération des modèles vierges
7ede00d032e6b5144274a95fa61a1e0b79bdad92 : Configuration des relations, création de contrôleurs, modification des routes
La récupération des informations du parking devra passer par le groupe de routes identifié avec le commentaire GROUPE UTILISATEUR AUTHENTIFIE + DROITS ACCESS + DROIT PARKING
Droits d'accès à un parking
Toutes les routes qui pointent vers une ressources dépendant du droit d'accès ou non au parking concerné DOIVENT être placés dans un groupe ayant le filtre ['before' => 'auth|auth.canaccess|auth.parking']
Le filtre est à développer dans le fichier filters.php (ligne 64) en se basant sur l'issue #21
Attention, tout ceci concerne la branche _parking_map_updatable_
La map est un composant à part entière qui ne peut être géré et piloté directement depuis un composant de type page comme c'est le cas pour les états "classiques". Elle possède son propre store et une palanqué d'actions associés au fonctionnement Leaflet. Leaflet n'est instancié qu'une fois lors du premier affichage
Création de places multiples
La partie Frontend est opérationelle. Les places sont créées dans le store de la carte, associés à leurs informations et prêtes à être envoyées côté serveur pour l'enregistrement. Avant de les sauvegarder il faudra:
Le cycle de vie création places multiples :
Actions.map.mode_place_auto()
onMode_place_auto
Puis trigger pour changer de mode dans la _MAP_onDraw_created
du _STORE_createParallelogramme
sur le _STORE_trigger
vers le composant _MAP_ avec le parallélogramme en paramètres_onNewPlaceAuto
pour lancer l'ordre d'ouvrir la modale (Fonctionnement ReactBootstrap)renderOverlay
pour choisir la modale à ouvrir, en l’occurrence,this._modalPlaceMultiple()
Cette modale est un composant à part qui fonctionne avec la validation des formulaires traditionnelle.onSubmit_form
en fonction de l'id du form on sait qu'il s'agit de places multiples donc on appelle :this.handlePlacesMultiples
avec toutes les infos nécessaires. Test si l'espacement des poteaux fourni est cohérent avec le nombre de placesmapHelper.createPlacesFromParallelogramme
pour générer la liste des places puistrigger
vers la _MAP_onStoreTrigger
puisthis.onFormesAdded
Partie backend de la config parking
Pour le moment en l'état de squelette. Pour plus de détails, voir mes commits d'aujourd'hui:
La récupération des informations du parking devra passer par le groupe de routes identifié avec le commentaire
GROUPE UTILISATEUR AUTHENTIFIE + DROITS ACCESS + DROIT PARKING
Droits d'accès à un parking
['before' => 'auth|auth.canaccess|auth.parking']