Files
frpc-panel/assets/templates/index.html
2023-09-25 22:44:51 +08:00

290 lines
14 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<title>${ .FrpcPanel }</title>
<link rel="stylesheet" href="./static/lib/layui/css/layui.css?v=${ .version }">
<link rel="stylesheet" href="./static/css/layui-theme-dark.css?v=${ .version }">
<link rel="stylesheet" href="./static/css/index.css?v=${ .version }">
<link rel="stylesheet" href="./static/css/color.css?v=${ .version }">
<script src="./static/lib/layui/layui.js?v=${ .version }"></script>
<script src="./static/js/index-proxy-status.js?v=${ .version }"></script>
<script src="./static/js/index-client-info.js?v=${ .version }"></script>
<script src="./static/js/index-proxy-list.js?v=${ .version }"></script>
<script src="./static/js/index.js?v=${ .version }"></script>
</head>
<body>
<div class="layui-layout layui-layout-admin">
<div class="layui-header layui-bg-blue">
<div class="layui-logo layui-bg-black">${ .FrpcPanel }</div>
<div class="layui-title">
<span id="title"></span>
${ if .showExit }
<span class="layui-icon layui-icon-logout" id="logout"></span>
${ end }
</div>
</div>
<div class="layui-side layui-bg-black">
<div class="layui-side-scroll">
<ul class="layui-nav layui-nav-tree" lay-filter="leftNav" id="leftNav">
<li class="layui-nav-item layui-this">
<a href="javascript:void(0)" id="clientInfo">${ .ClientInfo }</a>
</li>
<li class="layui-nav-item">
<a href="javascript:void(0)" id="proxiesStatus">${ .ProxiesStatus }</a>
</li>
<li class="layui-nav-item layui-nav-itemed" id="proxies">
<a class="" href="javascript:void(0)">${ .Proxies }</a>
<dl class="layui-nav-child">
<dd>
<a href="javascript:void(0)" id="tcp">TCP</a>
</dd>
<dd>
<a href="javascript:void(0)" id="udp">UDP</a>
</dd>
<dd>
<a href="javascript:void(0)" id="http">HTTP</a>
</dd>
<dd>
<a href="javascript:void(0)" id="https">HTTPS</a>
</dd>
<dd>
<a href="javascript:void(0)" id="stcp">STCP</a>
</dd>
<dd>
<a href="javascript:void(0)" id="sudp">SUDP</a>
</dd>
</dl>
</li>
</ul>
</div>
<div class="version">
<a href="https://github.com/yhl452493373/frpc-panel" target="_blank">${ .FrpcPanel } ${ .version }</a>
</div>
</div>
<div class="layui-body" id="content"></div>
</div>
<!--代理列表-代理表格模板-->
<script type="text/html" id="proxiesTableTemplate">
<section class="proxies">
<table id="proxiesTable" lay-filter="proxiesTable"></table>
</section>
</script>
<!--配置信息模板-->
<script type="text/html" id="clientInfoTemplate">
<section class="client-info">
<div class="text-info">
<div class="text-row">
<div class="text-col">${ .ServerAddress }</div>
<div class="text-col">{{= d.server_addr || '-' }}</div>
</div>
<div class="text-row">
<div class="text-col">${ .ServerPort }</div>
<div class="text-col">{{= d.server_port || '-' }}</div>
</div>
<div class="text-row">
<div class="text-col">${ .Protocol }</div>
<div class="text-col">{{= d.protocol || '-' }}</div>
</div>
<div class="text-row">
<div class="text-col">${ .TCPMux }</div>
<div class="text-col">{{= d.tcp_mux || '-' }}</div>
</div>
<div class="text-row">
<div class="text-col">${ .User }</div>
<div class="text-col">{{= d.user || '-' }}</div>
</div>
<div class="text-row">
<div class="text-col">${ .UserToken }</div>
<div class="text-col">{{= d.metas.token || '-' }}</div>
</div>
<div class="text-row">
<div class="text-col">${ .AdminAddress }</div>
<div class="text-col">{{= d.admin_addr || '-' }}</div>
</div>
<div class="text-row">
<div class="text-col">${ .AdminPort }</div>
<div class="text-col">{{= d.admin_port || '-' }}</div>
</div>
<div class="text-row">
<div class="text-col">${ .AdminUser }</div>
<div class="text-col">{{= d.admin_user || '-' }}</div>
</div>
<div class="text-row">
<div class="text-col">${ .AdminPwd }</div>
<div class="text-col">{{= d.admin_pwd || '-' }}</div>
</div>
<div class="text-row">
<div class="text-col">${ .HeartbeatInterval }</div>
<div class="text-col">{{= d.heartbeat_interval || '-' }}</div>
</div>
<div class="text-row">
<div class="text-col">${ .HeartbeatTimeout }</div>
<div class="text-col">{{= d.heartbeat_timeout || '-' }}</div>
</div>
<div class="text-row">
<div class="text-col">${ .TLSEnable }</div>
<div class="text-col">{{= d.tls_enable || '-' }}</div>
</div>
<div class="text-row">
<div class="text-col">${ .TLSKeyFile }</div>
<div class="text-col">{{= d.tls_key_file || '-' }}</div>
</div>
<div class="text-row">
<div class="text-col">${ .TLSCertFile }</div>
<div class="text-col">{{= d.tls_cert_file || '-' }}</div>
</div>
<div class="text-row">
<div class="text-col">${ .TLSTrustedCAFile }</div>
<div class="text-col">{{= d.tls_trusted_ca_file || '-' }}</div>
</div>
</div>
</section>
</script>
<!--用户列表-添加用户表单模板-->
<script type="text/html" id="addProxyTemplate">
<form class="layui-form" id="addProxyForm" lay-filter="addProxyForm">
<div class="layui-tab layui-tab-brief">
<ul class="layui-tab-title">
<li class="layui-this">${ .Basic }</li>
<li>${ .Extra }</li>
</ul>
<div class="layui-tab-content">
<input type="hidden" name="type">
<input type="hidden" name="${ .OldNameKey }" id="oldName">
<div class="layui-tab-item layui-show">
<div class="layui-form-item">
<label class="layui-form-label">${ .ProxyName }</label>
<div class="layui-input-block">
<input type="text" name="name" placeholder="${ .ProxyName }" autocomplete="off"
class="layui-input"/>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">${ .LocalIp }</label>
<div class="layui-input-block">
<input type="text" name="local_ip" placeholder="${ .LocalIp }" autocomplete="off"
class="layui-input"/>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">${ .LocalPort }</label>
<div class="layui-input-block">
<input type="text" name="local_port" placeholder="${ .LocalPort }" autocomplete="off"
class="layui-input"/>
</div>
</div>
{{# if (d.type === 'http' || d.type === 'https') { }}
<div class="layui-form-item http https">
<label class="layui-form-label">${ .CustomizeDomains }</label>
<div class="layui-input-block">
<textarea name="custom_domains" placeholder="${ .CustomizeDomains }" autocomplete="off"
class="layui-textarea"></textarea>
</div>
</div>
<div class="layui-form-item layui-form-text http https">
<label class="layui-form-label">${ .Subdomain }</label>
<div class="layui-input-block">
<textarea name="sub_domain" placeholder="${ .Subdomain }" autocomplete="off"
class="layui-textarea"></textarea>
</div>
</div>
{{# } }}
{{# if (d.type === 'tcp' || d.type === 'udp') { }}
<div class="layui-form-item tcp udp">
<label class="layui-form-label">${ .RemotePort }</label>
<div class="layui-input-block">
<input type="text" name="remote_port" placeholder="${ .RemotePort }" autocomplete="off"
class="layui-input"/>
</div>
</div>
{{# } }}
<div class="layui-row">
<div class="layui-col-xs6">
<div class="layui-form-item">
<label class="layui-form-label">${ .UseEncryption }</label>
<div class="layui-input-block">
<input type="checkbox" name="use_encryption" value="true" title="${ .true }">
</div>
</div>
</div>
<div class="layui-col-xs6">
<div class="layui-form-item">
<label class="layui-form-label">${ .UseCompression }</label>
<div class="layui-input-block">
<input type="checkbox" name="use_compression" value="true" title="${ .true }">
</div>
</div>
</div>
</div>
</div>
<div class="layui-tab-item extra-param-tab-item">
<div class="layui-form-item">
<div class="layui-input-inline">
<input type="text" class="layui-input" placeholder="${ .ParamName }">
</div>
<div class="layui-form-mid">=</div>
<div class="layui-input-inline">
<input type="text" class="layui-input" lay-filter="addition"
lay-affix="addition" placeholder="${ .ParamValue }">
</div>
</div>
{{# layui.each(d.extraData, function(index, extra){ }}
<div class="layui-form-item extra-param-item">
<div class="layui-input-inline">
<input type="text" value="{{= extra.name}}" class="layui-input"
placeholder="${ .ParamName }">
</div>
<div class="layui-form-mid">=</div>
<div class="layui-input-inline">
<input type="text" value="{{= extra.value }}" class="layui-input"
lay-filter="subtraction" lay-affix="subtraction" placeholder="${ .ParamValue }">
</div>
</div>
{{# }); }}
</div>
</div>
</div>
</form>
</script>
<script type="text/html" id="extraParamAddedTemplate">
<div class="layui-form-item extra-param-item">
<div class="layui-input-inline">
<input type="text" value="{{= d.name}}" class="layui-input" placeholder="${ .ParamName }">
</div>
<div class="layui-form-mid">=</div>
<div class="layui-input-inline">
<input type="text" value="{{= d.value }}" class="layui-input"
lay-filter="subtraction" lay-affix="subtraction" placeholder="${ .ParamValue }">
</div>
</div>
</script>
<!--代理列表-代理表格模板-->
<script type="text/html" id="proxyListTableTemplate">
<section class="proxy-list">
<table id="proxyListTable" lay-filter="proxyListTable"></table>
</section>
</script>
<!--代理列表-表格工具条按钮模板-->
<script type="text/html" id="proxyListToolbarTemplate">
<div class="layui-btn-container">
<button class="layui-btn layui-btn-sm" lay-event="add">${ .NewProxy }</button>
<button class="layui-btn layui-btn-sm" lay-event="remove">${ .RemoveProxy }</button>
</div>
</script>
<!--代理列表-操作按钮模板-->
<script type="text/html" id="proxyListOperationTemplate">
<div class="layui-clear-space">
<a class="layui-btn layui-btn-xs" lay-event="update">${ .Update }</a>
<a class="layui-btn layui-btn-xs" lay-event="remove">${ .Remove }</a>
</div>
</script>
</body>
</html>