@@ -33,61 +33,85 @@ div.flex
3333 :indeterminate-value ="-2"
3434 :false-value ="-3"
3535 )
36- q-btn.q-mx-xs ( @click ="forceChangePassword()" color ="orange-8" icon ="mdi-lock-reset" :disabled ="props.identity.state != IdentityState.SYNCED" )
37- q-tooltip.text-body2 ( slot ="trigger" ) Obliger l'utilisateur à changer son mot de passe
38- q-btn.q-mx-xs ( @click ="resetPasswordModal = true" color ="red-8" icon ="mdi-account-key" :disabled ="props.identity.state != IdentityState.SYNCED" )
39- q-tooltip.text-body2 ( slot ="trigger" ) Définir le mot de passe
40- q-btn.q-mx-xs ( @click ="sendInit" color ="primary" icon ="mdi-email-arrow-right" :disabled ="props.identity.state != IdentityState.SYNCED" )
41- q-tooltip.text-body2 ( slot ="trigger" ) Envoyer le mail d'invitation
42- q-btn.q-mx-xs ( @click ="submit" color ="positive" icon ="mdi-check" v-show ="!isNew" v-if ="crud.update" )
43- q-tooltip.text-body2 ( slot ="trigger" ) Enregistrer les modifications
44- q-btn.q-mx-xs ( v-if ="props.identity?._id" @click ="sync" color ="orange-8" : disabled= "props.identity.state != IdentityState.TO_VALIDATE" icon ="mdi-sync" )
45- q-tooltip.text-body2 ( slot ="trigger" v-if ="props.identity.state == IdentityState.TO_VALIDATE" ) Synchroniser l'identité
46- q-tooltip.text-body2 ( slot ="trigger" v-else ) L'état de l'identité ne permet pas de la synchroniser
36+ q-btn-group( push )
37+ q-btn( @click ="forceChangePassword()" color ="orange-8" icon ="mdi-lock-reset" :disabled ="props.identity.state != IdentityState.SYNCED" )
38+ q-tooltip.text-body2 ( slot ="trigger" ) Obliger l'utilisateur à changer son mot de passe
39+ q-btn( @click ="resetPasswordModal = true" color ="red-8" icon ="mdi-account-key" :disabled ="props.identity.state != IdentityState.SYNCED" )
40+ q-tooltip.text-body2 ( slot ="trigger" ) Définir le mot de passe
41+ q-btn( @click ="sendInit" color ="primary" icon ="mdi-email-arrow-right" :disabled ="props.identity.state != IdentityState.SYNCED" )
42+ q-tooltip.text-body2 ( slot ="trigger" ) Envoyer le mail d'invitation
4743
48- q-btn.q-mx-xs ( v-if ="props.identity?._id" @click.prevent ="dialogLog = true" color ="grey-8" icon ="mdi-file-document" : href= "'/jobs?filters[:concernedTo.id]=' + props.identity?._id" target ="_blank" )
49- q-tooltip.text-body2 ( slot ="trigger" ) Voir les logs de l'identité
50- q-dialog( v-model ="dialogLog" full-height full-width persistent )
51- q-card
52- q-toolbar.absolute.bg-purple.text-white ( dense )
53- q-toolbar-title Journaux de l'identité {{ props.identity?.inetOrgPerson?.cn }}
54- q-btn( icon ="mdi-close" @click ="dialogLog = false" dense flat )
55- object.absolute.full-width (
56- type ="text/html"
57- :data ="'/jobs?filters[:concernedTo.id]=' + props.identity?._id + '&embedded=1'"
58- style ="height: calc(100% - 56px); margin-top: 50px; z-index: 1;"
59- )
60- .fit.items-center.column.justify-center
61- q-circular-progress( indeterminate size ='80px' )
62- span.q-mt-md Chargement en cours ...
44+ q-separator( size ='3px' vertical )
6345
64- q-btn.q-mx-xs ( v-if ="props.identity?._id" @click.prevent ="dialogLifecycle = true" color ="purple-8" icon ="mdi-clock" : href= "'/lifecycles/' + props.identity?._id" target ="_blank" )
65- q-tooltip.text-body2 ( slot ="trigger" ) Voir le cycle de vie de l'identité
66- q-dialog( v-model ="dialogLifecycle" full-height full-width persistent )
67- q-card
68- q-toolbar.absolute.bg-purple.text-white ( dense )
69- q-toolbar-title Cycle de vie de l'identité {{ props.identity?.inetOrgPerson?.cn }}
70- q-btn( icon ="mdi-close" @click ="dialogLifecycle = false" dense flat )
71- object.absolute.full-width (
72- type ="text/html"
73- :data ="'/lifecycles/' + props.identity?._id + '?embedded=1'"
74- style ="height: calc(100% - 56px); margin-top: 50px; z-index: 1;"
75- )
76- .fit.items-center.column.justify-center
77- q-circular-progress( indeterminate size ='80px' )
78- span.q-mt-md Chargement en cours ...
46+ q-btn( @click ="submit" color ="positive" icon ="mdi-check" v-show ="!isNew" v-if ="crud.update" )
47+ q-tooltip.text-body2 ( slot ="trigger" ) Enregistrer les modifications
48+ q-btn( v-if ="props.identity?._id" @click ="sync" color ="orange-8" : disabled= "props.identity.state != IdentityState.TO_VALIDATE" icon ="mdi-sync" )
49+ q-tooltip.text-body2 ( slot ="trigger" v-if ="props.identity.state == IdentityState.TO_VALIDATE" ) Synchroniser l'identité
50+ q-tooltip.text-body2 ( slot ="trigger" v-else ) L'état de l'identité ne permet pas de la synchroniser
7951
80- q-btn.q-mx-xs ( v-if ="props.identity?._id" @click ="deleteIdentity" color ="negative" icon ="mdi-delete" )
81- q-tooltip.text-body2 ( slot ="trigger" ) Supprimer l'identité
82- q-dialog( v-model ="resetPasswordModal" persistent medium )
83- q-card( style ="width:800px" )
84- q-card-section( class ="text-h6 bg-primary text-white" ) definition du mot de passe
85- q-card-section
86- input-new-password( v-model ="newpassword" )
87- q-card-actions( align ="right" class ="bg-white text-teal" )
88- q-btn( label ="Abandonner" color ="negative" @click ="resetPasswordModal = false" )
89- q-btn( label ="Sauver" color ="positive" @click ="doChangePassword" : disabled= "newpassword === ''" )
52+ q-separator( size ='3px' vertical )
9053
54+ q-btn-dropdown.text-white ( dropdown-icon ="mdi-dots-vertical" style ='background-color: rgba(0, 0, 0, .6)' no-caps )
55+ q-list
56+ a( :href ="'/jobs?filters[:concernedTo.id]=' + props.identity?._id" target ="_blank" style ='text-decoration: none; color: inherit' @click.prevent ="dialogLog = true" )
57+ q-item( v-if ="props.identity?._id" clickable v-close-popup )
58+ q-item-section( avatar )
59+ q-icon( name ="mdi-file-document" color ="grey-6" )
60+ q-item-section
61+ q-item-label Voir les logs
62+ q-item-section( side )
63+ q-btn( icon ="mdi-open-in-new" size ='sm' flat dense @click.stop ="open('/jobs?filters[:concernedTo.id]=' + props.identity?._id)" )
64+ a( :href ="'/lifecycles/' + props.identity?._id" target ="_blank" style ='text-decoration: none; color: inherit' @click.prevent ="dialogLifecycle = true" )
65+ q-item( v-if ="props.identity?._id" clickable v-close-popup )
66+ q-item-section( avatar )
67+ q-icon( name ="mdi-clock" color ="purple-8" )
68+ q-item-section
69+ q-item-label Voir le cycle de vie
70+ q-item-section( side )
71+ q-btn( icon ="mdi-open-in-new" size ='sm' flat dense @click.stop ="open('/lifecycles/' + props.identity?._id)" )
72+ q-separator( size ='3px' )
73+ q-item( v-if ="props.identity?._id" clickable v-close-popup @click ="deleteIdentity" )
74+ q-item-section( avatar )
75+ q-icon( name ="mdi-delete" color ="negative" )
76+ q-item-section
77+ q-item-label Supprimer l'identité
78+
79+ q-dialog( v-model ="dialogLog" full-height full-width persistent )
80+ q-card
81+ q-toolbar.absolute.bg-purple.text-white ( dense )
82+ q-toolbar-title Journaux de l'identité {{ props.identity?.inetOrgPerson?.cn }}
83+ q-btn( icon ="mdi-close" @click ="dialogLog = false" dense flat )
84+ object.absolute.full-width (
85+ type ="text/html"
86+ :data ="'/jobs?filters[:concernedTo.id]=' + props.identity?._id + '&embedded=1'"
87+ style ="height: calc(100% - 56px); margin-top: 50px; z-index: 1;"
88+ )
89+ .fit.items-center.column.justify-center
90+ q-circular-progress( indeterminate size ='80px' )
91+ span.q-mt-md Chargement en cours ...
92+
93+ q-dialog( v-model ="resetPasswordModal" persistent medium )
94+ q-card( style ="width:800px" )
95+ q-card-section( class ="text-h6 bg-primary text-white" ) definition du mot de passe
96+ q-card-section
97+ input-new-password( v-model ="newpassword" )
98+ q-card-actions( align ="right" class ="bg-white text-teal" )
99+ q-btn( label ="Abandonner" color ="negative" @click ="resetPasswordModal = false" )
100+ q-btn( label ="Sauver" color ="positive" @click ="doChangePassword" : disabled= "newpassword === ''" )
101+
102+ q-dialog( v-model ="dialogLifecycle" full-height full-width persistent )
103+ q-card
104+ q-toolbar.absolute.bg-purple.text-white ( dense )
105+ q-toolbar-title Cycle de vie de l'identité {{ props.identity?.inetOrgPerson?.cn }}
106+ q-btn( icon ="mdi-close" @click ="dialogLifecycle = false" dense flat )
107+ object.absolute.full-width (
108+ type ="text/html"
109+ :data ="'/lifecycles/' + props.identity?._id + '?embedded=1'"
110+ style ="height: calc(100% - 56px); margin-top: 50px; z-index: 1;"
111+ )
112+ .fit.items-center.column.justify-center
113+ q-circular-progress( indeterminate size ='80px' )
114+ span.q-mt-md Chargement en cours ...
91115</template >
92116
93117<script lang="ts" setup>
@@ -182,6 +206,7 @@ async function create() {
182206 // console.log('submit from actions')
183207 emits (' create' )
184208}
209+
185210function setActivateColor() {
186211 if (props .identity .dataStatus === 1 ) {
187212 return ' green'
@@ -191,13 +216,15 @@ function setActivateColor() {
191216 return ' grey'
192217 }
193218}
219+
194220function showActivate() {
195221 if (props .identity .lastBackendSync != ' ' ) {
196222 return true
197223 } else {
198224 return false
199225 }
200226}
227+
201228async function forceChangePassword() {
202229 $q .dialog ({
203230 title: ' Confirmation' ,
@@ -234,6 +261,7 @@ async function forceChangePassword() {
234261 }
235262 })
236263}
264+
237265async function activate() {
238266 let message = ' '
239267 let bouton = ' '
@@ -356,4 +384,8 @@ async function sendInit() {
356384function back() {
357385 router .push (' /identities' )
358386}
387+
388+ function open(url : string ) {
389+ window .open (url , ' _blank' )
390+ }
359391 </script >
0 commit comments