.table-hover > tbody > tr:hover > th {
background-color: #222;
}
+.table th, .table td {
+ border: 1px solid #436688;
+}
.table td {
vertical-align: middle;
}
.table .tdcenter { text-align: center; }
-
+.accordion-group {
+ border: 1px solid rgb(39, 37, 37);
+}
+.accordion-inner {
+ border: none;
+}
/* One-off elements */
#statline {
text-align: center;
text-shadow: 2px 2px 3px #333;
}
+.indexform {
+ margin: 20px 0px 20px 0px;
+}
+.indexbox {
+ width: 250px;
+}
/* Navigation bar */
width: 100px;
}
+/* Game scoreboard */
+.game {
+ float: left;
+ margin-bottom: 30px;
+ min-width: 700px;
+ padding: 10px 7px;
+}
+.game a {
+ color: #CCC;
+}
+.game a:hover {
+ color: #d95f00;
+ text-decoration: none;
+}
+.game tr {
+ background-color: #000;
+}
+.game tr.red {
+ background-color: #4d0000;
+}
+.game tr.blue {
+ background-color: #00004d;
+}
+.game tr.yellow {
+ background-color: #4d4d00;
+}
+.game tr.pink {
+ background-color: #4d004d;
+}
+.game tr:hover {
+ background-color: #222;
+}
+
+/* accuracy and weapon graphs */
+.weapon-nav {
+ height: 70px;
+ margin-bottom: 20px;
+}
+.weapon-nav ul {
+ display: block;
+ list-style: none outside none;
+}
+.weapon-nav li {
+ cursor: pointer;
+ float: left;
+ margin-right: 10px;
+}
+.weapon-nav li:hover {
+ border-bottom: 2px solid #001021;
+}
+.weapon-nav .weapon-active {
+ border-bottom: 2px solid #436688;
+}
+.weapon-nav p {
+ text-align: center;
+}
+
+.flot table, .flot td {
+ background-color: black;
+ border: 0;
+}
+
+/* Player Info Tabs */
+#gbtabcontainer { margin-top: 10px; }
+#gbtab { font-size: 12px; }
+.tabbable p { font-size: 14px; }
+.tabs-below .nav-tabs > li > a { border-radius: 4px 4px 4px 4px; }
+.nav-tabs > .active > a, .nav-tabs > .active > a:hover { background-color: #111; color: #aaa; border-color: #222; }
+.nav-tabs > li > a { border-radius: 4px 4px 4px 4px; text-align: center; }
+.nav-tabs > li > a:hover { background-color: #111; border-color: #333; }
+.nav-tabs { border-bottom: 0px solid #000; }
+
+.table .tdcenter { text-align: center; }
+
+/* Game Info and Game Index*/
+.game-detail img {
+ float: left;
+ margin-right: 10px;
+ margin-bottom: 5px;
+}
+
+.game img {
+ float: left;
+ margin-right: 5px;
+ margin-bottom: 5px;
+}
+
+.game-detail p,
+.game h4 {
+ float: left;
+}
/* Desktop-specific stuff */
@media (min-width: 768px) {
## [4] = Hit
## [5] = Fired
-<table class="table table-bordered table-condensed">
+<table class="table table-condensed">
<thead>
<th></th>
<th>Weapon</th>
% else:
<div class="row">
- <div class="span12">
+ <div class="span10 offset1">
<h2>Recent Games</h2>
% for (game, server, map, gametype) in games:
<div class="game">
</div>
</div>
-<!-- navigation links -->
-${navlinks("game_index", games.page, games.last_page)}
+<div class="row">
+ <div class="span10 offset1">
+ <!-- navigation links -->
+ ${navlinks("game_index", games.page, games.last_page)}
+ </div>
+</div>
% endif
</%block>
<%block name="css">
- ${parent.css()}
- <link href="/static/css/sprites.css" rel="stylesheet">
+${parent.css()}
+<link href="/static/css/sprites.css" rel="stylesheet">
</%block>
<%block name="js">
- <script src="/static/js/bootstrap-collapse.min.js"></script>
- <script>
- $(".collapse").collapse();
+${parent.js()}
+<script>
+$(".collapse").collapse();
- // show accordion only when loaded to prevent rollup from being seen
- $("#acc-accordion").css('display', '');
- </script>
+// show accordion only when loaded to prevent rollup from being seen
+$("#acc-accordion").css('display', '');
+</script>
</%block>
<%block name="title">
<h2>Game Detail</h2>
<img width="48" height="48" src="/static/images/icons/48x48/${game.game_type_cd}.png" alt="${game.game_type_cd}"/>
<p>
- Played: <span class="abstime" data-epoch="${game.epoch()}" title="${game.start_dt.strftime('%a, %d %b %Y %H:%M:%S UTC')}">${game.fuzzy_date()}</span><br />
- Game Type: ${gametype.descr} (${game.game_type_cd})<br />
- Server: <a href="${request.route_url("server_info", id=server.server_id)}" name="Server info page for ${server.name}">${server.name}</a><br />
- Map: <a href="${request.route_url("map_info", id=map.map_id)}" name="Map info page for ${map.name}">${map.name}</a><br />
- % if game.duration is not None:
- Duration: ${"%s:%02d" % (game.duration.seconds/60, game.duration.seconds%60)}
- % endif
+ Played: <span class="abstime" data-epoch="${game.epoch()}" title="${game.start_dt.strftime('%a, %d %b %Y %H:%M:%S UTC')}">${game.fuzzy_date()}</span><br />
+ Game Type: ${gametype.descr} (${game.game_type_cd})<br />
+ Server: <a href="${request.route_url("server_info", id=server.server_id)}" name="Server info page for ${server.name}">${server.name}</a><br />
+ Map: <a href="${request.route_url("map_info", id=map.map_id)}" name="Map info page for ${map.name}">${map.name}</a><br />
+ % if game.duration is not None:
+ Duration: ${"%s:%02d" % (game.duration.seconds/60, game.duration.seconds%60)}
+ % endif
</p>
<span class="clear"></span>
</div>
<div class="row">
<div class="span6">
<h3>Best Flag Capture Times</h3>
- <table class="table table-bordered table-condensed">
+ <table class="table table-hover table-condensed">
<thead>
<tr>
- <th>Nick</th>
- <th>Captime</th>
+ <th>Nick</th>
+ <th>Captime</th>
</tr>
</thead>
<tbody>
% for pgs in captimes:
- <tr>
- <td>
+ <tr>
+ <td>
% if pgs.player_id > 2:
- <a href="${request.route_url("player_info", id=pgs.player_id)}"
- title="Go to the info page for this player">
+ <a href="${request.route_url("player_info", id=pgs.player_id)}"
+ title="Go to the info page for this player">
<span class="nick">${pgs.nick_html_colors()|n}</span>
- </a>
+ </a>
% else:
- <span class="nick">${pgs.nick_html_colors()|n}</span>
+ <span class="nick">${pgs.nick_html_colors()|n}</span>
% endif
- </td>
- <td>${round(float(pgs.fastest.seconds) + (pgs.fastest.microseconds/1000000.0), 2)}</td>
- </tr>
+ </td>
+ <td>${round(float(pgs.fastest.seconds) + (pgs.fastest.microseconds/1000000.0), 2)}</td>
+ </tr>
% endfor
</tbody>
</table>
<div class="span12">
<h3>Accuracy Information</h3>
<div class="accordion" id="acc-accordion" style="display:none;">
- % for pgstat in pgstats:
- % if pgstat.player_game_stat_id in pwstats:
+ % for pgstat in pgstats:
+ % if pgstat.player_game_stat_id in pwstats:
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle" data-toggle="collapse" data-parent="#acc-accordion" href="#accuracy-${pgstat.player_game_stat_id}">
- Accuracy for ${pgstat.nick_html_colors()|n}
+ Accuracy for ${pgstat.nick_html_colors()|n}
</a>
</div>
<div id="accuracy-${pgstat.player_game_stat_id}" class="accordion-body collapse in">
</div>
</div>
</div>
- % endif
- % endfor
+ % endif
+ % endfor
+ </div>
</div>
-</div>
-% endif
+ % endif
</div>
% endif
% else:
<div class="row">
- <div class="span6">
- <form method="get" action="${request.route_url('search')}">
+ <div class="span6 offset3">
+ <form class="indexform" method="get" action="${request.route_url('search')}">
<input type="hidden" name="fs" />
- <input type="text" name="map_name" />
+ <input class="indexbox" type="text" name="map_name" />
<input type="submit" value="search" />
</form>
- <table class="table table-bordered table-condensed">
+ <table class="table table-hover table-condensed">
<tr>
<th>Name</th>
<th>Added</th>
<div class="row">
<div class="span4">
<h3>Top Scoring Players</h3>
- <table class="table table-bordered table-condensed">
+ <table class="table table-hover table-condensed">
<thead>
<tr>
<th>#</th>
<div class="span4">
<h3>Most Active Players</h3>
- <table class="table table-bordered table-condensed">
+ <table class="table table-hover table-condensed">
<thead>
<tr>
<th>#</th>
<div class="span4">
<h3>Most Active Servers</h3>
- <table class="table table-bordered table-condensed">
+ <table class="table table-hover table-condensed">
<thead>
<tr>
<th>#</th>
<div class="row">
<div class="span6">
<h3>Best Flag Capture Times</h3>
- <table class="table table-bordered table-condensed">
+ <table class="table table-hover table-condensed">
<thead>
<tr>
<th>Nick</th>
<div class="row">
<div class="span12">
<h3>Most Recent Games</h3>
- <table class="table table-bordered table-condensed">
+ <table class="table table-hover table-condensed">
<thead>
<tr>
<th></th>
<h3>Fastest flag capture times:</h3>
- <table class="table table-bordered table-condensed">
+ <table class="table table-hover table-condensed">
<thead>
<tr>
<th>Game</th>
</div>
<div class="row">
<div class="span12">
- <table class="table table-bordered table-condensed">
+ <table class="table table-hover table-condensed">
<thead>
<tr>
<th></th>
% else:
<div class="row">
- <div class="span6">
- <form method="get" action="${request.route_url('search')}">
+ <div class="span6 offset3">
+ <form class="indexform" method="get" action="${request.route_url('search')}">
<input type="hidden" name="fs" />
- <input type="text" name="nick" />
+ <input class="indexbox" type="text" name="nick" />
<input type="submit" value="search" />
</form>
- <table class="table table-bordered table-condensed">
+ <table class="table table-hover table-condensed">
<tr>
<th>Nick</th>
<th class="create-dt">Joined</th>
</%block>
<%block name="css">
- ${parent.css()}
- <link href="/static/css/sprites.css" rel="stylesheet">
+${parent.css()}
+<link href="/static/css/sprites.css" rel="stylesheet">
</%block>
<%block name="js">
- % if player is not None:
- <script src="/static/js/jquery-1.7.1.min.js"></script>
- <script src="/static/js/jquery.flot.min.js"></script>
- <script src="/static/js/bootstrap-tab.js"></script>
- <script type="text/javascript">
- $(function () {
- $('#gbtab li').click(function(e) {
- e.preventDefault();
- $(this).tab('show');
- })
-
- $('#gbtab a:first').tab('show');
- })
- </script>
-
- <script type="text/javascript">
- $(function () {
- // plot the accuracy graph
- function plot_acc_graph(data) {
- var games = new Array();
- var avgs = new Array();
- var accs = new Array();
-
- var i=0;
- for(i=0; i < data.games; i++) {
- avgs[i] = [i, data.avg];
- accs[i] = [i, data.accs[i][1]];
- game_link = '/game/' + data.accs[i][0];
- j = data.games - i;
- games[i] = [i, '<a href="' + game_link + '">' + j + '</a>'];
- }
-
- $.plot(
- $("#acc-graph"),
- [ { label: 'average', data: avgs, hoverable: true, clickable: false },
- { label: 'accuracy', data: accs, lines: {show:true}, points: {show:false}, hoverable: true, clickable: true }, ],
- { yaxis: {ticks: 10, min: 0, max: 100 },
- xaxis: {ticks: games},
- grid: { hoverable: true, clickable: true },
- });
- }
-
- // plot the damage graph
- function plot_dmg_graph(data) {
- var games = new Array();
- var avgs = new Array();
- var dmgs = new Array();
-
- var i=0;
- for(i=0; i < data.games; i++) {
- avgs[i] = [i, data.avg];
- dmgs[i] = [i, data.dmgs[i][1]];
- game_link = '/game/' + data.dmgs[i][0];
- j = data.games - i;
- games[i] = [i, '<a href="' + game_link + '">' + j + '</a>'];
- }
-
- $.plot(
- $("#dmg-graph"),
- [ { label: 'average', data: avgs, hoverable: true, clickable: false },
- { label: 'efficiency', data: dmgs, lines: {show:true}, points: {show:false}, hoverable: true, clickable: true }, ],
- { yaxis: {ticks: 10, min: 0 },
- xaxis: {ticks: games},
- grid: { hoverable: true, clickable: true },
- });
+${parent.js()}
+% if player is not None:
+<script src="/static/js/jquery.flot.min.js"></script>
+<script type="text/javascript">
+$(function () {
+ $('#gbtab li').click(function(e) {
+ e.preventDefault();
+ $(this).tab('show');
+ })
+
+ $('#gbtab a:first').tab('show');
+})
+</script>
+
+<script type="text/javascript">
+$(function () {
+ // plot the accuracy graph
+ function plot_acc_graph(data) {
+ var games = new Array();
+ var avgs = new Array();
+ var accs = new Array();
+
+ var i=0;
+ for(i=0; i < data.games; i++) {
+ avgs[i] = [i, data.avg];
+ accs[i] = [i, data.accs[i][1]];
+ game_link = '/game/' + data.accs[i][0];
+ j = data.games - i;
+ games[i] = [i, '<a href="' + game_link + '">' + j + '</a>'];
+ }
+
+ $.plot(
+ $("#acc-graph"),
+ [ { label: 'average', data: avgs, hoverable: true, clickable: false },
+ { label: 'accuracy', data: accs, lines: {show:true}, points: {show:false}, hoverable: true, clickable: true }, ],
+ { yaxis: {ticks: 10, min: 0, max: 100 },
+ xaxis: {ticks: games},
+ grid: { hoverable: true, clickable: true },
+ });
+}
+
+// plot the damage graph
+function plot_dmg_graph(data) {
+ var games = new Array();
+ var avgs = new Array();
+ var dmgs = new Array();
+
+var i=0;
+for(i=0; i < data.games; i++) {
+ avgs[i] = [i, data.avg];
+ dmgs[i] = [i, data.dmgs[i][1]];
+ game_link = '/game/' + data.dmgs[i][0];
+ j = data.games - i;
+ games[i] = [i, '<a href="' + game_link + '">' + j + '</a>'];
+}
+
+$.plot(
+ $("#dmg-graph"),
+ [ { label: 'average', data: avgs, hoverable: true, clickable: false },
+ { label: 'efficiency', data: dmgs, lines: {show:true}, points: {show:false}, hoverable: true, clickable: true }, ],
+ { yaxis: {ticks: 10, min: 0 },
+ xaxis: {ticks: games},
+ grid: { hoverable: true, clickable: true },
+ });
}
function showTooltip(x, y, contents) {
$('<div id="tooltip">' + contents + '</div>').css( {
- position: 'absolute',
- display: 'none',
- top: y - 35,
- left: x + 10,
- border: '1px solid #fdd',
- padding: '2px',
- 'background-color': '#333333',
- opacity: 0.80
+ position: 'absolute',
+ display: 'none',
+ top: y - 35,
+ left: x + 10,
+ border: '1px solid #fdd',
+ padding: '2px',
+ 'background-color': '#333333',
+ opacity: 0.80
}).appendTo("body").fadeIn(200);
}
var previousPoint = null;
var previousLabel = null;
$('#acc-graph').bind("plothover", function (event, pos, item) {
- if (item) {
- if ((previousLabel != item.series.label) || (previousPoint != item.dataIndex)) {
- previousLabel = item.series.label;
- previousPoint = item.dataIndex;
+ if (item) {
+ if ((previousLabel != item.series.label) || (previousPoint != item.dataIndex)) {
+ previousLabel = item.series.label;
+ previousPoint = item.dataIndex;
- $("#tooltip").remove();
- var x = item.datapoint[0].toFixed(2),
- y = item.datapoint[1].toFixed(2);
+ $("#tooltip").remove();
+ var x = item.datapoint[0].toFixed(2),
+ y = item.datapoint[1].toFixed(2);
- showTooltip(item.pageX, item.pageY, y + "%");
- }
- }
- else {
- $("#tooltip").remove();
- previousPoint = null;
- previousLabel = null;
+ showTooltip(item.pageX, item.pageY, y + "%");
}
+ }
+ else {
+ $("#tooltip").remove();
+ previousPoint = null;
+ previousLabel = null;
+ }
});
$('#dmg-graph').bind("plothover", function (event, pos, item) {
- if (item) {
- if ((previousLabel != item.series.label) || (previousPoint != item.dataIndex)) {
- previousPoint = item.dataIndex;
- previousLabel = item.series.label;
+ if (item) {
+ if ((previousLabel != item.series.label) || (previousPoint != item.dataIndex)) {
+ previousPoint = item.dataIndex;
+ previousLabel = item.series.label;
- $("#tooltip").remove();
- var x = item.datapoint[0].toFixed(2),
- y = item.datapoint[1].toFixed(2);
+ $("#tooltip").remove();
+ var x = item.datapoint[0].toFixed(2),
+ y = item.datapoint[1].toFixed(2);
- showTooltip(item.pageX, item.pageY, y);
- }
- }
- else {
- $("#tooltip").remove();
- previousPoint = null;
- previousLabel = null;
+ showTooltip(item.pageX, item.pageY, y);
}
+ }
+ else {
+ $("#tooltip").remove();
+ previousPoint = null;
+ previousLabel = null;
+ }
});
- // bind click events to the weapon images
- $(".acc-weap").click(function () {
- var dataurl = $(this).find('a').attr('href');
-
- $('.accuracy-nav').find('.weapon-active').removeClass('weapon-active');
- $(this).addClass('weapon-active');
+// bind click events to the weapon images
+$(".acc-weap").click(function () {
+ var dataurl = $(this).find('a').attr('href');
- $.ajax({
- url: dataurl,
- method: 'GET',
- dataType: 'json',
- success: plot_acc_graph
- });
- });
-
- $(".dmg-weap").click(function () {
- var dataurl = $(this).find('a').attr('href');
-
- $('.damage-nav').find('.weapon-active').removeClass('weapon-active');
- $(this).addClass('weapon-active');
-
- $.ajax({
- url: dataurl,
- method: 'GET',
- dataType: 'json',
- success: plot_dmg_graph
- });
- });
-
- // populate the graphs with the default weapons
- $.ajax({
- url: '${request.route_url("player_accuracy", id=player.player_id)}',
- method: 'GET',
- dataType: 'json',
- success: plot_acc_graph
- });
+ $('.accuracy-nav').find('.weapon-active').removeClass('weapon-active');
+ $(this).addClass('weapon-active');
$.ajax({
- url: '${request.route_url("player_damage", id=player.player_id)}',
- method: 'GET',
- dataType: 'json',
- success: plot_dmg_graph
+ url: dataurl,
+ method: 'GET',
+ dataType: 'json',
+ success: plot_acc_graph
});
- })
- </script>
- % endif
+});
+
+$(".dmg-weap").click(function () {
+ var dataurl = $(this).find('a').attr('href');
+
+ $('.damage-nav').find('.weapon-active').removeClass('weapon-active');
+ $(this).addClass('weapon-active');
+
+ $.ajax({
+ url: dataurl,
+ method: 'GET',
+ dataType: 'json',
+ success: plot_dmg_graph
+ });
+});
+
+// populate the graphs with the default weapons
+$.ajax({
+url: '${request.route_url("player_accuracy", id=player.player_id)}',
+method: 'GET',
+dataType: 'json',
+success: plot_acc_graph
+});
+
+$.ajax({
+ url: '${request.route_url("player_damage", id=player.player_id)}',
+ method: 'GET',
+ dataType: 'json',
+ success: plot_dmg_graph
+});
+})
+</script>
+% endif
</%block>
<%block name="title">
<div class="row">
<div id="gbtabcontainer" class="tabbable tabs-below">
- <div class="tab-content">
+ <div class="tab-content">
% for g in games_played:
- <div class="tab-pane fade in
+ <div class="tab-pane fade in
% if g.game_type_cd == 'overall':
- active
+ active
% endif
" id="tab-${g.game_type_cd}">
- <div class="span5">
- <p>
- % if g.game_type_cd in overall_stats:
- Last Played: <small><span class="abstime" data-epoch="${overall_stats[g.game_type_cd].last_played_epoch}" title="${overall_stats[g.game_type_cd].last_played.strftime('%a, %d %b %Y %H:%M:%S UTC')}"> ${overall_stats[g.game_type_cd].last_played_fuzzy} </span> <br /></small>
- % endif
+ <div class="span5">
+ <p>
+ % if g.game_type_cd in overall_stats:
+ Last Played: <small><span class="abstime" data-epoch="${overall_stats[g.game_type_cd].last_played_epoch}" title="${overall_stats[g.game_type_cd].last_played.strftime('%a, %d %b %Y %H:%M:%S UTC')}"> ${overall_stats[g.game_type_cd].last_played_fuzzy} </span> <br /></small>
+ % endif
- Games Played: <small>${g.games} <br /></small>
+ Games Played: <small>${g.games} <br /></small>
- Playing Time: <small>${overall_stats[g.game_type_cd].total_playing_time} <br /></small>
+ Playing Time: <small>${overall_stats[g.game_type_cd].total_playing_time} <br /></small>
- % if g.game_type_cd in fav_maps:
- Favorite Map: <small>${fav_maps[g.game_type_cd].map_name} <br /></small>
- % endif
- </p>
- </div>
- <div class="span5">
- <p>
- Win Percentage: <small>${round(g.win_pct,2)}% (${g.wins} wins, ${g.losses} losses) <br /></small>
-
- % if g.game_type_cd in overall_stats:
- % if overall_stats[g.game_type_cd].k_d_ratio is not None:
- Kill Ratio: <small>${round(overall_stats[g.game_type_cd].k_d_ratio,2)} (${overall_stats[g.game_type_cd].total_kills} kills, ${overall_stats[g.game_type_cd].total_deaths} deaths) <br /></small>
- % endif
- % endif
+ % if g.game_type_cd in fav_maps:
+ Favorite Map: <small>${fav_maps[g.game_type_cd].map_name} <br /></small>
+ % endif
+ </p>
+ </div>
+ <div class="span5">
+ <p>
+ Win Percentage: <small>${round(g.win_pct,2)}% (${g.wins} wins, ${g.losses} losses) <br /></small>
- % if g.game_type_cd in elos:
- % if g.game_type_cd == 'overall':
- Best Elo: <small>${round(elos[g.game_type_cd].elo,2)} (${elos[g.game_type_cd].game_type_cd}, ${elos[g.game_type_cd].games} games) <br /></small>
- % else:
- Elo: <small>${round(elos[g.game_type_cd].elo,2)} (${elos[g.game_type_cd].games} games) <br /></small>
- % endif
- % endif
+ % if g.game_type_cd in overall_stats:
+ % if overall_stats[g.game_type_cd].k_d_ratio is not None:
+ Kill Ratio: <small>${round(overall_stats[g.game_type_cd].k_d_ratio,2)} (${overall_stats[g.game_type_cd].total_kills} kills, ${overall_stats[g.game_type_cd].total_deaths} deaths) <br /></small>
+ % endif
+ % endif
- % if g.game_type_cd in ranks:
- % if g.game_type_cd == 'overall':
- Best Rank: <small>${ranks[g.game_type_cd].rank} of ${ranks[g.game_type_cd].max_rank} (${ranks[g.game_type_cd].game_type_cd}, percentile: ${round(ranks[g.game_type_cd].percentile,2)})<br /></small>
+ % if g.game_type_cd in elos:
+ % if g.game_type_cd == 'overall':
+ Best Elo: <small>${round(elos[g.game_type_cd].elo,2)} (${elos[g.game_type_cd].game_type_cd}, ${elos[g.game_type_cd].games} games) <br /></small>
+ % else:
+ Elo: <small>${round(elos[g.game_type_cd].elo,2)} (${elos[g.game_type_cd].games} games) <br /></small>
+ % endif
+ % endif
- % else:
- Rank: <small>${ranks[g.game_type_cd].rank} of ${ranks[g.game_type_cd].max_rank} (percentile: ${round(ranks[g.game_type_cd].percentile,2)})<br /></small>
- % endif
- % endif
+ % if g.game_type_cd in ranks:
+ % if g.game_type_cd == 'overall':
+ Best Rank: <small>${ranks[g.game_type_cd].rank} of ${ranks[g.game_type_cd].max_rank} (${ranks[g.game_type_cd].game_type_cd}, percentile: ${round(ranks[g.game_type_cd].percentile,2)})<br /></small>
- % if g.game_type_cd == 'ctf':
- % if overall_stats[g.game_type_cd].cap_ratio is not None:
- Cap Ratio: <small>${round(overall_stats[g.game_type_cd].cap_ratio,2)} (${overall_stats[g.game_type_cd].total_captures} captures, ${overall_stats[g.game_type_cd].total_pickups} pickups) <br /></small>
- % endif
- % endif
- </p>
- </div>
+ % else:
+ Rank: <small>${ranks[g.game_type_cd].rank} of ${ranks[g.game_type_cd].max_rank} (percentile: ${round(ranks[g.game_type_cd].percentile,2)})<br /></small>
+ % endif
+ % endif
+
+ % if g.game_type_cd == 'ctf':
+ % if overall_stats[g.game_type_cd].cap_ratio is not None:
+ Cap Ratio: <small>${round(overall_stats[g.game_type_cd].cap_ratio,2)} (${overall_stats[g.game_type_cd].total_captures} captures, ${overall_stats[g.game_type_cd].total_pickups} pickups) <br /></small>
+ % endif
+ % endif
+ </p>
</div>
- % endfor
</div>
+ % endfor
+ </div>
</div>
</div>
<div class="row">
<div class="span12">
- <ul id="gbtab" class="nav nav-tabs">
+ <ul id="gbtab" class="nav nav-tabs">
% for g in games_played:
- <li>
- <a href="#tab-${g.game_type_cd}" data-toggle="tab">
- <span class="sprite sprite-${g.game_type_cd}"> </span><br />
- ${g.game_type_cd} <br />
- <small>(${g.games})</small>
- </a>
- </li>
+ <li>
+ <a href="#tab-${g.game_type_cd}" data-toggle="tab">
+ <span class="sprite sprite-${g.game_type_cd}"> </span><br />
+ ${g.game_type_cd} <br />
+ <small>(${g.games})</small>
+ </a>
+ </li>
% endfor
- </ul>
+ </ul>
</div>
</div>
<ul>
% if 'nex' in recent_weapons:
<li>
- <div class="acc-weap weapon-active">
- <span class="sprite sprite-nex"></span>
- <p><small>Nex</small></p>
- <a href="${request.route_url('player_accuracy', id=player.player_id, _query={'weapon':'nex'})}" title="Show nex accuracy"></a>
- </div>
+ <div class="acc-weap weapon-active">
+ <span class="sprite sprite-nex"></span>
+ <p><small>Nex</small></p>
+ <a href="${request.route_url('player_accuracy', id=player.player_id, _query={'weapon':'nex'})}" title="Show nex accuracy"></a>
+ </div>
</li>
% endif
% if 'rifle' in recent_weapons:
<li>
- <div class="acc-weap">
- <span class="sprite sprite-rifle"></span>
- <p><small>Rifle</small></p>
- <a href="${request.route_url('player_accuracy', id=player.player_id, _query={'weapon':'rifle'})}" title="Show rifle accuracy"></a>
- </div>
+ <div class="acc-weap">
+ <span class="sprite sprite-rifle"></span>
+ <p><small>Rifle</small></p>
+ <a href="${request.route_url('player_accuracy', id=player.player_id, _query={'weapon':'rifle'})}" title="Show rifle accuracy"></a>
+ </div>
</li>
% endif
% if 'minstanex' in recent_weapons:
<li>
- <div class="acc-weap">
- <span class="sprite sprite-minstanex"></span>
- <p><small>Minstanex</small></p>
- <a href="${request.route_url('player_accuracy', id=player.player_id, _query={'weapon':'minstanex'})}" title="Show minstanex accuracy"></a>
- </div>
+ <div class="acc-weap">
+ <span class="sprite sprite-minstanex"></span>
+ <p><small>Minstanex</small></p>
+ <a href="${request.route_url('player_accuracy', id=player.player_id, _query={'weapon':'minstanex'})}" title="Show minstanex accuracy"></a>
+ </div>
</li>
% endif
% if 'uzi' in recent_weapons:
<li>
- <div class="acc-weap">
- <span class="sprite sprite-uzi"></span>
- <p><small>Uzi</small></p>
- <a href="${request.route_url('player_accuracy', id=player.player_id, _query={'weapon':'uzi'})}" title="Show uzi accuracy"></a>
- </div>
+ <div class="acc-weap">
+ <span class="sprite sprite-uzi"></span>
+ <p><small>Uzi</small></p>
+ <a href="${request.route_url('player_accuracy', id=player.player_id, _query={'weapon':'uzi'})}" title="Show uzi accuracy"></a>
+ </div>
</li>
% endif
% if 'shotgun' in recent_weapons:
<li>
- <div class="acc-weap">
- <span class="sprite sprite-shotgun"></span>
- <p><small>Shotgun</small></p>
- <a href="${request.route_url('player_accuracy', id=player.player_id, _query={'weapon':'shotgun'})}" title="Show shotgun accuracy"></a>
- </div>
+ <div class="acc-weap">
+ <span class="sprite sprite-shotgun"></span>
+ <p><small>Shotgun</small></p>
+ <a href="${request.route_url('player_accuracy', id=player.player_id, _query={'weapon':'shotgun'})}" title="Show shotgun accuracy"></a>
+ </div>
</li>
% endif
</ul>
<ul>
% if 'rocketlauncher' in recent_weapons:
<li>
- <div class="dmg-weap weapon-active">
- <span class="sprite sprite-rocketlauncher"></span>
- <p><small>Rocket</small></p>
- <a href="${request.route_url('player_damage', id=player.player_id, _query={'weapon':'rocketlauncher'})}" title="Show rocket launcher efficiency"></a>
- </div>
+ <div class="dmg-weap weapon-active">
+ <span class="sprite sprite-rocketlauncher"></span>
+ <p><small>Rocket</small></p>
+ <a href="${request.route_url('player_damage', id=player.player_id, _query={'weapon':'rocketlauncher'})}" title="Show rocket launcher efficiency"></a>
+ </div>
</li>
% endif
% if 'grenadelauncher' in recent_weapons:
<li>
- <div class="dmg-weap">
- <span class="sprite sprite-grenadelauncher"></span>
- <p><small>Mortar</small></p>
- <a href="${request.route_url('player_damage', id=player.player_id, _query={'weapon':'grenadelauncher'})}" title="Show mortar damage efficiency"></a>
- </div>
+ <div class="dmg-weap">
+ <span class="sprite sprite-grenadelauncher"></span>
+ <p><small>Mortar</small></p>
+ <a href="${request.route_url('player_damage', id=player.player_id, _query={'weapon':'grenadelauncher'})}" title="Show mortar damage efficiency"></a>
+ </div>
</li>
% endif
% if 'electro' in recent_weapons:
<li>
- <div class="dmg-weap">
- <span class="sprite sprite-electro"></span>
- <p><small>Electro</small></p>
- <a href="${request.route_url('player_damage', id=player.player_id, _query={'weapon':'electro'})}" title="Show electro damage efficiency"></a>
- </div>
+ <div class="dmg-weap">
+ <span class="sprite sprite-electro"></span>
+ <p><small>Electro</small></p>
+ <a href="${request.route_url('player_damage', id=player.player_id, _query={'weapon':'electro'})}" title="Show electro damage efficiency"></a>
+ </div>
</li>
% endif
% if 'crylink' in recent_weapons:
<li>
- <div class="dmg-weap">
- <span class="sprite sprite-crylink"></span>
- <p><small>Crylink</small></p>
- <a href="${request.route_url('player_damage', id=player.player_id, _query={'weapon':'crylink'})}" title="Show crylink damage efficiency"></a>
- </div>
+ <div class="dmg-weap">
+ <span class="sprite sprite-crylink"></span>
+ <p><small>Crylink</small></p>
+ <a href="${request.route_url('player_damage', id=player.player_id, _query={'weapon':'crylink'})}" title="Show crylink damage efficiency"></a>
+ </div>
</li>
% endif
% if 'hagar' in recent_weapons:
<li>
- <div class="dmg-weap">
- <span class="sprite sprite-hagar"></span>
- <p><small>Hagar</small></p>
- <a href="${request.route_url('player_damage', id=player.player_id, _query={'weapon':'hagar'})}" title="Show hagar damage efficiency"></a>
- </div>
+ <div class="dmg-weap">
+ <span class="sprite sprite-hagar"></span>
+ <p><small>Hagar</small></p>
+ <a href="${request.route_url('player_damage', id=player.player_id, _query={'weapon':'hagar'})}" title="Show hagar damage efficiency"></a>
+ </div>
</li>
% endif
% if 'laser' in recent_weapons:
<li>
- <div class="dmg-weap">
- <span class="sprite sprite-laser"></span>
- <p><small>Laser</small></p>
- <a href="${request.route_url('player_damage', id=player.player_id, _query={'weapon':'laser'})}" title="Show laser damage efficiency"></a>
- </div>
+ <div class="dmg-weap">
+ <span class="sprite sprite-laser"></span>
+ <p><small>Laser</small></p>
+ <a href="${request.route_url('player_damage', id=player.player_id, _query={'weapon':'laser'})}" title="Show laser damage efficiency"></a>
+ </div>
</li>
% endif
<div class="row">
<div class="span12">
<h3>Recent Games</h3>
- <table class="table table-bordered table-condensed">
+ <table class="table table-hover table-condensed">
<thead>
<tr>
- <th></th>
- <th>Type</th>
- <th>Server</th>
- <th>Map</th>
- <th>Result</th>
- <th>Played</th>
- <th>Elo</th>
+ <th></th>
+ <th>Type</th>
+ <th>Server</th>
+ <th>Map</th>
+ <th>Result</th>
+ <th>Played</th>
+ <th>Elo</th>
</tr>
</thead>
<tbody>
% for rg in recent_games:
- <tr>
- <td class="tdcenter"><a class="btn btn-primary btn-small" href="${request.route_url('game_info', id=rg.game_id)}" title="View detailed information about this game">view</a></td>
- <td class="tdcenter"><span class="sprite sprite-${rg.game_type_cd}" alt="${rg.game_type_cd}" title="${rg.game_type_descr}"></span></td>
- <td>${rg.server_name}</td>
- <td>${rg.map_name}</td>
- <td>
- % if rg.team != None:
- % if rg.team == rg.winner:
- Win
- % else:
- Loss
- % endif
+ <tr>
+ <td class="tdcenter"><a class="btn btn-primary btn-small" href="${request.route_url('game_info', id=rg.game_id)}" title="View detailed information about this game">view</a></td>
+ <td class="tdcenter"><span class="sprite sprite-${rg.game_type_cd}" alt="${rg.game_type_cd}" title="${rg.game_type_descr}"></span></td>
+ <td>${rg.server_name}</td>
+ <td>${rg.map_name}</td>
+ <td>
+ % if rg.team != None:
+ % if rg.team == rg.winner:
+ Win
+ % else:
+ Loss
+ % endif
% else:
- % if rg.rank == 1:
- Win
+ % if rg.rank == 1:
+ Win
+ % else:
+ Loss (#${rg.rank})
+ % endif
+ % endif
+ </td>
+ <td><span class="abstime" data-epoch="${rg.epoch}" title="${rg.start_dt.strftime('%a, %d %b %Y %H:%M:%S UTC')}">${rg.fuzzy_date}</span></td>
+ <td class="tdcenter">
+ <a href="${request.route_url('game_info', id=rg.game_id, _query={'show_elo':1})}" title="View detailed information about this game">
+ % if rg.elo_delta is not None:
+ % if round(rg.elo_delta,2) > 0:
+ <span title="Elo went up by ${round(rg.elo_delta,2)}"><i class="icon-arrow-up icon-white"></i></span>
+ % elif round(rg.elo_delta,2) < 0:
+ <span title="Elo went down by ${round(-rg.elo_delta,2)}"><i class="icon-arrow-down icon-white"></i></span>
% else:
- Loss (#${rg.rank})
+ <span title="Elo did not change"><i class="icon-minus icon-white"></i></span>
% endif
- % endif
- </td>
- <td><span class="abstime" data-epoch="${rg.epoch}" title="${rg.start_dt.strftime('%a, %d %b %Y %H:%M:%S UTC')}">${rg.fuzzy_date}</span></td>
- <td class="tdcenter">
- <a href="${request.route_url('game_info', id=rg.game_id, _query={'show_elo':1})}" title="View detailed information about this game">
- % if rg.elo_delta is not None:
- % if round(rg.elo_delta,2) > 0:
- <span title="Elo went up by ${round(rg.elo_delta,2)}"><i class="icon-arrow-up icon-white"></i></span>
- % elif round(rg.elo_delta,2) < 0:
- <span title="Elo went down by ${round(-rg.elo_delta,2)}"><i class="icon-arrow-down icon-white"></i></span>
- % else:
- <span title="Elo did not change"><i class="icon-minus icon-white"></i></span>
- % endif
- % else:
- <span title="Elo did not change"><i class="icon-minus icon-white"></i></span>
- % endif
- </a>
- </td>
- </tr>
+ % else:
+ <span title="Elo did not change"><i class="icon-minus icon-white"></i></span>
+ % endif
+ </a>
+ </td>
+ </tr>
% endfor
</tbody>
</table>
% endif
</%block>
-% if not ranks:
-<h2>Sorry, no ranks yet. Get some buddies together and start playing!</h2>
+<div class="row">
+ <div class="span6 offset3">
+ % if not ranks:
+ <h2>Sorry, no ranks yet. Get some buddies together and start playing!</h2>
-% else:
-<table id="rank-index-table" border="1">
- <tr>
- <th>Rank</th>
- <th>Nick</th>
- <th>Elo</th>
- </tr>
-<% i = 1 %>
-% for rank in ranks:
- <tr>
- <td>${rank.rank}</td>
- <td><a href="${request.route_url("player_info", id=rank.player_id)}" title="Go to this player's info page">${rank.nick_html_colors()|n}</a></th>
- <td>${round(rank.elo, 3)}</th>
- </tr>
-<% i += 1 %>
-% endfor
-</table>
+ % else:
+ <table id="rank-index-table" class="table table-hover table-condensed" border="1">
+ <tr>
+ <th>Rank</th>
+ <th>Nick</th>
+ <th>Elo</th>
+ </tr>
+ <% i = 1 %>
+ % for rank in ranks:
+ <tr>
+ <td>${rank.rank}</td>
+ <td><a href="${request.route_url("player_info", id=rank.player_id)}" title="Go to this player's info page">${rank.nick_html_colors()|n}</a></th>
+ <td>${round(rank.elo, 3)}</th>
+ </tr>
+ <% i += 1 %>
+ % endfor
+ </table>
+ </div> <!-- /span6 -->
+</div> <!-- /row -->
-<!-- navigation links -->
-${navlinks("rank_index", ranks.page, ranks.last_page, game_type_cd=game_type_cd)}
+<div class="row">
+ <div class="span6 offset3">
+ <!-- navigation links -->
+ ${navlinks("rank_index", ranks.page, ranks.last_page, game_type_cd=game_type_cd)}
+ </div> <!-- /span6 -->
+</div> <!-- /row -->
% endif
<%def name="scoreboard(game_type_cd, pgstats, show_elo=False, show_latency=False)">
-<table class="table table-bordered table-condensed">
-${scoreboard_header(game_type_cd, pgstats[0])}
+<table class="table table-hover table-condensed">
+ ${scoreboard_header(game_type_cd, pgstats[0])}
<tbody>
% for pgstat in pgstats:
- <tr class="${pgstat.team_html_color()}">
- <td>
+ <tr class="${pgstat.team_html_color()}">
+ <td>
% if pgstat.player_id > 2:
- <a href="${request.route_url("player_info", id=pgstat.player_id)}"
- title="Go to the info page for this player">
+ <a href="${request.route_url("player_info", id=pgstat.player_id)}"
+ title="Go to the info page for this player">
<span class="nick">${pgstat.nick_html_colors()|n}</span>
- </a>
+ </a>
% else:
- <span class="nick">${pgstat.nick_html_colors()|n}</span>
- % endif
- </td>
- % if show_latency and pgstat.avg_latency is not None:
- <td>
- ${int(round(pgstat.avg_latency))}
- </td>
- % elif show_latency:
- <td></td>
- % endif
- ${scoreboard_row(game_type_cd, pgstat)}
- % if game_type_cd != 'cts':
- <td>${pgstat.score}</td>
- % endif
- % if show_elo:
- % if pgstat.elo_delta is not None:
- <td>${round(pgstat.elo_delta,2)}</td>
- % else:
- <td>-</td>
- % endif
+ <span class="nick">${pgstat.nick_html_colors()|n}</span>
% endif
- </tr>
+ </td>
+ % if show_latency and pgstat.avg_latency is not None:
+ <td>
+ ${int(round(pgstat.avg_latency))}
+ </td>
+ % elif show_latency:
+ <td></td>
+ % endif
+ ${scoreboard_row(game_type_cd, pgstat)}
+ % if game_type_cd != 'cts':
+ <td>${pgstat.score}</td>
+ % endif
+ % if show_elo:
+ % if pgstat.elo_delta is not None:
+ <td>${round(pgstat.elo_delta,2)}</td>
+ % else:
+ <td>-</td>
+ % endif
+ % endif
+ </tr>
% endfor
</tbody>
</table>
##### SCOREBOARD HEADER #####
<%def name="scoreboard_header(game_type_cd, pgstat)">
% if game_type_cd == 'as':
- <thead>
- <tr>
- <th class="nick">Nick</th>
- % if show_latency:
- <th class="ping">Ping</th>
- % endif
- <th class="kills">Kills</th>
- <th class="deaths">Deaths</th>
- <th class="suicides">Suicides</th>
- <th class="objectives">Objectives</th>
- <th class="score">Score</th>
- % if show_elo:
- <th>Elo Change</th>
- % endif
- </tr>
- </thead>
+<thead>
+ <tr>
+ <th class="nick">Nick</th>
+ % if show_latency:
+ <th class="ping">Ping</th>
+ % endif
+ <th class="kills">Kills</th>
+ <th class="deaths">Deaths</th>
+ <th class="suicides">Suicides</th>
+ <th class="objectives">Objectives</th>
+ <th class="score">Score</th>
+ % if show_elo:
+ <th>Elo Change</th>
+ % endif
+ </tr>
+</thead>
% endif
% if game_type_cd in 'ca' 'dm' 'duel' 'rune' 'tdm':
- <thead>
- <tr>
- <th class="nick">Nick</th>
- % if show_latency:
- <th class="ping">Ping</th>
- % endif
- <th class="kills">Kills</th>
- <th class="deaths">Deaths</th>
- <th class="suicides">Suicides</th>
- <th class="score">Score</th>
- % if show_elo:
- <th>Elo Change</th>
- % endif
- </tr>
- </thead>
+<thead>
+ <tr>
+ <th class="nick">Nick</th>
+ % if show_latency:
+ <th class="ping">Ping</th>
+ % endif
+ <th class="kills">Kills</th>
+ <th class="deaths">Deaths</th>
+ <th class="suicides">Suicides</th>
+ <th class="score">Score</th>
+ % if show_elo:
+ <th>Elo Change</th>
+ % endif
+ </tr>
+</thead>
% endif
% if game_type_cd == 'cq':
- <thead>
- <tr>
- <th class="nick">Nick</th>
- % if show_latency:
- <th class="ping">Ping</th>
- % endif
- <th class="kills">Kills</th>
- <th class="deaths">Deaths</th>
- <th class="captured">Captured</th>
- <th class="released">Released</th>
- <th class="score">Score</th>
- % if show_elo:
- <th>Elo Change</th>
- % endif
- </tr>
- </thead>
+<thead>
+ <tr>
+ <th class="nick">Nick</th>
+ % if show_latency:
+ <th class="ping">Ping</th>
+ % endif
+ <th class="kills">Kills</th>
+ <th class="deaths">Deaths</th>
+ <th class="captured">Captured</th>
+ <th class="released">Released</th>
+ <th class="score">Score</th>
+ % if show_elo:
+ <th>Elo Change</th>
+ % endif
+ </tr>
+</thead>
% endif
% if game_type_cd == 'cts':
- <thead>
- <tr>
- <th class="nick">Nick</th>
- % if show_latency:
- <th class="ping">Ping</th>
- % endif
- <th class="fastest">Fastest Time</th>
- <th class="deaths">Deaths</th>
- </tr>
- </thead>
+<thead>
+ <tr>
+ <th class="nick">Nick</th>
+ % if show_latency:
+ <th class="ping">Ping</th>
+ % endif
+ <th class="fastest">Fastest Time</th>
+ <th class="deaths">Deaths</th>
+ </tr>
+</thead>
% endif
% if game_type_cd == 'ctf':
- <thead class="ctf ${pgstat.team_html_color()}">
- <tr>
- <th class="nick">Nick</th>
- % if show_latency:
- <th class="ping">Ping</th>
- % endif
- <th class="kills">Kills</th>
- <th class="captures">Captures</th>
- <th class="pickups">Pickups</th>
- <th class="fck" title="Flag Carrier Kill">FCK</th>
- <th class="returns">Returns</th>
- <th class="score">Score</th>
- % if show_elo:
- <th>Elo Change</th>
- % endif
- </tr>
- </thead>
+<thead class="ctf ${pgstat.team_html_color()}">
+ <tr>
+ <th class="nick">Nick</th>
+ % if show_latency:
+ <th class="ping">Ping</th>
+ % endif
+ <th class="kills">Kills</th>
+ <th class="captures">Captures</th>
+ <th class="pickups">Pickups</th>
+ <th class="fck" title="Flag Carrier Kill">FCK</th>
+ <th class="returns">Returns</th>
+ <th class="score">Score</th>
+ % if show_elo:
+ <th>Elo Change</th>
+ % endif
+ </tr>
+</thead>
% endif
% if game_type_cd == 'dom':
- <thead class="dom ${pgstat.team_html_color()}">
- <tr>
- <th class="nick">Nick</th>
- % if show_latency:
- <th class="ping">Ping</th>
- % endif
- <th class="kills">Kills</th>
- <th class="deaths">Deaths</th>
- <th class="takes">Takes</th>
- <th class="ticks">Ticks</th>
- <th class="score">Score</th>
- % if show_elo:
- <th>Elo Change</th>
- % endif
- </tr>
- </thead>
+<thead class="dom ${pgstat.team_html_color()}">
+ <tr>
+ <th class="nick">Nick</th>
+ % if show_latency:
+ <th class="ping">Ping</th>
+ % endif
+ <th class="kills">Kills</th>
+ <th class="deaths">Deaths</th>
+ <th class="takes">Takes</th>
+ <th class="ticks">Ticks</th>
+ <th class="score">Score</th>
+ % if show_elo:
+ <th>Elo Change</th>
+ % endif
+ </tr>
+</thead>
% endif
% if game_type_cd in 'ft' 'freezetag':
- <thead class="freezetag ${pgstat.team_html_color()}">
- <tr>
- <th class="nick">Nick</th>
- % if show_latency:
- <th class="ping">Ping</th>
- % endif
- <th class="kills">Kills</th>
- <th class="deaths">Deaths</th>
- <th class="revivals">Revivals</th>
- <th class="score">Score</th>
- % if show_elo:
- <th>Elo Change</th>
- % endif
- </tr>
- </thead>
+<thead class="freezetag ${pgstat.team_html_color()}">
+ <tr>
+ <th class="nick">Nick</th>
+ % if show_latency:
+ <th class="ping">Ping</th>
+ % endif
+ <th class="kills">Kills</th>
+ <th class="deaths">Deaths</th>
+ <th class="revivals">Revivals</th>
+ <th class="score">Score</th>
+ % if show_elo:
+ <th>Elo Change</th>
+ % endif
+ </tr>
+</thead>
% endif
% if game_type_cd in 'ka' 'keepaway':
- <thead>
- <tr>
- <th class="nick">Nick</th>
- % if show_latency:
- <th class="ping">Ping</th>
- % endif
- <th class="kills">Kills</th>
- <th class="deaths">Deaths</th>
- <th class="pickups">Pickups</th>
- <th class="bctime">BC Time</th>
- <th class="bckills">BC Kills</th>
- % if show_elo:
- <th>Elo Change</th>
- % endif
- </tr>
- </thead>
+<thead>
+ <tr>
+ <th class="nick">Nick</th>
+ % if show_latency:
+ <th class="ping">Ping</th>
+ % endif
+ <th class="kills">Kills</th>
+ <th class="deaths">Deaths</th>
+ <th class="pickups">Pickups</th>
+ <th class="bctime">BC Time</th>
+ <th class="bckills">BC Kills</th>
+ % if show_elo:
+ <th>Elo Change</th>
+ % endif
+ </tr>
+</thead>
% endif
% if game_type_cd == 'kh':
- <thead class="kh ${pgstat.team_html_color()}">
- <tr>
- <th class="nick">Nick</th>
- % if show_latency:
- <th class="ping">Ping</th>
- % endif
- <th class="kills">Kills</th>
- <th class="deaths">Deaths</th>
- <th class="pickups">Pickups</th>
- <th class="caps">Captures</th>
- <th class="losses">Losses</th>
- <th class="pushes">Pushes</th>
- <th class="destroys">Destroys</th>
- <th class="kckills">KC Kills</th>
- <th class="score">Score</th>
- % if show_elo:
- <th>Elo Change</th>
- % endif
- </tr>
- </thead>
+<thead class="kh ${pgstat.team_html_color()}">
+ <tr>
+ <th class="nick">Nick</th>
+ % if show_latency:
+ <th class="ping">Ping</th>
+ % endif
+ <th class="kills">Kills</th>
+ <th class="deaths">Deaths</th>
+ <th class="pickups">Pickups</th>
+ <th class="caps">Captures</th>
+ <th class="losses">Losses</th>
+ <th class="pushes">Pushes</th>
+ <th class="destroys">Destroys</th>
+ <th class="kckills">KC Kills</th>
+ <th class="score">Score</th>
+ % if show_elo:
+ <th>Elo Change</th>
+ % endif
+ </tr>
+</thead>
% endif
% if game_type_cd in 'nb' 'nexball':
- <thead class="nb ${pgstat.team_html_color()}">
- <tr>
- <th class="nick">Nick</th>
- % if show_latency:
- <th class="ping">Ping</th>
- % endif
- <th class="goals">Goals</th>
- <th class="faults">Faults</th>
- <th class="score">Score</th>
- % if show_elo:
- <th>Elo Change</th>
- % endif
- </tr>
- </thead>
+<thead class="nb ${pgstat.team_html_color()}">
+ <tr>
+ <th class="nick">Nick</th>
+ % if show_latency:
+ <th class="ping">Ping</th>
+ % endif
+ <th class="goals">Goals</th>
+ <th class="faults">Faults</th>
+ <th class="score">Score</th>
+ % if show_elo:
+ <th>Elo Change</th>
+ % endif
+ </tr>
+</thead>
% endif
% if game_type_cd == 'rc':
- <thead>
- <tr>
- <th class="nick">Nick</th>
- % if show_latency:
- <th class="ping">Ping</th>
- % endif
- <th class="laps">Laps</th>
- <th class="fastest">Fastest Lap</th>
- <th class="time">Time</th>
- </tr>
- </thead>
+<thead>
+ <tr>
+ <th class="nick">Nick</th>
+ % if show_latency:
+ <th class="ping">Ping</th>
+ % endif
+ <th class="laps">Laps</th>
+ <th class="fastest">Fastest Lap</th>
+ <th class="time">Time</th>
+ </tr>
+</thead>
% endif
</%def>
##### SCOREBOARD ROWS #####
<%def name="scoreboard_row(game_type_cd, pgstat)">
% if game_type_cd == 'as':
- <td>${pgstat.kills}</td>
- <td>${pgstat.deaths}</td>
- <td>${pgstat.suicides}</td>
- <td>${pgstat.collects}</td>
+<td>${pgstat.kills}</td>
+<td>${pgstat.deaths}</td>
+<td>${pgstat.suicides}</td>
+<td>${pgstat.collects}</td>
% endif
% if game_type_cd in 'ca' 'dm' 'duel' 'rune' 'tdm':
- <td>${pgstat.kills}</td>
- <td>${pgstat.deaths}</td>
- <td>${pgstat.suicides}</td>
+<td>${pgstat.kills}</td>
+<td>${pgstat.deaths}</td>
+<td>${pgstat.suicides}</td>
% endif
% if game_type_cd == 'cq':
- <td>${pgstat.kills}</td>
- <td>${pgstat.deaths}</td>
- <td>${pgstat.captures}</td>
- <td>${pgstat.drops}</td>
+<td>${pgstat.kills}</td>
+<td>${pgstat.deaths}</td>
+<td>${pgstat.captures}</td>
+<td>${pgstat.drops}</td>
% endif
% if game_type_cd == 'cts':
- % if pgstat.fastest is not None:
- <td>${round(float(pgstat.fastest.seconds) + (pgstat.fastest.microseconds/1000000.0), 2)}</td>
- % else:
- <td>-</td>
- % endif
- <td>${pgstat.deaths}</td>
+% if pgstat.fastest is not None:
+<td>${round(float(pgstat.fastest.seconds) + (pgstat.fastest.microseconds/1000000.0), 2)}</td>
+% else:
+<td>-</td>
+% endif
+<td>${pgstat.deaths}</td>
% endif
% if game_type_cd == 'ctf':
- <td>${pgstat.kills}</td>
- <td>${pgstat.captures}</td>
- <td>${pgstat.pickups}</td>
- <td>${pgstat.carrier_frags}</td>
- <td>${pgstat.returns}</td>
+<td>${pgstat.kills}</td>
+<td>${pgstat.captures}</td>
+<td>${pgstat.pickups}</td>
+<td>${pgstat.carrier_frags}</td>
+<td>${pgstat.returns}</td>
% endif
% if game_type_cd == 'dom':
- <td>${pgstat.kills}</td>
- <td>${pgstat.deaths}</td>
- <td>${pgstat.pickups}</td>
- <td>${pgstat.drops}</td>
+<td>${pgstat.kills}</td>
+<td>${pgstat.deaths}</td>
+<td>${pgstat.pickups}</td>
+<td>${pgstat.drops}</td>
% endif
% if game_type_cd in 'ft' 'freezetag':
- <td>${pgstat.kills}</td>
- <td>${pgstat.deaths}</td>
- <td>${pgstat.revivals}</td>
+<td>${pgstat.kills}</td>
+<td>${pgstat.deaths}</td>
+<td>${pgstat.revivals}</td>
% endif
% if game_type_cd in 'ka' 'keepaway':
- <td>${pgstat.kills}</td>
- <td>${pgstat.deaths}</td>
- <td>${pgstat.pickups}</td>
+<td>${pgstat.kills}</td>
+<td>${pgstat.deaths}</td>
+<td>${pgstat.pickups}</td>
- % if pgstat.time is not None:
- <td>${round(float(pgstat.time.seconds) + (pgstat.time.microseconds/1000000.0), 2)}</td>
- % else:
- <td>-</td>
- % endif
+% if pgstat.time is not None:
+<td>${round(float(pgstat.time.seconds) + (pgstat.time.microseconds/1000000.0), 2)}</td>
+% else:
+<td>-</td>
+% endif
- <td>${pgstat.fckills}</td>
+<td>${pgstat.fckills}</td>
% endif
% if game_type_cd == 'kh':
- <td>${pgstat.kills}</td>
- <td>${pgstat.deaths}</td>
- <td>${pgstat.pickups}</td>
- <td>${pgstat.captures}</td>
- <td>${pgstat.drops}</td>
- <td>${pgstat.pushes}</td>
- <td>${pgstat.destroys}</td>
- <td>${pgstat.carrier_frags}</td>
+<td>${pgstat.kills}</td>
+<td>${pgstat.deaths}</td>
+<td>${pgstat.pickups}</td>
+<td>${pgstat.captures}</td>
+<td>${pgstat.drops}</td>
+<td>${pgstat.pushes}</td>
+<td>${pgstat.destroys}</td>
+<td>${pgstat.carrier_frags}</td>
% endif
% if game_type_cd in 'nb' 'nexball':
- <td>${pgstat.captures}</td>
- <td>${pgstat.drops}</td>
+<td>${pgstat.captures}</td>
+<td>${pgstat.drops}</td>
% endif
% if game_type_cd == 'rc':
- <td>${pgstat.laps}</td>
+<td>${pgstat.laps}</td>
- % if pgstat.fastest is not None:
- <td>${round(float(pgstat.fastest.seconds) + (pgstat.fastest.microseconds/1000000.0), 2)}</td>
- % else:
- <td>-</td>
- % endif
+% if pgstat.fastest is not None:
+<td>${round(float(pgstat.fastest.seconds) + (pgstat.fastest.microseconds/1000000.0), 2)}</td>
+% else:
+<td>-</td>
+% endif
- % if pgstat.time is not None:
- <td>${round(float(pgstat.time.seconds) + (pgstat.time.microseconds/1000000.0), 2)}</td>
- % else:
- <td>-</td>
- % endif
+% if pgstat.time is not None:
+<td>${round(float(pgstat.time.seconds) + (pgstat.time.microseconds/1000000.0), 2)}</td>
+% else:
+<td>-</td>
+% endif
% endif
</%def>
% else:
<div class="row">
- <div class="span6">
- <form method="get" action="${request.route_url('search')}">
+ <div class="span6 offset3">
+ <form class="indexform" method="get" action="${request.route_url('search')}">
<input type="hidden" name="fs" />
- <input type="text" name="server_name" />
+ <input class="indexbox" type="text" name="server_name" />
<input type="submit" value="search" />
</form>
- <table class="table table-bordered table-condensed">
+ <table class="table table-hover table-condensed">
<tr>
<th>Name</th>
<th class="create-dt">Added</th>
<div class="row">
<div class="span4">
<h3>Top Scoring Players</h3>
- <table class="table table-bordered table-condensed">
+ <table class="table table-hover table-condensed">
<thead>
<tr>
<th>#</th>
<div class="span4">
<h3>Most Active Players</h3>
- <table class="table table-bordered table-condensed">
+ <table class="table table-hover table-condensed">
<thead>
<tr>
<th>#</th>
<div class="span4">
<h3>Most Active Maps</h3>
- <table class="table table-bordered table-condensed">
+ <table class="table table-hover table-condensed">
<thead>
<tr>
<th>#</th>
<div class="row">
<div class="span12">
<h3>Most Recent Games</h2>
- <table class="table table-bordered table-condensed">
+ <table class="table table-hover table-condensed">
<thead>
<tr>
<th></th>