User Details ve Genel düzenlemeler
This commit is contained in:
parent
e50a02bddc
commit
0b5eb3d978
6 changed files with 577 additions and 527 deletions
|
|
@ -3108,6 +3108,12 @@
|
|||
"en": "Lockout Settings",
|
||||
"tr": "Kilit Ayarları"
|
||||
},
|
||||
{
|
||||
"resourceName": "Platform",
|
||||
"key": "Abp.Identity.User.LockoutManagement.ConnectionsTimes",
|
||||
"en": "Connections Times",
|
||||
"tr": "Bağlantı Süreleri"
|
||||
},
|
||||
{
|
||||
"resourceName": "Platform",
|
||||
"key": "Abp.Identity.User.UserInformation.Name",
|
||||
|
|
|
|||
|
|
@ -4168,7 +4168,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
|
|||
EditingFormJson = JsonSerializer.Serialize(new List<EditingFormDto>()
|
||||
{
|
||||
new() {
|
||||
Order = 1, ColCount = 2, ColSpan = 1, ItemType = "group", Items =
|
||||
Order = 1, ColCount = 4, ColSpan = 1, ItemType = "group", Items =
|
||||
[
|
||||
new EditingFormItemDto { Order = 1, DataField = "CategoryId", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||
new EditingFormItemDto { Order = 2, DataField = "TypeId", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||
|
|
@ -4176,9 +4176,9 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
|
|||
new EditingFormItemDto { Order = 4, DataField = "Name", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxTextBox },
|
||||
new EditingFormItemDto { Order = 5, DataField = "Place", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxTextBox },
|
||||
new EditingFormItemDto { Order = 6, DataField = "UserId", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||
new EditingFormItemDto { Order = 7, DataField = "Description", ColSpan = 2, EditorType2 = EditorTypes.dxTextArea },
|
||||
new EditingFormItemDto { Order = 8, DataField = "Status", ColSpan = 1, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||
new EditingFormItemDto { Order = 9, DataField = "ParticipantsCount", ColSpan = 1, EditorType2 = EditorTypes.dxNumberBox },
|
||||
new EditingFormItemDto { Order = 7, DataField = "Status", ColSpan = 1, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||
new EditingFormItemDto { Order = 8, DataField = "ParticipantsCount", ColSpan = 1, EditorType2 = EditorTypes.dxNumberBox },
|
||||
new EditingFormItemDto { Order = 9, DataField = "Description", ColSpan = 2, EditorType2 = EditorTypes.dxTextArea },
|
||||
new EditingFormItemDto { Order = 10, DataField = "Photos", ColSpan = 1, EditorType2 = EditorTypes.dxImageUpload, EditorOptions = EditorOptionValues.ImageUploadOptions },
|
||||
]}
|
||||
}),
|
||||
|
|
@ -4474,7 +4474,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
|
|||
EditingOptionJson = DefaultEditingOptionJson(listFormName, 500, 250, true, true, true, true, false),
|
||||
EditingFormJson = JsonSerializer.Serialize(new List<EditingFormDto>() {
|
||||
new() { Order=1, ColCount=1, ColSpan=1, ItemType="group", Items=[
|
||||
new EditingFormItemDto { Order = 1, DataField = "Name", ColSpan = 1, IsRequired = true, EditorType2=EditorTypes.dxTextBox },
|
||||
new EditingFormItemDto { Order = 1, DataField = "UserId", ColSpan = 1, IsRequired = true, EditorType2=EditorTypes.dxSelectBox },
|
||||
]}
|
||||
}),
|
||||
InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(),
|
||||
|
|
|
|||
|
|
@ -76,7 +76,7 @@ public static class PlatformConsts
|
|||
public static class Branches
|
||||
{
|
||||
public const string BranchCode = "DEMO";
|
||||
public const string BranchName = "Demo Şube";
|
||||
public const string BranchName = "Demo";
|
||||
public const long BranchVknTckn = 52849619172;
|
||||
public const string BranchTaxOffice = "Sarıgazi";
|
||||
public const string BranchMobileNumber = "5449476346";
|
||||
|
|
|
|||
|
|
@ -59,13 +59,11 @@ import {
|
|||
FaMinusCircle,
|
||||
FaPlusCircle,
|
||||
FaTrash,
|
||||
FaSitemap,
|
||||
FaCogs,
|
||||
FaTrashAlt,
|
||||
FaEdit,
|
||||
FaUsers,
|
||||
FaUserPlus,
|
||||
FaUserShield,
|
||||
FaUserFriends,
|
||||
} from 'react-icons/fa'
|
||||
import { object, string } from 'yup'
|
||||
import { ROUTES_ENUM } from '@/routes/route.constant'
|
||||
|
|
@ -389,8 +387,8 @@ const OrganizationUnits = () => {
|
|||
return (
|
||||
<div
|
||||
className={classNames(
|
||||
'h-6 text-md flex gap-2 items-center',
|
||||
node.isSelected ? 'bg-indigo-200' : '',
|
||||
'h-8 text-md flex gap-2 items-center',
|
||||
node.isSelected ? 'bg-indigo-200 text-black dark:text-black' : '',
|
||||
)}
|
||||
style={style}
|
||||
ref={dragHandle}
|
||||
|
|
@ -403,7 +401,7 @@ const OrganizationUnits = () => {
|
|||
{node.isInternal && (node.isOpen ? <FaMinusCircle /> : <FaPlusCircle />)}
|
||||
</div>
|
||||
|
||||
<FaFolder className="ml-2 w-3" color="#337ab7" />
|
||||
<FaFolder className="w-3" color="#337ab7" />
|
||||
|
||||
<span className="node-text m-1">
|
||||
{node.isEditing ? (
|
||||
|
|
@ -431,17 +429,23 @@ const OrganizationUnits = () => {
|
|||
<div className="file-actions">
|
||||
<div className="flex gap-1 folderFileActions">
|
||||
<Button
|
||||
icon={<FaUserPlus size="20" color="#2d6da3" />}
|
||||
size='xs'
|
||||
variant='plain'
|
||||
icon={<FaUserPlus color="#2d6da3" />}
|
||||
onClick={() => setIsMoveAllUsersOpen(true)}
|
||||
title={translate('::Abp.Identity.OrganizationUnit.MoveAllUsers')}
|
||||
></Button>
|
||||
<Button
|
||||
icon={<FaEdit size="20" className="text-teal-900" />}
|
||||
size='xs'
|
||||
variant='plain'
|
||||
icon={<FaEdit className="text-teal-900" />}
|
||||
onClick={() => node.edit()}
|
||||
title={translate('::Abp.Identity.OrganizationUnit.Rename')}
|
||||
></Button>
|
||||
<Button
|
||||
icon={<FaTrashAlt size="20" color="#d9534f" />}
|
||||
size='xs'
|
||||
variant='plain'
|
||||
icon={<FaTrashAlt color="#d9534f" />}
|
||||
onClick={() => setDeleteRow({ id: node.data.id, name: 'Organization Unit' })}
|
||||
title={translate('::Delete')}
|
||||
></Button>
|
||||
|
|
@ -469,7 +473,7 @@ const OrganizationUnits = () => {
|
|||
<Button
|
||||
variant="solid"
|
||||
size="sm"
|
||||
icon={activeOu ? <FaSitemap /> : <FaCogs />}
|
||||
icon={activeOu ? <FaUserFriends /> : <FaUserPlus />}
|
||||
title={translate('::Abp.Identity.OrganizationUnit.AddUnit')}
|
||||
onClick={(e) => {
|
||||
e.preventDefault()
|
||||
|
|
|
|||
|
|
@ -167,11 +167,16 @@ function UserDetails() {
|
|||
{({ isSubmitting, values }) => {
|
||||
return (
|
||||
<Form>
|
||||
<div className="w-1/2">
|
||||
<div>
|
||||
<FormContainer size="md">
|
||||
<div className="grid grid-cols-1 lg:grid-cols-2 gap-2 w-full">
|
||||
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-2 w-full">
|
||||
{/* Personal Information */}
|
||||
<div>
|
||||
<h6 className="mb-4">
|
||||
{translate(
|
||||
'::Abp.Identity.User.UserInformation.ContactInformation',
|
||||
)}
|
||||
</h6>
|
||||
<FormItem
|
||||
label={translate('::Abp.Identity.User.UserInformation.Name')}
|
||||
>
|
||||
|
|
@ -182,9 +187,7 @@ function UserDetails() {
|
|||
component={Input}
|
||||
/>
|
||||
</FormItem>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<FormItem
|
||||
label={translate('::Abp.Identity.User.UserInformation.Surname')}
|
||||
>
|
||||
|
|
@ -195,14 +198,7 @@ function UserDetails() {
|
|||
component={Input}
|
||||
/>
|
||||
</FormItem>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<h6 className="mb-4">
|
||||
{translate(
|
||||
'::Abp.Identity.User.UserInformation.ContactInformation',
|
||||
)}
|
||||
</h6>
|
||||
<FormItem label={translate('::Abp.Account.EmailAddress')}>
|
||||
<Field
|
||||
type="text"
|
||||
|
|
@ -224,6 +220,10 @@ function UserDetails() {
|
|||
component={Input}
|
||||
/>
|
||||
</FormItem>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<h6 className="mb-4"> </h6>
|
||||
<FormItem label={translate('::Abp.Account.HomeAddress')}>
|
||||
<Field
|
||||
type="text"
|
||||
|
|
@ -438,11 +438,9 @@ function UserDetails() {
|
|||
</FormContainer>
|
||||
</div>
|
||||
|
||||
<div className="w-1/2">
|
||||
<Button variant="solid" block loading={isSubmitting} type="submit">
|
||||
{isSubmitting ? translate('::SavingWithThreeDot') : translate('::Save')}
|
||||
</Button>
|
||||
</div>
|
||||
</Form>
|
||||
)
|
||||
}}
|
||||
|
|
@ -479,7 +477,7 @@ function UserDetails() {
|
|||
|
||||
return (
|
||||
<Form>
|
||||
<div className="w-1/2">
|
||||
<div>
|
||||
<FormContainer size="md">
|
||||
<div className="grid grid-cols-1 lg:grid-cols-2 gap-4 w-full">
|
||||
{/* Şube Management */}
|
||||
|
|
@ -549,7 +547,7 @@ function UserDetails() {
|
|||
</FormContainer>
|
||||
</div>
|
||||
|
||||
<div className="w-1/2 mt-4">
|
||||
<div className="mt-4">
|
||||
<Button variant="solid" block loading={isSubmitting} type="submit">
|
||||
{isSubmitting ? translate('::SavingWithThreeDot') : translate('::Save')}
|
||||
</Button>
|
||||
|
|
@ -601,9 +599,9 @@ function UserDetails() {
|
|||
|
||||
return (
|
||||
<Form>
|
||||
<div className="w-1/2">
|
||||
<div>
|
||||
<FormContainer size="md">
|
||||
<div className="grid grid-cols-1 lg:grid-cols-2 gap-2 w-full">
|
||||
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-2 w-full">
|
||||
<div>
|
||||
<FormItem
|
||||
label={translate(
|
||||
|
|
@ -664,7 +662,9 @@ function UserDetails() {
|
|||
<Field
|
||||
type="text"
|
||||
name="sskNo"
|
||||
placeholder={translate('::Abp.Identity.User.UserInformation.SskNo')}
|
||||
placeholder={translate(
|
||||
'::Abp.Identity.User.UserInformation.SskNo',
|
||||
)}
|
||||
component={Input}
|
||||
/>
|
||||
</FormItem>
|
||||
|
|
@ -680,7 +680,9 @@ function UserDetails() {
|
|||
field={field}
|
||||
form={form}
|
||||
value={field.value ? dayjs(field.value).toDate() : null}
|
||||
placeholder={translate('::Abp.Identity.User.UserInformation.HireDate')}
|
||||
placeholder={translate(
|
||||
'::Abp.Identity.User.UserInformation.HireDate',
|
||||
)}
|
||||
onChange={(date) => {
|
||||
form.setFieldValue(
|
||||
field.name,
|
||||
|
|
@ -695,7 +697,9 @@ function UserDetails() {
|
|||
|
||||
<div>
|
||||
<FormItem
|
||||
label={translate('::Abp.Identity.User.UserInformation.TerminationDate')}
|
||||
label={translate(
|
||||
'::Abp.Identity.User.UserInformation.TerminationDate',
|
||||
)}
|
||||
>
|
||||
<Field name="terminationDate">
|
||||
{({ field, form }: FieldProps) => (
|
||||
|
|
@ -703,7 +707,9 @@ function UserDetails() {
|
|||
field={field}
|
||||
form={form}
|
||||
value={field.value ? dayjs(field.value).toDate() : null}
|
||||
placeholder={translate('::Abp.Identity.User.UserInformation.TerminationDate')}
|
||||
placeholder={translate(
|
||||
'::Abp.Identity.User.UserInformation.TerminationDate',
|
||||
)}
|
||||
onChange={(date) => {
|
||||
form.setFieldValue(
|
||||
field.name,
|
||||
|
|
@ -719,11 +725,9 @@ function UserDetails() {
|
|||
</FormContainer>
|
||||
</div>
|
||||
|
||||
<div className="w-1/2">
|
||||
<Button variant="solid" block loading={isSubmitting} type="submit">
|
||||
{isSubmitting ? translate('::SavingWithThreeDot') : translate('::Save')}
|
||||
</Button>
|
||||
</div>
|
||||
</Form>
|
||||
)
|
||||
}}
|
||||
|
|
@ -774,17 +778,20 @@ function UserDetails() {
|
|||
|
||||
return (
|
||||
<Form>
|
||||
<div className="w-1/2">
|
||||
<FormContainer size="md">
|
||||
<div className="grid grid-cols-1 lg:grid-cols-2 gap-2 w-full">
|
||||
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-2 w-full">
|
||||
<div>
|
||||
<FormItem
|
||||
label={translate('::Abp.Identity.User.UserInformation.IdentityNumber')}
|
||||
label={translate(
|
||||
'::Abp.Identity.User.UserInformation.IdentityNumber',
|
||||
)}
|
||||
>
|
||||
<Field
|
||||
type="text"
|
||||
name="identityNumber"
|
||||
placeholder={translate('::Abp.Identity.User.UserInformation.IdentityNumber')}
|
||||
placeholder={translate(
|
||||
'::Abp.Identity.User.UserInformation.IdentityNumber',
|
||||
)}
|
||||
component={Input}
|
||||
/>
|
||||
</FormItem>
|
||||
|
|
@ -797,7 +804,9 @@ function UserDetails() {
|
|||
<Field
|
||||
type="text"
|
||||
name="serialNo"
|
||||
placeholder={translate('::Abp.Identity.User.UserInformation.SerialNo')}
|
||||
placeholder={translate(
|
||||
'::Abp.Identity.User.UserInformation.SerialNo',
|
||||
)}
|
||||
component={Input}
|
||||
/>
|
||||
</FormItem>
|
||||
|
|
@ -810,7 +819,9 @@ function UserDetails() {
|
|||
<Field
|
||||
type="text"
|
||||
name="province"
|
||||
placeholder={translate('::Abp.Identity.User.UserInformation.Province')}
|
||||
placeholder={translate(
|
||||
'::Abp.Identity.User.UserInformation.Province',
|
||||
)}
|
||||
component={Input}
|
||||
/>
|
||||
</FormItem>
|
||||
|
|
@ -823,7 +834,9 @@ function UserDetails() {
|
|||
<Field
|
||||
type="text"
|
||||
name="district"
|
||||
placeholder={translate('::Abp.Identity.User.UserInformation.District')}
|
||||
placeholder={translate(
|
||||
'::Abp.Identity.User.UserInformation.District',
|
||||
)}
|
||||
component={Input}
|
||||
/>
|
||||
</FormItem>
|
||||
|
|
@ -836,7 +849,9 @@ function UserDetails() {
|
|||
<Field
|
||||
type="text"
|
||||
name="village"
|
||||
placeholder={translate('::Abp.Identity.User.UserInformation.Village')}
|
||||
placeholder={translate(
|
||||
'::Abp.Identity.User.UserInformation.Village',
|
||||
)}
|
||||
component={Input}
|
||||
/>
|
||||
</FormItem>
|
||||
|
|
@ -849,7 +864,9 @@ function UserDetails() {
|
|||
<Field
|
||||
type="text"
|
||||
name="volumeNo"
|
||||
placeholder={translate('::Abp.Identity.User.UserInformation.VolumeNo')}
|
||||
placeholder={translate(
|
||||
'::Abp.Identity.User.UserInformation.VolumeNo',
|
||||
)}
|
||||
component={Input}
|
||||
/>
|
||||
</FormItem>
|
||||
|
|
@ -857,12 +874,16 @@ function UserDetails() {
|
|||
|
||||
<div>
|
||||
<FormItem
|
||||
label={translate('::Abp.Identity.User.UserInformation.FamilySequenceNo')}
|
||||
label={translate(
|
||||
'::Abp.Identity.User.UserInformation.FamilySequenceNo',
|
||||
)}
|
||||
>
|
||||
<Field
|
||||
type="text"
|
||||
name="familySequenceNo"
|
||||
placeholder={translate('::Abp.Identity.User.UserInformation.FamilySequenceNo')}
|
||||
placeholder={translate(
|
||||
'::Abp.Identity.User.UserInformation.FamilySequenceNo',
|
||||
)}
|
||||
component={Input}
|
||||
/>
|
||||
</FormItem>
|
||||
|
|
@ -875,7 +896,9 @@ function UserDetails() {
|
|||
<Field
|
||||
type="text"
|
||||
name="sequenceNo"
|
||||
placeholder={translate('::Abp.Identity.User.UserInformation.SequenceNo')}
|
||||
placeholder={translate(
|
||||
'::Abp.Identity.User.UserInformation.SequenceNo',
|
||||
)}
|
||||
component={Input}
|
||||
/>
|
||||
</FormItem>
|
||||
|
|
@ -888,7 +911,9 @@ function UserDetails() {
|
|||
<Field
|
||||
type="text"
|
||||
name="issuedPlace"
|
||||
placeholder={translate('::Abp.Identity.User.UserInformation.IssuedPlace')}
|
||||
placeholder={translate(
|
||||
'::Abp.Identity.User.UserInformation.IssuedPlace',
|
||||
)}
|
||||
component={Input}
|
||||
/>
|
||||
</FormItem>
|
||||
|
|
@ -904,7 +929,9 @@ function UserDetails() {
|
|||
field={field}
|
||||
form={form}
|
||||
value={field.value ? dayjs(field.value).toDate() : null}
|
||||
placeholder={translate('::Abp.Identity.User.UserInformation.IssuedDate')}
|
||||
placeholder={translate(
|
||||
'::Abp.Identity.User.UserInformation.IssuedDate',
|
||||
)}
|
||||
onChange={(date) => {
|
||||
form.setFieldValue(
|
||||
field.name,
|
||||
|
|
@ -924,7 +951,9 @@ function UserDetails() {
|
|||
<Field
|
||||
type="text"
|
||||
name="birthPlace"
|
||||
placeholder={translate('::Abp.Identity.User.UserInformation.BirthPlace')}
|
||||
placeholder={translate(
|
||||
'::Abp.Identity.User.UserInformation.BirthPlace',
|
||||
)}
|
||||
component={Input}
|
||||
/>
|
||||
</FormItem>
|
||||
|
|
@ -940,7 +969,9 @@ function UserDetails() {
|
|||
field={field}
|
||||
form={form}
|
||||
value={field.value ? dayjs(field.value).toDate() : null}
|
||||
placeholder={translate('::Abp.Identity.User.UserInformation.BirthDate')}
|
||||
placeholder={translate(
|
||||
'::Abp.Identity.User.UserInformation.BirthDate',
|
||||
)}
|
||||
onChange={(date) => {
|
||||
form.setFieldValue(
|
||||
field.name,
|
||||
|
|
@ -960,7 +991,9 @@ function UserDetails() {
|
|||
<Field
|
||||
type="text"
|
||||
name="fatherName"
|
||||
placeholder={translate('::Abp.Identity.User.UserInformation.FatherName')}
|
||||
placeholder={translate(
|
||||
'::Abp.Identity.User.UserInformation.FatherName',
|
||||
)}
|
||||
component={Input}
|
||||
/>
|
||||
</FormItem>
|
||||
|
|
@ -973,7 +1006,9 @@ function UserDetails() {
|
|||
<Field
|
||||
type="text"
|
||||
name="motherName"
|
||||
placeholder={translate('::Abp.Identity.User.UserInformation.MotherName')}
|
||||
placeholder={translate(
|
||||
'::Abp.Identity.User.UserInformation.MotherName',
|
||||
)}
|
||||
component={Input}
|
||||
/>
|
||||
</FormItem>
|
||||
|
|
@ -1012,7 +1047,9 @@ function UserDetails() {
|
|||
field={field}
|
||||
form={form}
|
||||
value={field.value ? dayjs(field.value).toDate() : null}
|
||||
placeholder={translate('::Abp.Identity.User.UserInformation.MarriageDate')}
|
||||
placeholder={translate(
|
||||
'::Abp.Identity.User.UserInformation.MarriageDate',
|
||||
)}
|
||||
onChange={(date) => {
|
||||
form.setFieldValue(
|
||||
field.name,
|
||||
|
|
@ -1026,13 +1063,10 @@ function UserDetails() {
|
|||
</div>
|
||||
</div>
|
||||
</FormContainer>
|
||||
</div>
|
||||
|
||||
<div className="w-1/2">
|
||||
<Button variant="solid" block loading={isSubmitting} type="submit">
|
||||
{isSubmitting ? translate('::SavingWithThreeDot') : translate('::Save')}
|
||||
</Button>
|
||||
</div>
|
||||
</Form>
|
||||
)
|
||||
}}
|
||||
|
|
@ -1073,9 +1107,8 @@ function UserDetails() {
|
|||
|
||||
return (
|
||||
<Form>
|
||||
<div className="w-1/2">
|
||||
<FormContainer size="md">
|
||||
<div className="grid grid-cols-1 lg:grid-cols-2 gap-2 w-full">
|
||||
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-2 w-full">
|
||||
{/* Account Status */}
|
||||
<div>
|
||||
<h6 className="mb-4">
|
||||
|
|
@ -1172,6 +1205,106 @@ function UserDetails() {
|
|||
'::Abp.Identity.User.LockoutManagement.LoginAndLockoutSettings',
|
||||
)}
|
||||
</h6>
|
||||
|
||||
<FormItem
|
||||
layout="horizontal"
|
||||
labelClass="!justify-start"
|
||||
labelWidth="50%"
|
||||
label={translate(
|
||||
'::Abp.Identity.User.LockoutManagement.AccountLockoutEnabled',
|
||||
)}
|
||||
>
|
||||
<Field
|
||||
name="lockoutEnabled"
|
||||
placeholder={translate(
|
||||
'::Abp.Identity.User.LockoutManagement.AccountLockoutEnabled',
|
||||
)}
|
||||
component={Checkbox}
|
||||
/>
|
||||
</FormItem>
|
||||
|
||||
<FormItem
|
||||
layout="horizontal"
|
||||
labelClass="!justify-start"
|
||||
labelWidth="50%"
|
||||
label={translate(
|
||||
'::Abp.Identity.User.LockoutManagement.AccountLocked',
|
||||
)}
|
||||
>
|
||||
<Field
|
||||
name="lockUser"
|
||||
placeholder={translate(
|
||||
'::Abp.Identity.User.LockoutManagement.AccountLocked',
|
||||
)}
|
||||
component={Checkbox}
|
||||
disabled={values.lockoutEnabled === false}
|
||||
/>
|
||||
</FormItem>
|
||||
|
||||
<FormItem
|
||||
layout="horizontal"
|
||||
labelClass="!justify-start"
|
||||
labelWidth="50%"
|
||||
label={translate(
|
||||
'::Abp.Identity.User.LockoutManagement.AccountEndDate',
|
||||
)}
|
||||
>
|
||||
<Field name="lockoutEnd">
|
||||
{({ field, form }: FieldProps) => (
|
||||
<DatePicker
|
||||
field={field}
|
||||
form={form}
|
||||
value={field.value ? dayjs(field.value).toDate() : null}
|
||||
placeholder={translate(
|
||||
'::Abp.Identity.User.LockoutManagement.AccountEndDate',
|
||||
)}
|
||||
onChange={(date) => {
|
||||
form.setFieldValue(
|
||||
field.name,
|
||||
date ? dayjs(date).format('YYYY-MM-DDTHH:mm:ss') : null,
|
||||
)
|
||||
}}
|
||||
disabled={values.lockoutEnabled === false}
|
||||
/>
|
||||
)}
|
||||
</Field>
|
||||
</FormItem>
|
||||
|
||||
<FormItem
|
||||
layout="horizontal"
|
||||
labelClass="!justify-start"
|
||||
labelWidth="50%"
|
||||
label={translate(
|
||||
'::Abp.Identity.User.LockoutManagement.ShouldChangePwOnNextLogin',
|
||||
)}
|
||||
>
|
||||
<Field
|
||||
name="shouldChangePasswordOnNextLogin"
|
||||
placeholder={translate(
|
||||
'::Abp.Identity.User.LockoutManagement.ShouldChangePwOnNextLogin',
|
||||
)}
|
||||
component={Checkbox}
|
||||
/>
|
||||
</FormItem>
|
||||
|
||||
<FormItem
|
||||
layout="horizontal"
|
||||
labelClass="!justify-start"
|
||||
labelWidth="50%"
|
||||
label={translate(
|
||||
'::Abp.Identity.User.LockoutManagement.AccessFailedCount',
|
||||
)}
|
||||
>
|
||||
<Field type="number" name="accessFailedCount" component={Input} />
|
||||
</FormItem>
|
||||
</div>
|
||||
|
||||
{/* Login & Lockout Settings */}
|
||||
<div>
|
||||
<h6 className="mb-4">
|
||||
{translate('::Abp.Identity.User.LockoutManagement.ConnectionsTimes')}
|
||||
</h6>
|
||||
|
||||
<FormItem
|
||||
layout="horizontal"
|
||||
labelClass="!justify-start"
|
||||
|
|
@ -1223,106 +1356,13 @@ function UserDetails() {
|
|||
)}
|
||||
</Field>
|
||||
</FormItem>
|
||||
|
||||
<FormItem
|
||||
layout="horizontal"
|
||||
labelClass="!justify-start"
|
||||
labelWidth="50%"
|
||||
label={translate(
|
||||
'::Abp.Identity.User.LockoutManagement.AccountLockoutEnabled',
|
||||
)}
|
||||
>
|
||||
<Field
|
||||
name="lockoutEnabled"
|
||||
placeholder={translate(
|
||||
'::Abp.Identity.User.LockoutManagement.AccountLockoutEnabled',
|
||||
)}
|
||||
component={Checkbox}
|
||||
/>
|
||||
</FormItem>
|
||||
|
||||
<FormItem
|
||||
layout="horizontal"
|
||||
labelClass="!justify-start"
|
||||
labelWidth="50%"
|
||||
label={translate(
|
||||
'::Abp.Identity.User.LockoutManagement.AccountLocked',
|
||||
)}
|
||||
>
|
||||
<Field
|
||||
name="lockUser"
|
||||
placeholder={translate(
|
||||
'::Abp.Identity.User.LockoutManagement.AccountLocked',
|
||||
)}
|
||||
component={Checkbox}
|
||||
/>
|
||||
</FormItem>
|
||||
|
||||
<FormItem
|
||||
layout="horizontal"
|
||||
labelClass="!justify-start"
|
||||
labelWidth="50%"
|
||||
label={translate(
|
||||
'::Abp.Identity.User.LockoutManagement.AccountEndDate',
|
||||
)}
|
||||
>
|
||||
<Field name="lockoutEnd">
|
||||
{({ field, form }: FieldProps) => (
|
||||
<DatePicker
|
||||
field={field}
|
||||
form={form}
|
||||
value={field.value ? dayjs(field.value).toDate() : null}
|
||||
placeholder={translate(
|
||||
'::Abp.Identity.User.LockoutManagement.AccountEndDate',
|
||||
)}
|
||||
onChange={(date) => {
|
||||
form.setFieldValue(
|
||||
field.name,
|
||||
date ? dayjs(date).format('YYYY-MM-DDTHH:mm:ss') : null,
|
||||
)
|
||||
}}
|
||||
/>
|
||||
)}
|
||||
</Field>
|
||||
</FormItem>
|
||||
|
||||
<FormItem
|
||||
layout="horizontal"
|
||||
labelClass="!justify-start"
|
||||
labelWidth="50%"
|
||||
label={translate(
|
||||
'::Abp.Identity.User.LockoutManagement.ShouldChangePwOnNextLogin',
|
||||
)}
|
||||
>
|
||||
<Field
|
||||
name="shouldChangePasswordOnNextLogin"
|
||||
placeholder={translate(
|
||||
'::Abp.Identity.User.LockoutManagement.ShouldChangePwOnNextLogin',
|
||||
)}
|
||||
component={Checkbox}
|
||||
/>
|
||||
</FormItem>
|
||||
|
||||
<FormItem
|
||||
layout="horizontal"
|
||||
labelClass="!justify-start"
|
||||
labelWidth="50%"
|
||||
label={translate(
|
||||
'::Abp.Identity.User.LockoutManagement.AccessFailedCount',
|
||||
)}
|
||||
>
|
||||
<Field type="number" name="accessFailedCount" component={Input} />
|
||||
</FormItem>
|
||||
</div>
|
||||
</div>
|
||||
</FormContainer>
|
||||
</div>
|
||||
|
||||
<div className="w-1/2">
|
||||
<Button variant="solid" block loading={isSubmitting} type="submit">
|
||||
{isSubmitting ? translate('::SavingWithThreeDot') : translate('::Save')}
|
||||
</Button>
|
||||
</div>
|
||||
</Form>
|
||||
)
|
||||
}}
|
||||
|
|
@ -1331,7 +1371,7 @@ function UserDetails() {
|
|||
</TabContent>
|
||||
|
||||
<TabContent value="claimTypes">
|
||||
<div className="mt-5 w-1/2">
|
||||
<div className="mt-5">
|
||||
<Table compact>
|
||||
<THead>
|
||||
<Tr>
|
||||
|
|
|
|||
Loading…
Reference in a new issue