| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236 |
- {include file='admin/header.tpl'}
- <script src="//cdn.jsdelivr.net/npm/jsoneditor@latest/dist/jsoneditor.min.js"></script>
- <link href="//cdn.jsdelivr.net/npm/jsoneditor@latest/dist/jsoneditor.min.css" rel="stylesheet" type="text/css">
- <div class="page-wrapper">
- <div class="container-xl">
- <div class="page-header d-print-none text-white">
- <div class="row align-items-center">
- <div class="col">
- <h2 class="page-title">
- <span class="home-title">节点 #{$node->id}</span>
- </h2>
- <div class="page-pretitle my-3">
- <span class="home-subtitle">编辑节点信息</span>
- </div>
- </div>
- <div class="col-auto ms-auto d-print-none">
- <div class="btn-list">
- <a id="save-node" href="#" class="btn btn-primary">
- <i class="icon ti ti-device-floppy"></i>
- 保存
- </a>
- </div>
- </div>
- </div>
- </div>
- </div>
- <div class="page-body">
- <div class="container-xl">
- <div class="row row-deck row-cards">
- <div class="col-md-6 col-sm-12">
- <div class="card">
- <div class="card-header card-header-light">
- <h3 class="card-title">基础信息</h3>
- </div>
- <div class="card-body">
- <div class="form-group mb-3 row">
- <label class="form-label col-3 col-form-label">名称</label>
- <div class="col">
- <input id="name" type="text" class="form-control" value="{$node->name}">
- </div>
- </div>
- <div class="form-group mb-3 row">
- <label class="form-label col-3 col-form-label">连接地址</label>
- <div class="col">
- <input id="server" type="text" class="form-control" value="{$node->server}">
- </div>
- </div>
- <div class="form-group mb-3 row">
- <label class="form-label col-3 col-form-label">服务器IP</label>
- <div class="col">
- <input id="node_ip" type="text" class="form-control" value="{$node->node_ip}">
- </div>
- </div>
- <div class="form-group mb-3 row">
- <label class="form-label col-3 col-form-label">流量倍率</label>
- <div class="col">
- <input id="traffic_rate" type="text" class="form-control"
- value="{$node->traffic_rate}">
- </div>
- </div>
- <div class="form-group mb-3 row">
- <label class="form-label col-3 col-form-label">接入类型</label>
- <div class="col">
- <select id="sort" class="col form-select" value="{$node->sort}">
- <option value="14" {if $node->sort === 14}selected{/if}>Trojan</option>
- <option value="11" {if $node->sort === 11}selected{/if}>V2Ray</option>
- <option value="0" {if $node->sort === 0}selected{/if}>Shadowsocks</option>
- </select>
- </div>
- </div>
- <div class="form-group mb-3 row">
- <label class="form-label col-3 col-form-label">自定义配置</label>
- <div id="custom_config"></div>
- <label class="form-label col-form-label">
- 请参考 <a href="//wiki.sspanel.org/#/custom-config" target="_blank">wiki.sspanel.org/#/custom-config</a> 修改节点自定义配置
- </label>
- </div>
- <div class="mb-3">
- <div class="divide-y">
- <div>
- <label class="row">
- <span class="col">显示此节点</span>
- <span class="col-auto">
- <label class="form-check form-check-single form-switch">
- <input id="type" class="form-check-input" type="checkbox"
- {if $node->type === 1}checked="" {/if}>
- </label>
- </span>
- </label>
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
- <div class="col-md-6 col-sm-12">
- <div class="card">
- <div class="card-header card-header-light">
- <h3 class="card-title">其他信息</h3>
- </div>
- <div class="card-body">
- <div class="form-group mb-3 row">
- <label class="form-label col-3 col-form-label">备注</label>
- <div class="col">
- <input id="info" type="text" class="form-control" value="{$node->info}">
- </div>
- </div>
- <div class="form-group mb-3 row">
- <label class="form-label col-3 col-form-label">等级</label>
- <div class="col">
- <input id="node_class" type="text" class="form-control" value="{$node->node_class}">
- </div>
- </div>
- <div class="form-group mb-3 row">
- <label class="form-label col-3 col-form-label">组别</label>
- <div class="col">
- <input id="node_group" type="text" class="form-control" value="{$node->node_group}">
- </div>
- </div>
- <div class="hr-text">
- <span>流量设置</span>
- </div>
- <div class="form-group mb-3 row">
- <label class="form-label col-3 col-form-label">已用流量 (GB)</label>
- <div class="col">
- <input id="node_bandwidth" type="text" class="form-control"
- value="{round($node->node_bandwidth / 1073741824, 2)}" disabled="">
- </div>
- </div>
- <div class="form-group mb-3 row">
- <label class="form-label col-3 col-form-label">可用流量 (GB)</label>
- <div class="col">
- <input id="node_bandwidth_limit" type="text" class="form-control"
- value="{round($node->node_bandwidth_limit / 1073741824, 2)}">
- </div>
- </div>
- <div class="form-group mb-3 row">
- <label class="form-label col-3 col-form-label">流量重置日</label>
- <div class="col">
- <input id="bandwidthlimit_resetday" type="text" class="form-control"
- value="{$node->bandwidthlimit_resetday}">
- </div>
- </div>
- <div class="form-group mb-3 row">
- <label class="form-label col-3 col-form-label">速率限制 (Mbps)</label>
- <div class="col">
- <input id="node_speedlimit" type="text" class="form-control"
- value="{$node->node_speedlimit}">
- </div>
- </div>
- <div class="hr-text">
- <span>高级选项</span>
- </div>
- <div class="form-group mb-3 row">
- <label class="form-label col-3 col-form-label">节点通讯密钥</label>
- <input type="text" class="form-control" id="password" value="{$node->password}" disabled="">
- <div class="row my-3">
- <div class="col">
- <button id="reset-node-password" class="btn btn-red">重置</button>
- <button id="copy-password" class="copy btn btn-primary" data-clipboard-text="{$node->password}">
- 复制
- </button>
- </div>
- </div>
- <label class="form-label col-form-label">
- 通讯密钥用于 WebAPI 节点模式鉴权,如需更改请点击重置
- </label>
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
- <script>
- var clipboard = new ClipboardJS('.copy');
- clipboard.on('success', function(e) {
- $('#success-noreload-message').text('已复制到剪切板');
- $('#success-noreload-dialog').modal('show');
- });
- const container = document.getElementById('custom_config');
- var options = {
- modes: ['code', 'tree'],
- };
- const editor = new JSONEditor(container, options);
- editor.set({$node->custom_config})
- $("#reset-node-password").click(function() {
- $.ajax({
- url: '/admin/node/{$node->id}/password_reset',
- type: 'POST',
- dataType: "json",
- success: function(data) {
- if (data.ret === 1) {
- $('#success-message').text(data.msg);
- $('#success-dialog').modal('show');
- } else {
- $('#fail-message').text(data.msg);
- $('#fail-dialog').modal('show');
- }
- }
- })
- });
- $("#save-node").click(function() {
- $.ajax({
- url: '/admin/node/{$node->id}',
- type: 'PUT',
- dataType: "json",
- data: {
- {foreach $update_field as $key}
- {$key}: $('#{$key}').val(),
- {/foreach}
- type: $("#type").is(":checked"),
- custom_config: JSON.stringify(editor.get()),
- },
- success: function(data) {
- if (data.ret === 1) {
- $('#success-message').text(data.msg);
- $('#success-dialog').modal('show');
- window.setTimeout("location.href=top.document.referrer", {$config['jump_delay']});
- } else {
- $('#fail-message').text(data.msg);
- $('#fail-dialog').modal('show');
- }
- }
- })
- });
- </script>
- {include file='admin/footer.tpl'}
|