自动更新管控端
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.
 
 
 
 
 
 

197 lines
5.9 KiB

<!DOCTYPE html>
<html>
<head>
<title>UPSYS console</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="/static/static/css/bootstrap.css">
<link rel="icon" type="image/x-icon" href="/favicon.ico?v=2">
<script type="text/javascript" src="/static/static/js/jquery.min.js"></script>
<script type="text/javascript" src="/static/static/js/bootstrap.min.js"></script>
<style>
.list-group>.list-group-item {
padding: 20px;
}
.optzone {
height: 60px;
}
.stabox{
height: 260px;
overflow:scroll;
}
.flist{
height:360px;
overflow:auto;
}
.icon {
display: inline-block;
width: 24px;
height: 24px;
}
.icon:hover{
cursor: pointer;
background-color: #4598F0;
}
.folder-icon {
mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHhtbG5zOnhsaW5rPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rJyAgcHJlc2VydmVBc3BlY3RSYXRpbz0neE1pZFlNaWQgbWVldCcgIHZpZXdCb3g9IjAgMCAyNCAyNCIgPjxwYXRoIGQ9Ik0xMCA0SDRDMi45IDQgMiA0LjkgMiA2VjE4QzIgMTkuMSAyLjkgMjAgNCAyMEgyMEMyMS4xIDIwIDIyIDE5LjEgMjIgMThWOEMyMiA2LjkgMjEuMSA2IDIwIDZIMTJMMTAgNFoiIC8+PC9zdmc+");
-webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHhtbG5zOnhsaW5rPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rJyAgcHJlc2VydmVBc3BlY3RSYXRpbz0neE1pZFlNaWQgbWVldCcgIHZpZXdCb3g9IjAgMCAyNCAyNCIgPjxwYXRoIGQ9Ik0xMCA0SDRDMi45IDQgMiA0LjkgMiA2VjE4QzIgMTkuMSAyLjkgMjAgNCAyMEgyMEMyMS4xIDIwIDIyIDE5LjEgMjIgMThWOEMyMiA2LjkgMjEuMSA2IDIwIDZIMTJMMTAgNFoiIC8+PC9zdmc+");
background-color: #c1972e;
}
.file-icon {
background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHhtbG5zOnhsaW5rPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rJyAgcHJlc2VydmVBc3BlY3RSYXRpbz0neE1pZFlNaWQgbWVldCcgIHZpZXdCb3g9IjAgMCAyNCAyNCIgPjxwYXRoIGQ9Ik0xNCAySDZDNC45IDIgNCAyLjkgNCA0VjIwQzQgMjEuMSA0LjkgMjIgNiAyMkgxOEMxOS4xIDIyIDIwIDIxLjEgMjAgMjBWOEwxNCAyTTEzIDlWMy41TDE4LjUgOUgxM1oiIC8+IDwvc3ZnPg==");
background-repeat: no-repeat;
}
</style>
</head>
<body>
<div class="jumbotron">
<div class="container">
<p>文件更新控制台</p>
</div>
</div>
<!-- 输入服务器ip -->
<div class="container">
<div class="col-md-12 no-padding">
<div class="form-group col-md-10">
<div class="input-group">
<div class="input-group-addon">服务器ip</div>
<input type="text" class="form-control" name="sip" id="scip" placeholder="eg:192.168.66.99">
</div>
</div>
<div class="form-group col-md-2">
<button type="button" id="entsip" class="btn btn-primary">Transfer</button>
</div>
</div>
</div>
<!-- 罗列文件的列表信息 -->
<div class="container">
<!-- 源服务器 -->
<div class="col-md-6">
<div class="panel panel-default">
<!-- Default panel contents -->
<div class="panel-heading">源站({{.Loip}})</div>
<div class="panel-body">
<p>监听目录:{{.Rundir}}</p>
<p>相对目录: {{.DownloadPath}}</p>
<p>
<a href="./console" class="btn btn-primary btn-sm">home</a>
<a href="?p={{b64en $.Relpath}}&f=&file=1" class="btn btn-success btn-sm">返回上层</a>
</p>
</div>
<!-- List group -->
<ul class="list-group">
{{ range .Files }}
<li class="list-group-item optzone">
<div class="col-md-8">
{{ if .IsDir }}
<span class="icon folder-icon"></span>
<a href="?p={{b64en $.UrlPath}}&f={{b64en .Name }}&file=0">{{ .Name }}</a>
{{ else }}
<span class="icon file-icon"></span>
<a href="?p={{b64en $.UrlPath}}&f={{b64en .Name}}&file=1">{{ .Name }}</a>
{{ end }}
</div>
<div class="col-md-4">
{{ if .IsDir }} <!-- 空白 --> {{else}}
<a href="/up?p={{b64en $.UrlPath}}&f={{b64en .Name}}&s={{b64en $.Loip}}" title="更新{{ .Name }}" class="btn btn-primary btn-sm">同步</a>
{{end}}
</div>
</li>
{{ end }}
</ul>
</div>
</div>
<!-- 目标服务器 -->
<div class="col-md-6">
<div class="panel panel-default">
<!-- Default panel contents -->
<div class="panel-heading" id="mbip">目标站</div>
<div class="panel-body">
<p>监听目录:<span id="sc01"></span></p>
<p>相对目录: <span id="sc02"></span> </p>
</div>
<!-- List group -->
<ul class="list-group" id="tgsc">
</ul>
</div>
</div>
</div>
<!-- 状态信息 -->
<div class="container">
<div class="col-md-12">
<div class="panel">
<div class="panel-heading">运行状态</div>
<div class="panel-body" >
<ul class="list-group flist" id="rstatus"></ul>
</div>
</div>
</div>
</div>
<script type="text/javascript">
$(function(){
// click function
$("#entsip").on("click",function(){
//
var sip = $("#scip").val();
var html = "<li class=\"list-group-item\">输入目标服务器"+sip+"</li>";
// 目标站
$("#mbip").text("目标站("+sip+")");
// 获取信息
gescinfo(sip)
//
$("#rstatus").append(html)
})
// 获取目标服务器的信息
var gescinfo=function(scip){
var url="http://"+scip+":9099/sc?callback"
var html="";
$.getJSON(url,function(res){
// res.curdir
$.each(res.data.list,function(k,v){
html+="<li class=\"list-group-item optzone\"><div class=\"col-md-8\">";
if(v.dirflag){
html +="<span class=\"icon folder-icon\"></span>"+v.fname;
}else{
html +="<span class=\"icon file-icon\"></span>"+v.fname;
}
html+="</div><div class=\"col-md-4\"><a href=\"#\" class=\"btn btn-primary btn-sm\">同步</a></div></li>";
})
// append to html
$("#tgsc").html(html)
writelog(scip+"获取数据:"+res.data.list.length+"条数据" )
$("#sc01").text(res.curdir);
});
}
// write log
var writelog=function(html){
var hprex="<li class=\"list-group-item\">"+html+"</li>";
$("#rstatus").append(hprex)
}
});
</script>
</body>
</html>