mirror of
https://github.com/smogon/pokemon-showdown-client.git
synced 2026-10-02 07:42:12 -05:00
Merge pull request #299 from YaYana/rank-formats
/rank format targeting
This commit is contained in:
@@ -607,18 +607,35 @@
|
||||
case 'rating':
|
||||
case 'ladder':
|
||||
if (!target) target = app.user.get('userid');
|
||||
|
||||
var targets = target.split(',');
|
||||
var formatTargeting = false;
|
||||
var formats = {};
|
||||
for (var i = 1, len = targets.length; i < len; i++) {
|
||||
formats[toId(targets[i])] = 1;
|
||||
formatTargeting = true;
|
||||
}
|
||||
|
||||
var self = this;
|
||||
$.get(app.user.getActionPHP() + '?act=ladderget&user='+encodeURIComponent(target), Tools.safeJSON(function(data) {
|
||||
$.get(app.user.getActionPHP() + '?act=ladderget&user='+encodeURIComponent(targets[0]), Tools.safeJSON(function(data) {
|
||||
try {
|
||||
var buffer = '<div class="ladder"><table>';
|
||||
buffer += '<tr><td colspan="8">User: <strong>'+target+'</strong></td></tr>';
|
||||
buffer += '<tr><td colspan="8">User: <strong>'+targets[0]+'</strong></td></tr>';
|
||||
if (!data.length) {
|
||||
buffer += '<tr><td colspan="8"><em>This user has not played any ladder games yet.</em></td></tr>';
|
||||
} else {
|
||||
buffer += '<tr><th>Format</th><th><abbr title="Elo rating">Elo</abbr></th><th><abbr title="user\'s percentage chance of winning a random battle (aka GLIXARE)">GXE</abbr></th><th><abbr title="Glicko-1 rating: rating±deviation">Glicko-1</abbr></th><th>COIL</th><th>W</th><th>L</th><th>T</th></tr>';
|
||||
for (var i=0; i<data.length; i++) {
|
||||
var hiddenFormats = [];
|
||||
var formatLength = data.length;
|
||||
for (var i=0; i<formatLength; i++) {
|
||||
var row = data[i];
|
||||
buffer += '<tr><td>'+row.formatid+'</td><td><strong>'+Math.round(row.acre)+'</strong></td><td>'+Math.round(row.gxe,1)+'</td><td>';
|
||||
if (!formatTargeting || formats[row.formatid]) {
|
||||
buffer += '<tr>';
|
||||
} else {
|
||||
buffer += '<tr class="hidden">';
|
||||
hiddenFormats.push(row.formatid);
|
||||
}
|
||||
buffer += '<td>'+row.formatid+'</td><td><strong>'+Math.round(row.acre)+'</strong></td><td>'+Math.round(row.gxe,1)+'</td><td>';
|
||||
if (row.rprd > 100) {
|
||||
buffer += '<span><em>'+Math.round(row.rpr)+'<small> ± '+Math.round(row.rprd)+'</small></em> <small>(provisional)</small></span>';
|
||||
} else {
|
||||
@@ -641,6 +658,13 @@
|
||||
buffer += '</td><td>'+row.w+'</td><td>'+row.l+'</td><td>'+row.t+'</td></tr>';
|
||||
}
|
||||
}
|
||||
if (hiddenFormats.length) {
|
||||
if (hiddenFormats.length === formatLength) {
|
||||
buffer += '<tr class="no-matches"><td colspan="8"><em>This user has not played any ladder games that match the format targeting.</em></td></tr>';
|
||||
}
|
||||
|
||||
buffer += '<tr><td colspan="8"><button name="showOtherFormats">' + hiddenFormats.slice(0, 3).join(', ') + (hiddenFormats.length > 3 ? ' and ' + (hiddenFormats.length - 3) + ' other formats' : '') + ' not shown</button></td></tr>';
|
||||
}
|
||||
buffer += '</table></div>';
|
||||
self.add('|raw|'+buffer);
|
||||
} catch(e) {}
|
||||
@@ -751,6 +775,20 @@
|
||||
var name = data.name || this.challengeData.userid;
|
||||
if (/^[a-z0-9]/i.test(name)) name = ' ' + name;
|
||||
app.rooms[''].challenge(name, this.challengeData.format, this.challengeData.team);
|
||||
},
|
||||
|
||||
showOtherFormats: function (d, target) {
|
||||
var autoscroll = (this.$chatFrame.scrollTop() + 60 >= this.$chat.height() - this.$chatFrame.height());
|
||||
|
||||
var $target = $(target);
|
||||
var $table = $target.closest('table');
|
||||
$table.find('tr.hidden').show();
|
||||
$table.find('tr.no-matches').remove();
|
||||
$target.closest('tr').remove();
|
||||
|
||||
if (autoscroll) {
|
||||
this.$chatFrame.scrollTop(this.$chat.height());
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@@ -828,6 +828,10 @@ p.or:after {
|
||||
color: gray;
|
||||
}
|
||||
|
||||
.hidden {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.roomlist {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user