@@ -61,7 +61,10 @@ export default defineNuxtComponent({
6161 // savable: this.savable,
6262 save: this .save ,
6363 sync: this .sync ,
64- refresh: this .refresh ,
64+ // `refreshAll` et non `refresh` : toute mutation faite depuis le volet de droite
65+ // (etat, cycle de vie, mot de passe, invitation...) change aussi des colonnes de la
66+ // liste du twopane, qui doit donc etre rechargee en meme temps que la fiche.
67+ refresh: this .refreshAll ,
6568 }
6669 },
6770 async setup() {
@@ -72,6 +75,7 @@ export default defineNuxtComponent({
7275
7376 if (NewTargetId === $route .params ._id ) {
7477 return {
78+ identityStateStore ,
7579 // `ref` obligatoire : un objet litteral renvoye par `setup` n'est pas reactif,
7680 // les erreurs de validation posees sur `additionalFields.validations` ne seraient pas affichees.
7781 identity: ref ({
@@ -116,6 +120,7 @@ export default defineNuxtComponent({
116120 }
117121
118122 return {
123+ identityStateStore ,
119124 identity ,
120125 originTarget ,
121126 refresh ,
@@ -124,6 +129,9 @@ export default defineNuxtComponent({
124129 }
125130 },
126131 computed: {
132+ identitiesRevision(): number {
133+ return this .identityStateStore .revision
134+ },
127135 isNew(): boolean {
128136 return this .$route .params ._id === NewTargetId
129137 },
@@ -139,6 +147,13 @@ export default defineNuxtComponent({
139147 },
140148 },
141149 },
150+ watch: {
151+ // Même raison que dans la liste : l'état définitif n'est connu qu'à la fin des jobs
152+ // de synchronisation déclenchés par la sauvegarde.
153+ identitiesRevision() {
154+ if (! this .isNew ) this .refresh ()
155+ },
156+ },
142157 methods: {
143158 async save() {
144159 const sanitizedIdentity = { ... this .identity }
@@ -168,8 +183,7 @@ export default defineNuxtComponent({
168183 icon: ' mdi-check-circle-outline' ,
169184 })
170185
171- this .refresh ()
172- this .$emit (' refresh' )
186+ await this .refreshAll ()
173187 } catch (error : any ) {
174188 this .$q .notify ({
175189 message: formatApiErrorMessage (error , " Erreur lors de la sauvegarde de l'identité" ),
@@ -209,7 +223,11 @@ export default defineNuxtComponent({
209223 })
210224 }
211225
212- this .refresh ()
226+ await this .refreshAll ()
227+ },
228+ /** Recharge la fiche courante puis la liste du twopane (volet de gauche). */
229+ async refreshAll() {
230+ await this .refresh ()
213231 this .$emit (' refresh' )
214232 },
215233 },
0 commit comments