add menuExtras directory, add users script
This commit is contained in:
parent
1f843cf433
commit
c951998422
1 changed files with 98 additions and 0 deletions
98
menuExtras/users.js
Normal file
98
menuExtras/users.js
Normal file
|
@ -0,0 +1,98 @@
|
|||
(function() {
|
||||
|
||||
var css = {
|
||||
width: '12px',
|
||||
height: '12px',
|
||||
margin: '2px',
|
||||
borderRadius: '3px'
|
||||
},
|
||||
reload = pandora.$ui.appPanel.reload,
|
||||
timeout,
|
||||
$users = $('<div>'),
|
||||
$icon = $('<img>')
|
||||
.attr({src: Ox.getFlagByGeoname('', 16)})
|
||||
.css(css)
|
||||
.bind({click: start})
|
||||
.appendTo($users);
|
||||
|
||||
load();
|
||||
|
||||
function getUsers() {
|
||||
Ox.Request.clearCache('findUsers');
|
||||
pandora.api.findUsers({
|
||||
keys: ['firstseen', 'lastseen', 'location'],
|
||||
query: {
|
||||
conditions: [{key: 'level', operator: '!=', value: 'robot'}],
|
||||
operator: '&'
|
||||
},
|
||||
range: [0, 2400],
|
||||
sort: [{key: 'lastseen', operator: '-'}]
|
||||
}, function(result) {
|
||||
var time = new Date(),
|
||||
newUsers = result.data.items.filter(function(user) {
|
||||
return time - new Date(user.firstseen) < 86400000;
|
||||
}).length,
|
||||
allUsers = result.data.items.filter(function(user) {
|
||||
return time - new Date(user.lastseen) < 86400000;
|
||||
}).length;
|
||||
$users.empty();
|
||||
result.data.items.slice(0, 16).forEach(function(user) {
|
||||
$users.prepend(
|
||||
Ox.Element({
|
||||
element: '<img>',
|
||||
tooltip: '<div style="text-align: center">'
|
||||
+ (user.location || 'Unknown')
|
||||
+ '<br><span class="OxLight">'
|
||||
+ Ox.formatDate(user.lastseen, '%T')
|
||||
+ '</span></div>'
|
||||
})
|
||||
.attr({src: Ox.getFlagByGeoname(user.location, 16)})
|
||||
.css(css)
|
||||
.bindEvent({anyclick: stop})
|
||||
);
|
||||
});
|
||||
$users.prepend(
|
||||
Ox.Element({
|
||||
tooltip: Ox.formatNumber(newUsers) + '/'
|
||||
+ Ox.formatNumber(allUsers)
|
||||
+ ' (new/total) users in the last 24 hours'
|
||||
})
|
||||
.addClass('OxLight')
|
||||
.css({float: 'left', margin: '2px', fontSize: '10px'})
|
||||
.html(
|
||||
Ox.formatNumber(newUsers) + '/'
|
||||
+ Ox.formatNumber(allUsers)
|
||||
)
|
||||
.bindEvent({anyclick: stop})
|
||||
);
|
||||
});
|
||||
timeout = setTimeout(getUsers, 60000);
|
||||
}
|
||||
|
||||
function load() {
|
||||
pandora.$ui.mainMenu.find('.OxExtras').prepend($users);
|
||||
patchReload();
|
||||
}
|
||||
|
||||
function patchReload() {
|
||||
pandora.$ui.appPanel.reload = function() {
|
||||
reload();
|
||||
load();
|
||||
timeout ? start() : stop();
|
||||
}
|
||||
}
|
||||
|
||||
function start() {
|
||||
clearTimeout(timeout);
|
||||
timeout = void 0;
|
||||
getUsers();
|
||||
}
|
||||
|
||||
function stop() {
|
||||
clearTimeout(timeout);
|
||||
timeout = void 0;
|
||||
$('.OxTooltip').hide();
|
||||
$users.empty().append($icon.bind({click: start}));
|
||||
}
|
||||
|
||||
}());
|
Loading…
Reference in a new issue