diff --git a/js/client-rooms.js b/js/client-rooms.js index 7d1bf391c..684e478e5 100644 --- a/js/client-rooms.js +++ b/js/client-rooms.js @@ -11,7 +11,7 @@ }, initialize: function () { this.$el.addClass('ps-room-light').addClass('scrollable'); - var buf = '

Loading...

'; + var buf = '

Loading...

'; this.$el.html(buf); app.on('response:rooms', this.update, this); app.send('/cmd rooms'); @@ -53,39 +53,39 @@ rooms = app.roomsData; } if (!rooms) return; - this.$('.roomlist').html(this.renderRoomList()); + this.updateRoomList(); if (!app.roomsFirstOpen && window.location.host !== 'demo.psim.us') { - var buf = ''; - if (Config.roomsFirstOpenBuffer) { - this.$('.roomlisttop').html(Config.roomsFirstOpenBuffer()); - } if (Config.roomsFirstOpenScript) { Config.roomsFirstOpenScript(); } app.roomsFirstOpen = 2; } }, - renderRoomList: function () { + updateRoomList: function () { var rooms = app.roomsData; var buf = ''; if (rooms.userCount) { var userCount = Number(rooms.userCount); var battleCount = Number(rooms.battleCount); - buf += '

'; - buf += '' + userCount + ' ' + (userCount == 1 ? 'user' : 'users') + ' online '; - buf += '' + battleCount + ' active ' + (battleCount == 1 ? 'battle' : 'battles') + ''; - buf += '

'; + buf += '
'; + buf += ''; + buf += ''; + buf += '
'; + this.$('.roomlisttop').html(buf); } - buf += '

Official chat rooms

'; + buf = ''; + buf += '

Official chat rooms

'; for (var i = 0; i < rooms.official.length; i++) { var roomData = rooms.official[i]; var id = toId(roomData.title); buf += '
(' + Number(roomData.userCount) + ' users) ' + Tools.escapeHTML(roomData.title) + '
' + Tools.escapeHTML(roomData.desc || '') + '
'; } + this.$('.roomlist').first().html(buf); - buf += '

Chat rooms

'; + buf = ''; + buf += '

Chat rooms

'; rooms.chat.sort(function (a, b) { return b.userCount - a.userCount; }); @@ -95,8 +95,20 @@ var escapedDesc = Tools.escapeHTML(roomData.desc || ''); buf += '
(' + Number(roomData.userCount) + ' users) ' + Tools.escapeHTML(roomData.title) + '
' + escapedDesc + '
'; } - - return buf; + this.$('.roomlist').last().html(buf); + }, + roomlist: function () { + app.addPopup(BattleListPopup); + }, + finduser: function () { + app.addPopupPrompt("Username", "Open", function (target) { + if (!target) return; + if (toId(target) === 'zarel') { + app.addPopup(Popup, {htmlMessage: "Zarel is very busy; please don't contact him this way. If you're looking for help, try joining the Help room?"}); + return; + } + app.addPopup(UserPopup, {name: target}); + }); } }); diff --git a/style/client.css b/style/client.css index b08daf435..d64d0ec51 100644 --- a/style/client.css +++ b/style/client.css @@ -927,6 +927,30 @@ p.or:after { display: none; } +/********************************************************* + * Room list + *********************************************************/ + +.roomlisttop { + max-width: 480px; + margin-bottom: 10px; +} +.roomcounters td { + text-align: center; +} +.roomcounters button { + margin: 0 auto; + width: 140px; + height: 60px; + padding: 3px 8px; + text-align: center; + font-size: 10pt; +} +.roomcounters button strong { + display: block; + font-size: 18pt; + font-weight: normal; +} .roomlist { text-align: left; } @@ -958,6 +982,10 @@ p.or:after { text-decoration: none; } +/********************************************************* + * Credits + *********************************************************/ + .ps-popup.credits { max-width: 380px; margin-top: 20px;