@@ -345,7 +345,7 @@ function selectionnerDepartement(interactif = true) {
345345
346346 entrerDansDepartement ( sonCode ) ;
347347
348- if ( interactif ) {
348+ if ( interactif ) {
349349 changerLienPartageable ( ) ;
350350 }
351351} ;
@@ -357,7 +357,7 @@ function selectionnerCommune(interactif = true) {
357357
358358 entrerDansCommune ( sonCode ) ;
359359
360- if ( interactif ) {
360+ if ( interactif ) {
361361 changerLienPartageable ( ) ;
362362 }
363363}
@@ -369,7 +369,7 @@ function selectionnerSection(interactif = true) {
369369
370370 entrerDansSection ( newIdSection ) ;
371371
372- if ( interactif ) {
372+ if ( interactif ) {
373373 changerLienPartageable ( ) ;
374374 }
375375}
@@ -381,7 +381,7 @@ function selectionnerParcelle(interactif = true) {
381381
382382 entrerDansParcelle ( sonCode ) ;
383383
384- if ( interactif ) {
384+ if ( interactif ) {
385385 changerLienPartageable ( ) ;
386386 }
387387}
@@ -563,18 +563,6 @@ function onDepartementClick(event) {
563563 changerLienPartageable ( ) ;
564564} ;
565565
566- function onMapIdle ( event ) {
567- // Indiquer que la carte est rendu complètement
568- if ( ! mapRendered ) {
569- mapRendered = true ;
570- }
571-
572- // Exécuter l'étape suivante de la file d'attente
573- if ( selection = fileSelections . shift ( ) ) {
574- changerSelection ( ...selection , true ) ;
575- }
576- } ;
577-
578566function onHashChange ( event ) {
579567 // Si l'URL n'a changer pas, faire rien
580568 if ( location . hash == lienPartageable ) {
@@ -605,13 +593,13 @@ function onHashChange(event) {
605593 if ( ! piece ) {
606594 return ;
607595 }
608-
596+
609597 // Definer le format de la code, et l'analyser
610598 var format = / ^ ( \d { 2 } ) (?: ( \d { 3 } ) (?: ( [ 0 A - Z ] { 4 } [ A - Z ] ) ( \d { 4 } ) ? ) ? ) ? $ / ;
611599 var correspondances = format . exec ( piece ) ;
612600
613601 // Si les codes ne se conformant le format correct, quitter
614- if ( ! correspondances ) {
602+ if ( ! correspondances ) {
615603 return ;
616604 }
617605
@@ -629,10 +617,10 @@ function onHashChange(event) {
629617
630618 // Verifier s'il y a un troisième correspondance
631619 if ( typeof correspondances [ 2 ] === 'string' ) {
632- // Si oui, utiliser les trois premier correspondances comme le ID de section
620+ // Si oui, utiliser les trois premier correspondances comme l' ID de section
633621 changerSelection ( 'section' , correspondances . slice ( 0 , 3 ) . join ( '' ) , ! pieces . length && ! correspondances [ 3 ] ) ;
634622 } else if ( piece = pieces . shift ( ) ) {
635- // Si non, utiliser la prochaine piece d'URL comme le ID de section
623+ // Si non, utiliser la prochaine piece d'URL comme l' ID de section
636624 code += piece . padStart ( 5 , '0' ) ;
637625 changerSelection ( 'section' , code , ! pieces . length ) ;
638626 }
@@ -646,7 +634,16 @@ function onHashChange(event) {
646634 code += piece . padStart ( 4 , '0' ) ;
647635 changerSelection ( 'parcelle' , code , ! pieces . length ) ;
648636 }
649- } ;
637+ }
638+
639+ function onMapIdle ( event )
640+ {
641+ if ( ! mapRendered ) {
642+ mapRendered = true ;
643+ }
644+
645+ traiterFileSelections ( ) ;
646+ }
650647
651648function changerPeriode ( depuis , jusqua ) {
652649 // Verifier que le début et fin sont les strings, ou quitter
@@ -680,34 +677,25 @@ function changerPeriode(depuis, jusqua) {
680677 picker . setEndDate ( new Date ( jusqua ) ) ;
681678}
682679
683- function changerSelection ( parametre , valeur , animer ) {
684- // Verifier si la carte a fini de charger
685- if ( mapRendered ) {
686- // Obtenir le boite selection
687- var selecteur = document . getElementById ( parametre + 's' ) ;
680+ function changerSelection ( parametre , valeur , finale ) {
681+ console . log ( parametre , valeur , finale , mapRendered ) ;
688682
689- // Verifier s'il y a les options
690- if ( selecteur . children ) {
691- // Si oui, changer le valuer
692- selecteur . value = valeur ;
683+ // Placer le selection dans la file
684+ fileSelections . push ( [ parametre , valeur ] ) ;
693685
694- // Selectioner et déplacer le camera si c'est la dernière parametre, ou si c'était en file d'attente
695- if ( animer ) {
696- var nom = parametre [ 0 ] . toUpperCase ( ) + parametre . slice ( 1 ) ;
697- var fonction = window [ 'selectionner' + nom ] ;
686+ // Verifier si c'est la finale selection
687+ if ( finale ) {
688+ // Si oui, réinitialiser le parametre
689+ var nom = parametre [ 0 ] . toUpperCase ( ) + parametre . slice ( 1 ) ;
690+ var fonction = window [ 'reset' + nom ] ;
698691
699- fonction . call ( this , false ) ;
700- }
701- } else {
702- // Si non, remettre le selection dans la file
703- fileSelections . unshift ( [ parametre , valeur ] ) ;
692+ fonction . call ( this ) ;
704693
705- // Attends un seconde avant de réessayer
706- setTimeout ( onMapIdle , 1000 ) ;
694+ // Verifier si la carte est déjà rendu
695+ if ( mapRendered ) {
696+ // Si oui, commencer le traitement manuellement
697+ traiterFileSelections ( ) ;
707698 }
708- } else {
709- // Si la carte se charger toujours, placer le selection dans la file
710- fileSelections . push ( [ parametre , valeur ] ) ;
711699 }
712700}
713701
@@ -734,8 +722,9 @@ function changerLienPartageable() {
734722 lienPartageable += '/' + idSection . slice ( - 5 ) . replace ( / ^ 0 + / , '' ) ;
735723 }
736724
737- // Verifier s'il y a un code de parceller, correspondant le ID de section
738- if ( codeParcelle && codeParcelle . startsWith ( idSection ) ) {
725+ // Verifier s'il y a un code de parcelle, correspondant l'ID de section
726+ if ( codeParcelle && codeParcelle . startsWith ( idSection ) ) {
727+ // Si oui, ajoutez-le à l'URL
739728 lienPartageable += '/' + codeParcelle . slice ( - 4 ) ;
740729 }
741730
@@ -748,6 +737,48 @@ function changerLienPartageable() {
748737 location . hash = lienPartageable ;
749738}
750739
740+ function traiterFileSelections ( ) {
741+ // S'il n'y a pas une prochaine selection, quitter
742+ if ( ! fileSelections . length ) {
743+ return ;
744+ }
745+
746+ // Recuperer le parametre et le valuer de la file d'attente
747+ var selection = fileSelections . shift ( ) ;
748+ var parametre = selection [ 0 ] ;
749+ var valeur = selection [ 1 ] ;
750+
751+ // Obtenir le boite selection
752+ var selecteur = $ ( '#' + parametre + 's' ) ;
753+
754+ // Si la valeur ne doit changer pas, traiter la prochaine selection
755+ if ( valeur === selecteur . val ( ) ) {
756+ return traiterFileSelections ( ) ;
757+ }
758+
759+ // Chercher l'option de la valeur
760+ var option = selecteur . children ( `option[value="${ valeur } "]` ) ;
761+
762+ // Verifier s'il y a l'option
763+ if ( option . length === 1 ) {
764+ // Si oui, changer le valeur
765+ selecteur [ 0 ] . selectedIndex = option . index ( ) ;
766+
767+ // Obtenir le fonction pour traiter le selection
768+ var nom = parametre [ 0 ] . toUpperCase ( ) + parametre . slice ( 1 ) ;
769+ var fonction = window [ 'selectionner' + nom ] ;
770+
771+ // Forcer le traitement de la nouvelle valuer
772+ fonction . call ( this , false ) ;
773+ } else {
774+ // Réajouter le selection à le file d'attente
775+ fileSelections . unshift ( selection ) ;
776+
777+ // Attends un seconde avant de réessayer
778+ setTimeout ( traiterFileSelections , 1000 ) ;
779+ }
780+ }
781+
751782function toggleLeftBar ( ) {
752783 vue . fold_left = ! vue . fold_left ;
753784}
0 commit comments