(function($) { var RoomsRoom = this.RoomsRoom = Room.extend({ minWidth: 320, maxWidth: 1024, type: 'rooms', title: 'Rooms', isSideRoom: true, events: { 'click .ilink': 'clickLink' }, initialize: function() { this.$el.addClass('ps-room-light').addClass('scrollable'); app.on('response:rooms', this.update, this); app.send('/cmd rooms'); app.user.on('change:named', this.updateUser, this); this.update(); }, clickLink: function(e) { if (e.cmdKey || e.metaKey || e.ctrlKey) return; e.preventDefault(); e.stopPropagation(); var roomid = $(e.currentTarget).attr('href').substr(app.root.length); app.tryJoinRoom(roomid); }, updateUser: function() { this.update(); }, focus: function() { if (new Date().getTime() - this.lastUpdate > 60*1000) { app.send('/cmd rooms'); this.lastUpdate = new Date().getTime(); } // this.$('button[name=joinRoomPopup]').focus(); }, joinRoomPopup: function() { app.addPopupPrompt("Room name:", "Join room", function(room) { if (!room) return; app.tryJoinRoom(room); }); }, update: function(rooms) { if (rooms) { this.lastUpdate = new Date().getTime(); app.roomsData = rooms; } else { rooms = app.roomsData; } var buf = '
Loading...
'; buf += ''+userCount+' '+(userCount==1?'user':'users')+' online '; buf += ''+battleCount+' active '+(battleCount==1?'battle':'battles')+''; buf += '
'; } buf += '