Browse Source

get users with jquery

windows
Florian N 12 years ago
parent
commit
2c7e851719
  1. 6
      main/views.py
  2. 1
      pydash/urls.py
  3. 24
      templates/main.html
  4. 7
      templates/users.html
  5. 18
      usage/views.py

6
main/views.py

@ -100,9 +100,11 @@ def get_users():
"""
try:
pipe = os.popen("who |" + "awk '{print $1, $2, $6}'")
data = pipe.read().strip().split()
data = pipe.read().strip().split('\n')
pipe.close()
data = [i.split(None, 3) for i in data]
except Exception, err:
data = str(err)
@ -231,7 +233,7 @@ def getall(request):
#'getdisk': get_disk(),
'getip': get_ipaddress(),
'gettraffic': get_traffic('eth0'),
'getusers': get_users(),
#'getusers': get_users(),
'getcpuusage': get_cpu_usage(),
'time_refresh': time_refresh
}, context_instance=RequestContext(request))

1
pydash/urls.py

@ -19,6 +19,7 @@ urlpatterns = patterns('',
url(r'^info/users/$', 'usage.views.getusers', name='getusers'),
url(r'^info/cpuusage/$', 'usage.views.cpuusage', name='cpuusage'),
url(r'^info/getdisk/$', 'usage.views.getdisk', name='getdisk'),
url(r'^info/getusers/$', 'usage.views.getusers', name='getusers'),
url(r'^info/loadaverage/$', 'usage.views.loadaverage', name='loadaverage')
)

24
templates/main.html

@ -177,7 +177,17 @@
</div>
<!-- /widget-header -->
<div class="widget-content">
{% include 'users.html' %}
<table class="table table-hover table-condensed table-bordered">
<thead>
<tr>
<th>User</th>
<th>TTY</th>
<th>Logged in from</th>
</tr>
</thead>
<tbody id="get-users">
</tbody>
</table>
</div>
<!-- /widget-content -->
</div>
@ -283,6 +293,17 @@ dashboard.getDisk = function() {
$("#get-disk").html( tr );
});
}
dashboard.getUsers = function() {
$.getJSON('/info/getusers/{{ getusers }}', function(data) {
var tr='';
$.each( data, function( index, item){
tr+='<tr><td>'+item[0]+'</td><td>'+item[1]+'</td><td>'+item[2]+'</td></tr>';
})
tr+='';
$("#get-users").html( tr );
});
}
var mem_ctx = $("#memoryChart").get(0).getContext("2d");
var memChart = new Chart(mem_ctx);
@ -328,6 +349,7 @@ var load_ctx = $("#loadChart").get(0).getContext("2d");
window.setInterval('load_average()', {{ time_refresh }});
window.setInterval('dashboard.getOs()', {{ time_refresh }});
window.setInterval('dashboard.getDisk()', {{ time_refresh }});
window.setInterval('dashboard.getUsers()', {{ time_refresh }});
window.setInterval('cpuu_usage()', {{ time_refresh }});
});

7
templates/users.html

@ -6,11 +6,6 @@
<th>Logged in from</th>
</tr>
</thead>
<tbody id="os-users">
{% for user in getusers %}
{% cycle '<tr>' '' ''%}
<td>{{user}}</td>
{% cycle '' '' '</tr>' %}
{% endfor %}
<tbody id="get-users">
</tbody>
</table>

18
usage/views.py

@ -43,6 +43,24 @@ def getdisk(request):
response['Content-Type'] = "text/javascript"
response.write(data)
return response
def getusers(request):
"""
Return the online users
"""
if not request.user.is_authenticated():
return HttpResponseRedirect('/login')
try:
getusers = get_users()
except Exception:
getusers = None
data = simplejson.dumps(getusers)
response = HttpResponse()
response['Content-Type'] = "text/javascript"
response.write(data)
return response
def getusers(request):

Loading…
Cancel
Save