diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 66e64a07562973fed493f82ab876a84927c5d154..cb0ced8d4aff2cbd4417fb6b2092ee15e37557dd 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -98,7 +98,7 @@ phpstan:
     - master
 
 eslint:
-  image: node:14
+  image: node:16
   script:
     - npm install && npm run lint
   stage: quality-assurance
diff --git a/package-lock.json b/package-lock.json
index 52e4125a7fb83a69e107d8c3f83c1a2a8e763c41..79a160425aa3a819506f4da4ee49eb9292fef3c1 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -7351,9 +7351,9 @@
             }
         },
         "node_modules/img-loader/node_modules/json5": {
-            "version": "1.0.1",
-            "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
-            "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
+            "version": "1.0.2",
+            "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
+            "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
             "dev": true,
             "dependencies": {
                 "minimist": "^1.2.0"
@@ -8026,9 +8026,9 @@
             "dev": true
         },
         "node_modules/json5": {
-            "version": "2.2.1",
-            "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz",
-            "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==",
+            "version": "2.2.3",
+            "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
+            "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
             "dev": true,
             "bin": {
                 "json5": "lib/cli.js"
@@ -11355,9 +11355,9 @@
             }
         },
         "node_modules/tsconfig-paths/node_modules/json5": {
-            "version": "1.0.1",
-            "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
-            "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
+            "version": "1.0.2",
+            "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
+            "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
             "dev": true,
             "dependencies": {
                 "minimist": "^1.2.0"
@@ -11714,9 +11714,9 @@
             }
         },
         "node_modules/vue-loader/node_modules/json5": {
-            "version": "1.0.1",
-            "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
-            "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
+            "version": "1.0.2",
+            "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
+            "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
             "dev": true,
             "dependencies": {
                 "minimist": "^1.2.0"
@@ -11781,9 +11781,9 @@
             }
         },
         "node_modules/vue-style-loader/node_modules/json5": {
-            "version": "1.0.1",
-            "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
-            "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
+            "version": "1.0.2",
+            "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
+            "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
             "dev": true,
             "dependencies": {
                 "minimist": "^1.2.0"
@@ -18203,9 +18203,9 @@
             },
             "dependencies": {
                 "json5": {
-                    "version": "1.0.1",
-                    "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
-                    "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
+                    "version": "1.0.2",
+                    "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
+                    "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
                     "dev": true,
                     "requires": {
                         "minimist": "^1.2.0"
@@ -18693,9 +18693,9 @@
             "dev": true
         },
         "json5": {
-            "version": "2.2.1",
-            "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz",
-            "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==",
+            "version": "2.2.3",
+            "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
+            "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
             "dev": true
         },
         "jsonfile": {
@@ -21167,9 +21167,9 @@
             },
             "dependencies": {
                 "json5": {
-                    "version": "1.0.1",
-                    "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
-                    "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
+                    "version": "1.0.2",
+                    "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
+                    "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
                     "dev": true,
                     "requires": {
                         "minimist": "^1.2.0"
@@ -21458,9 +21458,9 @@
             },
             "dependencies": {
                 "json5": {
-                    "version": "1.0.1",
-                    "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
-                    "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
+                    "version": "1.0.2",
+                    "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
+                    "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
                     "dev": true,
                     "requires": {
                         "minimist": "^1.2.0"
@@ -21520,9 +21520,9 @@
             },
             "dependencies": {
                 "json5": {
-                    "version": "1.0.1",
-                    "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
-                    "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
+                    "version": "1.0.2",
+                    "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
+                    "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
                     "dev": true,
                     "requires": {
                         "minimist": "^1.2.0"
diff --git a/resources/js/components/Auth/Login.vue b/resources/js/components/Auth/Login.vue
index 05a3d05dd6ad83af579eb1284dcfb7e71ac39107..9833ad5092b5fb2603df194dfbc2ed1c88b073a3 100644
--- a/resources/js/components/Auth/Login.vue
+++ b/resources/js/components/Auth/Login.vue
@@ -113,13 +113,6 @@
         </div>
     </div>
 </template>
-<style>
-    .login-footer{
-        position: fixed;
-        bottom:0px;
-        width:100%;
-    }
-</style>
 <script>
 import axios from 'axios'
 export default {
@@ -167,3 +160,10 @@ export default {
     }
 }
 </script>
+<style>
+    .login-footer{
+        position: fixed;
+        bottom:0px;
+        width:100%;
+    }
+</style>
diff --git a/resources/js/components/Dashboard/AdminView/Components/MaturityCyberMap.vue b/resources/js/components/Dashboard/AdminView/Components/MaturityCyberMap.vue
index 8b29e09ef5fccf2578729584b2b66e084998a323..7f34111f6654b6db60677ef963aef1d2a43c91c3 100644
--- a/resources/js/components/Dashboard/AdminView/Components/MaturityCyberMap.vue
+++ b/resources/js/components/Dashboard/AdminView/Components/MaturityCyberMap.vue
@@ -8,10 +8,10 @@
         </select>
 
         <div class="row">
-            <div class='my-2 col-md-6 text-right' @click="stripetext('green')" :style= "[disabledFilter.includes('green') ? {'text-decoration':'line-through'} : {'text-decoration':''}]">
+            <div class='my-2 col-md-6 text-right' :style= "[disabledFilter.includes('green') ? {'text-decoration':'line-through'} : {'text-decoration':''}]" @click="stripetext('green')">
                 <div class="mr-2 d-inline-block" style="height: 15px; width: 35px; background-color: green;"></div><span class="text-muted small">En règle</span>
             </div>
-            <div class='my-2 col-md-6 text-left' @click="stripetext('red')" :style= "[disabledFilter.includes('red') ? {'text-decoration':'line-through'} : {'text-decoration':''}]">
+            <div class='my-2 col-md-6 text-left' :style= "[disabledFilter.includes('red') ? {'text-decoration':'line-through'} : {'text-decoration':''}]" @click="stripetext('red')">
                 <div class="mr-2 d-inline-block" style="height: 15px; width: 35px; background-color: red;"></div><span class="text-muted small">En alerte</span>
             </div>
         </div>
@@ -56,29 +56,29 @@ export default {
             return this.$store.state.measures.all.filter( m => m.fundamental)
         },
         organizations () {
-            let orgs = this.$store.state.organizations.all.filter(org => org.active).map( org => {
-                let evaluations = this.evaluations.filter( e => e.organization_id === org.id)
-                                .filter( e => e.status === 2)
-                                .sort( (a,b) => new Date(b.updated_at) - new Date(a.updated_at))
+            const orgs = this.$store.state.organizations.all.filter(org => org.active).map( org => {
+                const evaluations = this.evaluations.filter( e => e.organization_id === org.id)
+                    .filter( e => e.status === 2)
+                    .sort( (a,b) => new Date(b.updated_at) - new Date(a.updated_at))
 
 
                 const getInsideSeuilAlerte = evaluations.length ? evaluations[0].measure_levels.filter( ml => this.fundamentalMeasuresId.includes(ml.measure_id)).filter( ml => ml.actual_level <= this.seuilAlerte) : []
-                return {...org, evaluations : evaluations, seuilAlert : getInsideSeuilAlerte}
+                return {...org, evaluations, seuilAlert : getInsideSeuilAlerte}
             })
 
             return orgs .filter( org => this.disabledFilter.length ? this.disabledFilter.length > 1 ? false : this.disabledFilter.includes('red') ? !org.seuilAlert.length : this.disabledFilter.includes('green') ? org.seuilAlert.length : true : true)
-                        .filter( org => this.measureFilter ? org.seuilAlert.find(a => a.measure_id === this.measureFilter) : true)
+                .filter( org => this.measureFilter ? org.seuilAlert.find(a => a.measure_id === this.measureFilter) : true)
         },
 
     },
-    mounted () {
-        this.initMap()
-    },
     watch : {
         organizations () {
             this.initMarkers()
         }
     },
+    mounted () {
+        this.initMap()
+    },
     methods : {
         stripetext(id){
             if (this.disabledFilter.includes(id)) {
@@ -112,14 +112,14 @@ export default {
 
                 if (org.evaluations.length) { // Cette carte affiche un point par structure ayant au moins une évaluation
 
-                    let color = org.seuilAlert.length ? "red" : "green"
+                    const color = org.seuilAlert.length ? "red" : "green"
 
-                    const style = { radius: 5, fillColor: color, fillOpacity: 1, color: color, organization: org} 
+                    const style = { radius: 5, fillColor: color, fillOpacity: 1, color, organization: org} 
                     const latlng = org.address && org.address.lat && org.address.lng? [parseFloat(org.address.lat), parseFloat(org.address.lng)] : []
 
                     if (latlng.length) {
-                        let measureText = org.seuilAlert.map(a => a.measure.short_name)
-                        let alertText = org.seuilAlert.length ? "<br/><i><small>Mesures de sécurité fondamentales en alerte :</small></i> " + measureText.join(', ') : ""
+                        const measureText = org.seuilAlert.map(a => a.measure.short_name)
+                        const alertText = org.seuilAlert.length ? "<br/><i><small>Mesures de sécurité fondamentales en alerte :</small></i> " + measureText.join(', ') : ""
 
                         this.markerClusterGroup.addLayer(L.circleMarker(latlng, style)
                             .bindPopup(`
diff --git a/resources/js/components/Dashboard/ManagerView/Components/ActionsDoneCard.vue b/resources/js/components/Dashboard/ManagerView/Components/ActionsDoneCard.vue
index 6add1817e5c01bdfbfb63ace58c6a7cee12bd450..b51cf2988c3f8013dd6aab10e9643e758f7c7ac0 100644
--- a/resources/js/components/Dashboard/ManagerView/Components/ActionsDoneCard.vue
+++ b/resources/js/components/Dashboard/ManagerView/Components/ActionsDoneCard.vue
@@ -1,5 +1,5 @@
 <template>
-    <div class="col-md-6" v-if="plannedMeasures && plannedMeasures.length > 0">
+    <div v-if="plannedMeasures && plannedMeasures.length > 0" class="col-md-6">
         <div class="card flex-row">
             <div class="col-4 bg-primary">
                 <i class="fas fa-crosshairs" style="font-size: 50px;"></i>
diff --git a/resources/js/components/Evaluations/Single/Components/Results/Dangers.vue b/resources/js/components/Evaluations/Single/Components/Results/Dangers.vue
index 00bcf7bf0d520550c044b552d23fa8e20c833ec4..7bbd91791d6b1ce8f619e1a97de36a753ddb7335 100644
--- a/resources/js/components/Evaluations/Single/Components/Results/Dangers.vue
+++ b/resources/js/components/Evaluations/Single/Components/Results/Dangers.vue
@@ -38,6 +38,9 @@ import DangerLine from "./DangerLine";
 
 export default {
     name: 'ResultDangers',
+    components: {
+        DangerLine,
+    },
     props : ['evaluation'],
     computed : {
         dangers () {
@@ -51,11 +54,6 @@ export default {
             return this.$store.state.graphs[this.evaluation.id].exposition;
         }
     },
-    methods : {
-        getLevel(dangerId) {
-            return this.evaluation.danger_levels.find(dl => dl.danger_id === dangerId).level
-        }
-    },
     async mounted () {
         this.loaded = false
         if (typeof this.$store.state.graphs[this.evaluation.id] === 'undefined' || typeof this.$store.state.graphs[this.evaluation.id].exposition === 'undefined') {
@@ -66,8 +64,10 @@ export default {
         }
         this.loaded = true
     },
-    components: {
-        DangerLine,
+    methods : {
+        getLevel(dangerId) {
+            return this.evaluation.danger_levels.find(dl => dl.danger_id === dangerId).level
+        }
     }
 }
 </script>
diff --git a/resources/js/components/Evaluations/Single/Components/Results/MaturityCyber.vue b/resources/js/components/Evaluations/Single/Components/Results/MaturityCyber.vue
index 648d81a492436ea1fcbbeb6a00a6de6203810e9f..1a200fca4f86aadb949df132bc3f6c0948e3d2d1 100644
--- a/resources/js/components/Evaluations/Single/Components/Results/MaturityCyber.vue
+++ b/resources/js/components/Evaluations/Single/Components/Results/MaturityCyber.vue
@@ -6,7 +6,7 @@
             </div>
         </div>
         <div class="card-body offset-md-3 col-md-6">
-            <Radar :chart-data="chartData" :chart-options="options" v-if="chartData" />
+            <Radar v-if="chartData" :chart-data="chartData" :chart-options="options" />
         </div>
     </div>
 </template>
diff --git a/resources/js/components/Evaluations/Single/Components/Step4/MeasureActionForm.vue b/resources/js/components/Evaluations/Single/Components/Step4/MeasureActionForm.vue
index ffb5fa0d9a89003e08a07d9e97768b81b6c91bc1..97a06e315b93708d9a69435d3b4371156bb79f22 100644
--- a/resources/js/components/Evaluations/Single/Components/Step4/MeasureActionForm.vue
+++ b/resources/js/components/Evaluations/Single/Components/Step4/MeasureActionForm.vue
@@ -31,11 +31,11 @@
             <label :for="`manager${measure.id}`" class="mt-2" :class="{ 'text-danger': submitted && $v.manager.$error }"> Choisir la personne en charge <i class="text-muted small">(Obligatoire)</i></label>
             <input
                 :id="`manager${measure.id}`"
-                @change="event => manager = event.target.value"
                 :value="manager"
                 type="text"
                 class="form-control form-control-sm"
                 :disabled="!isEditable"
+                @change="event => manager = event.target.value"
             />
 
         </div>
@@ -89,7 +89,7 @@ export default {
 
                 evaluation.measure_levels = this.evaluation.measure_levels.map(m => m.measure_id === this.measure.id ? ({...m, expected_level : parseInt(newValue, 10) }) : m)
 
-                console.log(' evaluation.measure_levels',  evaluation.measure_levels)
+                console.log(' evaluation.measure_levels', evaluation.measure_levels)
                 this.$store.dispatch('saveDraftEvaluation', {...evaluation, toast: false}).then(() => {
                     this.$store.dispatch('getGraphForEvaluation', {name: 'risks', id:evaluation.id})
                     this.$store.dispatch('getGraphForEvaluation', {name: 'futurerisks', id:evaluation.id})
diff --git a/resources/js/components/Evaluations/Single/Components/Step4/PlanAction.vue b/resources/js/components/Evaluations/Single/Components/Step4/PlanAction.vue
index bc85219f547139a159d1da4007934493f4515762..92b42c0697d7ee0795d9bb9306e7073736aa7244 100644
--- a/resources/js/components/Evaluations/Single/Components/Step4/PlanAction.vue
+++ b/resources/js/components/Evaluations/Single/Components/Step4/PlanAction.vue
@@ -9,8 +9,8 @@
             <div class="card-body">
                 <p v-if="measures && measures.length">Dans la liste des mesures, veuillez choisir celles à mettre en place, puis planifiez-les sur un an :</p>
                 <p v-if="!isOneLevelExpected && submitted" class="text-danger"><i class="fas fa-exclamation-circle"></i> Veuillez sélectionner au moins une action.</p>
-                <div class="row" v-if="measures && measures.length">
-                    <div :id="`measure-level-for-measure-${measure.id}`" v-for="(measure, index) in measures" :key="measure.id" class="col-xl-3 col-lg-4 col-md-6 col-12">
+                <div v-if="measures && measures.length" class="row">
+                    <div v-for="(measure, index) in measures" :id="`measure-level-for-measure-${measure.id}`" :key="measure.id" class="col-xl-3 col-lg-4 col-md-6 col-12">
                         <MeasureLevelSelector
                             v-if="measureLevelSelected(measure)"
                             :ref="`Measure${measure.id}`"
@@ -23,7 +23,7 @@
                         />
                     </div>
                 </div>
-                <div class="row my-5" v-else-if="!loading">
+                <div v-else-if="!loading" class="row my-5">
                     <div class="col-2"></div>
                     <div class="col-8 mt-5">
                         <p class="text-center text-lg">
@@ -35,7 +35,7 @@
                     </div>
                     <div class="col-2"></div>
                 </div>
-                <div class="row my-5" v-else-if="loading">
+                <div v-else-if="loading" class="row my-5">
                     <div class="col-2"></div>
                     <div class="col-8 mt-5">
                         <p class="text-center text-lg">
@@ -92,6 +92,10 @@ export default {
             return this.$store.state.graphs[this.evaluation.id].bestMeasures
         }
     },
+    mounted() {
+        console.log('plan action mounted')
+        this.$store.dispatch('getBestMeasures', {id: this.evaluation.id})
+    },
     methods : {
         measureLevelSelected (measure) {
             return this.evaluation && this.evaluation.measure_levels.find(m => m.measure_id === measure.id)
@@ -106,10 +110,6 @@ export default {
                 return false
             }
         },
-    },
-    mounted() {
-        console.log('plan action mounted')
-        this.$store.dispatch('getBestMeasures', {id: this.evaluation.id})
     }
 }
 </script>
diff --git a/resources/js/components/Organizations/Single/AddressBlock.vue b/resources/js/components/Organizations/Single/AddressBlock.vue
index dbefdaeabc2b392d24840056ec7ebfd164c24774..8664c43cc4ff3c4ae82259ca38b47e72ef384fc6 100644
--- a/resources/js/components/Organizations/Single/AddressBlock.vue
+++ b/resources/js/components/Organizations/Single/AddressBlock.vue
@@ -35,7 +35,7 @@
             </div>
             <div class="form-group">
                 <label :class="{ 'text-danger': submitted && $v.address.city.$error }" for="ville">Ville</label> <i
-                class="text-muted small">(Obligatoire)</i>
+                    class="text-muted small">(Obligatoire)</i>
                 <input
                     id="ville" v-model="address.city"
                     type="text" class="form-control form-control-sm"
@@ -63,15 +63,15 @@ import PositionBlock from './PositionBlock.vue'
 
 export default {
     name: 'AddressBlock',
+    components : {
+        PositionBlock,
+    },
     props: ['orgAddress', 'submitted'],
     data() {
         return {
             address: this.orgAddress
         }
     },
-    components : {
-        PositionBlock,
-    },
     computed: {},
     validations: {
         address: {
diff --git a/resources/js/components/Organizations/Single/PositionBlock.vue b/resources/js/components/Organizations/Single/PositionBlock.vue
index 38634bc7b290e29c5ab04b9beb87a6678e6dd2b2..1903aa2dfba594809746e3c0d26d5af60b1f440b 100644
--- a/resources/js/components/Organizations/Single/PositionBlock.vue
+++ b/resources/js/components/Organizations/Single/PositionBlock.vue
@@ -1,6 +1,6 @@
 <template>
     <div>
-        <button @click.prevent="locateAddress" class="btn btn-primary btn-sm mb-2"><i :class="loading ? 'fa fa-spinner fa-spin' : ''"></i> Localiser l'adresse</button>
+        <button class="btn btn-primary btn-sm mb-2" @click.prevent="locateAddress"><i :class="loading ? 'fa fa-spinner fa-spin' : ''"></i> Localiser l'adresse</button>
         <div id="map"></div>
     </div>
 </template>
@@ -53,8 +53,8 @@ export default {
                 mouseup: () => {
                     this.map.dragging.enable()
                     this.map.off('mousemove')
-                    }
-                }) 
+                }
+            }) 
             this.marker.addTo(this.map)
 
             const latLngs = [ this.marker.getLatLng() ];
@@ -64,8 +64,8 @@ export default {
         async locateAddress () {
             console.log('locateAddress')
             if (!this.address.address || !this.address.cp || !this.address.city) {
-                    this.$emit('addressError', "L'adresse n'est pas complète")
-                    return
+                this.$emit('addressError', "L'adresse n'est pas complète")
+                    
             } else {
                 this.loading = true
                 await axios.get(`https://api-adresse.data.gouv.fr/search/?autocomplete=1&postcode=${this.address.cp}&q=${this.fullAddress}`, 
@@ -75,25 +75,25 @@ export default {
                         }
                     }
                 )
-                .then(res => {
-                    this.loading = false
+                    .then(res => {
+                        this.loading = false
 
-                    if (!res.data.features.length) {
-                        this.$emit('addressError', "L'adresse n'a pas été trouvée")
-                        return;
-                    }  else {
-                        this.enableMap = true
-                        const pointData = res.data.features[0]
+                        if (!res.data.features.length) {
+                            this.$emit('addressError', "L'adresse n'a pas été trouvée")
+                        
+                        } else {
+                            this.enableMap = true
+                            const pointData = res.data.features[0]
 
-                        this.marker && this.map.removeLayer(this.marker)
+                            this.marker && this.map.removeLayer(this.marker)
 
-                        this.setMarker(pointData.geometry.coordinates[1], pointData.geometry.coordinates[0])
-                    }
-                })
-                .catch( () => {
-                    this.loading = false; 
-                    this.$emit('addressError', "L'adresse n'a pas été trouvée")
-                })
+                            this.setMarker(pointData.geometry.coordinates[1], pointData.geometry.coordinates[0])
+                        }
+                    })
+                    .catch( () => {
+                        this.loading = false; 
+                        this.$emit('addressError', "L'adresse n'a pas été trouvée")
+                    })
             }
         }
     }