TCP 서버 옵션 추가
This commit is contained in:
@@ -13,11 +13,21 @@ import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card';
|
||||
import { Input } from '@/components/ui/input';
|
||||
import { Label } from '@/components/ui/label';
|
||||
import { Checkbox } from '@/components/ui/checkbox';
|
||||
import {
|
||||
Select,
|
||||
SelectContent,
|
||||
SelectItem,
|
||||
SelectTrigger,
|
||||
SelectValue,
|
||||
} from "@/components/ui/select";
|
||||
import MonacoEditor from '@/components/shared/MonacoEditor';
|
||||
|
||||
const defaultScript = `function processJson(message) {
|
||||
//process message;
|
||||
const defaultScript = `function processMessage(message, serviceId) {
|
||||
// Process the message and serviceId
|
||||
console.log("Received message:", message);
|
||||
console.log("Service ID:", serviceId);
|
||||
|
||||
// Return response
|
||||
return "response_message";
|
||||
}`;
|
||||
|
||||
@@ -27,7 +37,11 @@ const TCPServerEditDialog = ({ open, onOpenChange, item }) => {
|
||||
name: '',
|
||||
port: 1024,
|
||||
active: true,
|
||||
script: defaultScript
|
||||
script: defaultScript,
|
||||
prefixSize: 4,
|
||||
includePrefixLength: true,
|
||||
serviceIdLength: 0,
|
||||
serviceIdPosition: 'NONE'
|
||||
});
|
||||
|
||||
// Initialize form when item changes
|
||||
@@ -41,7 +55,11 @@ const TCPServerEditDialog = ({ open, onOpenChange, item }) => {
|
||||
name: '',
|
||||
port: 1024,
|
||||
active: true,
|
||||
script: defaultScript
|
||||
script: defaultScript,
|
||||
prefixSize: 4,
|
||||
includePrefixLength: true,
|
||||
serviceIdLength: 0,
|
||||
serviceIdPosition: 'NONE'
|
||||
});
|
||||
}
|
||||
}, [item]);
|
||||
@@ -93,44 +111,108 @@ const TCPServerEditDialog = ({ open, onOpenChange, item }) => {
|
||||
|
||||
<ScrollArea className="max-h-[80vh]">
|
||||
<form id="serverForm" onSubmit={handleSubmit} className="space-y-4 p-1">
|
||||
{/* Server Name */}
|
||||
<div className="space-y-2">
|
||||
<Label htmlFor="name" className="must">
|
||||
서버 이름
|
||||
</Label>
|
||||
<Input
|
||||
id="name"
|
||||
required
|
||||
value={server.name}
|
||||
onChange={(e) => handleChange('name', e.target.value)}
|
||||
/>
|
||||
</div>
|
||||
{/* Basic Server Configuration */}
|
||||
<Card>
|
||||
<CardHeader>
|
||||
<CardTitle>기본 설정</CardTitle>
|
||||
</CardHeader>
|
||||
<CardContent className="space-y-4">
|
||||
{/* Server Name */}
|
||||
<div className="space-y-2">
|
||||
<Label htmlFor="name" className="must">서버 이름</Label>
|
||||
<Input
|
||||
id="name"
|
||||
required
|
||||
value={server.name}
|
||||
onChange={(e) => handleChange('name', e.target.value)}
|
||||
/>
|
||||
</div>
|
||||
|
||||
{/* Port Number */}
|
||||
<div className="space-y-2">
|
||||
<Label htmlFor="port" className="must">
|
||||
포트
|
||||
</Label>
|
||||
<Input
|
||||
id="port"
|
||||
type="number"
|
||||
required
|
||||
min="1024"
|
||||
max="65535"
|
||||
value={server.port}
|
||||
onChange={(e) => handleChange('port', parseInt(e.target.value))}
|
||||
/>
|
||||
</div>
|
||||
{/* Port Number */}
|
||||
<div className="space-y-2">
|
||||
<Label htmlFor="port" className="must">포트</Label>
|
||||
<Input
|
||||
id="port"
|
||||
type="number"
|
||||
required
|
||||
min="1024"
|
||||
max="65535"
|
||||
value={server.port}
|
||||
onChange={(e) => handleChange('port', parseInt(e.target.value))}
|
||||
/>
|
||||
</div>
|
||||
|
||||
{/* Active Status */}
|
||||
<div className="flex items-center space-x-2">
|
||||
<Checkbox
|
||||
id="active"
|
||||
checked={server.active}
|
||||
onCheckedChange={(checked) => handleChange('active', checked)}
|
||||
/>
|
||||
<Label htmlFor="active">Active</Label>
|
||||
</div>
|
||||
{/* Active Status */}
|
||||
<div className="flex items-center space-x-2">
|
||||
<Checkbox
|
||||
id="active"
|
||||
checked={server.active}
|
||||
onCheckedChange={(checked) => handleChange('active', checked)}
|
||||
/>
|
||||
<Label htmlFor="active">Active</Label>
|
||||
</div>
|
||||
</CardContent>
|
||||
</Card>
|
||||
|
||||
{/* Message Configuration */}
|
||||
<Card>
|
||||
<CardHeader>
|
||||
<CardTitle>메시지 설정</CardTitle>
|
||||
</CardHeader>
|
||||
<CardContent className="space-y-4">
|
||||
{/* Prefix Size */}
|
||||
<div className="space-y-2">
|
||||
<Label htmlFor="prefixSize">Prefix Size</Label>
|
||||
<Input
|
||||
id="prefixSize"
|
||||
type="number"
|
||||
min="0"
|
||||
value={server.prefixSize}
|
||||
onChange={(e) => handleChange('prefixSize', parseInt(e.target.value))}
|
||||
/>
|
||||
</div>
|
||||
|
||||
{/* Include Prefix Length */}
|
||||
<div className="flex items-center space-x-2">
|
||||
<Checkbox
|
||||
id="includePrefixLength"
|
||||
checked={server.includePrefixLength}
|
||||
onCheckedChange={(checked) => handleChange('includePrefixLength', checked)}
|
||||
/>
|
||||
<Label htmlFor="includePrefixLength">Include Prefix Length</Label>
|
||||
</div>
|
||||
|
||||
{/* Service ID Length */}
|
||||
<div className="space-y-2">
|
||||
<Label htmlFor="serviceIdLength">Service ID Length</Label>
|
||||
<Input
|
||||
id="serviceIdLength"
|
||||
type="number"
|
||||
min="0"
|
||||
value={server.serviceIdLength}
|
||||
onChange={(e) => handleChange('serviceIdLength', parseInt(e.target.value))}
|
||||
/>
|
||||
</div>
|
||||
|
||||
{/* Service ID Position */}
|
||||
<div className="space-y-2">
|
||||
<Label htmlFor="serviceIdPosition">Service ID Position</Label>
|
||||
<Select
|
||||
value={server.serviceIdPosition}
|
||||
onValueChange={(value) => handleChange('serviceIdPosition', value)}
|
||||
>
|
||||
<SelectTrigger>
|
||||
<SelectValue placeholder="Select position" />
|
||||
</SelectTrigger>
|
||||
<SelectContent>
|
||||
<SelectItem value="NONE">None</SelectItem>
|
||||
<SelectItem value="START">Start</SelectItem>
|
||||
<SelectItem value="END">End</SelectItem>
|
||||
</SelectContent>
|
||||
</Select>
|
||||
</div>
|
||||
</CardContent>
|
||||
</Card>
|
||||
|
||||
{/* Script Editor */}
|
||||
<Card>
|
||||
|
||||
Reference in New Issue
Block a user