@ -3,8 +3,8 @@
< w -header class = "card-header px-4 py-2" >
< w -icon name = "img:/_assets/icons/fluent-account.svg" left size = "md" / >
< div >
< span > { { t ( ` admin.users.edit ` ) } } < / span >
< div class = "text-caption" > { { state . user . name } } < / div >
< span > { { t ( ` admin.users.edit ` ) } } < / span >
< div class = "text-caption" > { { state . user . name } } < / div >
< / div >
< w -space / >
< w -btn -group push >
@ -16,7 +16,9 @@
icon = "la:redo-alt"
@ click = "fetchUser"
: loading = "state.loading > 0" >
< w -tooltip anchor = "center left" self = "center right" > { { t ( ` common.actions.refresh ` ) } } < / w - t o o l t i p >
< w -tooltip anchor = "center left" self = "center right" > { {
t ( ` common.actions.refresh ` )
} } < / w - t o o l t i p >
< / w - b t n >
< w -btn
push
@ -47,7 +49,7 @@
active - class = "bg-primary text-white"
: disabled = "sc.disabled" >
< w -item -section side > < w -icon :name ="sc.icon" color = "white" / > < / w - i t e m - s e c t i o n >
< w -item -section > { { sc . text } } < / w - i t e m - s e c t i o n >
< w -item -section > { { sc . text } } < / w - i t e m - s e c t i o n >
< / w - i t e m >
< / template >
< / w - l i s t >
@ -57,7 +59,7 @@
< div class = "flex p-6 items-center" >
< w -spinner color = "primary" size = "32px" :thickness ="2" / >
< div class = "text-caption text-primary pl-4" >
< strong > { { t ( 'admin.users.loading' ) } } < / strong >
< strong > { { t ( 'admin.users.loading' ) } } < / strong >
< / div >
< / div >
< / w - p a g e >
@ -67,13 +69,13 @@
< div class = "col-span-12 lg:col-span-8" >
< w -card class = "shadow-1 pb-2" >
< w -card -section >
< div class = "text-subtitle1" > { { t ( 'admin.users.profile' ) } } < / div >
< div class = "text-subtitle1" > { { t ( 'admin.users.profile' ) } } < / div >
< / w - c a r d - s e c t i o n >
< w -item >
< blueprint -icon icon = "contact" / >
< w -item -section >
< w -item -label > { { t ( ` admin.users.name ` ) } } < / w - i t e m - l a b e l >
< w -item -label caption > { { t ( ` admin.users.nameHint ` ) } } < / w - i t e m - l a b e l >
< w -item -label > { { t ( ` admin.users.name ` ) } } < / w - i t e m - l a b e l >
< w -item -label caption > { { t ( ` admin.users.nameHint ` ) } } < / w - i t e m - l a b e l >
< / w - i t e m - s e c t i o n >
< w -item -section >
< w -input
@ -81,8 +83,8 @@
v - model = "state.user.name"
dense
: rules = " [
val => invalidCharsRegex . test ( val ) || t ( 'admin.users.nameInvalidChars' )
] "
( val ) => invalidCharsRegex . test ( val ) || t ( 'admin.users.nameInvalidChars' )
] "
hide - bottom - space
: aria - label = "t(`admin.users.name`)" / >
< / w - i t e m - s e c t i o n >
@ -91,8 +93,8 @@
< w -item >
< blueprint -icon icon = "envelope" / >
< w -item -section >
< w -item -label > { { t ( ` admin.users.email ` ) } } < / w - i t e m - l a b e l >
< w -item -label caption > { { t ( ` admin.users.emailHint ` ) } } < / w - i t e m - l a b e l >
< w -item -label > { { t ( ` admin.users.email ` ) } } < / w - i t e m - l a b e l >
< w -item -label caption > { { t ( ` admin.users.emailHint ` ) } } < / w - i t e m - l a b e l >
< / w - i t e m - s e c t i o n >
< w -item -section >
< w -input
@ -107,8 +109,8 @@
< w -item >
< blueprint -icon icon = "address" / >
< w -item -section >
< w -item -label > { { t ( ` admin.users.location ` ) } } < / w - i t e m - l a b e l >
< w -item -label caption > { { t ( ` admin.users.locationHint ` ) } } < / w - i t e m - l a b e l >
< w -item -label > { { t ( ` admin.users.location ` ) } } < / w - i t e m - l a b e l >
< w -item -label caption > { { t ( ` admin.users.locationHint ` ) } } < / w - i t e m - l a b e l >
< / w - i t e m - s e c t i o n >
< w -item -section >
< w -input
@ -122,8 +124,8 @@
< w -item >
< blueprint -icon icon = "new-job" / >
< w -item -section >
< w -item -label > { { t ( ` admin.users.jobTitle ` ) } } < / w - i t e m - l a b e l >
< w -item -label caption > { { t ( ` admin.users.jobTitleHint ` ) } } < / w - i t e m - l a b e l >
< w -item -label > { { t ( ` admin.users.jobTitle ` ) } } < / w - i t e m - l a b e l >
< w -item -label caption > { { t ( ` admin.users.jobTitleHint ` ) } } < / w - i t e m - l a b e l >
< / w - i t e m - s e c t i o n >
< w -item -section >
< w -input
@ -137,8 +139,8 @@
< w -item >
< blueprint -icon icon = "gender" / >
< w -item -section >
< w -item -label > { { t ( ` admin.users.pronouns ` ) } } < / w - i t e m - l a b e l >
< w -item -label caption > { { t ( ` admin.users.pronounsHint ` ) } } < / w - i t e m - l a b e l >
< w -item -label > { { t ( ` admin.users.pronouns ` ) } } < / w - i t e m - l a b e l >
< w -item -label caption > { { t ( ` admin.users.pronounsHint ` ) } } < / w - i t e m - l a b e l >
< / w - i t e m - s e c t i o n >
< w -item -section >
< w -input
@ -152,13 +154,13 @@
< / w - c a r d >
< w -card class = "shadow-1 pb-2 mt-4" v-if ="state.user.meta" >
< w -card -section >
< div class = "text-subtitle1" > { { t ( 'admin.users.preferences' ) } } < / div >
< div class = "text-subtitle1" > { { t ( 'admin.users.preferences' ) } } < / div >
< / w - c a r d - s e c t i o n >
< w -item >
< blueprint -icon icon = "timezone" / >
< w -item -section >
< w -item -label > { { t ( ` admin.users.timezone ` ) } } < / w - i t e m - l a b e l >
< w -item -label caption > { { t ( ` admin.users.timezoneHint ` ) } } < / w - i t e m - l a b e l >
< w -item -label > { { t ( ` admin.users.timezone ` ) } } < / w - i t e m - l a b e l >
< w -item -label caption > { { t ( ` admin.users.timezoneHint ` ) } } < / w - i t e m - l a b e l >
< / w - i t e m - s e c t i o n >
< w -item -section >
< w -select
@ -178,8 +180,8 @@
< w -item >
< blueprint -icon icon = "calendar" / >
< w -item -section >
< w -item -label > { { t ( ` admin.users.dateFormat ` ) } } < / w - i t e m - l a b e l >
< w -item -label caption > { { t ( ` admin.users.dateFormatHint ` ) } } < / w - i t e m - l a b e l >
< w -item -label > { { t ( ` admin.users.dateFormat ` ) } } < / w - i t e m - l a b e l >
< w -item -label caption > { { t ( ` admin.users.dateFormatHint ` ) } } < / w - i t e m - l a b e l >
< / w - i t e m - s e c t i o n >
< w -item -section >
< w -select
@ -190,21 +192,21 @@
dense
: aria - label = "t(`admin.users.dateFormat`)"
: options = " [
{ label : t ( 'profile.localeDefault' ) , value : '' } ,
{ label : 'DD/MM/YYYY' , value : 'DD/MM/YYYY' } ,
{ label : 'DD.MM.YYYY' , value : 'DD.MM.YYYY' } ,
{ label : 'MM/DD/YYYY' , value : 'MM/DD/YYYY' } ,
{ label : 'YYYY-MM-DD' , value : 'YYYY-MM-DD' } ,
{ label : 'YYYY/MM/DD' , value : 'YYYY/MM/DD' }
] " / >
{ label : t ( 'profile.localeDefault' ) , value : '' } ,
{ label : 'DD/MM/YYYY' , value : 'DD/MM/YYYY' } ,
{ label : 'DD.MM.YYYY' , value : 'DD.MM.YYYY' } ,
{ label : 'MM/DD/YYYY' , value : 'MM/DD/YYYY' } ,
{ label : 'YYYY-MM-DD' , value : 'YYYY-MM-DD' } ,
{ label : 'YYYY/MM/DD' , value : 'YYYY/MM/DD' }
] " / >
< / w - i t e m - s e c t i o n >
< / w - i t e m >
< w -separator class = "my-2" inset / >
< w -item >
< blueprint -icon icon = "clock" / >
< w -item -section >
< w -item -label > { { t ( ` admin.users.timeFormat ` ) } } < / w - i t e m - l a b e l >
< w -item -label caption > { { t ( ` admin.users.timeFormatHint ` ) } } < / w - i t e m - l a b e l >
< w -item -label > { { t ( ` admin.users.timeFormat ` ) } } < / w - i t e m - l a b e l >
< w -item -label caption > { { t ( ` admin.users.timeFormatHint ` ) } } < / w - i t e m - l a b e l >
< / w - i t e m - s e c t i o n >
< w -item -section class = "flex-none" >
< w -btn -toggle
@ -214,17 +216,17 @@
no - caps
toggle - color = "primary"
: options = " [
{ label : t ( 'profile.timeFormat12h' ) , value : '12h' } ,
{ label : t ( 'profile.timeFormat24h' ) , value : '24h' }
] " / >
{ label : t ( 'profile.timeFormat12h' ) , value : '12h' } ,
{ label : t ( 'profile.timeFormat24h' ) , value : '24h' }
] " / >
< / w - i t e m - s e c t i o n >
< / w - i t e m >
< w -separator class = "my-2" inset / >
< w -item >
< blueprint -icon icon = "light-on" / >
< w -item -section >
< w -item -label > { { t ( ` admin.users.appearance ` ) } } < / w - i t e m - l a b e l >
< w -item -label caption > { { t ( ` admin.users.darkModeHint ` ) } } < / w - i t e m - l a b e l >
< w -item -label > { { t ( ` admin.users.appearance ` ) } } < / w - i t e m - l a b e l >
< w -item -label caption > { { t ( ` admin.users.darkModeHint ` ) } } < / w - i t e m - l a b e l >
< / w - i t e m - s e c t i o n >
< w -item -section class = "flex-none" >
< w -btn -toggle
@ -234,18 +236,18 @@
no - caps
toggle - color = "primary"
: options = " [
{ label : t ( 'profile.appearanceDefault' ) , value : 'site' } ,
{ label : t ( 'profile.appearanceLight' ) , value : 'light' } ,
{ label : t ( 'profile.appearanceDark' ) , value : 'dark' }
] " / >
{ label : t ( 'profile.appearanceDefault' ) , value : 'site' } ,
{ label : t ( 'profile.appearanceLight' ) , value : 'light' } ,
{ label : t ( 'profile.appearanceDark' ) , value : 'dark' }
] " / >
< / w - i t e m - s e c t i o n >
< / w - i t e m >
< w -separator class = "my-2" inset / >
< w -item >
< blueprint -icon icon = "visualy-impaired" / >
< w -item -section >
< w -item -label > { { t ( ` profile.cvd ` ) } } < / w - i t e m - l a b e l >
< w -item -label caption > { { t ( ` profile.cvdHint ` ) } } < / w - i t e m - l a b e l >
< w -item -label > { { t ( ` profile.cvd ` ) } } < / w - i t e m - l a b e l >
< w -item -label caption > { { t ( ` profile.cvdHint ` ) } } < / w - i t e m - l a b e l >
< / w - i t e m - s e c t i o n >
< w -item -section class = "flex-none" >
< w -btn -toggle
@ -255,11 +257,11 @@
no - caps
toggle - color = "primary"
: options = " [
{ value : 'none' , label : t ( 'profile.cvdNone' ) } ,
{ value : 'protanopia' , label : t ( 'profile.cvdProtanopia' ) } ,
{ value : 'deuteranopia' , label : t ( 'profile.cvdDeuteranopia' ) } ,
{ value : 'tritanopia' , label : t ( 'profile.cvdTritanopia' ) }
] " / >
{ value : 'none' , label : t ( 'profile.cvdNone' ) } ,
{ value : 'protanopia' , label : t ( 'profile.cvdProtanopia' ) } ,
{ value : 'deuteranopia' , label : t ( 'profile.cvdDeuteranopia' ) } ,
{ value : 'tritanopia' , label : t ( 'profile.cvdTritanopia' ) }
] " / >
< / w - i t e m - s e c t i o n >
< / w - i t e m >
< / w - c a r d >
@ -267,22 +269,24 @@
< div class = "col-span-12 lg:col-span-4" >
< w -card class = "shadow-1 pb-2" >
< w -card -section >
< div class = "text-subtitle1" > { { t ( 'admin.users.info' ) } } < / div >
< div class = "text-subtitle1" > { { t ( 'admin.users.info' ) } } < / div >
< / w - c a r d - s e c t i o n >
< w -item >
< blueprint -icon icon = "person" :hue-rotate ="-45" / >
< w -item -section >
< w -item -label > { { t ( ` common.field.id ` ) } } < / w - i t e m - l a b e l >
< w -item -label > < strong > { { state . user . id } } < / strong > < / w - i t e m - l a b e l >
< w -item -label > { { t ( ` common.field.id ` ) } } < / w - i t e m - l a b e l >
< w -item -label
> < strong > { { state . user . id } } < / strong > < / w - i t e m - l a b e l
>
< / w - i t e m - s e c t i o n >
< / w - i t e m >
< w -separator class = "my-2" inset / >
< w -item >
< blueprint -icon icon = "calendar-plus" :hue-rotate ="-45" / >
< w -item -section >
< w -item -label > { { t ( ` common.field.createdOn ` ) } } < / w - i t e m - l a b e l >
< w -item -label > { { t ( ` common.field.createdOn ` ) } } < / w - i t e m - l a b e l >
< w -item -label >
< strong > { { formattedDate ( state . user . createdAt ) } } < / strong >
< strong > { { formattedDate ( state . user . createdAt ) } } < / strong >
< / w - i t e m - l a b e l >
< / w - i t e m - s e c t i o n >
< / w - i t e m >
@ -290,9 +294,9 @@
< w -item >
< blueprint -icon icon = "summertime" :hue-rotate ="-45" / >
< w -item -section >
< w -item -label > { { t ( ` common.field.lastUpdated ` ) } } < / w - i t e m - l a b e l >
< w -item -label > { { t ( ` common.field.lastUpdated ` ) } } < / w - i t e m - l a b e l >
< w -item -label >
< strong > { { formattedDate ( state . user . updatedAt ) } } < / strong >
< strong > { { formattedDate ( state . user . updatedAt ) } } < / strong >
< / w - i t e m - l a b e l >
< / w - i t e m - s e c t i o n >
< / w - i t e m >
@ -300,16 +304,16 @@
< w -item >
< blueprint -icon icon = "enter" :hue-rotate ="-45" / >
< w -item -section >
< w -item -label > { { t ( ` admin.users.lastLoginAt ` ) } } < / w - i t e m - l a b e l >
< w -item -label > { { t ( ` admin.users.lastLoginAt ` ) } } < / w - i t e m - l a b e l >
< w -item -label >
< strong > { { formattedDate ( state . user . lastLoginAt ) } } < / strong >
< strong > { { formattedDate ( state . user . lastLoginAt ) } } < / strong >
< / w - i t e m - l a b e l >
< / w - i t e m - s e c t i o n >
< / w - i t e m >
< / w - c a r d >
< w -card class = "shadow-1 pb-2 mt-4" v-if ="state.user.meta" >
< w -card -section >
< div class = "text-subtitle1" > { { t ( 'admin.users.notes' ) } } < / div >
< div class = "text-subtitle1" > { { t ( 'admin.users.notes' ) } } < / div >
< w -input
class = "mt-2"
outlined
@ -331,15 +335,22 @@
< div class = "col-span-12 lg:col-span-7" >
< w -card class = "shadow-1 pb-2" >
< w -card -section >
< div class = "text-subtitle1" > { { t ( 'admin.users.passAuth' ) } } < / div >
< div class = "text-subtitle1" > { { t ( 'admin.users.passAuth' ) } } < / div >
< / w - c a r d - s e c t i o n >
< w -item >
< blueprint -icon icon = "password" :hue-rotate ="45" / >
< w -item -section >
< w -item -label > { { t ( ` admin.users.changePassword ` ) } } < / w - i t e m - l a b e l >
< w -item -label caption > { { t ( ` admin.users.changePasswordHint ` ) } } < / w - i t e m - l a b e l >
< w -item -label > { { t ( ` admin.users.changePassword ` ) } } < / w - i t e m - l a b e l >
< w -item -label caption > { { t ( ` admin.users.changePasswordHint ` ) } } < / w - i t e m - l a b e l >
< w -item -label caption >
< strong : class = "localAuth.isPasswordSet ? `text-positive` : `text-negative`" > { { localAuth . isPasswordSet ? t ( ` admin.users.pwdSet ` ) : t ( ` admin.users.pwdNotSet ` ) } } < / strong >
< strong
: class = "localAuth.isPasswordSet ? `text-positive` : `text-negative`"
> { {
localAuth . isPasswordSet
? t ( ` admin.users.pwdSet ` )
: t ( ` admin.users.pwdNotSet ` )
} } < / s t r o n g
>
< / w - i t e m - l a b e l >
< / w - i t e m - s e c t i o n >
< w -item -section side >
@ -356,8 +367,8 @@
< w -item tag = "label" >
< blueprint -icon icon = "password-reset" / >
< w -item -section >
< w -item -label > { { t ( ` admin.users.mustChangePwd ` ) } } < / w - i t e m - l a b e l >
< w -item -label caption > { { t ( ` admin.users.mustChangePwdHint ` ) } } < / w - i t e m - l a b e l >
< w -item -label > { { t ( ` admin.users.mustChangePwd ` ) } } < / w - i t e m - l a b e l >
< w -item -label caption > { { t ( ` admin.users.mustChangePwdHint ` ) } } < / w - i t e m - l a b e l >
< / w - i t e m - s e c t i o n >
< w -item -section avatar >
< w -toggle
@ -372,8 +383,8 @@
< w -item tag = "label" >
< blueprint -icon icon = "key" / >
< w -item -section >
< w -item -label > { { t ( ` admin.users.pwdAuthRestrict ` ) } } < / w - i t e m - l a b e l >
< w -item -label caption > { { t ( ` admin.users.pwdAuthRestrictHint ` ) } } < / w - i t e m - l a b e l >
< w -item -label > { { t ( ` admin.users.pwdAuthRestrict ` ) } } < / w - i t e m - l a b e l >
< w -item -label caption > { { t ( ` admin.users.pwdAuthRestrictHint ` ) } } < / w - i t e m - l a b e l >
< / w - i t e m - s e c t i o n >
< w -item -section avatar >
< w -toggle
@ -387,13 +398,13 @@
< / w - c a r d >
< w -card class = "shadow-1 pb-2 mt-4" >
< w -card -section >
< div class = "text-subtitle1" > { { t ( 'admin.users.tfa' ) } } < / div >
< div class = "text-subtitle1" > { { t ( 'admin.users.tfa' ) } } < / div >
< / w - c a r d - s e c t i o n >
< w -item tag = "label" >
< blueprint -icon icon = "key" / >
< w -item -section >
< w -item -label > { { t ( ` admin.users.tfaRequired ` ) } } < / w - i t e m - l a b e l >
< w -item -label caption > { { t ( ` admin.users.tfaRequiredHint ` ) } } < / w - i t e m - l a b e l >
< w -item -label > { { t ( ` admin.users.tfaRequired ` ) } } < / w - i t e m - l a b e l >
< w -item -label caption > { { t ( ` admin.users.tfaRequiredHint ` ) } } < / w - i t e m - l a b e l >
< / w - i t e m - s e c t i o n >
< w -item -section avatar >
< w -toggle
@ -408,10 +419,12 @@
< w -item >
< blueprint -icon icon = "password" :hue-rotate ="45" / >
< w -item -section >
< w -item -label > { { t ( ` admin.users.tfaInvalidate ` ) } } < / w - i t e m - l a b e l >
< w -item -label caption > { { t ( ` admin.users.tfaInvalidateHint ` ) } } < / w - i t e m - l a b e l >
< w -item -label > { { t ( ` admin.users.tfaInvalidate ` ) } } < / w - i t e m - l a b e l >
< w -item -label caption > { { t ( ` admin.users.tfaInvalidateHint ` ) } } < / w - i t e m - l a b e l >
< w -item -label caption >
< strong : class = "localAuth.isTfaSetup ? `text-positive` : `text-negative`" > { { localAuth . isTfaSetup ? t ( ` admin.users.tfaSet ` ) : t ( ` admin.users.tfaNotSet ` ) } } < / strong >
< strong : class = "localAuth.isTfaSetup ? `text-positive` : `text-negative`" > { {
localAuth . isTfaSetup ? t ( ` admin.users.tfaSet ` ) : t ( ` admin.users.tfaNotSet ` )
} } < / strong >
< / w - i t e m - l a b e l >
< / w - i t e m - s e c t i o n >
< w -item -section side >
@ -429,16 +442,22 @@
< div class = "col-span-12 lg:col-span-5" >
< w -card class = "shadow-1 pb-2" >
< w -card -section >
< div class = "text-subtitle1" > { { t ( 'admin.users.linkedProviders' ) } } < / div >
< w -banner class = "mt-4" v-if ="linkedAuthProviders.length < 1" rounded :class="dark.isActive ? `bg-negative text-white` : `bg-grey-2 text-grey-7`" > {{ t ( ' admin.users.noLinkedProviders ' ) }} < / w -banner >
< div class = "text-subtitle1" > { { t ( 'admin.users.linkedProviders' ) } } < / div >
< w -banner
class = "mt-4"
v - if = "linkedAuthProviders.length < 1"
rounded
: class = "dark.isActive ? `bg-negative text-white` : `bg-grey-2 text-grey-7`"
> { { t ( 'admin.users.noLinkedProviders' ) } } < / w - b a n n e r
>
< / w - c a r d - s e c t i o n >
< template v-for ="(prv, idx) in linkedAuthProviders" :key="prv.authId" >
< w -separator class = "my-2" inset v -if = " idx > 0 " / >
< w -item >
< blueprint -icon :icon ="prv.strategyIcon" :hue-rotate ="-45" / >
< w -item -section >
< w -item -label > { { prv . authName } } < / w - i t e m - l a b e l >
< w -item -label caption > { { prv . config . key } } < / w - i t e m - l a b e l >
< w -item -label > { { prv . authName } } < / w - i t e m - l a b e l >
< w -item -label caption > { { prv . config . key } } < / w - i t e m - l a b e l >
< / w - i t e m - s e c t i o n >
< / w - i t e m >
< / template >
@ -453,13 +472,15 @@
< div class = "col-span-12 lg:col-span-8" >
< w -card class = "shadow-1 pb-2" >
< w -card -section >
< div class = "text-subtitle1" > { { t ( 'admin.users.groups' ) } } < / div >
< div class = "text-subtitle1" > { { t ( 'admin.users.groups' ) } } < / div >
< / w - c a r d - s e c t i o n >
< template v-for ="(grp, idx) of state.user.groups" :key="grp.id" >
< w -separator class = "my-2" inset v -if = " idx > 0 " / >
< w -item >
< blueprint -icon icon = "team" :hue-rotate ="-45" / >
< w -item -section > < w -item -label > { { grp . name } } < / w - i t e m - l a b e l > < / w - i t e m - s e c t i o n >
< w -item -section
> < w -item -label > { { grp . name } } < / w - i t e m - l a b e l > < / w - i t e m - s e c t i o n
>
< w -item -section side >
< w -btn
class = "acrylic-btn"
@ -468,7 +489,9 @@
color = "accent"
@ click = "unassignGroup(grp.id)"
: aria - label = "t(`admin.users.unassignGroup`)" >
< w -tooltip anchor = "center left" self = "center right" > { { t ( 'admin.users.unassignGroup' ) } } < / w - t o o l t i p >
< w -tooltip anchor = "center left" self = "center right" > { {
t ( 'admin.users.unassignGroup' )
} } < / w - t o o l t i p >
< / w - b t n >
< / w - i t e m - s e c t i o n >
< / w - i t e m >
@ -513,21 +536,21 @@
< div class = "col-span-12 lg:col-span-8" >
< w -card class = "shadow-1 pb-2" >
< w -card -section class = "flex items-center" >
< div class = "text-subtitle1" > { { t ( 'admin.users.metadata' ) } } < / div >
< div class = "text-subtitle1" > { { t ( 'admin.users.metadata' ) } } < / div >
< w -space / >
< w -badge v-if ="state.metadataInvalidJSON" color="negative" >
< w -icon class = "mr-1" name = "la:exclamation-triangle" size = "20px" / >
< span > { { t ( 'admin.users.invalidJSON' ) } } < / span >
< span > { { t ( 'admin.users.invalidJSON' ) } } < / span >
< / w - b a d g e >
< w -badge class = "py-1" v -else label = "JSON" color = "positive" / >
< / w - c a r d - s e c t i o n >
< w -item >
< w -item -section >
< util -code -editor
class = "admin-theme-cm"
v - model = "metadata"
language = "json"
: min - height = "500" / >
: min - height = "500"
aria - label = "Metadata (JSON)" / >
< / w - i t e m - s e c t i o n >
< / w - i t e m >
< / w - c a r d >
@ -541,13 +564,15 @@
< div class = "col-span-12 lg:col-span-8" >
< w -card class = "shadow-1 pb-2" >
< w -card -section >
< div class = "text-subtitle1" > { { t ( 'admin.users.operations' ) } } < / div >
< div class = "text-subtitle1" > { { t ( 'admin.users.operations' ) } } < / div >
< / w - c a r d - s e c t i o n >
< w -item >
< blueprint -icon icon = "email-open" :hue-rotate ="45" / >
< w -item -section >
< w -item -label > { { t ( ` admin.users.sendWelcomeEmail ` ) } } < / w - i t e m - l a b e l >
< w -item -label caption > { { t ( ` admin.users.sendWelcomeEmailAltHint ` ) } } < / w - i t e m - l a b e l >
< w -item -label > { { t ( ` admin.users.sendWelcomeEmail ` ) } } < / w - i t e m - l a b e l >
< w -item -label caption > { {
t ( ` admin.users.sendWelcomeEmailAltHint ` )
} } < / w - i t e m - l a b e l >
< / w - i t e m - s e c t i o n >
< w -item -section side >
< w -btn
@ -563,10 +588,20 @@
< w -item >
< blueprint -icon icon = "apply" :hue-rotate ="45" / >
< w -item -section >
< w -item -label > { { state . user . isVerified ? t ( ` admin.users.unverify ` ) : t ( ` admin.users.verify ` ) } } < / w - i t e m - l a b e l >
< w -item -label caption > { { state . user . isVerified ? t ( ` admin.users.unverifyHint ` ) : t ( ` admin.users.verifyHint ` ) } } < / w - i t e m - l a b e l >
< w -item -label > { {
state . user . isVerified ? t ( ` admin.users.unverify ` ) : t ( ` admin.users.verify ` )
} } < / w - i t e m - l a b e l >
< w -item -label caption > { {
state . user . isVerified
? t ( ` admin.users.unverifyHint ` )
: t ( ` admin.users.verifyHint ` )
} } < / w - i t e m - l a b e l >
< w -item -label caption >
< strong : class = "state.user.isVerified ? `text-positive` : `text-negative`" > { { state . user . isVerified ? t ( ` admin.users.verified ` ) : t ( ` admin.users.unverified ` ) } } < / strong >
< strong : class = "state.user.isVerified ? `text-positive` : `text-negative`" > { {
state . user . isVerified
? t ( ` admin.users.verified ` )
: t ( ` admin.users.unverified ` )
} } < / strong >
< / w - i t e m - l a b e l >
< / w - i t e m - s e c t i o n >
< w -item -section side >
@ -583,10 +618,16 @@
< w -item >
< blueprint -icon icon = "unfriend" :hue-rotate ="45" / >
< w -item -section >
< w -item -label > { { state . user . isActive ? t ( ` admin.users.ban ` ) : t ( ` admin.users.unban ` ) } } < / w - i t e m - l a b e l >
< w -item -label caption > { { state . user . isActive ? t ( ` admin.users.banHint ` ) : t ( ` admin.users.unbanHint ` ) } } < / w - i t e m - l a b e l >
< w -item -label > { {
state . user . isActive ? t ( ` admin.users.ban ` ) : t ( ` admin.users.unban ` )
} } < / w - i t e m - l a b e l >
< w -item -label caption > { {
state . user . isActive ? t ( ` admin.users.banHint ` ) : t ( ` admin.users.unbanHint ` )
} } < / w - i t e m - l a b e l >
< w -item -label caption >
< strong : class = "state.user.isActive ? `text-positive` : `text-negative`" > { { state . user . isActive ? t ( ` admin.users.active ` ) : t ( ` admin.users.banned ` ) } } < / strong >
< strong : class = "state.user.isActive ? `text-positive` : `text-negative`" > { {
state . user . isActive ? t ( ` admin.users.active ` ) : t ( ` admin.users.banned ` )
} } < / strong >
< / w - i t e m - l a b e l >
< / w - i t e m - s e c t i o n >
< w -item -section side >
@ -604,8 +645,8 @@
< w -item >
< blueprint -icon icon = "denied" :hue-rotate ="140" / >
< w -item -section >
< w -item -label > { { t ( ` admin.users.delete ` ) } } < / w - i t e m - l a b e l >
< w -item -label caption > { { t ( ` admin.users.deleteHint ` ) } } < / w - i t e m - l a b e l >
< w -item -label > { { t ( ` admin.users.delete ` ) } } < / w - i t e m - l a b e l >
< w -item -label caption > { { t ( ` admin.users.deleteHint ` ) } } < / w - i t e m - l a b e l >
< / w - i t e m - s e c t i o n >
< w -item -section side >
< w -btn
@ -914,12 +955,7 @@ onMounted(() => {
} )
< / script >
< style lang = "scss" scoped >
. metadata - codemirror {
& : deep ( . cm - editor ) {
min - height : 150 px ;
border - radius : 5 px ;
border : 1 px solid # ccc ;
}
}
< / style >
<!--
- > The ` .metadata-codemirror ` rules that were here targeted ` .cm-editor ` , a CodeMirror 6 class this
app never had , from a class no element in this file carries . Dead twice over .
-- >