mirror of
https://github.com/jumpserver/jumpserver.git
synced 2025-07-02 01:32:08 +00:00
Update some vie
This commit is contained in:
parent
c0de35a683
commit
3c00c578c3
@ -18,7 +18,10 @@ class ProxyLogSerializer(serializers.ModelSerializer):
|
|||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def get_time(obj):
|
def get_time(obj):
|
||||||
return timesince(obj.date_start, since=obj.date_finished)
|
if not obj.is_finished:
|
||||||
|
return ''
|
||||||
|
else:
|
||||||
|
return timesince(obj.date_start, since=obj.date_finished)
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def get_command_length(obj):
|
def get_command_length(obj):
|
||||||
|
107
apps/audits/templates/audits/command_log_list.html
Normal file
107
apps/audits/templates/audits/command_log_list.html
Normal file
@ -0,0 +1,107 @@
|
|||||||
|
{% extends '_base_list.html' %}
|
||||||
|
{% load i18n static %}
|
||||||
|
{% block custom_head_css_js %}
|
||||||
|
{{ block.super }}
|
||||||
|
<link href="{% static "css/plugins/footable/footable.core.css" %}" rel="stylesheet">
|
||||||
|
<style>
|
||||||
|
div.dataTables_wrapper div.dataTables_filter,
|
||||||
|
.dataTables_length {
|
||||||
|
float: right !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.dataTables_wrapper div.dataTables_filter {
|
||||||
|
margin-left: 15px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
{% endblock %}
|
||||||
|
{% block table_search %}{% endblock %}
|
||||||
|
{% block table_container %}
|
||||||
|
{#<div class="uc pull-left m-l-5 m-r-5"><a href="{% url "users:user-create" %}" class="btn btn-sm btn-primary"> {% trans "Create user" %} </a></div>#}
|
||||||
|
<table class="table table-striped table-bordered table-hover " id="proxy_log_list_table" >
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th class="text-center">
|
||||||
|
<div class="checkbox checkbox-default">
|
||||||
|
<input type="checkbox" class="ipt_check_all">
|
||||||
|
</div>
|
||||||
|
</th>
|
||||||
|
<th class="text-center">{% trans 'Username' %}</th>
|
||||||
|
<th class="text-center">{% trans 'IP' %}</th>
|
||||||
|
<th class="text-center">{% trans 'System user' %}</th>
|
||||||
|
{# <th class="text-center">{% trans 'Login type' %}</th>#}
|
||||||
|
<th class="text-center">{% trans 'Command' %}</th>
|
||||||
|
<th class="text-center">{% trans 'Success' %}</th>
|
||||||
|
<th class="text-center">{% trans 'Finished' %}</th>
|
||||||
|
<th class="text-center">{% trans 'Date start' %}</th>
|
||||||
|
<th class="text-center">{% trans 'Time' %}</th>
|
||||||
|
<th class="text-center">{% trans 'Action' %}</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
{% endblock %}
|
||||||
|
{% block custom_foot_js %}
|
||||||
|
<script src="{% static 'js/jquery.form.min.js' %}"></script>
|
||||||
|
<script src="{% static "js/plugins/layer/layer.js" %}"></script>
|
||||||
|
<script>
|
||||||
|
$(document).ready(function(){
|
||||||
|
var options = {
|
||||||
|
ele: $('#proxy_log_list_table'),
|
||||||
|
columnDefs: [
|
||||||
|
{targets: 1, createdCell: function (td, cellData, rowData) {
|
||||||
|
var detail_btn = '<a href="{% url "users:user-detail" pk=99991937 %}">' + cellData + '</a>';
|
||||||
|
$(td).html(detail_btn.replace('99991937', rowData.id));
|
||||||
|
}},
|
||||||
|
{targets: 4, createdCell: function (td, cellData, rowData) {
|
||||||
|
if (cellData) {
|
||||||
|
$(td).html('<a url="{% url "audits:proxy-log-commands-list" pk=99991938 %}" class="commands">99991937</a>'
|
||||||
|
.replace('99991937', cellData)
|
||||||
|
.replace('99991938',rowData.id))
|
||||||
|
}
|
||||||
|
}},
|
||||||
|
{targets: 5, createdCell: function (td, cellData) {
|
||||||
|
if (cellData) {
|
||||||
|
$(td).html('<i class="fa fa-times text-danger"></i>')
|
||||||
|
} else {
|
||||||
|
$(td).html('<i class="fa fa-check text-navy"></i>')
|
||||||
|
}
|
||||||
|
}},
|
||||||
|
{targets: 6, createdCell: function (td, cellData) {
|
||||||
|
if (!cellData) {
|
||||||
|
$(td).html('<i class="fa fa-times text-danger"></i>')
|
||||||
|
} else {
|
||||||
|
$(td).html('<i class="fa fa-check text-navy"></i>')
|
||||||
|
}
|
||||||
|
}},
|
||||||
|
{targets: 9, createdCell: function (td, cellData, rowData) {
|
||||||
|
var detail_btn = '<a href="{% url "audits:proxy-log-detail" pk=99991937 %}" class="btn btn-xs btn-info">{% trans "Detail" %}</a>'
|
||||||
|
.replace('99991937', cellData);
|
||||||
|
var delete_btn = '<a class="btn btn-xs btn-danger m-l-xs btn_delete" data-uid="99991937" data-name="99991938">{% trans "Delete" %}</a>'
|
||||||
|
.replace('99991937', cellData)
|
||||||
|
.replace('99991938', rowData.name);
|
||||||
|
$(td).html(detail_btn + delete_btn)
|
||||||
|
}}
|
||||||
|
],
|
||||||
|
ajax_url: '{% url "audits:proxy-log-list-create-api" %}',
|
||||||
|
columns: [{data: function(){return ""}}, {data: "name" }, {data: "ip"},
|
||||||
|
{data: "system_user"}, {data: "command_length"}, {data: 'was_failed'},
|
||||||
|
{data: "is_finished"}, {data: "date_start"}, {data: 'time'}, {data: 'id'}],
|
||||||
|
op_html: $('#actions').html()
|
||||||
|
};
|
||||||
|
jumpserver.initDataTable(options);
|
||||||
|
}).on('click', '.commands', function () {
|
||||||
|
var url = $(this).attr('url');
|
||||||
|
layer.open({
|
||||||
|
type: 2,
|
||||||
|
title: '很多时候,我们想最大化看,比如像这个页面。',
|
||||||
|
shadeClose: true,
|
||||||
|
shade: false,
|
||||||
|
maxmin: true, //开启最大化最小化按钮
|
||||||
|
area: ['893px', '600px'],
|
||||||
|
content: url
|
||||||
|
});
|
||||||
|
})
|
||||||
|
|
||||||
|
</script>
|
||||||
|
{% endblock %}
|
@ -10,6 +10,7 @@ urlpatterns = [
|
|||||||
url(r'^proxy-log$', views.ProxyLogListView.as_view(), name='proxy-log-list'),
|
url(r'^proxy-log$', views.ProxyLogListView.as_view(), name='proxy-log-list'),
|
||||||
url(r'^proxy-log/(?P<pk>\d+)$', views.ProxyLogDetailView.as_view(), name='proxy-log-detail'),
|
url(r'^proxy-log/(?P<pk>\d+)$', views.ProxyLogDetailView.as_view(), name='proxy-log-detail'),
|
||||||
url(r'^proxy-log/(?P<pk>\d+)/commands$', views.ProxyLogCommandsListView.as_view(), name='proxy-log-commands-list'),
|
url(r'^proxy-log/(?P<pk>\d+)/commands$', views.ProxyLogCommandsListView.as_view(), name='proxy-log-commands-list'),
|
||||||
|
url(r'^command-log$', views.CommandLogListView.as_view(), name='command-log-list'),
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# ~*~ coding: utf-8 ~*~
|
# ~*~ coding: utf-8 ~*~
|
||||||
#
|
#
|
||||||
|
|
||||||
from django.views.generic import ListView, UpdateView, DeleteView, DetailView
|
from django.views.generic import ListView, UpdateView, DeleteView, DetailView, TemplateView
|
||||||
from django.views.generic.edit import SingleObjectMixin
|
from django.views.generic.edit import SingleObjectMixin
|
||||||
from django.utils.translation import ugettext as _
|
from django.utils.translation import ugettext as _
|
||||||
from django.urls import reverse_lazy
|
from django.urls import reverse_lazy
|
||||||
@ -11,8 +11,7 @@ from .models import ProxyLog, CommandLog
|
|||||||
from .utils import AdminUserRequiredMixin
|
from .utils import AdminUserRequiredMixin
|
||||||
|
|
||||||
|
|
||||||
class ProxyLogListView(ListView):
|
class ProxyLogListView(TemplateView):
|
||||||
model = ProxyLog
|
|
||||||
template_name = 'audits/proxy_log_list.html'
|
template_name = 'audits/proxy_log_list.html'
|
||||||
|
|
||||||
def get_context_data(self, **kwargs):
|
def get_context_data(self, **kwargs):
|
||||||
@ -50,3 +49,15 @@ class ProxyLogCommandsListView(AdminUserRequiredMixin, SingleObjectMixin, ListVi
|
|||||||
|
|
||||||
def get_queryset(self):
|
def get_queryset(self):
|
||||||
return list(self.object.command_log.all())
|
return list(self.object.command_log.all())
|
||||||
|
|
||||||
|
|
||||||
|
class CommandLogListView(AdminUserRequiredMixin, TemplateView):
|
||||||
|
template_name = 'audits/command_log_list.html'
|
||||||
|
|
||||||
|
def get_context_data(self, **kwargs):
|
||||||
|
context = {
|
||||||
|
'app': 'Audits',
|
||||||
|
'action': 'Command log list'
|
||||||
|
}
|
||||||
|
kwargs.update(context)
|
||||||
|
return super(CommandLogListView, self).get_context_data(**kwargs)
|
||||||
|
Loading…
Reference in New Issue
Block a user