You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
205 lines
7.2 KiB
205 lines
7.2 KiB
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta name="viewport"
|
|
content="width=device-width, initial-scale=1, maximum-scale=1">
|
|
<title></title>
|
|
<link rel="stylesheet" href="/lanproxy-config/layui/css/layui.css">
|
|
<style type="text/css">
|
|
.main-content {
|
|
padding: 15px;
|
|
}
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<div class="layui-layout layui-layout-admin">
|
|
<div class="layui-header">
|
|
<div class="layui-logo">LanProxy Configuration</div>
|
|
<ul class="layui-nav layui-layout-right">
|
|
<li class="layui-nav-item"><a href="javascript:;"
|
|
class="logout"></a></li>
|
|
</ul>
|
|
</div>
|
|
|
|
<div class="layui-side layui-bg-black">
|
|
<div class="layui-side-scroll"></div>
|
|
</div>
|
|
|
|
<div class="layui-body"></div>
|
|
|
|
<div class="layui-footer"></div>
|
|
</div>
|
|
<script src="/lanproxy-config/layui/layui.js"></script>
|
|
<script src="/jquery/jquery-3.1.1.min.js"></script>
|
|
<script src="/jquery/jquery.i18n.properties.min.js" type="text/javascript"></script>
|
|
<script src="/template/template.js"></script>
|
|
<script>
|
|
window.clientList = [];
|
|
|
|
function api_invoke(uri, params, callback) {
|
|
var index = layer.load(1, {
|
|
shade : [ 0.1, '#fff' ]
|
|
});
|
|
$.ajax({
|
|
url : uri,
|
|
data : JSON.stringify(params),
|
|
type : 'POST',
|
|
cache : false,
|
|
dataType : 'json',
|
|
contentType : "application/json; charset=utf-8",
|
|
success : function(data) {
|
|
layer.close(index);
|
|
callback(data);
|
|
},
|
|
error : function(XMLHttpRequest, textStatus, errorThrown) {
|
|
layer.close(index);
|
|
if ("undefined" == typeof (XMLHttpRequest.responseJSON)) {
|
|
layer.alert("System error, please try again later.");
|
|
return;
|
|
}
|
|
|
|
if (40100 == XMLHttpRequest.responseJSON.code) {
|
|
location.href = "/";
|
|
} else {
|
|
layer.alert(XMLHttpRequest.responseJSON.message);
|
|
api_invoke("/config/detail", {}, function(data) {
|
|
clientList = data.data;
|
|
});
|
|
}
|
|
}
|
|
});
|
|
}
|
|
|
|
function load_page(pageUrl) {
|
|
$(".layui-body").load(pageUrl);
|
|
}
|
|
|
|
function check_lan(ip) {
|
|
var re = /^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5]):([0-9]|[1-9]\d{1,3}|[1-5]\d{4}|6[0-5]{2}[0-3][0-5])$/
|
|
return re.test(ip);
|
|
}
|
|
|
|
function check_port(port) {
|
|
if (port > 65535) {
|
|
return false;
|
|
}
|
|
var re = /^[1-9]+[0-9]*]*$/
|
|
return re.test(port);
|
|
}
|
|
|
|
$(function() {
|
|
if (window.history && window.history.pushState) {
|
|
$(window).on('popstate', function() {
|
|
window.history.pushState('forward', null, '#');
|
|
window.history.forward(1);
|
|
});
|
|
}
|
|
if ('pushState' in history) {
|
|
window.history.pushState('forward', null, '#');
|
|
window.history.forward(1);
|
|
} else {
|
|
History.pushState('forward', null, '?state=2');
|
|
window.history.forward(1);
|
|
}
|
|
window.onhashchange = function() {
|
|
History.pushState('forward', null, '?state=1');
|
|
}
|
|
|
|
$(".logout").click(function() {
|
|
api_invoke("/logout", {}, function(data) {
|
|
location.href = "/";
|
|
})
|
|
});
|
|
|
|
});
|
|
function update_menu() {
|
|
api_invoke("/config/detail", {}, function(data) {
|
|
if (data.code == 20000) {
|
|
clientList = data.data;
|
|
var html = template($("#menu-tpl").html(), {
|
|
list : clientList
|
|
});
|
|
$(".layui-side-scroll").html(html);
|
|
layui.use('element', function() {
|
|
var element = layui.element;
|
|
});
|
|
$(".client-list").html($.i18n.prop('menu.client.list'));
|
|
$(".client-list-sub").html($.i18n.prop('menu.client.list'));
|
|
$(".client-add").html($.i18n.prop('menu.client.add'));
|
|
$(".client-config").html($.i18n.prop('menu.client.config'));
|
|
$(".statistics").html($.i18n.prop('menu.client.statistics'));
|
|
$(".menu-item").click(function() {
|
|
window.clientIndex = $(this).attr("data-index");
|
|
load_page("html/lan/list.html");
|
|
});
|
|
} else {
|
|
alert(data.message);
|
|
}
|
|
});
|
|
}
|
|
|
|
|
|
var i18nLanguage = "en";
|
|
var webLanguage = [ 'zh-CN', 'en' ];
|
|
|
|
function initWebLanguage() {
|
|
var navLanguage = navigator.language;
|
|
if (navLanguage) {
|
|
var charSize = $.inArray(navLanguage, webLanguage);
|
|
if (charSize > -1) {
|
|
i18nLanguage = navLanguage;
|
|
}
|
|
}
|
|
}
|
|
|
|
initWebLanguage();
|
|
|
|
jQuery.i18n.properties({
|
|
name : 'lang', //资源文件名称
|
|
path : '/i18n/', //资源文件路径
|
|
mode : 'map', //用Map的方式使用资源文件中的值
|
|
language : i18nLanguage,
|
|
encoding: 'UTF-8',
|
|
callback : function() {//加载成功后设置显示内容
|
|
$('title').html($.i18n.prop('title'));
|
|
$(".layui-footer").html($.i18n.prop('title'));
|
|
$(".logout").html($.i18n.prop('logout'));
|
|
layui.use('layer', function() {
|
|
window.layer = layui.layer;
|
|
update_menu();
|
|
load_page("html/client/list.html");
|
|
});
|
|
}
|
|
});
|
|
</script>
|
|
<script id="menu-tpl" type="text/html">
|
|
<ul class="layui-nav layui-nav-tree">
|
|
<li class="layui-nav-item layui-nav-itemed"><a class="client-list"
|
|
href="javascript:;"></a>
|
|
<dl class="layui-nav-child">
|
|
<dd class="layui-this">
|
|
<a href="javascript:load_page('html/client/list.html');" class="client-list-sub"></a>
|
|
</dd>
|
|
<dd>
|
|
<a href="javascript:load_page('html/client/add.html');" class="client-add"></a>
|
|
</dd>
|
|
</dl>
|
|
</li>
|
|
<li class="layui-nav-item layui-nav-itemed">
|
|
<a class="client-config" href="javascript:;"></a>
|
|
<dl class="layui-nav-child">
|
|
<%for(var i = 0; i < list.length; i++) {%>
|
|
<dd>
|
|
<a href="javascript:;" class="menu-item" data-index="<%:=i%>"><%:=list[i].name%></a>
|
|
</dd>
|
|
<%}%>
|
|
</dl>
|
|
</li>
|
|
<li class="layui-nav-item layui-nav-itemed"><a class="statistics"
|
|
href="javascript:load_page('html/statistics/list.html');"></a>
|
|
</li>
|
|
</ul>
|
|
</script>
|
|
</body>
|
|
</html> |