diff --git a/frontend/src/pages/clients/ClientFormModal.tsx b/frontend/src/pages/clients/ClientFormModal.tsx
index 7761466f..f605c137 100644
--- a/frontend/src/pages/clients/ClientFormModal.tsx
+++ b/frontend/src/pages/clients/ClientFormModal.tsx
@@ -79,6 +79,7 @@ interface FormState {
expiryDate: Dayjs | null;
delayedStart: boolean;
delayedDays: number;
+ reset: number;
limitIp: number;
tgId: number;
comment: string;
@@ -99,6 +100,7 @@ function emptyForm(): FormState {
expiryDate: null,
delayedStart: false,
delayedDays: 0,
+ reset: 0,
limitIp: 0,
tgId: 0,
comment: '',
@@ -157,6 +159,7 @@ export default function ClientFormModal({
flow: client.flow || '',
reverseTag: client.reverse?.tag || '',
totalGB: bytesToGB(client.totalGB || 0),
+ reset: Number(client.reset) || 0,
limitIp: client.limitIp || 0,
tgId: Number(client.tgId) || 0,
comment: client.comment || '',
@@ -280,6 +283,7 @@ export default function ClientFormModal({
totalGB: form.totalGB,
delayedStart: form.delayedStart,
delayedDays: form.delayedDays,
+ reset: form.reset,
limitIp: form.limitIp,
tgId: form.tgId,
comment: form.comment,
@@ -303,6 +307,7 @@ export default function ClientFormModal({
flow: showFlow ? (form.flow || '') : '',
totalGB: gbToBytes(form.totalGB),
expiryTime,
+ reset: Number(form.reset) || 0,
limitIp: Number(form.limitIp) || 0,
tgId: Number(form.tgId) || 0,
comment: form.comment,
@@ -452,32 +457,39 @@ export default function ClientFormModal({
- {(showFlow || showReverseTag) && (
-
- {showFlow && (
-
-
-
-
- )}
- {showReverseTag && (
-
-
- update('reverseTag', e.target.value)} />
-
-
- )}
-
- )}
+
+
+
+ update('reset', Number(v) || 0)} />
+
+
+ {showReverseTag && (
+
+
+ update('reverseTag', e.target.value)} />
+
+
+ )}
+ {showFlow && (
+
+
+
+
+ )}
+
{tgBotEnable && (
diff --git a/frontend/src/schemas/client.ts b/frontend/src/schemas/client.ts
index dd792477..7ba880d8 100644
--- a/frontend/src/schemas/client.ts
+++ b/frontend/src/schemas/client.ts
@@ -108,6 +108,7 @@ export const ClientFormSchema = z.object({
totalGB: z.number().min(0),
delayedStart: z.boolean(),
delayedDays: z.number().int().min(0),
+ reset: z.number().int().min(0),
limitIp: z.number().int().min(0),
tgId: z.number().int().min(0),
comment: z.string(),