Merge branch 'master' into zykure/approved
authorJan Behrens <zykure@web.de>
Sun, 21 Apr 2013 20:47:57 +0000 (22:47 +0200)
committerJan Behrens <zykure@web.de>
Sun, 21 Apr 2013 20:47:57 +0000 (22:47 +0200)
12 files changed:
xonstat/static/css/app.css
xonstat/static/css/app.min.css
xonstat/templates/game_index.mako
xonstat/templates/main_index.mako
xonstat/templates/map_captimes.mako
xonstat/templates/map_info.mako
xonstat/templates/player_captimes.mako
xonstat/templates/player_game_index.mako
xonstat/templates/player_info.mako
xonstat/templates/rank_index.mako
xonstat/templates/server_info.mako
xonstat/views/map.py

index 7cabed5799af38c197ac9e08ac1e2a4a977056d8..64c51cc14cacc28263663ee122be1e569ee1d1db 100644 (file)
@@ -239,18 +239,64 @@ table td {
   float: left;
 }
 
-/* elo colors */
-.eloup { color: green; }
-.elodown { color: rgb(190,0,0); }
-.eloneutral { color: gray; }
+/* Gametype filters */
+.btn-toolbar .nav > li a {
+    width: 80px;
+} 
 
-/* limit player nick lengths */
-.player-nick {
+.btn.dropdown-toggle, .btn.dropdown-toggle:active {
+    background: none;
+    border: 1px solid transparent;
+    border-radius:4px 4px 4px 4px;
+    line-height:20px;
+    color: #428bca;
+    padding: 10px 0px 10px 0px;
+    font-size: 14px;
+    outline: 0;
+}
+.btn.dropdown-toggle:hover, .btn.dropdown-toggle:focus {
+    background-color:#111;
+    color:#2a6496;
+    border-color:#333;
+}
+
+.btn.dropdown-toggle > .caret {
+  height: 21px;
+  border-top-color: #428bca;
+  border-top-width: 8px;
+  border-left-width: 8px;
+  border-right-width: 8px;
+}
+
+.dropdown-menu {
+  width: 100px;
+}
+
+.dropdown-menu.nav-tabs {
+    padding:4px;
+    background-color: #111;
+    border: 1px solid #333;
+    width: 256px; }
+.dropdown-menu.nav-tabs > li > a {
+    width:80px;
+    color:inherit;
+}
+.dropdown-menu.nav-tabs > li > a:hover {
+    color:#222;
+}
+
+/* Player nicknames */
+.nostretch {
   overflow: hidden;
   text-overflow: ellipsis;
   white-space: nowrap;
 }
 
+/* elo colors */
+.eloup { color: green; }
+.elodown { color: rgb(190,0,0); }
+.eloneutral { color: gray; }
+
 /* Navigation links */
 .pagination > li > a, .pagination > li > span {
     background-color: #111111;
index c8ada11684f66627be0fd31ac07559b5873cbeb6..3c41069d3862aa232ad482598e645f1efef695b3 100644 (file)
@@ -1 +1 @@
-@font-face{font-family:'XoloniumNormal';src:url('fonts/xolonium-webfont.eot');src:url('fonts/xolonium-webfont.eot?#iefix') format('embedded-opentype'),url('fonts/xolonium-webfont.woff') format('woff'),url('fonts/xolonium-webfont.ttf') format('truetype'),url('fonts/xolonium-webfont.svg#XoloniumNormal') format('svg');font-weight:normal;font-style:normal}body{background:url("img/web_background_4.jpg") no-repeat fixed center center / cover black;background-color:black;color:#d0d0d0;font-family:"XoloniumNormal","Helvetica Neue",Helvetica,Arial,sans-serif}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-weight:normal;color:#999}h1{font-size:30px;line-height:36px}h1 small{font-size:18px}h2{font-size:24px;line-height:36px}h2 small{font-size:18px}h3{line-height:27px;font-size:18px}h3 small{font-size:14px}h4,h5,h6{line-height:18px}h4{font-size:14px}h4 small{font-size:12px}h5{font-size:12px}h6{font-size:11px;color:#999;text-transform:uppercase}table{background:#000;background:none repeat scroll 0 0 rgba(0,0,0,0.7);border:1px solid #436688}table th{border:1px solid #436688;background-color:#001021}table td{border:1px solid #436688;font-size:10px}.table-hover>tbody>tr:hover>td,.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 #272525}.accordion-inner{border:0}#statline{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;position:relative;top:-25px}#xonborder{background:#000;background:none repeat scroll 0 0 rgba(0,0,0,0.5);border-radius:15px 15px 15px 15px;margin-bottom:30px;margin-left:0;padding:20px}#title{color:#08c;font-size:30px;margin-bottom:15px;position:relative;text-align:center;text-shadow:2px 2px 3px #333}.indexform{margin:20px 0 20px 0}.indexbox{width:250px}.navbar-brand{margin-left:0;padding-bottom:0;padding-top:10px;text-align:left}.navbar-inverse{background:none repeat scroll 0 0 rgba(0,0,0,0.6)}.navbar-inverse .nav>.active>a,.navbar-inverse .nav>.active>a:hover,.navbar-inverse .nav>.active>a:focus{background:none repeat scroll 0 0 rgba(49,49,49,0.6)}.navbar-inverse .nav>li>a,.navbar-brand{font-family:XoloniumNormal}.search,input[type="search"]{background-color:#606060;border:1px solid #202020;color:#aaa;width:100px}.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}.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}#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:0 solid #000}.table .tdcenter{text-align:center}.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}.eloup{color:green}.elodown{color:#be0000}.eloneutral{color:gray}.player-nick{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pagination>li>a,.pagination>li>span{background-color:#111;border-color:#313131;color:#797979}.pagination>li>a:hover,.pagination>li>a:focus,.pagination>.active>a,.pagination>.active>span{background-color:#2b2222}@media(min-width:768px){.navbar-form{float:right}}
\ No newline at end of file
+@font-face{font-family:'XoloniumNormal';src:url('fonts/xolonium-webfont.eot');src:url('fonts/xolonium-webfont.eot?#iefix') format('embedded-opentype'),url('fonts/xolonium-webfont.woff') format('woff'),url('fonts/xolonium-webfont.ttf') format('truetype'),url('fonts/xolonium-webfont.svg#XoloniumNormal') format('svg');font-weight:normal;font-style:normal}body{background:url("img/web_background_4.jpg") no-repeat fixed center center / cover black;background-color:black;color:#d0d0d0;font-family:"XoloniumNormal","Helvetica Neue",Helvetica,Arial,sans-serif}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-weight:normal;color:#999}h1{font-size:30px;line-height:36px}h1 small{font-size:18px}h2{font-size:24px;line-height:36px}h2 small{font-size:18px}h3{line-height:27px;font-size:18px}h3 small{font-size:14px}h4,h5,h6{line-height:18px}h4{font-size:14px}h4 small{font-size:12px}h5{font-size:12px}h6{font-size:11px;color:#999;text-transform:uppercase}table{background:#000;background:none repeat scroll 0 0 rgba(0,0,0,0.7);border:1px solid #436688}table th{border:1px solid #436688;background-color:#001021}table td{border:1px solid #436688;font-size:10px}.table-hover>tbody>tr:hover>td,.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 #272525}.accordion-inner{border:0}#statline{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;position:relative;top:-25px}#xonborder{background:#000;background:none repeat scroll 0 0 rgba(0,0,0,0.5);border-radius:15px 15px 15px 15px;margin-bottom:30px;margin-left:0;padding:20px}#title{color:#08c;font-size:30px;margin-bottom:15px;position:relative;text-align:center;text-shadow:2px 2px 3px #333}.indexform{margin:20px 0 20px 0}.indexbox{width:250px}.navbar-brand{margin-left:0;padding-bottom:0;padding-top:10px;text-align:left}.navbar-inverse{background:none repeat scroll 0 0 rgba(0,0,0,0.6)}.navbar-inverse .nav>.active>a,.navbar-inverse .nav>.active>a:hover,.navbar-inverse .nav>.active>a:focus{background:none repeat scroll 0 0 rgba(49,49,49,0.6)}.navbar-inverse .nav>li>a,.navbar-brand{font-family:XoloniumNormal}.search,input[type="search"]{background-color:#606060;border:1px solid #202020;color:#aaa;width:100px}.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}.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}#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:0 solid #000}.table .tdcenter{text-align:center}.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}.btn-toolbar .nav>li a{width:80px}.btn.dropdown-toggle,.btn.dropdown-toggle:active{background:0;border:1px solid transparent;border-radius:4px 4px 4px 4px;line-height:20px;color:#428bca;padding:10px 0 10px 0;font-size:14px;outline:0}.btn.dropdown-toggle:hover,.btn.dropdown-toggle:focus{background-color:#111;color:#2a6496;border-color:#333}.btn.dropdown-toggle>.caret{height:21px;border-top-color:#428bca;border-top-width:8px;border-left-width:8px;border-right-width:8px}.dropdown-menu{width:100px}.dropdown-menu.nav-tabs{padding:4px;background-color:#111;border:1px solid #333;width:256px}.dropdown-menu.nav-tabs>li>a{width:80px;color:inherit}.dropdown-menu.nav-tabs>li>a:hover{color:#222}.nostretch{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eloup{color:green}.elodown{color:#be0000}.eloneutral{color:gray}.pagination>li>a,.pagination>li>span{background-color:#111;border-color:#313131;color:#797979}.pagination>li>a:hover,.pagination>li>a:focus,.pagination>.active>a,.pagination>.active>span{background-color:#2b2222}@media(min-width:768px){.navbar-form{float:right}}
\ No newline at end of file
index 957947fb19c269dee8d1bdeea2893c985a1041a4..dd477d0ba7dd95a0effc56effdef6223905f4b2d 100644 (file)
@@ -34,10 +34,11 @@ Game Index
   </div>
 </div>
 <div class="row">
-  <div class="span12 tabbable">
+  <div class="span12 btn-toolbar">
     <ul class="nav nav-tabs">
-      % for gt in ('overall','duel','ctf','dm','tdm','ca','kh','ft','lms','as','dom','nb','cts','rc'):
       ##% for gt in ('overall','duel','ctf','dm','tdm','ca','kh','ft','lms','as','dom','nb','cts','rc'):
+      ##% for gt in ('overall','duel','ctf','dm','tdm','ca','kh','ft','lms','as','dom','nb','cts','rc'):
+      % for gt in ('overall','duel','ctf','dm','tdm'):
       <li>
       % if gt == 'overall':
       <a href="${request.route_url("game_index")}" alt="${gt}" title="" data-toggle="none">
@@ -49,6 +50,24 @@ Game Index
       </a>
       </li>
       % endfor
+      <li>
+        <div class="btn-group nav">
+          <a class="btn dropdown-toggle" data-toggle="dropdown" href="#">
+            <span class="caret"> </span><br/>
+            more...
+          </a>
+          <ul class="dropdown-menu nav-tabs">
+            % for gt in ('ca','kh','ft','lms','as','dom','nb','cts','rc'):
+            <li>
+            <a href="${request.route_url("game_index", game_type_cd=gt)}" alt="${gt}" title="" data-toggle="none">
+              <span class="sprite sprite-${gt}"> </span><br/>
+              ${gt}
+            </a>
+            </li>
+            % endfor
+          </ul>
+        </div>
+      </li>
     </ul>
   </div>
   <div class="span12 offset1 tab-content">
index 1814b2f1c06fba94b605de51dfc9f8a1bbb128a1..983f2eebb7888ba7a82f10c06886e1ccb3bfc4f1 100644 (file)
@@ -46,9 +46,9 @@ Leaderboard
       <table class="table table-hover table-condensed">
         <thead>
           <tr>
-            <th>#</th>
-            <th>Nick</th>
-            <th>Elo</th>
+            <th style="width:40px;">#</th>
+            <th style="width:150px;">Nick</th>
+            <th style="width:60px;">Elo</th>
           </tr>
         </thead>
         <tbody>
@@ -56,7 +56,7 @@ Leaderboard
         % for r in rs:
         <tr>
           <td>${i}</td>
-          <td class="player-nick" style="max-width: 16em;"><a href="${request.route_url('player_info', id=r.player_id)}" title="Go to the player info page for this player">${r.nick_html_colors()|n}</a></td>
+          <td class="nostretch" style="max-width:150px;"><a href="${request.route_url('player_info', id=r.player_id)}" title="Go to the player info page for this player">${r.nick_html_colors()|n}</a></td>
           <td>${int(round(r.elo))}</td>
         </tr>
         <% i = i+1 %>
@@ -79,9 +79,9 @@ Leaderboard
     <table class="table table-hover table-condensed">
       <thead>
         <tr>
-          <th>#</th>
-          <th>Nick</th>
-          <th class="play-time">Play Time</th>
+          <th style="width:40px;">#</th>
+          <th style="width:150px;">Nick</th>
+          <th class="play-time" style="width:90px;">Play Time</th>
         </tr>
       </thead>
       <tbody>
@@ -90,9 +90,9 @@ Leaderboard
         <tr>
           <td>${i}</td>
           % if player_id != '-':
-          <td class="player-nick"><a href="${request.route_url('player_info', id=player_id)}" title="Go to the player info page for this player">${nick|n}</a></td>
+          <td class="nostretch" style="max-width:150px;"><a href="${request.route_url('player_info', id=player_id)}" title="Go to the player info page for this player">${nick|n}</a></td>
           % else:
-          <td>${nick|n}</td>
+          <td class="nostretch" style="max-width:150px;">${nick|n}</td>
           % endif
           <td class="play-time">${alivetime}</td>
         </tr>
@@ -100,7 +100,6 @@ Leaderboard
       % endfor
       </tbody>
     </table>
-    <p class="note">*Most active stats are from the past 7 days</p>
   </div> <!-- /span4 -->
 
 
@@ -110,9 +109,9 @@ Leaderboard
     <table class="table table-hover table-condensed">
       <thead>
         <tr>
-          <th>#</th>
-          <th>Server</th>
-          <th>Games</th>
+          <th style="width:40px;">#</th>
+          <th style="width:180px;">Server</th>
+          <th style="width:60px;">Games</th>
         </tr>
       </thead>
       <tbody>
@@ -121,9 +120,9 @@ Leaderboard
         <tr>
           <td>${i}</td>
           % if server_id != '-':
-          <td><a href="${request.route_url('server_info', id=server_id)}" title="Go to the server info page for ${name}">${name}</a></td>
+          <td class="nostretch" style="max-width:180px;"><a href="${request.route_url('server_info', id=server_id)}" title="Go to the server info page for ${name}">${name}</a></td>
           % else:
-          <td>${name}</td>
+          <td class="nostretch" style="max-width:180px;">${name}</td>
           % endif
           <td>${count}</td>
         </tr>
@@ -140,9 +139,9 @@ Leaderboard
     <table class="table table-hover table-condensed">
       <thead>
         <tr>
-          <th>#</th>
-          <th>Map</th>
-          <th>Games</th>
+          <th style="width:40px;">#</th>
+          <th style="width:180px;">Map</th>
+          <th style="width:60px;">Games</th>
         </tr>
       </thead>
       <tbody>
@@ -151,9 +150,9 @@ Leaderboard
         <tr>
           <td>${i}</td>
           % if map_id != '-':
-          <td><a href="${request.route_url('map_info', id=map_id)}" title="Go to the map info page for ${name}">${name}</a></td>
+          <td class="nostretch" style="max-width:180px;"><a href="${request.route_url('map_info', id=map_id)}" title="Go to the map info page for ${name}">${name}</a></td>
           % else:
-          <td>${name}</td>
+          <td class="nostretch" style="max-width:180px;">${name}</td>
           % endif
           <td>${count}</td>
         </tr>
@@ -163,6 +162,9 @@ Leaderboard
     </table>
   </div> <!-- /span4 -->
 </div> <!-- /row -->
+<row class="span12">
+    <p class="note">*Most active stats are from the past 7 days</p>
+</div>
 
 
 ##### RECENT GAMES #####
@@ -189,7 +191,7 @@ Leaderboard
           <td><a href="${request.route_url('server_info', id=rg.server_id)}" title="Go to the detail page for this server">${rg.server_name}</a></td>
           <td><a href="${request.route_url('map_info', id=rg.map_id)}" title="Go to the map detail page for this map">${rg.map_name}</a></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="player-nick">
+          <td class="nostretch">
             % if rg.player_id > 2:
             <a href="${request.route_url('player_info', id=rg.player_id)}" title="Go to the player info page for this player">${rg.nick_html_colors|n}</a></td>
             % else:
index 55ebc1eb80044d3b8cde85b6ee437f77c999c9c0..4fc0ec59a53558cf77a81e28bc43a8c5c17a445e 100644 (file)
@@ -12,7 +12,7 @@ Map captimes
     <h2>${map.name}</h2>
     <p><a href="${map_url}">Back to map info page</a></p>
 
-    <h3>Fastest flag capture times:</h3>
+    <h3>Fastest Flag Captures:</h3>
 
     <table class="table table-bordered table-condensed">
       <thead>
@@ -30,8 +30,8 @@ Map captimes
           <td class="tdcenter"><a class="btn btn-primary btn-small" href="${request.route_url('game_info', id=ct.game_id)}" title="View detailed information about this game">view</a></td>
           <td>${ct.fastest_cap.total_seconds()} seconds</td>
           <td class="player-nick">
-            % if rg.player_id > 2:
-            <a href="${request.route_url('player_info', id=rg.player_id)}" title="Go to the player info page for this player">${rg.nick_html_colors|n}</a>
+            % if ct.player_id > 2:
+            <a href="${request.route_url('player_info', id=ct.player_id)}" title="Go to the player info page for this player">${ct.player_nick_html|n}</a>
             % else:
             ${rg.nick_html_colors|n}
             % endif
@@ -44,3 +44,4 @@ Map captimes
 
   </div>
 </div>
+
index 1e7b50c51d9c21ac2dd71acf383cb6d6eb32350e..5fd152d5ac543e1ebf91c893da3a64235ea342bf 100644 (file)
@@ -33,9 +33,9 @@ ${parent.title()}
     <table class="table table-hover table-condensed">
       <thead>
         <tr>
-          <th>#</th>
-          <th>Nick</th>
-          <th>Score</th>
+          <th style="width:40px;">#</th>
+          <th style="width:150px;">Nick</th>
+          <th style="width:90px;">Score</th>
         </tr>
       </thead>
       <tbody>
@@ -44,9 +44,9 @@ ${parent.title()}
         <tr>
           <td>${i}</td>
           % if score_player_id != '-':
-          <td><a href="${request.route_url('player_info', id=score_player_id)}" title="Go to the player info page for this player">${score_nick|n}</a></td>
+          <td class="nostretch" style="max-width:150px;"><a href="${request.route_url('player_info', id=score_player_id)}" title="Go to the player info page for this player">${score_nick|n}</a></td>
           % else:
-          <td>${score_nick}</td>
+          <td class="nostretch" style="max-width:150px;">${score_nick}</td>
           % endif
           <td>${score_value}</td>
         </tr>
@@ -54,7 +54,6 @@ ${parent.title()}
         % endfor
         </tbody>
     </table>
-    <p class="note">*Most active stats are from the past 7 days</p>
   </div>
 
 
@@ -63,9 +62,9 @@ ${parent.title()}
   <table class="table table-hover table-condensed">
     <thead>
       <tr>
-        <th>#</th>
-        <th>Nick</th>
-        <th>Playing Time</th>
+        <th style="width:40px;">#</th>
+        <th style="width:150px;">Nick</th>
+        <th style="width:90px;">Playing Time</th>
       </tr>
     </thead>
     <tbody>
@@ -74,9 +73,9 @@ ${parent.title()}
       <tr>
         <td>${i}</td>
         % if player_id != '-':
-        <td><a href="${request.route_url('player_info', id=player_id)}" title="Go to the player info page for this player">${nick|n}</a></td>
+        <td class="nostretch" style="max-width:150px;"><a href="${request.route_url('player_info', id=player_id)}" title="Go to the player info page for this player">${nick|n}</a></td>
         % else:
-        <td>${nick}</td>
+        <td class="nostretch" style="max-width:150px;">${nick}</td>
         % endif
         <td>${alivetime}</td>
       </tr>
@@ -92,9 +91,9 @@ ${parent.title()}
   <table class="table table-hover table-condensed">
     <thead>
       <tr>
-        <th>#</th>
-        <th>Name</th>
-        <th>Times Played</th>
+        <th style="width:40px;">#</th>
+        <th style="width:150px;">Name</th>
+        <th style="width:90px;"># Games</th>
       </tr>
     </thead>
     <tbody>
@@ -102,7 +101,7 @@ ${parent.title()}
     % for (server_id, name, times_played) in top_servers:
       <tr>
         <td>${i}</td>
-        <td><a href="${request.route_url('server_info', id=server_id)}" title="Go to the server info page for this server">${name}</a></td>
+        <td class="nostretch" style="max-width:150px;"><a href="${request.route_url('server_info', id=server_id)}" title="Go to the server info page for this server">${name}</a></td>
         <td>${times_played}</td>
       </tr>
       <% i = i+1 %>
@@ -112,6 +111,12 @@ ${parent.title()}
 </div>
 </div> <!-- /row -->
 
+<div class="row">
+  <div class="span12">
+    <p class="note">*Most active stats are from the past 7 days</p>
+  </div>
+</div>
+
 % if len(captimes) > 0:
 <div class="row">
   <div class="span6">
@@ -172,7 +177,7 @@ ${parent.title()}
           <td class="tdcenter"><span class="sprite sprite-${rg.game_type_cd}" alt="${rg.game_type_cd}" title="${rg.game_type_descr}"></span></td>
           <td><a href="${request.route_url('server_info', id=rg.server_id)}" title="Go to the detail page for this server">${rg.server_name}</a></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>
+          <td class="nostretch">
             % if rg.player_id > 2:
             <a href="${request.route_url('player_info', id=rg.player_id)}" title="Go to the player info page for this player">${rg.nick_html_colors|n}</a>
             % else:
index fdb9462037c4a6e47f744ca873db7323e5cb7f20..a9872e4a51873466f7b5fb47433c800d50b1bf37 100644 (file)
@@ -6,13 +6,17 @@ Player captimes
 </%block>
 
 % if len(captimes) == 0:
-  <h2>Sorry, no caps yet. Get playing!</h2>
+<h2>Sorry, no caps yet. Get playing!</h2>
+<p><a href="${player_url}">Back to player info page</a></p>
 % else:
 
 <div class="row">
   <div class="span12">
-    <h3>Fastest Flag Captures by ${player.nick_html_colors()|n}</h3>
-    <p><a href="${player_url}">Back to player info page</a></p>
+    <h3>Fastest Flag Captures by
+      <a href="${request.route_url('player_info', id=player.player_id)}">
+        ${player.nick_html_colors()|n}
+      </a>
+    </h3>
  
     <table class="table table-hover table-condensed">
       <thead>
index 68c1a5ec33acd711fe962fa00b3391a6dff300b0..18eeeabb98a8151edd65f5e307866f722fe35a14 100644 (file)
@@ -44,12 +44,12 @@ Recent Games
   <div class="span12 tabbable">
     <ul class="nav nav-tabs">
       % for game in games_played:
+      % if not game.game_type_cd in ['cq']:
       <li 
       % if game.game_type_cd == game_type_cd or (game.game_type_cd == 'overall' and game_type_cd is None):
       class="active"
       % endif
       >
-
       % if game.game_type_cd == 'overall':
       <a href="${request.route_url("player_game_index", player_id=player.player_id)}" alt="${game.game_type_cd}" title="" data-toggle="none">
       % else:
@@ -59,6 +59,7 @@ Recent Games
         ${game.game_type_cd} <br />
       </a>
       </li>
+      % endif
       % endfor
     </ul>
   </div>
index 70fd74e12ee4ad316fdd3ca3d2cc30e16a5d7280..7e972db63855b270048d3352ad58e98ea789ad01 100644 (file)
@@ -224,6 +224,8 @@ Player Information
           % if g.game_type_cd == 'ctf':
           % if overall_stats[g.game_type_cd].total_captures is not None:
           <small><a href="${request.route_url("player_captimes", id=player.player_id)}">Fastest flag captures...</a></small>
+          % else:
+          <small><br /></small>
           % endif
           % else:
           <small><br /></small>
@@ -261,6 +263,8 @@ Player Information
           % 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>
+          % else:
+          <small><br /></small>
           % endif
           % else:
           <small><br /></small>
index fbfdd8a0d1add974a69725214b473ace23bb5289..809a1640c975dd8ea1dc66b9a707ec6483371238 100644 (file)
@@ -21,15 +21,15 @@ Capture The Flag Rank Index
     % else:
     <table id="rank-index-table" class="table table-hover table-condensed" border="1">
       <tr>
-        <th>Rank</th>
-        <th>Nick</th>
-        <th>Elo</th>
+        <th style="width:40px;">Rank</th>
+        <th style="width:420px;">Nick</th>
+        <th style="width:90px;">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 class="nostretch" style="max-width:420px;"><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>${int(round(rank.elo))}</th>
       </tr>
       <% i += 1 %>
index c99e1532d9ce804d45b0be0a7a4c2f6d91c1edfb..5f54070f0e37eeb5c6eebb3df82d83aa570f2b26 100644 (file)
@@ -38,9 +38,9 @@ Server Information
       <table class="table table-hover table-condensed">
         <thead>
           <tr>
-            <th>#</th>
-            <th>Nick</th>
-            <th>Score</th>
+            <th style="width:40px;">#</th>
+            <th style="width:150px;">Nick</th>
+            <th style="width:90px;">Score</th>
           </tr>
         </thead>
         <tbody>
@@ -49,9 +49,9 @@ Server Information
           <tr>
             <td>${i}</td>
             % if score_player_id != '-':
-            <td><a href="${request.route_url('player_info', id=score_player_id)}" title="Go to the player info page for this player">${score_nick|n}</a></td>
+            <td class="nostretch" style="max-width:150px;"><a href="${request.route_url('player_info', id=score_player_id)}" title="Go to the player info page for this player">${score_nick|n}</a></td>
             % else:
-            <td>${score_nick}</td>
+            <td class="nostretch" style="max-width:150px;">${score_nick}</td>
             % endif
             <td>${score_value}</td>
           </tr>
@@ -59,7 +59,6 @@ Server Information
         % endfor
         </tbody>
       </table>
-      <p class="note">*Most active stats are from the past 7 days</p>
   </div> <!-- /span4 -->
 
 
@@ -68,9 +67,9 @@ Server Information
     <table class="table table-hover table-condensed">
       <thead>
         <tr>
-          <th>#</th>
-          <th>Nick</th>
-          <th>Playing Time</th>
+          <th style="width:40px;">#</th>
+          <th style="width:150px;">Nick</th>
+          <th style="width:90px;">Playing Time</th>
         </tr>
       </thead>
       <tbody>
@@ -79,9 +78,9 @@ Server Information
         <tr>
           <td>${i}</td>
           % if player_id != '-':
-          <td><a href="${request.route_url('player_info', id=player_id)}" title="Go to the player info page for this player">${nick|n}</a></td>
+          <td class="nostretch" style="max-width:150px;"><a href="${request.route_url('player_info', id=player_id)}" title="Go to the player info page for this player">${nick|n}</a></td>
           % else:
-          <td>${nick}</td>
+          <td class="nostretch" style="max-width:150px;">${nick}</td>
           % endif
           <td>${alivetime}</td>
         </tr>
@@ -97,9 +96,9 @@ Server Information
     <table class="table table-hover table-condensed">
       <thead>
         <tr>
-          <th>#</th>
-          <th>Map</th>
-          <th># Games</th>
+          <th style="width:40px;">#</th>
+          <th style="width:150px;">Map</th>
+          <th style="width:120px;"># Games</th>
         </tr>
       </thead>
       <tbody>
@@ -108,9 +107,9 @@ Server Information
         <tr>
           <td>${i}</td>
           % if map_id != '-':
-          <td><a href="${request.route_url('map_info', id=map_id)}" title="Go to the map info page for ${name}">${name}</a></td>
+          <td class="nostretch" style="max-width:150px;"><a href="${request.route_url('map_info', id=map_id)}" title="Go to the map info page for ${name}">${name}</a></td>
           % else:
-          <td>${name}</td>
+          <td class="nostretch" style="max-width:150px;">${name}</td>
           % endif
           <td>${count}</td>
         </tr>
@@ -121,7 +120,11 @@ Server Information
   </div> <!-- /span4 -->
 
 </div> <!-- /row -->
-
+<div class="row">
+  <div class="span12">
+    <p class="note">*Most active stats are from the past 7 days</p>
+  </div>
+</div>
 
 
 % if len(recent_games) > 0:
@@ -145,7 +148,7 @@ Server Information
           <td class="tdcenter"><span class="sprite sprite-${rg.game_type_cd}" alt="${rg.game_type_cd}" title="${rg.game_type_descr}"></span></td>
           <td><a href="${request.route_url('map_info', id=rg.map_id)}" title="Go to the map detail page for this map">${rg.map_name}</a></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>
+          <td class="nostretch">
             % if rg.player_id > 2:
             <a href="${request.route_url('player_info', id=rg.player_id)}" title="Go to the player info page for this player">${rg.nick_html_colors|n}</a>
             % else:
index cd6f80fb4e849784057f75eb5f0dc1f617e33b22..004f22a37f788078d3471d6bb00e9f4282d4516b 100644 (file)
@@ -166,7 +166,7 @@ def map_info_json(request):
 
 def map_captimes_data(request):
     map_id = int(request.matchdict['id'])
-
+        
     MapCaptimes = namedtuple('PlayerCaptimes', ['fastest_cap', 'create_dt', 'create_dt_epoch', 'create_dt_fuzzy',
         'player_id', 'player_nick', 'player_nick_stripped', 'player_nick_html',
         'game_id', 'server_id', 'server_name'])
@@ -193,6 +193,7 @@ def map_captimes_data(request):
                   "AND  pgs.player_id = ct.player_id "
                   "AND  pgs.game_id = ct.game_id "
                 "ORDER  BY ct.fastest_cap "
+                "LIMIT  25"
             ).params(map_id=map_id).all()
 
     mmap = DBSession.query(Map).filter_by(map_id=map_id).one()