mirror of
https://github.com/perfect-panel/ppanel-web.git
synced 2026-02-16 13:21:10 -05:00
✨ feat(relay): Add relay mode configuration and update related schemas
This commit is contained in:
parent
c44ad47f3c
commit
3cc94773ef
@ -92,9 +92,17 @@ const baseFormSchema = z.object({
|
|||||||
speed_limit: z.number().nullish(),
|
speed_limit: z.number().nullish(),
|
||||||
traffic_ratio: z.number().default(1),
|
traffic_ratio: z.number().default(1),
|
||||||
group_id: z.number().nullish(),
|
group_id: z.number().nullish(),
|
||||||
enable_relay: z.boolean().nullish().default(false),
|
relay_mode: z.string().nullish().default('none'),
|
||||||
relay_host: nullableString,
|
relay_node: z
|
||||||
relay_port: portSchema,
|
.array(
|
||||||
|
z.object({
|
||||||
|
host: z.string(),
|
||||||
|
port: portSchema,
|
||||||
|
prefix: z.string().nullish(),
|
||||||
|
}),
|
||||||
|
)
|
||||||
|
.nullish()
|
||||||
|
.default([]),
|
||||||
});
|
});
|
||||||
|
|
||||||
export const formSchema = z.intersection(baseFormSchema, protocolConfigSchema);
|
export const formSchema = z.intersection(baseFormSchema, protocolConfigSchema);
|
||||||
|
|||||||
@ -33,6 +33,7 @@ import {
|
|||||||
import { Switch } from '@workspace/ui/components/switch';
|
import { Switch } from '@workspace/ui/components/switch';
|
||||||
import { Tabs, TabsList, TabsTrigger } from '@workspace/ui/components/tabs';
|
import { Tabs, TabsList, TabsTrigger } from '@workspace/ui/components/tabs';
|
||||||
import { Combobox } from '@workspace/ui/custom-components/combobox';
|
import { Combobox } from '@workspace/ui/custom-components/combobox';
|
||||||
|
import { ArrayInput } from '@workspace/ui/custom-components/dynamic-Inputs';
|
||||||
import { EnhancedInput } from '@workspace/ui/custom-components/enhanced-input';
|
import { EnhancedInput } from '@workspace/ui/custom-components/enhanced-input';
|
||||||
import { cn } from '@workspace/ui/lib/utils';
|
import { cn } from '@workspace/ui/lib/utils';
|
||||||
import { unitConversion } from '@workspace/ui/utils';
|
import { unitConversion } from '@workspace/ui/utils';
|
||||||
@ -75,6 +76,7 @@ export default function NodeForm<T extends { [x: string]: any }>({
|
|||||||
const protocol = form.watch('protocol');
|
const protocol = form.watch('protocol');
|
||||||
const transport = form.watch('config.transport');
|
const transport = form.watch('config.transport');
|
||||||
const security = form.watch('config.security');
|
const security = form.watch('config.security');
|
||||||
|
const relayMode = form.watch('relay_mode');
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
form?.reset(initialValues);
|
form?.reset(initialValues);
|
||||||
@ -105,7 +107,7 @@ export default function NodeForm<T extends { [x: string]: any }>({
|
|||||||
{trigger}
|
{trigger}
|
||||||
</Button>
|
</Button>
|
||||||
</SheetTrigger>
|
</SheetTrigger>
|
||||||
<SheetContent className='w-[500px] max-w-full md:max-w-screen-md'>
|
<SheetContent className='w-[520px] max-w-full md:max-w-screen-md'>
|
||||||
<SheetHeader>
|
<SheetHeader>
|
||||||
<SheetTitle>{title}</SheetTitle>
|
<SheetTitle>{title}</SheetTitle>
|
||||||
</SheetHeader>
|
</SheetHeader>
|
||||||
@ -214,65 +216,6 @@ export default function NodeForm<T extends { [x: string]: any }>({
|
|||||||
</FormItem>
|
</FormItem>
|
||||||
)}
|
)}
|
||||||
/>
|
/>
|
||||||
<FormField
|
|
||||||
control={form.control}
|
|
||||||
name='enable_relay'
|
|
||||||
render={({ field }) => (
|
|
||||||
<FormItem>
|
|
||||||
<FormLabel>{t('form.enableRelay')}</FormLabel>
|
|
||||||
<FormControl>
|
|
||||||
<div className='pt-2'>
|
|
||||||
<Switch
|
|
||||||
checked={!!field.value}
|
|
||||||
onCheckedChange={(value) => {
|
|
||||||
form.setValue(field.name, value);
|
|
||||||
}}
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</FormControl>
|
|
||||||
<FormMessage />
|
|
||||||
</FormItem>
|
|
||||||
)}
|
|
||||||
/>
|
|
||||||
<FormField
|
|
||||||
control={form.control}
|
|
||||||
name='relay_host'
|
|
||||||
render={({ field }) => (
|
|
||||||
<FormItem>
|
|
||||||
<FormLabel>{t('form.relayHost')}</FormLabel>
|
|
||||||
<FormControl>
|
|
||||||
<EnhancedInput
|
|
||||||
{...field}
|
|
||||||
onValueChange={(value) => {
|
|
||||||
form.setValue(field.name, value);
|
|
||||||
}}
|
|
||||||
/>
|
|
||||||
</FormControl>
|
|
||||||
<FormMessage />
|
|
||||||
</FormItem>
|
|
||||||
)}
|
|
||||||
/>
|
|
||||||
<FormField
|
|
||||||
control={form.control}
|
|
||||||
name='relay_port'
|
|
||||||
render={({ field }) => (
|
|
||||||
<FormItem>
|
|
||||||
<FormLabel>{t('form.relayPort')}</FormLabel>
|
|
||||||
<FormControl>
|
|
||||||
<EnhancedInput
|
|
||||||
{...field}
|
|
||||||
type='number'
|
|
||||||
min={1}
|
|
||||||
max={65535}
|
|
||||||
onValueChange={(value) => {
|
|
||||||
form.setValue(field.name, value);
|
|
||||||
}}
|
|
||||||
/>
|
|
||||||
</FormControl>
|
|
||||||
<FormMessage />
|
|
||||||
</FormItem>
|
|
||||||
)}
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<FormField
|
<FormField
|
||||||
@ -358,6 +301,7 @@ export default function NodeForm<T extends { [x: string]: any }>({
|
|||||||
<EnhancedInput
|
<EnhancedInput
|
||||||
{...field}
|
{...field}
|
||||||
type='number'
|
type='number'
|
||||||
|
placeholder='1-65535'
|
||||||
min={1}
|
min={1}
|
||||||
max={65535}
|
max={65535}
|
||||||
onValueChange={(value) => {
|
onValueChange={(value) => {
|
||||||
@ -389,6 +333,7 @@ export default function NodeForm<T extends { [x: string]: any }>({
|
|||||||
<EnhancedInput
|
<EnhancedInput
|
||||||
{...field}
|
{...field}
|
||||||
type='number'
|
type='number'
|
||||||
|
placeholder='1-65535'
|
||||||
onValueChange={(value) => {
|
onValueChange={(value) => {
|
||||||
form.setValue(field.name, value);
|
form.setValue(field.name, value);
|
||||||
}}
|
}}
|
||||||
@ -499,7 +444,7 @@ export default function NodeForm<T extends { [x: string]: any }>({
|
|||||||
control={form.control}
|
control={form.control}
|
||||||
name='config.transport'
|
name='config.transport'
|
||||||
render={({ field }) => (
|
render={({ field }) => (
|
||||||
<FormItem className='min-w-32'>
|
<FormItem className='!mt-0 min-w-32'>
|
||||||
<FormControl>
|
<FormControl>
|
||||||
<Select
|
<Select
|
||||||
value={field.value}
|
value={field.value}
|
||||||
@ -603,7 +548,7 @@ export default function NodeForm<T extends { [x: string]: any }>({
|
|||||||
control={form.control}
|
control={form.control}
|
||||||
name='config.security'
|
name='config.security'
|
||||||
render={({ field }) => (
|
render={({ field }) => (
|
||||||
<FormItem className='min-w-32'>
|
<FormItem className='!mt-0 min-w-32'>
|
||||||
<Select
|
<Select
|
||||||
value={field.value}
|
value={field.value}
|
||||||
onValueChange={(value) => {
|
onValueChange={(value) => {
|
||||||
@ -814,6 +759,84 @@ export default function NodeForm<T extends { [x: string]: any }>({
|
|||||||
</Card>
|
</Card>
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
|
<Card>
|
||||||
|
<CardHeader className='flex flex-row items-center justify-between p-3'>
|
||||||
|
<CardTitle>{t('form.relayMode')}</CardTitle>
|
||||||
|
<FormField
|
||||||
|
control={form.control}
|
||||||
|
name='relay_mode'
|
||||||
|
render={({ field }) => (
|
||||||
|
<FormItem className='!mt-0 min-w-32'>
|
||||||
|
<FormControl>
|
||||||
|
<Select
|
||||||
|
value={field.value}
|
||||||
|
onValueChange={(value) => {
|
||||||
|
form.setValue(field.name, value);
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<FormControl>
|
||||||
|
<SelectTrigger>
|
||||||
|
<SelectValue placeholder={t('form.selectRelayMode')} />
|
||||||
|
</SelectTrigger>
|
||||||
|
</FormControl>
|
||||||
|
<SelectContent>
|
||||||
|
<SelectItem value='none'>
|
||||||
|
{t('form.relayModeOptions.none')}
|
||||||
|
</SelectItem>
|
||||||
|
<SelectItem value='all'>{t('form.relayModeOptions.all')}</SelectItem>
|
||||||
|
<SelectItem value='random'>
|
||||||
|
{t('form.relayModeOptions.random')}
|
||||||
|
</SelectItem>
|
||||||
|
</SelectContent>
|
||||||
|
</Select>
|
||||||
|
</FormControl>
|
||||||
|
<FormMessage />
|
||||||
|
</FormItem>
|
||||||
|
)}
|
||||||
|
/>
|
||||||
|
</CardHeader>
|
||||||
|
{relayMode !== 'none' && (
|
||||||
|
<CardContent className='w-full space-y-3 px-3'>
|
||||||
|
<FormField
|
||||||
|
control={form.control}
|
||||||
|
name='relay_node'
|
||||||
|
render={({ field }) => (
|
||||||
|
<FormItem>
|
||||||
|
<FormControl>
|
||||||
|
<ArrayInput
|
||||||
|
fields={[
|
||||||
|
{
|
||||||
|
name: 'host',
|
||||||
|
type: 'text',
|
||||||
|
placeholder: t('form.relayHost'),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'port',
|
||||||
|
type: 'number',
|
||||||
|
min: 1,
|
||||||
|
max: 65535,
|
||||||
|
placeholder: t('form.relayPort'),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'prefix',
|
||||||
|
type: 'text',
|
||||||
|
placeholder: t('form.relayPrefix'),
|
||||||
|
},
|
||||||
|
]}
|
||||||
|
value={field.value}
|
||||||
|
onChange={(value) => {
|
||||||
|
form.setValue(field.name, value);
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
</FormControl>
|
||||||
|
<FormMessage />
|
||||||
|
</FormItem>
|
||||||
|
)}
|
||||||
|
/>
|
||||||
|
</CardContent>
|
||||||
|
)}
|
||||||
|
</Card>
|
||||||
</form>
|
</form>
|
||||||
</Form>
|
</Form>
|
||||||
</ScrollArea>
|
</ScrollArea>
|
||||||
|
|||||||
@ -177,7 +177,7 @@ export default function Node() {
|
|||||||
</Table>
|
</Table>
|
||||||
<div className='flex flex-col-reverse gap-8 px-4 pt-6 md:flex-row md:items-start'>
|
<div className='flex flex-col-reverse gap-8 px-4 pt-6 md:flex-row md:items-start'>
|
||||||
<div className='w-full md:w-1/2'>
|
<div className='w-full md:w-1/2'>
|
||||||
<ChartContainer config={chartConfig} className='mx-auto aspect-square max-w-[400px]'>
|
<ChartContainer config={chartConfig} className='mx-auto aspect-[4/3] max-w-[400px]'>
|
||||||
<PieChart>
|
<PieChart>
|
||||||
<Pie
|
<Pie
|
||||||
data={chartTimeSlots}
|
data={chartTimeSlots}
|
||||||
|
|||||||
@ -49,7 +49,6 @@
|
|||||||
"confirm": "Potvrdit",
|
"confirm": "Potvrdit",
|
||||||
"edit": "Upravit",
|
"edit": "Upravit",
|
||||||
"editSecurity": "Upravit nastavení zabezpečení",
|
"editSecurity": "Upravit nastavení zabezpečení",
|
||||||
"enableRelay": "Povolit přenos",
|
|
||||||
"enableTLS": "Povolit TLS",
|
"enableTLS": "Povolit TLS",
|
||||||
"encryptionMethod": "Metoda šifrování",
|
"encryptionMethod": "Metoda šifrování",
|
||||||
"flow": "Algoritmus řízení toku",
|
"flow": "Algoritmus řízení toku",
|
||||||
@ -65,7 +64,14 @@
|
|||||||
"port": "Port služby",
|
"port": "Port služby",
|
||||||
"protocol": "Protokol",
|
"protocol": "Protokol",
|
||||||
"relayHost": "Adresa přenosu",
|
"relayHost": "Adresa přenosu",
|
||||||
|
"relayMode": "Režim relé",
|
||||||
|
"relayModeOptions": {
|
||||||
|
"all": "Vše",
|
||||||
|
"none": "Žádný",
|
||||||
|
"random": "Náhodný"
|
||||||
|
},
|
||||||
"relayPort": "Port přenosu",
|
"relayPort": "Port přenosu",
|
||||||
|
"relayPrefix": "Předpona relé",
|
||||||
"remarks": "Poznámky",
|
"remarks": "Poznámky",
|
||||||
"security": "Zabezpečení",
|
"security": "Zabezpečení",
|
||||||
"securityConfig": "Nastavení zabezpečení",
|
"securityConfig": "Nastavení zabezpečení",
|
||||||
@ -88,6 +94,7 @@
|
|||||||
"selectEncryptionMethod": "Vyberte metodu šifrování",
|
"selectEncryptionMethod": "Vyberte metodu šifrování",
|
||||||
"selectNodeGroup": "Vyberte skupinu uzlů",
|
"selectNodeGroup": "Vyberte skupinu uzlů",
|
||||||
"selectProtocol": "Vyberte protokol",
|
"selectProtocol": "Vyberte protokol",
|
||||||
|
"selectRelayMode": "Vyberte režim relé",
|
||||||
"serverAddr": "Adresa serveru",
|
"serverAddr": "Adresa serveru",
|
||||||
"serverName": "Název služby",
|
"serverName": "Název služby",
|
||||||
"speedLimit": "Omezení rychlosti",
|
"speedLimit": "Omezení rychlosti",
|
||||||
|
|||||||
@ -49,7 +49,6 @@
|
|||||||
"confirm": "Bestätigen",
|
"confirm": "Bestätigen",
|
||||||
"edit": "Bearbeiten",
|
"edit": "Bearbeiten",
|
||||||
"editSecurity": "Sicherheitskonfiguration bearbeiten",
|
"editSecurity": "Sicherheitskonfiguration bearbeiten",
|
||||||
"enableRelay": "Relay aktivieren",
|
|
||||||
"enableTLS": "TLS aktivieren",
|
"enableTLS": "TLS aktivieren",
|
||||||
"encryptionMethod": "Verschlüsselungsmethode",
|
"encryptionMethod": "Verschlüsselungsmethode",
|
||||||
"flow": "Flusskontrollalgorithmus",
|
"flow": "Flusskontrollalgorithmus",
|
||||||
@ -65,7 +64,14 @@
|
|||||||
"port": "Serverport",
|
"port": "Serverport",
|
||||||
"protocol": "Protokoll",
|
"protocol": "Protokoll",
|
||||||
"relayHost": "Relay-Adresse",
|
"relayHost": "Relay-Adresse",
|
||||||
|
"relayMode": "Relaismodus",
|
||||||
|
"relayModeOptions": {
|
||||||
|
"all": "Alle",
|
||||||
|
"none": "Keine",
|
||||||
|
"random": "Zufällig"
|
||||||
|
},
|
||||||
"relayPort": "Relay-Port",
|
"relayPort": "Relay-Port",
|
||||||
|
"relayPrefix": "Relaispräfix",
|
||||||
"remarks": "Bemerkungen",
|
"remarks": "Bemerkungen",
|
||||||
"security": "Sicherheit",
|
"security": "Sicherheit",
|
||||||
"securityConfig": "Sicherheitskonfiguration",
|
"securityConfig": "Sicherheitskonfiguration",
|
||||||
@ -88,6 +94,7 @@
|
|||||||
"selectEncryptionMethod": "Verschlüsselungsmethode auswählen",
|
"selectEncryptionMethod": "Verschlüsselungsmethode auswählen",
|
||||||
"selectNodeGroup": "Knotengruppe auswählen",
|
"selectNodeGroup": "Knotengruppe auswählen",
|
||||||
"selectProtocol": "Protokoll auswählen",
|
"selectProtocol": "Protokoll auswählen",
|
||||||
|
"selectRelayMode": "Relaismodus auswählen",
|
||||||
"serverAddr": "Serveradresse",
|
"serverAddr": "Serveradresse",
|
||||||
"serverName": "Dienstname",
|
"serverName": "Dienstname",
|
||||||
"speedLimit": "Geschwindigkeitsbegrenzung",
|
"speedLimit": "Geschwindigkeitsbegrenzung",
|
||||||
|
|||||||
@ -49,7 +49,6 @@
|
|||||||
"confirm": "Confirm",
|
"confirm": "Confirm",
|
||||||
"edit": "Edit",
|
"edit": "Edit",
|
||||||
"editSecurity": "Edit Security Configuration",
|
"editSecurity": "Edit Security Configuration",
|
||||||
"enableRelay": "Enable Relay",
|
|
||||||
"enableTLS": "Enable TLS",
|
"enableTLS": "Enable TLS",
|
||||||
"encryptionMethod": "Encryption Method",
|
"encryptionMethod": "Encryption Method",
|
||||||
"flow": "Flow Control Algorithm",
|
"flow": "Flow Control Algorithm",
|
||||||
@ -62,10 +61,18 @@
|
|||||||
"obfsPasswordPlaceholder": "Leave blank for no obfuscation",
|
"obfsPasswordPlaceholder": "Leave blank for no obfuscation",
|
||||||
"path": "Path",
|
"path": "Path",
|
||||||
"pleaseSelect": "Please Select",
|
"pleaseSelect": "Please Select",
|
||||||
|
"selectRelayMode": "Select Relay Mode",
|
||||||
|
"relayModeOptions": {
|
||||||
|
"none": "None",
|
||||||
|
"all": "All",
|
||||||
|
"random": "Random"
|
||||||
|
},
|
||||||
"port": "Server Port",
|
"port": "Server Port",
|
||||||
"protocol": "Protocol",
|
"protocol": "Protocol",
|
||||||
|
"relayMode": "Relay Mode",
|
||||||
"relayHost": "Relay Host",
|
"relayHost": "Relay Host",
|
||||||
"relayPort": "Relay Port",
|
"relayPort": "Relay Port",
|
||||||
|
"relayPrefix": "Relay Prefix",
|
||||||
"remarks": "Remarks",
|
"remarks": "Remarks",
|
||||||
"security": "Security",
|
"security": "Security",
|
||||||
"securityConfig": "Security Configuration",
|
"securityConfig": "Security Configuration",
|
||||||
|
|||||||
@ -49,7 +49,6 @@
|
|||||||
"confirm": "Confirmar",
|
"confirm": "Confirmar",
|
||||||
"edit": "Editar",
|
"edit": "Editar",
|
||||||
"editSecurity": "Editar configuración de seguridad",
|
"editSecurity": "Editar configuración de seguridad",
|
||||||
"enableRelay": "Habilitar retransmisión",
|
|
||||||
"enableTLS": "Habilitar TLS",
|
"enableTLS": "Habilitar TLS",
|
||||||
"encryptionMethod": "Método de encriptación",
|
"encryptionMethod": "Método de encriptación",
|
||||||
"flow": "Algoritmo de control de flujo",
|
"flow": "Algoritmo de control de flujo",
|
||||||
@ -65,7 +64,14 @@
|
|||||||
"port": "Puerto del servidor",
|
"port": "Puerto del servidor",
|
||||||
"protocol": "Protocolo",
|
"protocol": "Protocolo",
|
||||||
"relayHost": "Dirección de retransmisión",
|
"relayHost": "Dirección de retransmisión",
|
||||||
|
"relayMode": "Modo de retransmisión",
|
||||||
|
"relayModeOptions": {
|
||||||
|
"all": "Todos",
|
||||||
|
"none": "Ninguno",
|
||||||
|
"random": "Aleatorio"
|
||||||
|
},
|
||||||
"relayPort": "Puerto de retransmisión",
|
"relayPort": "Puerto de retransmisión",
|
||||||
|
"relayPrefix": "Prefijo de retransmisión",
|
||||||
"remarks": "Observaciones",
|
"remarks": "Observaciones",
|
||||||
"security": "Seguridad",
|
"security": "Seguridad",
|
||||||
"securityConfig": "Configuración de seguridad",
|
"securityConfig": "Configuración de seguridad",
|
||||||
@ -88,6 +94,7 @@
|
|||||||
"selectEncryptionMethod": "Seleccionar método de encriptación",
|
"selectEncryptionMethod": "Seleccionar método de encriptación",
|
||||||
"selectNodeGroup": "Seleccionar grupo de nodos",
|
"selectNodeGroup": "Seleccionar grupo de nodos",
|
||||||
"selectProtocol": "Seleccionar protocolo",
|
"selectProtocol": "Seleccionar protocolo",
|
||||||
|
"selectRelayMode": "Seleccionar modo de retransmisión",
|
||||||
"serverAddr": "Dirección del servidor",
|
"serverAddr": "Dirección del servidor",
|
||||||
"serverName": "Nombre del servicio",
|
"serverName": "Nombre del servicio",
|
||||||
"speedLimit": "Límite de velocidad",
|
"speedLimit": "Límite de velocidad",
|
||||||
|
|||||||
@ -49,7 +49,6 @@
|
|||||||
"confirm": "Confirmar",
|
"confirm": "Confirmar",
|
||||||
"edit": "Editar",
|
"edit": "Editar",
|
||||||
"editSecurity": "Editar configuración de seguridad",
|
"editSecurity": "Editar configuración de seguridad",
|
||||||
"enableRelay": "Habilitar retransmisión",
|
|
||||||
"enableTLS": "Habilitar TLS",
|
"enableTLS": "Habilitar TLS",
|
||||||
"encryptionMethod": "Método de encriptación",
|
"encryptionMethod": "Método de encriptación",
|
||||||
"flow": "Algoritmo de control de flujo",
|
"flow": "Algoritmo de control de flujo",
|
||||||
@ -65,7 +64,14 @@
|
|||||||
"port": "Puerto del servidor",
|
"port": "Puerto del servidor",
|
||||||
"protocol": "Protocolo",
|
"protocol": "Protocolo",
|
||||||
"relayHost": "Dirección de retransmisión",
|
"relayHost": "Dirección de retransmisión",
|
||||||
|
"relayMode": "Modo de retransmisión",
|
||||||
|
"relayModeOptions": {
|
||||||
|
"all": "Todos",
|
||||||
|
"none": "Ninguno",
|
||||||
|
"random": "Aleatorio"
|
||||||
|
},
|
||||||
"relayPort": "Puerto de retransmisión",
|
"relayPort": "Puerto de retransmisión",
|
||||||
|
"relayPrefix": "Prefijo de retransmisión",
|
||||||
"remarks": "Comentarios",
|
"remarks": "Comentarios",
|
||||||
"security": "Seguridad",
|
"security": "Seguridad",
|
||||||
"securityConfig": "Configuración de seguridad",
|
"securityConfig": "Configuración de seguridad",
|
||||||
@ -88,6 +94,7 @@
|
|||||||
"selectEncryptionMethod": "Seleccionar método de encriptación",
|
"selectEncryptionMethod": "Seleccionar método de encriptación",
|
||||||
"selectNodeGroup": "Seleccionar grupo de nodos",
|
"selectNodeGroup": "Seleccionar grupo de nodos",
|
||||||
"selectProtocol": "Seleccionar protocolo",
|
"selectProtocol": "Seleccionar protocolo",
|
||||||
|
"selectRelayMode": "Seleccionar modo de retransmisión",
|
||||||
"serverAddr": "Dirección del servidor",
|
"serverAddr": "Dirección del servidor",
|
||||||
"serverName": "Nombre del servicio",
|
"serverName": "Nombre del servicio",
|
||||||
"speedLimit": "Límite de velocidad",
|
"speedLimit": "Límite de velocidad",
|
||||||
|
|||||||
@ -49,7 +49,6 @@
|
|||||||
"confirm": "تأیید",
|
"confirm": "تأیید",
|
||||||
"edit": "ویرایش",
|
"edit": "ویرایش",
|
||||||
"editSecurity": "ویرایش تنظیمات امنیتی",
|
"editSecurity": "ویرایش تنظیمات امنیتی",
|
||||||
"enableRelay": "فعالسازی رله",
|
|
||||||
"enableTLS": "فعالسازی TLS",
|
"enableTLS": "فعالسازی TLS",
|
||||||
"encryptionMethod": "روش رمزنگاری",
|
"encryptionMethod": "روش رمزنگاری",
|
||||||
"flow": "الگوریتم کنترل جریان",
|
"flow": "الگوریتم کنترل جریان",
|
||||||
@ -65,7 +64,14 @@
|
|||||||
"port": "پورت سرور",
|
"port": "پورت سرور",
|
||||||
"protocol": "پروتکل",
|
"protocol": "پروتکل",
|
||||||
"relayHost": "میزبان رله",
|
"relayHost": "میزبان رله",
|
||||||
|
"relayMode": "حالت رله",
|
||||||
|
"relayModeOptions": {
|
||||||
|
"all": "همه",
|
||||||
|
"none": "هیچکدام",
|
||||||
|
"random": "تصادفی"
|
||||||
|
},
|
||||||
"relayPort": "پورت رله",
|
"relayPort": "پورت رله",
|
||||||
|
"relayPrefix": "پیشوند رله",
|
||||||
"remarks": "توضیحات",
|
"remarks": "توضیحات",
|
||||||
"security": "امنیت",
|
"security": "امنیت",
|
||||||
"securityConfig": "پیکربندی امنیتی",
|
"securityConfig": "پیکربندی امنیتی",
|
||||||
@ -88,6 +94,7 @@
|
|||||||
"selectEncryptionMethod": "انتخاب روش رمزنگاری",
|
"selectEncryptionMethod": "انتخاب روش رمزنگاری",
|
||||||
"selectNodeGroup": "انتخاب گروه گره",
|
"selectNodeGroup": "انتخاب گروه گره",
|
||||||
"selectProtocol": "انتخاب پروتکل",
|
"selectProtocol": "انتخاب پروتکل",
|
||||||
|
"selectRelayMode": "انتخاب حالت رله",
|
||||||
"serverAddr": "آدرس سرور",
|
"serverAddr": "آدرس سرور",
|
||||||
"serverName": "نام سرویس",
|
"serverName": "نام سرویس",
|
||||||
"speedLimit": "محدودیت سرعت",
|
"speedLimit": "محدودیت سرعت",
|
||||||
|
|||||||
@ -49,7 +49,6 @@
|
|||||||
"confirm": "Vahvista",
|
"confirm": "Vahvista",
|
||||||
"edit": "Muokkaa",
|
"edit": "Muokkaa",
|
||||||
"editSecurity": "Muokkaa suojausasetuksia",
|
"editSecurity": "Muokkaa suojausasetuksia",
|
||||||
"enableRelay": "Ota välitys käyttöön",
|
|
||||||
"enableTLS": "Ota TLS käyttöön",
|
"enableTLS": "Ota TLS käyttöön",
|
||||||
"encryptionMethod": "Salausmenetelmä",
|
"encryptionMethod": "Salausmenetelmä",
|
||||||
"flow": "Virtausalgoritmi",
|
"flow": "Virtausalgoritmi",
|
||||||
@ -65,7 +64,14 @@
|
|||||||
"port": "Palvelinportti",
|
"port": "Palvelinportti",
|
||||||
"protocol": "Protokolla",
|
"protocol": "Protokolla",
|
||||||
"relayHost": "Välityksen osoite",
|
"relayHost": "Välityksen osoite",
|
||||||
|
"relayMode": "Välitystila",
|
||||||
|
"relayModeOptions": {
|
||||||
|
"all": "Kaikki",
|
||||||
|
"none": "Ei mitään",
|
||||||
|
"random": "Satunnainen"
|
||||||
|
},
|
||||||
"relayPort": "Välityksen portti",
|
"relayPort": "Välityksen portti",
|
||||||
|
"relayPrefix": "Välitys etuliite",
|
||||||
"remarks": "Huomautukset",
|
"remarks": "Huomautukset",
|
||||||
"security": "Turvallisuus",
|
"security": "Turvallisuus",
|
||||||
"securityConfig": "Turvallisuusasetukset",
|
"securityConfig": "Turvallisuusasetukset",
|
||||||
@ -88,6 +94,7 @@
|
|||||||
"selectEncryptionMethod": "Valitse salausmenetelmä",
|
"selectEncryptionMethod": "Valitse salausmenetelmä",
|
||||||
"selectNodeGroup": "Valitse solmuryhmä",
|
"selectNodeGroup": "Valitse solmuryhmä",
|
||||||
"selectProtocol": "Valitse protokolla",
|
"selectProtocol": "Valitse protokolla",
|
||||||
|
"selectRelayMode": "Valitse välitystila",
|
||||||
"serverAddr": "Palvelimen osoite",
|
"serverAddr": "Palvelimen osoite",
|
||||||
"serverName": "Palvelimen nimi",
|
"serverName": "Palvelimen nimi",
|
||||||
"speedLimit": "Nopeusrajoitus",
|
"speedLimit": "Nopeusrajoitus",
|
||||||
|
|||||||
@ -49,7 +49,6 @@
|
|||||||
"confirm": "Confirmer",
|
"confirm": "Confirmer",
|
||||||
"edit": "Éditer",
|
"edit": "Éditer",
|
||||||
"editSecurity": "Éditer la configuration de sécurité",
|
"editSecurity": "Éditer la configuration de sécurité",
|
||||||
"enableRelay": "Activer le relais",
|
|
||||||
"enableTLS": "Activer TLS",
|
"enableTLS": "Activer TLS",
|
||||||
"encryptionMethod": "Méthode de cryptage",
|
"encryptionMethod": "Méthode de cryptage",
|
||||||
"flow": "Algorithme de contrôle de flux",
|
"flow": "Algorithme de contrôle de flux",
|
||||||
@ -65,7 +64,14 @@
|
|||||||
"port": "Port de service",
|
"port": "Port de service",
|
||||||
"protocol": "Protocole",
|
"protocol": "Protocole",
|
||||||
"relayHost": "Adresse de relais",
|
"relayHost": "Adresse de relais",
|
||||||
|
"relayMode": "Mode relais",
|
||||||
|
"relayModeOptions": {
|
||||||
|
"all": "Tous",
|
||||||
|
"none": "Aucun",
|
||||||
|
"random": "Aléatoire"
|
||||||
|
},
|
||||||
"relayPort": "Port de relais",
|
"relayPort": "Port de relais",
|
||||||
|
"relayPrefix": "Préfixe relais",
|
||||||
"remarks": "Remarques",
|
"remarks": "Remarques",
|
||||||
"security": "Sécurité",
|
"security": "Sécurité",
|
||||||
"securityConfig": "Configuration de sécurité",
|
"securityConfig": "Configuration de sécurité",
|
||||||
@ -88,6 +94,7 @@
|
|||||||
"selectEncryptionMethod": "Sélectionner la méthode de cryptage",
|
"selectEncryptionMethod": "Sélectionner la méthode de cryptage",
|
||||||
"selectNodeGroup": "Sélectionner le groupe de nœuds",
|
"selectNodeGroup": "Sélectionner le groupe de nœuds",
|
||||||
"selectProtocol": "Sélectionner le protocole",
|
"selectProtocol": "Sélectionner le protocole",
|
||||||
|
"selectRelayMode": "Sélectionner le mode relais",
|
||||||
"serverAddr": "Adresse du serveur",
|
"serverAddr": "Adresse du serveur",
|
||||||
"serverName": "Nom du service",
|
"serverName": "Nom du service",
|
||||||
"speedLimit": "Limite de vitesse",
|
"speedLimit": "Limite de vitesse",
|
||||||
|
|||||||
@ -49,7 +49,6 @@
|
|||||||
"confirm": "पुष्टि करें",
|
"confirm": "पुष्टि करें",
|
||||||
"edit": "संपादित करें",
|
"edit": "संपादित करें",
|
||||||
"editSecurity": "सुरक्षा कॉन्फ़िगरेशन संपादित करें",
|
"editSecurity": "सुरक्षा कॉन्फ़िगरेशन संपादित करें",
|
||||||
"enableRelay": "रिले सक्षम करें",
|
|
||||||
"enableTLS": "TLS सक्षम करें",
|
"enableTLS": "TLS सक्षम करें",
|
||||||
"encryptionMethod": "एन्क्रिप्शन विधि",
|
"encryptionMethod": "एन्क्रिप्शन विधि",
|
||||||
"flow": "फ्लो कंट्रोल एल्गोरिदम",
|
"flow": "फ्लो कंट्रोल एल्गोरिदम",
|
||||||
@ -65,7 +64,14 @@
|
|||||||
"port": "सर्वर पोर्ट",
|
"port": "सर्वर पोर्ट",
|
||||||
"protocol": "प्रोटोकॉल",
|
"protocol": "प्रोटोकॉल",
|
||||||
"relayHost": "रिले पता",
|
"relayHost": "रिले पता",
|
||||||
|
"relayMode": "रिले मोड",
|
||||||
|
"relayModeOptions": {
|
||||||
|
"all": "सभी",
|
||||||
|
"none": "कोई नहीं",
|
||||||
|
"random": "यादृच्छिक"
|
||||||
|
},
|
||||||
"relayPort": "रिले पोर्ट",
|
"relayPort": "रिले पोर्ट",
|
||||||
|
"relayPrefix": "रिले उपसर्ग",
|
||||||
"remarks": "टिप्पणियाँ",
|
"remarks": "टिप्पणियाँ",
|
||||||
"security": "सुरक्षा",
|
"security": "सुरक्षा",
|
||||||
"securityConfig": "सुरक्षा कॉन्फ़िगरेशन",
|
"securityConfig": "सुरक्षा कॉन्फ़िगरेशन",
|
||||||
@ -88,6 +94,7 @@
|
|||||||
"selectEncryptionMethod": "एन्क्रिप्शन विधि चुनें",
|
"selectEncryptionMethod": "एन्क्रिप्शन विधि चुनें",
|
||||||
"selectNodeGroup": "नोड समूह चुनें",
|
"selectNodeGroup": "नोड समूह चुनें",
|
||||||
"selectProtocol": "प्रोटोकॉल चुनें",
|
"selectProtocol": "प्रोटोकॉल चुनें",
|
||||||
|
"selectRelayMode": "रिले मोड चुनें",
|
||||||
"serverAddr": "सर्वर पता",
|
"serverAddr": "सर्वर पता",
|
||||||
"serverName": "सेवा नाम",
|
"serverName": "सेवा नाम",
|
||||||
"speedLimit": "गति सीमा",
|
"speedLimit": "गति सीमा",
|
||||||
|
|||||||
@ -49,7 +49,6 @@
|
|||||||
"confirm": "Megerősít",
|
"confirm": "Megerősít",
|
||||||
"edit": "Szerkesztés",
|
"edit": "Szerkesztés",
|
||||||
"editSecurity": "Biztonsági beállítások szerkesztése",
|
"editSecurity": "Biztonsági beállítások szerkesztése",
|
||||||
"enableRelay": "Átjátszás engedélyezése",
|
|
||||||
"enableTLS": "TLS engedélyezése",
|
"enableTLS": "TLS engedélyezése",
|
||||||
"encryptionMethod": "Titkosítási módszer",
|
"encryptionMethod": "Titkosítási módszer",
|
||||||
"flow": "Áramlásszabályozási algoritmus",
|
"flow": "Áramlásszabályozási algoritmus",
|
||||||
@ -65,7 +64,14 @@
|
|||||||
"port": "Szolgáltatási port",
|
"port": "Szolgáltatási port",
|
||||||
"protocol": "Protokoll",
|
"protocol": "Protokoll",
|
||||||
"relayHost": "Átjátszó cím",
|
"relayHost": "Átjátszó cím",
|
||||||
|
"relayMode": "Relé mód",
|
||||||
|
"relayModeOptions": {
|
||||||
|
"all": "Összes",
|
||||||
|
"none": "Nincs",
|
||||||
|
"random": "Véletlenszerű"
|
||||||
|
},
|
||||||
"relayPort": "Átjátszó port",
|
"relayPort": "Átjátszó port",
|
||||||
|
"relayPrefix": "Relé előtag",
|
||||||
"remarks": "Megjegyzések",
|
"remarks": "Megjegyzések",
|
||||||
"security": "Biztonság",
|
"security": "Biztonság",
|
||||||
"securityConfig": "Biztonsági beállítások",
|
"securityConfig": "Biztonsági beállítások",
|
||||||
@ -88,6 +94,7 @@
|
|||||||
"selectEncryptionMethod": "Válasszon titkosítási módszert",
|
"selectEncryptionMethod": "Válasszon titkosítási módszert",
|
||||||
"selectNodeGroup": "Válasszon csomópont csoportot",
|
"selectNodeGroup": "Válasszon csomópont csoportot",
|
||||||
"selectProtocol": "Válasszon protokollt",
|
"selectProtocol": "Válasszon protokollt",
|
||||||
|
"selectRelayMode": "Válassza ki a relé módot",
|
||||||
"serverAddr": "Szerver cím",
|
"serverAddr": "Szerver cím",
|
||||||
"serverName": "Szolgáltatás neve",
|
"serverName": "Szolgáltatás neve",
|
||||||
"speedLimit": "Sebességkorlátozás",
|
"speedLimit": "Sebességkorlátozás",
|
||||||
|
|||||||
@ -49,7 +49,6 @@
|
|||||||
"confirm": "確認",
|
"confirm": "確認",
|
||||||
"edit": "編集",
|
"edit": "編集",
|
||||||
"editSecurity": "セキュリティ設定を編集",
|
"editSecurity": "セキュリティ設定を編集",
|
||||||
"enableRelay": "リレーを有効化",
|
|
||||||
"enableTLS": "TLSを有効化",
|
"enableTLS": "TLSを有効化",
|
||||||
"encryptionMethod": "暗号化方式",
|
"encryptionMethod": "暗号化方式",
|
||||||
"flow": "フロー制御アルゴリズム",
|
"flow": "フロー制御アルゴリズム",
|
||||||
@ -65,7 +64,14 @@
|
|||||||
"port": "サーバーポート",
|
"port": "サーバーポート",
|
||||||
"protocol": "プロトコル",
|
"protocol": "プロトコル",
|
||||||
"relayHost": "リレーアドレス",
|
"relayHost": "リレーアドレス",
|
||||||
|
"relayMode": "リレーモード",
|
||||||
|
"relayModeOptions": {
|
||||||
|
"all": "すべて",
|
||||||
|
"none": "なし",
|
||||||
|
"random": "ランダム"
|
||||||
|
},
|
||||||
"relayPort": "リレーポート",
|
"relayPort": "リレーポート",
|
||||||
|
"relayPrefix": "リレープレフィックス",
|
||||||
"remarks": "備考",
|
"remarks": "備考",
|
||||||
"security": "セキュリティ",
|
"security": "セキュリティ",
|
||||||
"securityConfig": "セキュリティ設定",
|
"securityConfig": "セキュリティ設定",
|
||||||
@ -88,6 +94,7 @@
|
|||||||
"selectEncryptionMethod": "暗号化方式を選択",
|
"selectEncryptionMethod": "暗号化方式を選択",
|
||||||
"selectNodeGroup": "ノードグループを選択",
|
"selectNodeGroup": "ノードグループを選択",
|
||||||
"selectProtocol": "プロトコルを選択",
|
"selectProtocol": "プロトコルを選択",
|
||||||
|
"selectRelayMode": "リレーモードを選択",
|
||||||
"serverAddr": "サーバーアドレス",
|
"serverAddr": "サーバーアドレス",
|
||||||
"serverName": "サービス名",
|
"serverName": "サービス名",
|
||||||
"speedLimit": "速度制限",
|
"speedLimit": "速度制限",
|
||||||
|
|||||||
@ -49,7 +49,6 @@
|
|||||||
"confirm": "확인",
|
"confirm": "확인",
|
||||||
"edit": "편집",
|
"edit": "편집",
|
||||||
"editSecurity": "보안 설정 편집",
|
"editSecurity": "보안 설정 편집",
|
||||||
"enableRelay": "중계 활성화",
|
|
||||||
"enableTLS": "TLS 활성화",
|
"enableTLS": "TLS 활성화",
|
||||||
"encryptionMethod": "암호화 방법",
|
"encryptionMethod": "암호화 방법",
|
||||||
"flow": "흐름 제어 알고리즘",
|
"flow": "흐름 제어 알고리즘",
|
||||||
@ -65,7 +64,14 @@
|
|||||||
"port": "서비스 포트",
|
"port": "서비스 포트",
|
||||||
"protocol": "프로토콜",
|
"protocol": "프로토콜",
|
||||||
"relayHost": "중계 주소",
|
"relayHost": "중계 주소",
|
||||||
|
"relayMode": "릴레이 모드",
|
||||||
|
"relayModeOptions": {
|
||||||
|
"all": "모두",
|
||||||
|
"none": "없음",
|
||||||
|
"random": "무작위"
|
||||||
|
},
|
||||||
"relayPort": "중계 포트",
|
"relayPort": "중계 포트",
|
||||||
|
"relayPrefix": "릴레이 접두사",
|
||||||
"remarks": "비고",
|
"remarks": "비고",
|
||||||
"security": "보안",
|
"security": "보안",
|
||||||
"securityConfig": "보안 설정",
|
"securityConfig": "보안 설정",
|
||||||
@ -88,6 +94,7 @@
|
|||||||
"selectEncryptionMethod": "암호화 방법 선택",
|
"selectEncryptionMethod": "암호화 방법 선택",
|
||||||
"selectNodeGroup": "노드 그룹 선택",
|
"selectNodeGroup": "노드 그룹 선택",
|
||||||
"selectProtocol": "프로토콜 선택",
|
"selectProtocol": "프로토콜 선택",
|
||||||
|
"selectRelayMode": "릴레이 모드 선택",
|
||||||
"serverAddr": "서버 주소",
|
"serverAddr": "서버 주소",
|
||||||
"serverName": "서비스 이름",
|
"serverName": "서비스 이름",
|
||||||
"speedLimit": "속도 제한",
|
"speedLimit": "속도 제한",
|
||||||
|
|||||||
@ -49,7 +49,6 @@
|
|||||||
"confirm": "Bekreft",
|
"confirm": "Bekreft",
|
||||||
"edit": "Rediger",
|
"edit": "Rediger",
|
||||||
"editSecurity": "Rediger sikkerhetskonfigurasjon",
|
"editSecurity": "Rediger sikkerhetskonfigurasjon",
|
||||||
"enableRelay": "Aktiver relé",
|
|
||||||
"enableTLS": "Aktiver TLS",
|
"enableTLS": "Aktiver TLS",
|
||||||
"encryptionMethod": "Krypteringsmetode",
|
"encryptionMethod": "Krypteringsmetode",
|
||||||
"flow": "Flytkontrollalgoritme",
|
"flow": "Flytkontrollalgoritme",
|
||||||
@ -65,7 +64,14 @@
|
|||||||
"port": "Tjenesteport",
|
"port": "Tjenesteport",
|
||||||
"protocol": "Protokoll",
|
"protocol": "Protokoll",
|
||||||
"relayHost": "Reléadresse",
|
"relayHost": "Reléadresse",
|
||||||
|
"relayMode": "Relémodus",
|
||||||
|
"relayModeOptions": {
|
||||||
|
"all": "Alle",
|
||||||
|
"none": "Ingen",
|
||||||
|
"random": "Tilfeldig"
|
||||||
|
},
|
||||||
"relayPort": "Reléport",
|
"relayPort": "Reléport",
|
||||||
|
"relayPrefix": "Reléprefiks",
|
||||||
"remarks": "Merknader",
|
"remarks": "Merknader",
|
||||||
"security": "Sikkerhet",
|
"security": "Sikkerhet",
|
||||||
"securityConfig": "Sikkerhetskonfigurasjon",
|
"securityConfig": "Sikkerhetskonfigurasjon",
|
||||||
@ -88,6 +94,7 @@
|
|||||||
"selectEncryptionMethod": "Velg krypteringsmetode",
|
"selectEncryptionMethod": "Velg krypteringsmetode",
|
||||||
"selectNodeGroup": "Velg nodegruppe",
|
"selectNodeGroup": "Velg nodegruppe",
|
||||||
"selectProtocol": "Velg protokoll",
|
"selectProtocol": "Velg protokoll",
|
||||||
|
"selectRelayMode": "Velg relémodus",
|
||||||
"serverAddr": "Serveradresse",
|
"serverAddr": "Serveradresse",
|
||||||
"serverName": "Tjenestenavn",
|
"serverName": "Tjenestenavn",
|
||||||
"speedLimit": "Hastighetsbegrensning",
|
"speedLimit": "Hastighetsbegrensning",
|
||||||
|
|||||||
@ -49,7 +49,6 @@
|
|||||||
"confirm": "Potwierdź",
|
"confirm": "Potwierdź",
|
||||||
"edit": "Edytuj",
|
"edit": "Edytuj",
|
||||||
"editSecurity": "Edytuj konfigurację bezpieczeństwa",
|
"editSecurity": "Edytuj konfigurację bezpieczeństwa",
|
||||||
"enableRelay": "Włącz przekaźnik",
|
|
||||||
"enableTLS": "Włącz TLS",
|
"enableTLS": "Włącz TLS",
|
||||||
"encryptionMethod": "Metoda szyfrowania",
|
"encryptionMethod": "Metoda szyfrowania",
|
||||||
"flow": "Algorytm kontroli przepływu",
|
"flow": "Algorytm kontroli przepływu",
|
||||||
@ -65,7 +64,14 @@
|
|||||||
"port": "Port serwera",
|
"port": "Port serwera",
|
||||||
"protocol": "Protokół",
|
"protocol": "Protokół",
|
||||||
"relayHost": "Adres przekaźnika",
|
"relayHost": "Adres przekaźnika",
|
||||||
|
"relayMode": "Tryb przekaźnika",
|
||||||
|
"relayModeOptions": {
|
||||||
|
"all": "Wszystkie",
|
||||||
|
"none": "Brak",
|
||||||
|
"random": "Losowy"
|
||||||
|
},
|
||||||
"relayPort": "Port przekaźnika",
|
"relayPort": "Port przekaźnika",
|
||||||
|
"relayPrefix": "Prefiks przekaźnika",
|
||||||
"remarks": "Uwagi",
|
"remarks": "Uwagi",
|
||||||
"security": "Bezpieczeństwo",
|
"security": "Bezpieczeństwo",
|
||||||
"securityConfig": "Konfiguracja bezpieczeństwa",
|
"securityConfig": "Konfiguracja bezpieczeństwa",
|
||||||
@ -88,6 +94,7 @@
|
|||||||
"selectEncryptionMethod": "Wybierz metodę szyfrowania",
|
"selectEncryptionMethod": "Wybierz metodę szyfrowania",
|
||||||
"selectNodeGroup": "Wybierz grupę węzłów",
|
"selectNodeGroup": "Wybierz grupę węzłów",
|
||||||
"selectProtocol": "Wybierz protokół",
|
"selectProtocol": "Wybierz protokół",
|
||||||
|
"selectRelayMode": "Wybierz tryb przekaźnika",
|
||||||
"serverAddr": "Adres serwera",
|
"serverAddr": "Adres serwera",
|
||||||
"serverName": "Nazwa usługi",
|
"serverName": "Nazwa usługi",
|
||||||
"speedLimit": "Ograniczenie prędkości",
|
"speedLimit": "Ograniczenie prędkości",
|
||||||
|
|||||||
@ -49,7 +49,6 @@
|
|||||||
"confirm": "Confirmar",
|
"confirm": "Confirmar",
|
||||||
"edit": "Editar",
|
"edit": "Editar",
|
||||||
"editSecurity": "Editar Configuração de Segurança",
|
"editSecurity": "Editar Configuração de Segurança",
|
||||||
"enableRelay": "Habilitar Relay",
|
|
||||||
"enableTLS": "Habilitar TLS",
|
"enableTLS": "Habilitar TLS",
|
||||||
"encryptionMethod": "Método de Criptografia",
|
"encryptionMethod": "Método de Criptografia",
|
||||||
"flow": "Algoritmo de Controle de Fluxo",
|
"flow": "Algoritmo de Controle de Fluxo",
|
||||||
@ -65,7 +64,14 @@
|
|||||||
"port": "Porta do Servidor",
|
"port": "Porta do Servidor",
|
||||||
"protocol": "Protocolo",
|
"protocol": "Protocolo",
|
||||||
"relayHost": "Endereço de Relay",
|
"relayHost": "Endereço de Relay",
|
||||||
|
"relayMode": "Modo de Retransmissão",
|
||||||
|
"relayModeOptions": {
|
||||||
|
"all": "Todos",
|
||||||
|
"none": "Nenhum",
|
||||||
|
"random": "Aleatório"
|
||||||
|
},
|
||||||
"relayPort": "Porta de Relay",
|
"relayPort": "Porta de Relay",
|
||||||
|
"relayPrefix": "Prefixo de Retransmissão",
|
||||||
"remarks": "Observações",
|
"remarks": "Observações",
|
||||||
"security": "Segurança",
|
"security": "Segurança",
|
||||||
"securityConfig": "Configuração de Segurança",
|
"securityConfig": "Configuração de Segurança",
|
||||||
@ -88,6 +94,7 @@
|
|||||||
"selectEncryptionMethod": "Selecione o Método de Criptografia",
|
"selectEncryptionMethod": "Selecione o Método de Criptografia",
|
||||||
"selectNodeGroup": "Selecione o Grupo de Nós",
|
"selectNodeGroup": "Selecione o Grupo de Nós",
|
||||||
"selectProtocol": "Selecione o Protocolo",
|
"selectProtocol": "Selecione o Protocolo",
|
||||||
|
"selectRelayMode": "Selecionar Modo de Retransmissão",
|
||||||
"serverAddr": "Endereço do Servidor",
|
"serverAddr": "Endereço do Servidor",
|
||||||
"serverName": "Nome do Serviço",
|
"serverName": "Nome do Serviço",
|
||||||
"speedLimit": "Limite de Velocidade",
|
"speedLimit": "Limite de Velocidade",
|
||||||
|
|||||||
@ -49,7 +49,6 @@
|
|||||||
"confirm": "Confirmă",
|
"confirm": "Confirmă",
|
||||||
"edit": "Editează",
|
"edit": "Editează",
|
||||||
"editSecurity": "Editează configurația de securitate",
|
"editSecurity": "Editează configurația de securitate",
|
||||||
"enableRelay": "Activează retransmisia",
|
|
||||||
"enableTLS": "Activează TLS",
|
"enableTLS": "Activează TLS",
|
||||||
"encryptionMethod": "Metodă de criptare",
|
"encryptionMethod": "Metodă de criptare",
|
||||||
"flow": "Algoritm de control al fluxului",
|
"flow": "Algoritm de control al fluxului",
|
||||||
@ -65,7 +64,14 @@
|
|||||||
"port": "Port server",
|
"port": "Port server",
|
||||||
"protocol": "Protocol",
|
"protocol": "Protocol",
|
||||||
"relayHost": "Adresă retransmisie",
|
"relayHost": "Adresă retransmisie",
|
||||||
|
"relayMode": "Modul de Releu",
|
||||||
|
"relayModeOptions": {
|
||||||
|
"all": "Toate",
|
||||||
|
"none": "Niciunul",
|
||||||
|
"random": "Aleatoriu"
|
||||||
|
},
|
||||||
"relayPort": "Port retransmisie",
|
"relayPort": "Port retransmisie",
|
||||||
|
"relayPrefix": "Prefix de Releu",
|
||||||
"remarks": "Observații",
|
"remarks": "Observații",
|
||||||
"security": "Securitate",
|
"security": "Securitate",
|
||||||
"securityConfig": "Configurație de securitate",
|
"securityConfig": "Configurație de securitate",
|
||||||
@ -88,6 +94,7 @@
|
|||||||
"selectEncryptionMethod": "Selectați metoda de criptare",
|
"selectEncryptionMethod": "Selectați metoda de criptare",
|
||||||
"selectNodeGroup": "Selectați grupul de noduri",
|
"selectNodeGroup": "Selectați grupul de noduri",
|
||||||
"selectProtocol": "Selectați protocolul",
|
"selectProtocol": "Selectați protocolul",
|
||||||
|
"selectRelayMode": "Selectați Modul de Releu",
|
||||||
"serverAddr": "Adresă server",
|
"serverAddr": "Adresă server",
|
||||||
"serverName": "Nume serviciu",
|
"serverName": "Nume serviciu",
|
||||||
"speedLimit": "Limită de viteză",
|
"speedLimit": "Limită de viteză",
|
||||||
|
|||||||
@ -49,7 +49,6 @@
|
|||||||
"confirm": "Подтвердить",
|
"confirm": "Подтвердить",
|
||||||
"edit": "Редактировать",
|
"edit": "Редактировать",
|
||||||
"editSecurity": "Редактировать настройки безопасности",
|
"editSecurity": "Редактировать настройки безопасности",
|
||||||
"enableRelay": "Включить реле",
|
|
||||||
"enableTLS": "Включить TLS",
|
"enableTLS": "Включить TLS",
|
||||||
"encryptionMethod": "Метод шифрования",
|
"encryptionMethod": "Метод шифрования",
|
||||||
"flow": "Алгоритм управления потоком",
|
"flow": "Алгоритм управления потоком",
|
||||||
@ -65,7 +64,14 @@
|
|||||||
"port": "Порт сервера",
|
"port": "Порт сервера",
|
||||||
"protocol": "Протокол",
|
"protocol": "Протокол",
|
||||||
"relayHost": "Адрес реле",
|
"relayHost": "Адрес реле",
|
||||||
|
"relayMode": "Режим ретрансляции",
|
||||||
|
"relayModeOptions": {
|
||||||
|
"all": "Все",
|
||||||
|
"none": "Нет",
|
||||||
|
"random": "Случайный"
|
||||||
|
},
|
||||||
"relayPort": "Порт реле",
|
"relayPort": "Порт реле",
|
||||||
|
"relayPrefix": "Префикс ретрансляции",
|
||||||
"remarks": "Примечания",
|
"remarks": "Примечания",
|
||||||
"security": "Безопасность",
|
"security": "Безопасность",
|
||||||
"securityConfig": "Настройки безопасности",
|
"securityConfig": "Настройки безопасности",
|
||||||
@ -88,6 +94,7 @@
|
|||||||
"selectEncryptionMethod": "Выберите метод шифрования",
|
"selectEncryptionMethod": "Выберите метод шифрования",
|
||||||
"selectNodeGroup": "Выберите группу узлов",
|
"selectNodeGroup": "Выберите группу узлов",
|
||||||
"selectProtocol": "Выберите протокол",
|
"selectProtocol": "Выберите протокол",
|
||||||
|
"selectRelayMode": "Выберите режим ретрансляции",
|
||||||
"serverAddr": "Адрес сервера",
|
"serverAddr": "Адрес сервера",
|
||||||
"serverName": "Имя сервера",
|
"serverName": "Имя сервера",
|
||||||
"speedLimit": "Ограничение скорости",
|
"speedLimit": "Ограничение скорости",
|
||||||
|
|||||||
@ -49,7 +49,6 @@
|
|||||||
"confirm": "ยืนยัน",
|
"confirm": "ยืนยัน",
|
||||||
"edit": "แก้ไข",
|
"edit": "แก้ไข",
|
||||||
"editSecurity": "แก้ไขการตั้งค่าความปลอดภัย",
|
"editSecurity": "แก้ไขการตั้งค่าความปลอดภัย",
|
||||||
"enableRelay": "เปิดใช้งานรีเลย์",
|
|
||||||
"enableTLS": "เปิดใช้งานTLS",
|
"enableTLS": "เปิดใช้งานTLS",
|
||||||
"encryptionMethod": "วิธีการเข้ารหัส",
|
"encryptionMethod": "วิธีการเข้ารหัส",
|
||||||
"flow": "อัลกอริทึมควบคุมการไหล",
|
"flow": "อัลกอริทึมควบคุมการไหล",
|
||||||
@ -65,7 +64,14 @@
|
|||||||
"port": "พอร์ตบริการ",
|
"port": "พอร์ตบริการ",
|
||||||
"protocol": "โปรโตคอล",
|
"protocol": "โปรโตคอล",
|
||||||
"relayHost": "ที่อยู่รีเลย์",
|
"relayHost": "ที่อยู่รีเลย์",
|
||||||
|
"relayMode": "โหมดรีเลย์",
|
||||||
|
"relayModeOptions": {
|
||||||
|
"all": "ทั้งหมด",
|
||||||
|
"none": "ไม่มี",
|
||||||
|
"random": "สุ่ม"
|
||||||
|
},
|
||||||
"relayPort": "พอร์ตรรีเลย์",
|
"relayPort": "พอร์ตรรีเลย์",
|
||||||
|
"relayPrefix": "คำนำหน้ารีเลย์",
|
||||||
"remarks": "หมายเหตุ",
|
"remarks": "หมายเหตุ",
|
||||||
"security": "ความปลอดภัย",
|
"security": "ความปลอดภัย",
|
||||||
"securityConfig": "การตั้งค่าความปลอดภัย",
|
"securityConfig": "การตั้งค่าความปลอดภัย",
|
||||||
@ -88,6 +94,7 @@
|
|||||||
"selectEncryptionMethod": "เลือกวิธีการเข้ารหัส",
|
"selectEncryptionMethod": "เลือกวิธีการเข้ารหัส",
|
||||||
"selectNodeGroup": "เลือกกลุ่มโหนด",
|
"selectNodeGroup": "เลือกกลุ่มโหนด",
|
||||||
"selectProtocol": "เลือกโปรโตคอล",
|
"selectProtocol": "เลือกโปรโตคอล",
|
||||||
|
"selectRelayMode": "เลือกโหมดรีเลย์",
|
||||||
"serverAddr": "ที่อยู่เซิร์ฟเวอร์",
|
"serverAddr": "ที่อยู่เซิร์ฟเวอร์",
|
||||||
"serverName": "ชื่อบริการ",
|
"serverName": "ชื่อบริการ",
|
||||||
"speedLimit": "จำกัดความเร็ว",
|
"speedLimit": "จำกัดความเร็ว",
|
||||||
|
|||||||
@ -49,7 +49,6 @@
|
|||||||
"confirm": "Onayla",
|
"confirm": "Onayla",
|
||||||
"edit": "Düzenle",
|
"edit": "Düzenle",
|
||||||
"editSecurity": "Güvenlik Ayarlarını Düzenle",
|
"editSecurity": "Güvenlik Ayarlarını Düzenle",
|
||||||
"enableRelay": "Röleyi Etkinleştir",
|
|
||||||
"enableTLS": "TLS'i Etkinleştir",
|
"enableTLS": "TLS'i Etkinleştir",
|
||||||
"encryptionMethod": "Şifreleme Yöntemi",
|
"encryptionMethod": "Şifreleme Yöntemi",
|
||||||
"flow": "Akış Kontrol Algoritması",
|
"flow": "Akış Kontrol Algoritması",
|
||||||
@ -65,7 +64,14 @@
|
|||||||
"port": "Sunucu Portu",
|
"port": "Sunucu Portu",
|
||||||
"protocol": "Protokol",
|
"protocol": "Protokol",
|
||||||
"relayHost": "Röle Adresi",
|
"relayHost": "Röle Adresi",
|
||||||
|
"relayMode": "Röle Modu",
|
||||||
|
"relayModeOptions": {
|
||||||
|
"all": "Tümü",
|
||||||
|
"none": "Hiçbiri",
|
||||||
|
"random": "Rastgele"
|
||||||
|
},
|
||||||
"relayPort": "Röle Portu",
|
"relayPort": "Röle Portu",
|
||||||
|
"relayPrefix": "Röle Öneki",
|
||||||
"remarks": "Açıklamalar",
|
"remarks": "Açıklamalar",
|
||||||
"security": "Güvenlik",
|
"security": "Güvenlik",
|
||||||
"securityConfig": "Güvenlik Ayarları",
|
"securityConfig": "Güvenlik Ayarları",
|
||||||
@ -88,6 +94,7 @@
|
|||||||
"selectEncryptionMethod": "Şifreleme Yöntemi Seç",
|
"selectEncryptionMethod": "Şifreleme Yöntemi Seç",
|
||||||
"selectNodeGroup": "Düğüm Grubu Seç",
|
"selectNodeGroup": "Düğüm Grubu Seç",
|
||||||
"selectProtocol": "Protokol Seç",
|
"selectProtocol": "Protokol Seç",
|
||||||
|
"selectRelayMode": "Röle Modunu Seçin",
|
||||||
"serverAddr": "Sunucu Adresi",
|
"serverAddr": "Sunucu Adresi",
|
||||||
"serverName": "Sunucu Adı",
|
"serverName": "Sunucu Adı",
|
||||||
"speedLimit": "Hız Sınırı",
|
"speedLimit": "Hız Sınırı",
|
||||||
|
|||||||
@ -49,7 +49,6 @@
|
|||||||
"confirm": "Підтвердити",
|
"confirm": "Підтвердити",
|
||||||
"edit": "Редагувати",
|
"edit": "Редагувати",
|
||||||
"editSecurity": "Редагувати налаштування безпеки",
|
"editSecurity": "Редагувати налаштування безпеки",
|
||||||
"enableRelay": "Увімкнути реле",
|
|
||||||
"enableTLS": "Увімкнути TLS",
|
"enableTLS": "Увімкнути TLS",
|
||||||
"encryptionMethod": "Метод шифрування",
|
"encryptionMethod": "Метод шифрування",
|
||||||
"flow": "Алгоритм контролю потоку",
|
"flow": "Алгоритм контролю потоку",
|
||||||
@ -65,7 +64,14 @@
|
|||||||
"port": "Порт сервера",
|
"port": "Порт сервера",
|
||||||
"protocol": "Протокол",
|
"protocol": "Протокол",
|
||||||
"relayHost": "Адреса реле",
|
"relayHost": "Адреса реле",
|
||||||
|
"relayMode": "Режим ретрансляції",
|
||||||
|
"relayModeOptions": {
|
||||||
|
"all": "Всі",
|
||||||
|
"none": "Немає",
|
||||||
|
"random": "Випадковий"
|
||||||
|
},
|
||||||
"relayPort": "Порт реле",
|
"relayPort": "Порт реле",
|
||||||
|
"relayPrefix": "Префікс ретрансляції",
|
||||||
"remarks": "Примітки",
|
"remarks": "Примітки",
|
||||||
"security": "Безпека",
|
"security": "Безпека",
|
||||||
"securityConfig": "Налаштування безпеки",
|
"securityConfig": "Налаштування безпеки",
|
||||||
@ -88,6 +94,7 @@
|
|||||||
"selectEncryptionMethod": "Виберіть метод шифрування",
|
"selectEncryptionMethod": "Виберіть метод шифрування",
|
||||||
"selectNodeGroup": "Виберіть групу вузлів",
|
"selectNodeGroup": "Виберіть групу вузлів",
|
||||||
"selectProtocol": "Виберіть протокол",
|
"selectProtocol": "Виберіть протокол",
|
||||||
|
"selectRelayMode": "Виберіть режим ретрансляції",
|
||||||
"serverAddr": "Адреса сервера",
|
"serverAddr": "Адреса сервера",
|
||||||
"serverName": "Назва сервісу",
|
"serverName": "Назва сервісу",
|
||||||
"speedLimit": "Обмеження швидкості",
|
"speedLimit": "Обмеження швидкості",
|
||||||
|
|||||||
@ -49,7 +49,6 @@
|
|||||||
"confirm": "Xác nhận",
|
"confirm": "Xác nhận",
|
||||||
"edit": "Chỉnh sửa",
|
"edit": "Chỉnh sửa",
|
||||||
"editSecurity": "Chỉnh sửa cấu hình bảo mật",
|
"editSecurity": "Chỉnh sửa cấu hình bảo mật",
|
||||||
"enableRelay": "Kích hoạt chuyển tiếp",
|
|
||||||
"enableTLS": "Kích hoạt TLS",
|
"enableTLS": "Kích hoạt TLS",
|
||||||
"encryptionMethod": "Phương pháp mã hóa",
|
"encryptionMethod": "Phương pháp mã hóa",
|
||||||
"flow": "Thuật toán điều khiển luồng",
|
"flow": "Thuật toán điều khiển luồng",
|
||||||
@ -65,7 +64,14 @@
|
|||||||
"port": "Cổng dịch vụ",
|
"port": "Cổng dịch vụ",
|
||||||
"protocol": "Giao thức",
|
"protocol": "Giao thức",
|
||||||
"relayHost": "Địa chỉ chuyển tiếp",
|
"relayHost": "Địa chỉ chuyển tiếp",
|
||||||
|
"relayMode": "Chế Độ Tiếp Sức",
|
||||||
|
"relayModeOptions": {
|
||||||
|
"all": "Tất Cả",
|
||||||
|
"none": "Không Có",
|
||||||
|
"random": "Ngẫu Nhiên"
|
||||||
|
},
|
||||||
"relayPort": "Cổng chuyển tiếp",
|
"relayPort": "Cổng chuyển tiếp",
|
||||||
|
"relayPrefix": "Tiền Tố Tiếp Sức",
|
||||||
"remarks": "Ghi chú",
|
"remarks": "Ghi chú",
|
||||||
"security": "Bảo mật",
|
"security": "Bảo mật",
|
||||||
"securityConfig": "Cấu hình bảo mật",
|
"securityConfig": "Cấu hình bảo mật",
|
||||||
@ -88,6 +94,7 @@
|
|||||||
"selectEncryptionMethod": "Chọn phương pháp mã hóa",
|
"selectEncryptionMethod": "Chọn phương pháp mã hóa",
|
||||||
"selectNodeGroup": "Chọn nhóm nút",
|
"selectNodeGroup": "Chọn nhóm nút",
|
||||||
"selectProtocol": "Chọn giao thức",
|
"selectProtocol": "Chọn giao thức",
|
||||||
|
"selectRelayMode": "Chọn Chế Độ Tiếp Sức",
|
||||||
"serverAddr": "Địa chỉ máy chủ",
|
"serverAddr": "Địa chỉ máy chủ",
|
||||||
"serverName": "Tên dịch vụ",
|
"serverName": "Tên dịch vụ",
|
||||||
"speedLimit": "Giới hạn tốc độ",
|
"speedLimit": "Giới hạn tốc độ",
|
||||||
|
|||||||
@ -49,7 +49,6 @@
|
|||||||
"confirm": "确认",
|
"confirm": "确认",
|
||||||
"edit": "编辑",
|
"edit": "编辑",
|
||||||
"editSecurity": "编辑安全性配置",
|
"editSecurity": "编辑安全性配置",
|
||||||
"enableRelay": "启用中转",
|
|
||||||
"enableTLS": "启用TLS",
|
"enableTLS": "启用TLS",
|
||||||
"encryptionMethod": "加密方法",
|
"encryptionMethod": "加密方法",
|
||||||
"flow": "流控算法",
|
"flow": "流控算法",
|
||||||
@ -65,7 +64,14 @@
|
|||||||
"port": "服务端口",
|
"port": "服务端口",
|
||||||
"protocol": "协议",
|
"protocol": "协议",
|
||||||
"relayHost": "中转地址",
|
"relayHost": "中转地址",
|
||||||
|
"relayMode": "中转模式",
|
||||||
|
"relayModeOptions": {
|
||||||
|
"all": "全部",
|
||||||
|
"none": "无",
|
||||||
|
"random": "随机"
|
||||||
|
},
|
||||||
"relayPort": "中转端口",
|
"relayPort": "中转端口",
|
||||||
|
"relayPrefix": "中转前缀",
|
||||||
"remarks": "备注",
|
"remarks": "备注",
|
||||||
"security": "安全性",
|
"security": "安全性",
|
||||||
"securityConfig": "安全性配置",
|
"securityConfig": "安全性配置",
|
||||||
@ -88,6 +94,7 @@
|
|||||||
"selectEncryptionMethod": "选择加密方法",
|
"selectEncryptionMethod": "选择加密方法",
|
||||||
"selectNodeGroup": "选择节点组",
|
"selectNodeGroup": "选择节点组",
|
||||||
"selectProtocol": "选择协议",
|
"selectProtocol": "选择协议",
|
||||||
|
"selectRelayMode": "选择中继模式",
|
||||||
"serverAddr": "服务器地址",
|
"serverAddr": "服务器地址",
|
||||||
"serverName": "服务名称",
|
"serverName": "服务名称",
|
||||||
"speedLimit": "速度限制",
|
"speedLimit": "速度限制",
|
||||||
|
|||||||
@ -49,7 +49,6 @@
|
|||||||
"confirm": "確認",
|
"confirm": "確認",
|
||||||
"edit": "編輯",
|
"edit": "編輯",
|
||||||
"editSecurity": "編輯安全性配置",
|
"editSecurity": "編輯安全性配置",
|
||||||
"enableRelay": "啟用中繼",
|
|
||||||
"enableTLS": "啟用TLS",
|
"enableTLS": "啟用TLS",
|
||||||
"encryptionMethod": "加密方法",
|
"encryptionMethod": "加密方法",
|
||||||
"flow": "流控算法",
|
"flow": "流控算法",
|
||||||
@ -65,7 +64,14 @@
|
|||||||
"port": "服務端口",
|
"port": "服務端口",
|
||||||
"protocol": "協議",
|
"protocol": "協議",
|
||||||
"relayHost": "中繼地址",
|
"relayHost": "中繼地址",
|
||||||
|
"relayMode": "中繼模式",
|
||||||
|
"relayModeOptions": {
|
||||||
|
"all": "全部",
|
||||||
|
"none": "無",
|
||||||
|
"random": "隨機"
|
||||||
|
},
|
||||||
"relayPort": "中繼端口",
|
"relayPort": "中繼端口",
|
||||||
|
"relayPrefix": "中繼前綴",
|
||||||
"remarks": "備註",
|
"remarks": "備註",
|
||||||
"security": "安全性",
|
"security": "安全性",
|
||||||
"securityConfig": "安全性配置",
|
"securityConfig": "安全性配置",
|
||||||
@ -88,6 +94,7 @@
|
|||||||
"selectEncryptionMethod": "選擇加密方法",
|
"selectEncryptionMethod": "選擇加密方法",
|
||||||
"selectNodeGroup": "選擇節點組",
|
"selectNodeGroup": "選擇節點組",
|
||||||
"selectProtocol": "選擇協議",
|
"selectProtocol": "選擇協議",
|
||||||
|
"selectRelayMode": "選擇中繼模式",
|
||||||
"serverAddr": "伺服器地址",
|
"serverAddr": "伺服器地址",
|
||||||
"serverName": "服務名稱",
|
"serverName": "服務名稱",
|
||||||
"speedLimit": "速度限制",
|
"speedLimit": "速度限制",
|
||||||
|
|||||||
26
apps/admin/services/admin/typings.d.ts
vendored
26
apps/admin/services/admin/typings.d.ts
vendored
@ -122,9 +122,8 @@ declare namespace API {
|
|||||||
type CreateNodeRequest = {
|
type CreateNodeRequest = {
|
||||||
name: string;
|
name: string;
|
||||||
server_addr: string;
|
server_addr: string;
|
||||||
enable_relay: boolean;
|
relay_mode: string;
|
||||||
relay_host: string;
|
relay_node: NodeRelay[];
|
||||||
relay_port: number;
|
|
||||||
speed_limit: number;
|
speed_limit: number;
|
||||||
traffic_ratio: number;
|
traffic_ratio: number;
|
||||||
group_id: number;
|
group_id: number;
|
||||||
@ -520,6 +519,12 @@ declare namespace API {
|
|||||||
node_push_interval: number;
|
node_push_interval: number;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
type NodeRelay = {
|
||||||
|
host: string;
|
||||||
|
port: number;
|
||||||
|
prefix: string;
|
||||||
|
};
|
||||||
|
|
||||||
type NodeSortRequest = {
|
type NodeSortRequest = {
|
||||||
sort: SortItem[];
|
sort: SortItem[];
|
||||||
};
|
};
|
||||||
@ -608,6 +613,11 @@ declare namespace API {
|
|||||||
ip_register_limit_duration: number;
|
ip_register_limit_duration: number;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
type RelayConfig = {
|
||||||
|
dispatch_mode: string;
|
||||||
|
relay_nodes: NodeRelay[];
|
||||||
|
};
|
||||||
|
|
||||||
type Response = {
|
type Response = {
|
||||||
/** 状态码 */
|
/** 状态码 */
|
||||||
code?: number;
|
code?: number;
|
||||||
@ -638,9 +648,8 @@ declare namespace API {
|
|||||||
id: number;
|
id: number;
|
||||||
name: string;
|
name: string;
|
||||||
server_addr: string;
|
server_addr: string;
|
||||||
enable_relay: boolean;
|
relay_mode: string;
|
||||||
relay_host: string;
|
relay_node: NodeRelay[];
|
||||||
relay_port: number;
|
|
||||||
speed_limit: number;
|
speed_limit: number;
|
||||||
traffic_ratio: number;
|
traffic_ratio: number;
|
||||||
group_id: number;
|
group_id: number;
|
||||||
@ -910,9 +919,8 @@ declare namespace API {
|
|||||||
id: number;
|
id: number;
|
||||||
name: string;
|
name: string;
|
||||||
server_addr: string;
|
server_addr: string;
|
||||||
enable_relay: boolean;
|
relay_mode: string;
|
||||||
relay_host: string;
|
relay_node: NodeRelay[];
|
||||||
relay_port: number;
|
|
||||||
speed_limit: number;
|
speed_limit: number;
|
||||||
traffic_ratio: number;
|
traffic_ratio: number;
|
||||||
group_id: number;
|
group_id: number;
|
||||||
|
|||||||
16
apps/admin/services/common/typings.d.ts
vendored
16
apps/admin/services/common/typings.d.ts
vendored
@ -140,6 +140,12 @@ declare namespace API {
|
|||||||
node_push_interval: number;
|
node_push_interval: number;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
type NodeRelay = {
|
||||||
|
host: string;
|
||||||
|
port: number;
|
||||||
|
prefix: string;
|
||||||
|
};
|
||||||
|
|
||||||
type NodeStatus = {
|
type NodeStatus = {
|
||||||
online_users: OnlineUser[];
|
online_users: OnlineUser[];
|
||||||
status: ServerStatus;
|
status: ServerStatus;
|
||||||
@ -216,6 +222,11 @@ declare namespace API {
|
|||||||
ip_register_limit_duration: number;
|
ip_register_limit_duration: number;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
type RelayConfig = {
|
||||||
|
dispatch_mode: string;
|
||||||
|
relay_nodes: NodeRelay[];
|
||||||
|
};
|
||||||
|
|
||||||
type ResetPasswordRequest = {
|
type ResetPasswordRequest = {
|
||||||
email: string;
|
email: string;
|
||||||
password: string;
|
password: string;
|
||||||
@ -256,9 +267,8 @@ declare namespace API {
|
|||||||
id: number;
|
id: number;
|
||||||
name: string;
|
name: string;
|
||||||
server_addr: string;
|
server_addr: string;
|
||||||
enable_relay: boolean;
|
relay_mode: string;
|
||||||
relay_host: string;
|
relay_node: NodeRelay[];
|
||||||
relay_port: number;
|
|
||||||
speed_limit: number;
|
speed_limit: number;
|
||||||
traffic_ratio: number;
|
traffic_ratio: number;
|
||||||
group_id: number;
|
group_id: number;
|
||||||
|
|||||||
16
apps/user/services/common/typings.d.ts
vendored
16
apps/user/services/common/typings.d.ts
vendored
@ -140,6 +140,12 @@ declare namespace API {
|
|||||||
node_push_interval: number;
|
node_push_interval: number;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
type NodeRelay = {
|
||||||
|
host: string;
|
||||||
|
port: number;
|
||||||
|
prefix: string;
|
||||||
|
};
|
||||||
|
|
||||||
type NodeStatus = {
|
type NodeStatus = {
|
||||||
online_users: OnlineUser[];
|
online_users: OnlineUser[];
|
||||||
status: ServerStatus;
|
status: ServerStatus;
|
||||||
@ -216,6 +222,11 @@ declare namespace API {
|
|||||||
ip_register_limit_duration: number;
|
ip_register_limit_duration: number;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
type RelayConfig = {
|
||||||
|
dispatch_mode: string;
|
||||||
|
relay_nodes: NodeRelay[];
|
||||||
|
};
|
||||||
|
|
||||||
type ResetPasswordRequest = {
|
type ResetPasswordRequest = {
|
||||||
email: string;
|
email: string;
|
||||||
password: string;
|
password: string;
|
||||||
@ -256,9 +267,8 @@ declare namespace API {
|
|||||||
id: number;
|
id: number;
|
||||||
name: string;
|
name: string;
|
||||||
server_addr: string;
|
server_addr: string;
|
||||||
enable_relay: boolean;
|
relay_mode: string;
|
||||||
relay_host: string;
|
relay_node: NodeRelay[];
|
||||||
relay_port: number;
|
|
||||||
speed_limit: number;
|
speed_limit: number;
|
||||||
traffic_ratio: number;
|
traffic_ratio: number;
|
||||||
group_id: number;
|
group_id: number;
|
||||||
|
|||||||
16
apps/user/services/user/typings.d.ts
vendored
16
apps/user/services/user/typings.d.ts
vendored
@ -162,6 +162,12 @@ declare namespace API {
|
|||||||
node_push_interval: number;
|
node_push_interval: number;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
type NodeRelay = {
|
||||||
|
host: string;
|
||||||
|
port: number;
|
||||||
|
prefix: string;
|
||||||
|
};
|
||||||
|
|
||||||
type NodeStatus = {
|
type NodeStatus = {
|
||||||
online_users: OnlineUser[];
|
online_users: OnlineUser[];
|
||||||
status: ServerStatus;
|
status: ServerStatus;
|
||||||
@ -352,6 +358,11 @@ declare namespace API {
|
|||||||
ip_register_limit_duration: number;
|
ip_register_limit_duration: number;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
type RelayConfig = {
|
||||||
|
dispatch_mode: string;
|
||||||
|
relay_nodes: NodeRelay[];
|
||||||
|
};
|
||||||
|
|
||||||
type RenewalOrderRequest = {
|
type RenewalOrderRequest = {
|
||||||
subscribe_id: number;
|
subscribe_id: number;
|
||||||
quantity: number;
|
quantity: number;
|
||||||
@ -398,9 +409,8 @@ declare namespace API {
|
|||||||
id: number;
|
id: number;
|
||||||
name: string;
|
name: string;
|
||||||
server_addr: string;
|
server_addr: string;
|
||||||
enable_relay: boolean;
|
relay_mode: string;
|
||||||
relay_host: string;
|
relay_node: NodeRelay[];
|
||||||
relay_port: number;
|
|
||||||
speed_limit: number;
|
speed_limit: number;
|
||||||
traffic_ratio: number;
|
traffic_ratio: number;
|
||||||
group_id: number;
|
group_id: number;
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
import { Button } from '@workspace/ui/components/button';
|
import { Button } from '@workspace/ui/components/button';
|
||||||
import { Combobox } from '@workspace/ui/custom-components/combobox';
|
import { Combobox } from '@workspace/ui/custom-components/combobox';
|
||||||
import { EnhancedInput, EnhancedInputProps } from '@workspace/ui/custom-components/enhanced-input';
|
import { EnhancedInput, EnhancedInputProps } from '@workspace/ui/custom-components/enhanced-input';
|
||||||
|
import { cn } from '@workspace/ui/lib/utils';
|
||||||
import { CircleMinusIcon, CirclePlusIcon } from 'lucide-react';
|
import { CircleMinusIcon, CirclePlusIcon } from 'lucide-react';
|
||||||
import { useEffect, useState } from 'react';
|
import { useEffect, useState } from 'react';
|
||||||
|
|
||||||
@ -54,8 +55,8 @@ export function ObjectInput<T extends Record<string, any>>({
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<div className='flex flex-1 flex-wrap gap-4'>
|
<div className='flex flex-1 flex-wrap gap-4'>
|
||||||
{fields.map(({ name, type, options, ...fieldProps }) => (
|
{fields.map(({ name, type, options, className, ...fieldProps }) => (
|
||||||
<div key={name} className='flex-1'>
|
<div key={name} className={cn('flex-1', className)}>
|
||||||
{type === 'select' && options ? (
|
{type === 'select' && options ? (
|
||||||
<Combobox<string, false>
|
<Combobox<string, false>
|
||||||
placeholder={fieldProps.placeholder}
|
placeholder={fieldProps.placeholder}
|
||||||
|
|||||||
@ -77,7 +77,9 @@ export function EnhancedInput({
|
|||||||
suppressHydrationWarning
|
suppressHydrationWarning
|
||||||
>
|
>
|
||||||
{prefix && (
|
{prefix && (
|
||||||
<div className='bg-muted mr-px flex h-9 items-center text-nowrap px-3'>{prefix}</div>
|
<div className='bg-muted relative mr-px flex h-9 items-center text-nowrap px-3'>
|
||||||
|
{prefix}
|
||||||
|
</div>
|
||||||
)}
|
)}
|
||||||
<Input
|
<Input
|
||||||
{...props}
|
{...props}
|
||||||
@ -87,7 +89,9 @@ export function EnhancedInput({
|
|||||||
onBlur={handleBlur}
|
onBlur={handleBlur}
|
||||||
/>
|
/>
|
||||||
{suffix && (
|
{suffix && (
|
||||||
<div className='bg-muted ml-px flex h-9 items-center text-nowrap px-3'>{suffix}</div>
|
<div className='bg-muted relative ml-px flex h-9 items-center text-nowrap px-3'>
|
||||||
|
{suffix}
|
||||||
|
</div>
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user