diff --git a/oml/user/api.py b/oml/user/api.py index 509d821..bd8f0c1 100644 --- a/oml/user/api.py +++ b/oml/user/api.py @@ -117,6 +117,7 @@ def getUsers(data): ''' users = [] ids = set() + local = set() for u in models.User.query.filter(models.User.id!=settings.USER_ID).all(): users.append(u.json()) ids.add(u.id) @@ -127,6 +128,10 @@ def getUsers(data): n['online'] = True n['name'] = n['username'] users.append(n) + local.add(id) + for n in users: + n['local'] = n['id'] in local + users.sort(key=lambda u: ox.sort_string(str(u.get('index', '')) + 'Z' + (u.get('name') or ''))) return { "users": users diff --git a/oml/user/models.py b/oml/user/models.py index 1daa527..f7be0f4 100644 --- a/oml/user/models.py +++ b/oml/user/models.py @@ -2,7 +2,6 @@ # vi:si:et:sw=4:sts=4:ts=4 from datetime import datetime import json -import hashlib import os import shutil diff --git a/static/js/peersPanel.js b/static/js/peersPanel.js index 2d2bcfe..0829e8e 100644 --- a/static/js/peersPanel.js +++ b/static/js/peersPanel.js @@ -490,6 +490,7 @@ oml.ui.peersPanel = function() { } ], items: folder.items, + keys: ['local'], max: 1, sort: [{key: 'index', operator: '+'}], sortable: folder.id == 'peers', diff --git a/static/js/statusIcon.js b/static/js/statusIcon.js index 635477e..bf1b6b2 100644 --- a/static/js/statusIcon.js +++ b/static/js/statusIcon.js @@ -45,6 +45,9 @@ oml.ui.statusIcon = function(user, index) { if (user.id != oml.user.id && data.id == oml.user.id && data.online) { return status == 'unknown' ? 'disconnected' : status; } + if (data.local) { + return 'connected'; + } if (!oml.user.online) { return 'unknown'; }