feat(web): Implement full node configuration in settings UI
This commit is contained in:
@ -223,8 +223,12 @@
|
||||
<table class="table table-bordered table-striped" id="nodes_table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Node Name</th>
|
||||
<th>IP Address / Domain</th>
|
||||
<th>Name</th>
|
||||
<th>IP/Domain</th>
|
||||
<th>Port</th>
|
||||
<th>SNI</th>
|
||||
<th>OBFS</th>
|
||||
<th>Pin SHA256</th>
|
||||
<th>Action</th>
|
||||
</tr>
|
||||
</thead>
|
||||
@ -237,18 +241,42 @@
|
||||
|
||||
<hr>
|
||||
<h5>Add New Node</h5>
|
||||
<form id="add_node_form" class="form-inline">
|
||||
<div class="form-group mb-2 mr-sm-2">
|
||||
<label for="node_name" class="sr-only">Node Name</label>
|
||||
<input type="text" class="form-control" id="node_name" placeholder="e.g., Node-US">
|
||||
<div class="invalid-feedback">Please enter a name.</div>
|
||||
<form id="add_node_form">
|
||||
<div class="form-row">
|
||||
<div class="form-group col-md-6">
|
||||
<label for="node_name">Node Name (Required)</label>
|
||||
<input type="text" class="form-control" id="node_name" placeholder="e.g., Node-US">
|
||||
<div class="invalid-feedback">Please enter a unique name.</div>
|
||||
</div>
|
||||
<div class="form-group col-md-6">
|
||||
<label for="node_ip">IP Address / Domain (Required)</label>
|
||||
<input type="text" class="form-control" id="node_ip" placeholder="e.g., node.example.com or 1.2.3.4">
|
||||
<div class="invalid-feedback">Please enter a valid IP or domain.</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group mb-2 mr-sm-2">
|
||||
<label for="node_ip" class="sr-only">IP Address / Domain</label>
|
||||
<input type="text" class="form-control" id="node_ip" placeholder="e.g., node.example.com">
|
||||
<div class="invalid-feedback">Please enter a valid IP or domain.</div>
|
||||
<div class="form-row">
|
||||
<div class="form-group col-md-3">
|
||||
<label for="node_port">Port (Optional)</label>
|
||||
<input type="number" class="form-control" id="node_port" placeholder="e.g., 443">
|
||||
<div class="invalid-feedback">Please enter a valid port (1-65535).</div>
|
||||
</div>
|
||||
<div class="form-group col-md-3">
|
||||
<label for="node_obfs">OBFS (Optional)</label>
|
||||
<input type="text" class="form-control" id="node_obfs" placeholder="obfs-password">
|
||||
<div class="invalid-feedback">OBFS cannot be empty if provided.</div>
|
||||
</div>
|
||||
<div class="form-group col-md-6">
|
||||
<label for="node_sni">SNI (Optional)</label>
|
||||
<input type="text" class="form-control" id="node_sni" placeholder="e.g., yourdomain.com">
|
||||
<div class="invalid-feedback">Please enter a valid domain name (not an IP).</div>
|
||||
</div>
|
||||
</div>
|
||||
<button type="button" id="add_node_btn" class="btn btn-success mb-2">
|
||||
<div class="form-group">
|
||||
<label for="node_pin">Pin SHA256 (Optional)</label>
|
||||
<input type="text" class="form-control" id="node_pin" placeholder="5D:23:0E:E9:10:AB:96:E0:43...">
|
||||
<div class="invalid-feedback">Invalid SHA256 pin format.</div>
|
||||
</div>
|
||||
<button type="button" id="add_node_btn" class="btn btn-success">
|
||||
<span class="spinner-border spinner-border-sm" role="status" aria-hidden="true" style="display: none;"></span>
|
||||
Add Node
|
||||
</button>
|
||||
|
||||
Reference in New Issue
Block a user