mirror of https://github.com/jumpserver/jumpserver
dashboard
parent
cf8af114fe
commit
3c70512d8e
|
@ -6,6 +6,7 @@ urlpatterns = patterns('',
|
|||
# url(r'^$', 'jumpserver.views.home', name='home'),
|
||||
# url(r'^blog/', include('blog.urls')),
|
||||
(r'^$', 'jumpserver.views.index'),
|
||||
(r'^api/user/$', 'jumpserver.views.api_user'),
|
||||
(r'^skin_config/$', 'jumpserver.views.skin_config'),
|
||||
(r'^base/$', 'jumpserver.views.base'),
|
||||
(r'^login/$', 'jumpserver.views.login'),
|
||||
|
|
|
@ -6,7 +6,9 @@ import json
|
|||
|
||||
from django.db.models import Count
|
||||
from django.shortcuts import render_to_response
|
||||
from django.http import HttpResponse
|
||||
from django.http import HttpResponseRedirect
|
||||
from django.template import RequestContext
|
||||
from django.core.paginator import Paginator, EmptyPage, InvalidPage
|
||||
|
||||
from juser.models import User
|
||||
|
@ -36,8 +38,6 @@ def index(request):
|
|||
path1, path2 = u'仪表盘', 'Dashboard'
|
||||
dic = {}
|
||||
li_date, li_str = getDaysByNum(7)
|
||||
# li_str = json.dumps(li_str)
|
||||
# print li_str, type(li_str)
|
||||
today = datetime.datetime.now().day
|
||||
from_week = datetime.datetime.now() - datetime.timedelta(days=7)
|
||||
week_data = Log.objects.filter(start_time__range=[from_week, datetime.datetime.now()])
|
||||
|
@ -51,12 +51,17 @@ def index(request):
|
|||
times = user_data.filter(start_time__year=year, start_time__month=month, start_time__day=day).count()
|
||||
li.append(times)
|
||||
dic[username] = li
|
||||
print dic
|
||||
users = User.objects.all()
|
||||
hosts = Asset.objects.all()
|
||||
online_host = Log.objects.filter(is_finished=0)
|
||||
online_user = online_host.distinct()
|
||||
return render_to_response('index.html', locals())
|
||||
return render_to_response('index.html', locals(), context_instance=RequestContext(request))
|
||||
|
||||
|
||||
def api_user(request):
|
||||
users = Log.objects.filter(is_finished=0).count()
|
||||
ret = {'users': users}
|
||||
return HttpResponse(json.dumps(ret))
|
||||
|
||||
|
||||
def skin_config(request):
|
||||
|
@ -76,14 +81,10 @@ def jasset_host_edit(j_id, j_ip, j_idc, j_port, j_type, j_group, j_active, j_com
|
|||
is_active = {u'是': '1', u'否': '2'}
|
||||
login_types = {'LDAP': 'L', 'SSH_KEY': 'S', 'PASSWORD': 'P', 'MAP': 'M'}
|
||||
for group in j_group[0].split():
|
||||
print group.strip()
|
||||
c = BisGroup.objects.get(name=group.strip())
|
||||
groups.append(c)
|
||||
j_type = login_types[j_type]
|
||||
print j_type
|
||||
j_idc = IDC.objects.get(name=j_idc)
|
||||
print j_idc
|
||||
print
|
||||
a = Asset.objects.get(id=j_id)
|
||||
if j_type == 'M':
|
||||
a.ip = j_ip
|
||||
|
|
|
@ -60,7 +60,7 @@
|
|||
</div>
|
||||
<div id="high" style="width:100%;height:400px;"></div>
|
||||
</br>
|
||||
<div id="dynamic" style="width:100%;height:400px;"></div>
|
||||
<div id="dynamic" style="width:100%;height:400px; margin-top:170px"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@ -102,8 +102,10 @@ $(function () {
|
|||
},
|
||||
series: [
|
||||
{% for k,v in dic.items %}
|
||||
{name: '{{ k }}',
|
||||
data: {{ v }}},
|
||||
{
|
||||
name: '{{ k }}',
|
||||
data: {{ v }}
|
||||
},
|
||||
{% endfor %}
|
||||
]
|
||||
});
|
||||
|
@ -122,28 +124,31 @@ $(function () {
|
|||
animation: Highcharts.svg, // don't animate in old IE
|
||||
marginRight: 10,
|
||||
events: {
|
||||
load: function() {
|
||||
|
||||
// set up the updating of the chart each second
|
||||
load: function () {
|
||||
var series = this.series[0];
|
||||
setInterval(function() {
|
||||
var x = (new Date()).getTime(), // current time
|
||||
y = Math.random();
|
||||
series.addPoint([x, y], true, true);
|
||||
}, 1000);
|
||||
setInterval(function () {
|
||||
jQuery.getJSON('api/user/', function (data) {
|
||||
var users = data.users;
|
||||
var x = (new Date()).getTime(), // current time
|
||||
y = users;
|
||||
console.log(users)
|
||||
series.addPoint([x, y], true, true);
|
||||
});
|
||||
}, 3000);
|
||||
}
|
||||
}
|
||||
},
|
||||
title: {
|
||||
text: 'Live random data'
|
||||
text: '实时在线用户统计'
|
||||
},
|
||||
xAxis: {
|
||||
type: 'datetime',
|
||||
tickPixelInterval: 150
|
||||
},
|
||||
yAxis: {
|
||||
min: 0,
|
||||
title: {
|
||||
text: 'Value'
|
||||
text: '用户数量'
|
||||
},
|
||||
plotLines: [{
|
||||
value: 0,
|
||||
|
@ -155,7 +160,7 @@ $(function () {
|
|||
formatter: function() {
|
||||
return '<b>'+ this.series.name +'</b><br/>'+
|
||||
Highcharts.dateFormat('%Y-%m-%d %H:%M:%S', this.x) +'<br/>'+
|
||||
Highcharts.numberFormat(this.y, 2);
|
||||
Highcharts.numberFormat(this.y);
|
||||
}
|
||||
},
|
||||
legend: {
|
||||
|
@ -165,7 +170,7 @@ $(function () {
|
|||
enabled: false
|
||||
},
|
||||
series: [{
|
||||
name: 'Random data',
|
||||
name: '实时在线用户数量',
|
||||
data: (function() {
|
||||
// generate an array of random data
|
||||
var data = [],
|
||||
|
@ -175,7 +180,7 @@ $(function () {
|
|||
for (i = -19; i <= 0; i++) {
|
||||
data.push({
|
||||
x: time + i * 1000,
|
||||
y: Math.random()
|
||||
y: 0
|
||||
});
|
||||
}
|
||||
return data;
|
||||
|
|
Loading…
Reference in New Issue