@ -6,7 +6,7 @@
user _label = document . getElementById ( 'user_label' ) ,
active _record = document . getElementById ( 'active_record' ) ,
right _menu = document . getElementById ( 'right-menu' ) ;
socket . emit ( 'user.count' , { } ) ;
socket . on ( 'user.count' , function ( data ) {
num _users . innerHTML = "We currently have <b>" + data . count + "</b> registered users." ;
@ -28,22 +28,22 @@
socket . emit ( 'api:user.active.get' ) ;
socket . on ( 'api:user.active.get' , function ( data ) {
var plural _users = parseInt ( data . users ) !== 1 ,
plural _anon = parseInt ( data . anon ) !== 1 ;
active _users . innerHTML = 'There ' + ( plural _users ? 'are' : 'is' ) + ' <strong>' + data . users + '</strong> user' + ( plural _users ? 's' : '' ) + ' and <strong>' + data . anon + '</strong> guest' + ( plural _anon ? 's' : '' ) + ' online' ;
} ) ;
socket . emit ( 'api:user.active.get_record' ) ;
socket . on ( 'api:user.active.get_record' , function ( data ) {
active _record . innerHTML = "most users ever online was <strong>" + data . record + "</strong> on <strong>" + ( new Date ( parseInt ( data . timestamp , 10 ) ) ) . toUTCString ( ) + "</strong>" ;
} ) ;
socket . emit ( 'api:updateHeader' , { fields : [ 'username' , 'picture' , 'userslug' ] } ) ;
socket . on ( 'api:updateHeader' , function ( data ) {
var rightMenu = $ ( '#right-menu' ) ,
isLoggedIn = data . uid > 0 ;
@ -96,10 +96,39 @@
notifTrigger . addEventListener ( 'click' , function ( e ) {
e . preventDefault ( ) ;
if ( notifContainer . className . indexOf ( 'open' ) === - 1 ) {
socket . emit ( 'api:notifications.get' ) ;
socket . emit ( 'api:notifications.mark_all_read' , null , function ( ) {
notifIcon . className = 'icon-circle-blank' ;
utils . refreshTitle ( ) ;
socket . emit ( 'api:notifications.get' , null , function ( data ) {
var notifFrag = document . createDocumentFragment ( ) ,
notifEl = document . createElement ( 'li' ) ,
numRead = data . read . length ,
numUnread = data . unread . length ,
x ;
notifList . innerHTML = '' ;
if ( ( data . read . length + data . unread . length ) > 0 ) {
for ( x = 0 ; x < numUnread ; x ++ ) {
notifEl . setAttribute ( 'data-nid' , data . unread [ x ] . nid ) ;
notifEl . className = 'unread' ;
notifEl . innerHTML = '<a href="' + data . unread [ x ] . path + '"><span class="pull-right">' + utils . relativeTime ( data . unread [ x ] . datetime , true ) + '</span>' + data . unread [ x ] . text + '</a>' ;
notifFrag . appendChild ( notifEl . cloneNode ( true ) ) ;
}
for ( x = 0 ; x < numRead ; x ++ ) {
notifEl . setAttribute ( 'data-nid' , data . read [ x ] . nid ) ;
notifEl . className = '' ;
notifEl . innerHTML = '<a href="' + data . read [ x ] . path + '"><span class="pull-right">' + utils . relativeTime ( data . read [ x ] . datetime , true ) + '</span>' + data . read [ x ] . text + '</a>' ;
notifFrag . appendChild ( notifEl . cloneNode ( true ) ) ;
}
} else {
notifEl . innerHTML = '<a>You have no notifications</a>' ;
notifFrag . appendChild ( notifEl ) ;
}
notifList . appendChild ( notifFrag ) ;
if ( data . unread . length > 0 ) notifIcon . className = 'icon-circle active' ;
else notifIcon . className = 'icon-circle-blank' ;
socket . emit ( 'api:notifications.mark_all_read' , null , function ( ) {
notifIcon . className = 'icon-circle-blank' ;
utils . refreshTitle ( ) ;
} ) ;
} ) ;
}
} ) ;
@ -115,35 +144,6 @@
if ( nid > 0 ) socket . emit ( 'api:notifications.mark_read' , nid ) ;
}
} ) ;
socket . on ( 'api:notifications.get' , function ( data ) {
var notifFrag = document . createDocumentFragment ( ) ,
notifEl = document . createElement ( 'li' ) ,
numRead = data . read . length ,
numUnread = data . unread . length ,
x ;
notifList . innerHTML = '' ;
if ( ( data . read . length + data . unread . length ) > 0 ) {
for ( x = 0 ; x < numUnread ; x ++ ) {
notifEl . setAttribute ( 'data-nid' , data . unread [ x ] . nid ) ;
notifEl . className = 'unread' ;
notifEl . innerHTML = '<a href="' + data . unread [ x ] . path + '"><span class="pull-right">' + utils . relativeTime ( data . unread [ x ] . datetime , true ) + '</span>' + data . unread [ x ] . text + '</a>' ;
notifFrag . appendChild ( notifEl . cloneNode ( true ) ) ;
}
for ( x = 0 ; x < numRead ; x ++ ) {
notifEl . setAttribute ( 'data-nid' , data . read [ x ] . nid ) ;
notifEl . className = '' ;
notifEl . innerHTML = '<a href="' + data . read [ x ] . path + '"><span class="pull-right">' + utils . relativeTime ( data . read [ x ] . datetime , true ) + '</span>' + data . read [ x ] . text + '</a>' ;
notifFrag . appendChild ( notifEl . cloneNode ( true ) ) ;
}
} else {
notifEl . innerHTML = '<a>You have no notifications</a>' ;
notifFrag . appendChild ( notifEl ) ;
}
notifList . appendChild ( notifFrag ) ;
if ( data . unread . length > 0 ) notifIcon . className = 'icon-circle active' ;
else notifIcon . className = 'icon-circle-blank' ;
} ) ;
socket . on ( 'event:new_notification' , function ( ) {
document . querySelector ( '.notifications a i' ) . className = 'icon-circle active' ;
app . alert ( {
@ -160,12 +160,12 @@
var username = data . username ;
var fromuid = data . fromuid ;
var message = data . message ;
require ( [ 'chat' ] , function ( chat ) {
var chatModal = chat . createModalIfDoesntExist ( username , fromuid ) ;
chatModal . show ( ) ;
chat . bringModalToTop ( chatModal ) ;
chat . appendChatMessage ( chatModal , message ) ;
} ) ;
} ) ;