mirror of https://github.com/IoTcat/PyOne.git
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.
215 lines
8.3 KiB
215 lines
8.3 KiB
{%extends 'admin/layout.html'%} |
|
{%block content%} |
|
<link rel="stylesheet" href="/static/css/theme.css?t=20305"> |
|
<div class="mdui-container-fluid"> |
|
<div class="mdui-typo"> |
|
<h1> 上传管理 <small>文件上传添加和管理</small></h1> |
|
</div> |
|
<div class="mdui-toolbar mdui-color-theme"> |
|
<button class="mdui-btn mdui-btn-icon" onclick="Restart()" mdui-tooltip="{{'{'}}content: '重启任务(因重启网站之后上传中断)'{{'}'}}"><i class="mdui-icon material-icons"></i></button> |
|
<button class="mdui-btn mdui-btn-icon" onclick="ClearHist()" mdui-tooltip="{{'{'}}content: '清空任务'{{'}'}}"><i class="mdui-icon material-icons"></i></button> |
|
</div> |
|
<div class="mdui-row"> |
|
<form action="" method="post"> |
|
<div class="mdui-col-xs-3"> |
|
<label class="mdui-textfield-label">选择网盘</label> |
|
<select class="mdui-select" name="user" mdui-select> |
|
{%for user in get_od_user(True)%} |
|
{%if user[1]!='添加网盘'%} |
|
<option value="{{user[0]}}">{{user[1]}}</option> |
|
{%endif%} |
|
{%endfor%} |
|
</select> |
|
</div> |
|
<div class="mdui-col-xs-4"> |
|
<label class="mdui-textfield-label">服务器文件/文件夹</label> |
|
<input name="local" class="mdui-textfield-input" type="text" value="{%if local%}{{local}}{%else%}/{%endif%}" /> |
|
</div> |
|
<div class="mdui-col-xs-3"> |
|
<label class="mdui-textfield-label">远程目录</label> |
|
<input name="remote" class="mdui-textfield-input" type="text" value="{%if remote%}{{remote}}{%endif%}" /> |
|
</div> |
|
<div class="mdui-col-xs-2" style="padding-top: 34px;"> |
|
<button type="submit" name="upload" value="1" class="mdui-btn mdui-btn-block mdui-color-green-600 mdui-ripple"> |
|
<i class="mdui-icon material-icons"></i> 上传 |
|
</button> |
|
</div> |
|
</form> |
|
</div> |
|
<hr> |
|
<div class="nexmoe-item"> |
|
<div class="mdui-row"> |
|
<ul class="mdui-list"> |
|
<li class="mdui-list-item th"> |
|
<div class="mdui-col-sm-1 hidden-xs">盘</div> |
|
<div class="mdui-col-sm-4 mdui-col-xs-8">本地</div> |
|
<div class="mdui-col-sm-4 hidden-xs">远程</div> |
|
<div class="mdui-col-sm-1 hidden-xs">速度</div> |
|
<div class="mdui-col-sm-2 mdui-col-xs-4">进度</div> |
|
</li> |
|
<div id="tasks"> |
|
</div> |
|
</ul> |
|
</div> |
|
<div id="pagination"> |
|
</div> |
|
</div> |
|
</div> |
|
<script> |
|
function ShowNotice(msg){ |
|
mdui.snackbar({ |
|
message: msg, |
|
position: 'top' |
|
}); |
|
} |
|
function ClearHist(){ |
|
layer.confirm('确定清除任务?', { |
|
btn: ['确定','取消'] //按钮 |
|
}, |
|
function(index){ |
|
layer.close(index); |
|
$.ajax({ |
|
type: "POST", |
|
url: "{{url_for('admin.UploadRPCserver')}}", |
|
data:{action:'ClearHist'}, |
|
dataType: "json", |
|
beforeSend: function(xhr) { |
|
var index2 = layer.load(2, { |
|
shade: [0.1, '#fff'] //0.1透明度的白色背景 |
|
}); |
|
}, |
|
success: function(data) { |
|
ShowNotice(data.msg); |
|
}, |
|
complete: function(xhr) { |
|
$('#layui-layer-shade1').remove(); |
|
setTimeout("window.location.reload();",2000); |
|
} |
|
}); |
|
} |
|
); |
|
} |
|
|
|
function Restart(){ |
|
layer.confirm('确定重启任务?(只有任务中断了才重启!)', { |
|
btn: ['确定','取消'] //按钮 |
|
}, |
|
function(index){ |
|
layer.close(index); |
|
$.ajax({ |
|
type: "POST", |
|
url: "{{url_for('admin.UploadRPCserver')}}", |
|
data:{action:'Restart'}, |
|
dataType: "json", |
|
beforeSend: function(xhr) { |
|
var index2 = layer.load(2, { |
|
shade: [0.1, '#fff'] //0.1透明度的白色背景 |
|
}); |
|
}, |
|
success: function(data) { |
|
ShowNotice(data.msg); |
|
}, |
|
complete: function(xhr) { |
|
$('#layui-layer-shade1').remove(); |
|
setTimeout("window.location.reload();",2000); |
|
} |
|
}); |
|
} |
|
); |
|
} |
|
|
|
function GetPagination() { |
|
var defer = $.Deferred(); |
|
var getTimestamp = new Date().getTime(); |
|
$.ajax({ |
|
type: "POST", |
|
url: "{{url_for('admin.UploadRPCserver')}}?t=" + getTimestamp, |
|
data: { page: '{{page}}', action: 'pagination' }, |
|
cache: false, //使用同步的方式,true为异步方式 |
|
// async: false, //使用同步的方式,true为异步方式 |
|
dataType: "json", |
|
success: function(pagination) { |
|
defer.resolve(pagination); |
|
if (pagination.code == 1) { |
|
$('#pagination').empty(); |
|
html = '<center><div id="page">'; |
|
if (pagination.has_prev) { |
|
last_page = pagination.page - 1; |
|
tmp_html = '<a href="/admin/upload?page=' + last_page + '" class="mdui-fab mdui-fab-mini mdui-ripple"><</a>'; |
|
html += tmp_html; |
|
} |
|
for (var i = pagination.page_lists.length - 1; i >= 0; i--) { |
|
p = pagination.page_lists[i]; |
|
if (p) { |
|
if (p == {{ page }} ) { |
|
tmp_html = '<a href="/admin/upload?page=' + p + '" class="mdui-color-blue mdui-shadow-13">' + p + '</a>'; |
|
} else { |
|
tmp_html = '<a href="/admin/upload?page=' + p + '">' + p + '</a>'; |
|
} |
|
} else { |
|
tmp_html = '<a href="javascript:void(0);">…</a>'; |
|
} |
|
html += tmp_html; |
|
} |
|
if (pagination.has_next) { |
|
next_page = pagination.page + 1; |
|
tmp_html = '<a href="/admin/upload?page=' + next_page + '" class="mdui-fab mdui-fab-mini mdui-ripple">></a>'; |
|
html += tmp_html; |
|
} |
|
html += '</div></center>'; |
|
$('#pagination').append(html); |
|
} |
|
}, |
|
complete: function() { |
|
defer.promise(); |
|
} |
|
}); |
|
} |
|
|
|
function GetTasks() { |
|
var defer = $.Deferred(); |
|
var getTimestamp = new Date().getTime(); |
|
$.ajax({ |
|
type: "POST", |
|
url: "{{url_for('admin.UploadRPCserver')}}?t=" + getTimestamp, |
|
data: { page: '{{page}}' }, |
|
cache: false, //使用同步的方式,true为异步方式 |
|
// async: false, //使用同步的方式,true为异步方式 |
|
dataType: "json", |
|
success: function(data) { |
|
defer.resolve(data); |
|
if (data.code == 1) { |
|
$('#tasks').empty(); |
|
for (var i = 0; i <= data.result.length - 1; i++) { |
|
t = data.result[i]; |
|
html = '<li class="mdui-list-item mdui-ripple">'; |
|
html += '<div class="mdui-col-sm-1 hidden-xs">' + t.user + '</div>'; |
|
html += '<div class="mdui-col-sm-4 mdui-col-xs-8">' + t.localpath + '</div>'; |
|
html += '<div class="mdui-col-sm-4 hidden-xs">' + t.remote + '</div>'; |
|
html += '<div class="mdui-col-sm-1 hidden-xs">' + t.speed + '</div>'; |
|
html += '<div class="mdui-col-sm-2 mdui-col-xs-4">' + t.status + '</div>'; |
|
html += '</li>'; |
|
$('#tasks').append(html); |
|
} |
|
} |
|
}, |
|
complete: function() { |
|
defer.promise(); |
|
} |
|
}); |
|
} |
|
var interval_id = null; |
|
|
|
function AutoRefresh() { |
|
if (interval_id) { |
|
window.clearInterval(interval_id); |
|
} |
|
interval_id = window.setInterval(function() { |
|
GetTasks(); |
|
}, 2000); |
|
} |
|
GetTasks(); |
|
GetPagination(); |
|
AutoRefresh(); |
|
</script> |
|
{%endblock content%}
|
|
|