mirror of
https://github.com/aaPanel/aaPanel.git
synced 2026-08-17 21:25:47 +02:00
282 lines
12 KiB
HTML
282 lines
12 KiB
HTML
<!doctype html>
|
|
<html>
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
|
<meta name="referer" content="never" />
|
|
<meta name="renderer" content="webkit">
|
|
<title>{{g.title}}</title>
|
|
<link rel="shortcut icon" href="/static/favicon.ico" type="image/x-icon" />
|
|
<link href="{{g.cdn_url}}/bootstrap-3.3.5/css/bootstrap.min.css" rel="stylesheet" />
|
|
<link href="{{g.cdn_url}}/codemirror/lib/codemirror.css?20191127={{g['version']}}" rel="stylesheet" />
|
|
<link href="{{g.cdn_url}}/css/site.css?version={{g['version']}}&repair={{data['js_random']}}" rel="stylesheet" />
|
|
{% for css_f in g['other_css'] %}
|
|
<link href="{{css_f}}" rel="stylesheet" />
|
|
{% endfor %}
|
|
<!--[if lte IE 9]>
|
|
<script src="/static/js/requestAnimationFrame.js"></script>
|
|
<![endif]-->
|
|
<style>
|
|
.contextmenu {
|
|
position: absolute;
|
|
width: 120px;
|
|
background: #FFFFFF;
|
|
border-radius: 5px;
|
|
overflow: hidden;
|
|
z-index: 99999999;
|
|
}
|
|
|
|
.contextmenu li {
|
|
border-left: 3px solid transparent;
|
|
transition: ease 0.3s;
|
|
}
|
|
|
|
.contextmenu li:hover {
|
|
background: #707070;
|
|
border-left: 3px solid #333;
|
|
}
|
|
|
|
.contextmenu li a {
|
|
display: block;
|
|
padding: 5px 10px;
|
|
color: #000000;
|
|
text-decoration: none;
|
|
transition: ease 0.3s;
|
|
cursor: default;
|
|
}
|
|
|
|
.contextmenu li:hover a {
|
|
color: #fff;
|
|
}
|
|
</style>
|
|
<script type="text/javascript">
|
|
var recycle_bin_db_open = !!{{g['recycle_bin_db_open']}};
|
|
var recycle_bin_open = !!{{g['recycle_bin_open']}};
|
|
var ie_version = (function() {
|
|
var userAgent = navigator.userAgent;
|
|
var isLessIE11 = userAgent.indexOf('compatible') > -1 && userAgent.indexOf('MSIE') > -1;
|
|
var isEdge = userAgent.indexOf('Edge') > -1 && !isLessIE11;
|
|
var isIE11 = userAgent.indexOf('Trident') > -1 && userAgent.indexOf('rv:11.0') > -1;
|
|
if (isLessIE11) {
|
|
var IEReg = new RegExp('MSIE (\\d+\\.\\d+);');
|
|
IEReg.test(userAgent);
|
|
var IEVersionNum = parseFloat(RegExp['$1']);
|
|
if (IEVersionNum === 7) {// IE7
|
|
return 7
|
|
} else if (IEVersionNum === 8) {// IE8
|
|
return 8
|
|
} else if (IEVersionNum === 9) {// IE9
|
|
return 9
|
|
} else if (IEVersionNum === 10) { // IE10
|
|
return 10
|
|
} else {
|
|
return 6
|
|
}
|
|
} else if (isEdge) { // edge
|
|
return 'edge'
|
|
} else if (isIE11) {// IE11
|
|
return 11
|
|
} else {// 不是ie浏览器
|
|
return -1
|
|
}
|
|
}());
|
|
if (ie_version != -1 && ie_version < 10 && ie_version != 'edge') {
|
|
window.location.href = '/tips';
|
|
}
|
|
if(ie_version != -1 && ( ie_version >= 10 || ie_version === 'edge')){
|
|
var title = document.createElement('div');
|
|
title.setAttribute('class', 'content');
|
|
title.setAttribute('style', 'height: 50px;position: absolute;top: 0;left: 0;right: 0;line-height: 50px;z-index: 9999999;background: rgba(0,0,0,.5);text-align: center;color: #ff922e;font-size: 19px;font-weight: 600;')
|
|
title.innerHTML = '<span>The current version of IE browser is too low, some functions cannot be displayed, please change to other browsers!</span><span class="compatibility_tips" style="position: absolute;right: 15px;top: 10px;font-size: 14px;display: inline-block; height: 30px;line-height: 28px;padding: 0 12px;font-weight: 500;color: #ffffff; border-radius: 4px;cursor: pointer;border: 2px solid #ffffff;font-weight: 500;">Close Tips</span>';
|
|
title.querySelector('.compatibility_tips').addEventListener('click',function(res){
|
|
var parentNode = this.parentElement;
|
|
parentNode.parentElement.removeChild(parentNode);
|
|
});
|
|
document.querySelector('html').appendChild(title);
|
|
}
|
|
if (!window.location.origin) {
|
|
window.location.origin = window.location.protocol + "//" + window.location.hostname + (window.location.port ? ':' + window.location.port: '');
|
|
}
|
|
</script>
|
|
</head>
|
|
<body>
|
|
<div class="bt-warp bge6">
|
|
<a style="display:none;" id="panel_debug" data="{{g['debug']}}" data-pyversion="{{g['pyversion']}}"></a>
|
|
<a style="display:none;" id="request_token_head" token="{{session['request_token_head']}}"></a>
|
|
<div id="container" class="container-fluid">
|
|
<div class="sidebar-scroll">
|
|
<div class="sidebar-auto">
|
|
<div id="task" class="task cw" onclick="messagebox()">0</div>
|
|
<h3 class="mypcip">
|
|
<span class="f14 cw">{{session['address']}}</span>
|
|
</h3>
|
|
<ul class="menu">
|
|
{% for menu in g['menus'] %}
|
|
{% if menu['href'] == g.uri %}
|
|
<li id="{{menu['id']}}" class="current"> <a class="{{menu['class']}}" href="{{menu['href']}}">{{menu['title']}}</a></li>
|
|
{% else %}
|
|
<li id="{{menu['id']}}"> <a class="{{menu['class']}}" href="{{menu['href']}}">{{menu['title']}}</a></li>
|
|
{% endif %}
|
|
{% endfor %}
|
|
</ul>
|
|
<div id="newbtpc"></div>
|
|
<div class="btpc-plus" onclick="bindBTPanel(0,'b')">+</div>
|
|
</div>
|
|
</div>
|
|
<button style="display: none;" id="bt_copys" class="bt_copy" data-clipboard-text=""></button>
|
|
<a style="display: none;" id="defaultPath">{{session['config']['sites_path']}}</a> {% block content %}{% endblock %}
|
|
<div class="footer bgw">{{session['brand']}}{{session['product']}} ©2014-{{session['yaer']}} {{session['brand']}} (bt.cn)
|
|
<!--<a style="margin-left:20px;color:#20a53a;" href="http://www.bt.cn/bbs" target="_blank">求助|建议请上宝塔论坛</a>-->
|
|
<a style="margin-left:20px;color:#20a53a;" href="http://forum.aapanel.com" target="_blank">{{session['bt_help']}}</a>
|
|
<a style="margin-left:20px;color:#20a53a;" href="https://doc.aapanel.com/web/#/3?page_id=117" target="_blank">Documentation</a>
|
|
</div>
|
|
</div>
|
|
<script type="text/javascript">
|
|
var recycle_bin_db_open = "{{g['recycle_bin_db_open']}}" === "1";
|
|
var recycle_bin_open = "{{g['recycle_bin_open']}}" === "1";
|
|
var update_code = "{{data['js_random']}}";
|
|
var panel_version = "{{g['version']}}";
|
|
var cdn_url = "{{g.cdn_url}}";
|
|
</script>
|
|
|
|
{% block scripts %}
|
|
<script src="{{g.cdn_url}}/js/jquery-1.10.2.min.js"></script>
|
|
<script src="{{g.cdn_url}}/layer/layer.js?version={{g['version']}}"></script>
|
|
<script src="{{g.cdn_url}}/language/{{session['lan']}}/lan.js?version={{g['version']}}&repair={{data['js_random']}}"></script>
|
|
<script src="{{g.cdn_url}}/js/clipboard.min.js" defer></script>
|
|
<script src="{{g.cdn_url}}/laydate/laydate.js" defer></script>
|
|
<script src="{{g.cdn_url}}/js/jquery.qrcode.min.js" defer></script>
|
|
|
|
<!-- 以下文件未来将被剔除 -->
|
|
<script src="{{g.cdn_url}}/js/bootstrap.min.js"></script>
|
|
<script src="{{g.cdn_url}}/js/public.js?version={{g['version']}}&repair={{data['js_random']}}"></script>
|
|
<script src="{{g.cdn_url}}/js/public_backup.js?version={{g['version']}}&repair={{data['js_random']}}"></script>
|
|
<script src="{{g.cdn_url}}/codemirror/lib/codemirror.js" defer></script>
|
|
<!-- End -->
|
|
<script type="text/javascript" src="{{g.cdn_url}}/js/tools.js?version={{g['version']}}&repair={{data['js_random']}}"></script>
|
|
{% for js_f in g['other_js'] %}
|
|
<script type="text/javascript" src="{{js_f}}"></script>
|
|
{% endfor %}
|
|
<script type="text/javascript">
|
|
$("#setBox").click(function() {
|
|
if ($(this).prop("checked")) {
|
|
$("input[name=id]").prop("checked", true);
|
|
} else {
|
|
$("input[name=id]").prop("checked", false);
|
|
}
|
|
});
|
|
setCookie('order', 'id desc');
|
|
var is_files_html = false;
|
|
var task_open = 0;
|
|
var task_close = false;
|
|
if ($(".current").attr("id") == 'memuAfiles') {
|
|
is_files_html = true;
|
|
}
|
|
function task_stat(my_init) {
|
|
if (!my_init) {
|
|
my_init = 0;
|
|
if (task_open) return;
|
|
}
|
|
if (task_close) return;
|
|
$.post('/task?action=get_task_lists', {
|
|
status: -3
|
|
}, function(task_list) {
|
|
if (task_list.length == 0) {
|
|
if (my_init && is_files_html) GetFiles(getCookie('Path'));
|
|
if (task_open) {
|
|
layer.close(task_open);
|
|
task_open = false;
|
|
}
|
|
return;
|
|
}
|
|
console.log(task_list.length)
|
|
var msg_body = '';
|
|
var is_add = false;
|
|
for (var i = 0; i < task_list.length; i++) {
|
|
if (task_list[i]['status'] == -1) {
|
|
if (!task_open || !$(".message-list").attr("class")) {
|
|
show_task();
|
|
}
|
|
if (task_list[i]['type'] == '1') {
|
|
msg_body += '<div class="mw-con">\
|
|
<ul class="waiting-down-list">\
|
|
<li>\
|
|
<div class="down-filse-name"><span class="fname" style="width:80%;" title="Downloading: ' + task_list[i].shell + '">Downloading: ' + task_list[i].shell + '</span><span style="position: absolute;left: 84%;top: 25px;color: #999;">' + task_list[i].log.pre + '%</span><span class="btlink" onclick="remove_task(' + task_list[i].id + ')" style="position: absolute;top: 25px;right: 20px;">Cancel</span></div>\
|
|
<div class="down-progress"><div class="done-progress" style="width:' + task_list[i].log.pre + '%"></div></div>\
|
|
<div class="down-info"><span class="total-size"> ' + task_list[i].log.used + '/' + ToSize(task_list[i].log.total) + '</span><span class="speed-size">' + (task_list[i].log.speed == 0 ? 'On connection..' : task_list[i].log.speed) + '/s</span><span style="margin-left: 20px;">Estimate: ' + task_list[i].log.time + '</span></div>\
|
|
</li>\
|
|
</ul>\
|
|
</div>';
|
|
} else {
|
|
msg_body += '\<div class="mw-title">\
|
|
<span style="max-width: 88%;display: block;overflow: hidden;text-overflow: ellipsis;white-space: nowrap;">' + task_list[i].name + ': ' + task_list[i].shell + '</span><span class="btlink" onclick="remove_task(' + task_list[i].id + ')" style="position: absolute;top: 10px;right: 15px;">Cancel</span></div>\
|
|
<div class="mw-con codebg">\
|
|
<code>' + task_list[i].log + '</code>\
|
|
</div>';
|
|
}
|
|
} else {
|
|
if (!is_add) {
|
|
msg_body += '<div class="mw-title">Waiting to execute task</div><div class="mw-con"><ul class="waiting-list">';
|
|
is_add = true;
|
|
}
|
|
msg_body += '<li><span class="wt-list-name" style="width: 90%;">' + task_list[i].name + ': ' + task_list[i].shell + '</span><span class="mw-cancel" onclick="remove_task(' + task_list[i].id + ')">X</span></li>';
|
|
}
|
|
}
|
|
if (task_open) {
|
|
if (is_add) {
|
|
msg_body += '</ul></div>';
|
|
}
|
|
$(".message-list").html(msg_body);
|
|
}
|
|
if (my_init > 3) {
|
|
if (is_files_html) GetFiles(getCookie('Path'));
|
|
my_init = 1;
|
|
}
|
|
my_init += 1
|
|
setTimeout(function() {
|
|
task_stat(my_init);
|
|
}, 1000);
|
|
});
|
|
}
|
|
function show_task() {
|
|
task_open = layer.open({
|
|
type: 1,
|
|
title: "Real time task queue",
|
|
area: '500px',
|
|
closeBtn: 2,
|
|
shadeClose: false,
|
|
shade: false,
|
|
offset: 'auto',
|
|
content: '<div style="margin: 10px;" class="message-list"></div>',
|
|
cancel: function() {
|
|
task_close = true;
|
|
}
|
|
});
|
|
}
|
|
function remove_task(id) {
|
|
layer.confirm('Do you want to cancel the current task queue?', {
|
|
title: 'Cancel task queue',
|
|
icon: 0
|
|
}, function (indexs) {
|
|
layer.close(indexs);
|
|
var loadT = bt.load('Canceling task...');
|
|
$.post('/task?action=remove_task', {
|
|
id: id
|
|
}, function(rdata) {
|
|
loadT.close()
|
|
bt.msg(rdata);
|
|
});
|
|
});
|
|
}
|
|
loadScript([
|
|
'{{g.cdn_url}}/laydate/laydate.js',
|
|
'{{g.cdn_url}}/js/jquery.qrcode.min.js',
|
|
'{{g.cdn_url}}/js/clipboard.min.js'
|
|
], function(e) {});
|
|
task_stat();
|
|
</script>
|
|
{% endblock %}
|
|
</div>
|
|
</body>
|
|
|
|
</html> |