jumpserver/webroot/AutoSa/templates/logView.html

125 lines
4.3 KiB
HTML
Raw Normal View History

2014-11-02 14:54:26 +00:00
{% extends 'base.html' %}
2014-11-02 15:11:44 +00:00
{% load mytags %}
2014-11-02 14:54:26 +00:00
{% block content %}
2014-11-12 09:52:56 +00:00
2014-11-02 14:54:26 +00:00
<form method="post" action="">
<table class="table table-striped table-hover table-condensed">
<thead>
<tr>
<th>id</th>
2014-11-02 14:54:26 +00:00
<th>用户名</th>
<th>主机</th>
<th>监控</th>
<th>命令统计</th>
<th>阻断</th>
<th>开始时间</th>
<th>结束时间</th>
</tr>
</thead>
<tbody>
{% for log in logs.object_list %}
<tr>
<!--<td><input type="checkbox" name="selected" value="{{ log.id }}"></td>-->
<td>{{ log.id }}</td>
2014-11-02 14:54:26 +00:00
<td>{{ log.user }}</td>
<td>{{ log.host }}</td>
2014-11-04 13:56:39 +00:00
{% if log.finish %}
<td>监控</td>
<td><a href="/logHistory/?id={{ log.id }}" class="log_command">统计</a></td>
2014-11-04 13:56:39 +00:00
<td>阻断</td>
{% else %}
2014-11-07 07:18:52 +00:00
<td><a class='monitor' filename="{{ log.logfile }}">监控</a></td>
2014-11-04 13:56:39 +00:00
<td>命令统计</td>
2014-11-04 13:48:34 +00:00
<td><a href="/killSession/?id={{ log.id }}">阻断</a> </td>
2014-11-04 13:56:39 +00:00
{% endif %}
2014-11-02 14:54:26 +00:00
<td>{{ log.start_time|stamp2str }}</td>
<td>{{ log.end_time|stamp2str }}</td>
</tr>
{% endfor %}
</tbody>
</table>
2014-11-12 10:25:09 +00:00
<script src="http://{{ web_socket_host }}/socket.io/socket.io.js"></script>
2014-11-12 09:52:56 +00:00
2014-11-04 09:18:27 +00:00
<script >
2014-11-12 10:11:43 +00:00
$.fn.webSocket = function(opt){
var st = {};
st = $.extend(st,opt);
var message = {};
var $this = $(this);
var genUid = function(){
return new Date().getTime()+""+Math.floor(Math.random()*899+100);
};
var init = function(e){
var socket = io.connect('ws://'+globalConfig.SOCKET_HOST);
var node = $(e.target);
message.id = genUid();
message.filename = node.attr('filename');
BootstrapDialog.show({message:function(){
var escapeString = function (html){
var elem = document.createElement('div')
var txt = document.createTextNode(html)
elem.appendChild(txt)
return elem.innerHTML;
}
var tag = $('<div id="log" style="height:300px;overflow: auto;"></div>');
//告诉服务器端有用户登录
socket.emit('login', {userid:message.id, filename:message.filename});
socket.on('message',function(obj){
//去除log中的颜色控制字符
var regx = /\x1B\[([0-9]{1,3}((;[0-9]{1,3})*)?)?[m|K]/g;
tag.append('<p>'+escapeString(obj.content.replace(regx,''))+'</p>');
2014-11-12 10:21:34 +00:00
tag.animate({ scrollTop: tag[0].scrollHeight}, 1000);
2014-11-12 10:11:43 +00:00
});
return tag[0];
} ,
title:'实时监控:',
onhide:function(){
socket.emit('disconnect');
}});
}
$this.on("click",function(e){
init(e);
return false;
});
}
2014-11-04 09:18:27 +00:00
$('.log_command').on('click',function(){
2014-11-04 09:22:47 +00:00
var url = $(this).attr('href');
2014-11-04 09:18:27 +00:00
$.ajax({url:url,success:function(data){
BootstrapDialog.show({title:'命令统计',message:data});
}});
return false;
})
2014-11-12 09:52:56 +00:00
globalConfig = {
SOCKET_HOST: "{{ web_socket_host }}"
}
2014-11-07 07:33:41 +00:00
$(".monitor").webSocket()
2014-11-12 09:52:56 +00:00
2014-11-04 09:18:27 +00:00
</script>
2014-11-02 14:54:26 +00:00
<!--<button class="btn btn-primary">删除</button>-->
</form>
2014-11-02 15:01:36 +00:00
<nav>
<ul class="pager">
2014-11-03 02:57:23 +00:00
{% if logs.has_previous %}
<li><a href="?page={{ logs.previous_page_number }}">上一页</a></li>
2014-11-02 15:01:36 +00:00
{% endif %}
<span class="current">
2014-11-03 02:57:23 +00:00
Page {{ logs.number }} of {{ logs.paginator.num_pages }}.
2014-11-02 15:01:36 +00:00
</span>
2014-11-03 02:57:23 +00:00
{% if logs.has_next %}
<li><a href="?page={{ logs.next_page_number }}">下一页</a></li>
2014-11-02 15:01:36 +00:00
{% endif %}
</ul>
</nav>
2014-11-02 14:54:26 +00:00
{% endblock %}