freemarkerdor/src/main/resources/cz/xelfi/quoridor/freemarkerdor/UI/index.fmt
author Jaroslav Tulach <jaroslav.tulach@apidesign.org>
Thu, 07 Jan 2010 22:34:17 +0100
branchstatistics-and-elo
changeset 178 4b78d4f028b3
parent 172 3de0568f7ee8
child 197 e4a20612bd33
permissions -rw-r--r--
Initial version of statistics and ELO rating. Donated by Martin Rexa
     1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
     2 <html>
     3   <#setting locale = locale/>
     4   <#assign toMove = 0/>
     5   <#assign toWait = 0/>
     6   <#assign toWon = 0/>
     7   <#assign toLost = 0/>
     8   <#if ! maxItems??>
     9     <#assign maxItems = 10/>
    10   </#if>
    11   <#assign seeAll = false/>
    12   <#list doc.gameIds.* as g>
    13     <#if (g.@white = user && g.@status = "whiteMove") ||
    14          (g.@black = user && g.@status = "blackMove")
    15     >
    16         <#assign toMove = toMove + 1/>
    17     </#if>
    18     <#if (g.@white = user && g.@status = "blackMove") ||
    19          (g.@black = user && g.@status = "whiteMove")
    20     >
    21         <#assign toWait = toWait + 1/>
    22     </#if>
    23     <#if
    24         (g.@white = user && g.@status = "whiteWon") ||
    25         (g.@black = user && g.@status = "blackWon")
    26     >
    27         <#assign toWon = toWon + 1/>
    28     </#if>
    29     <#if
    30         (g.@white = user && g.@status = "blackWon") ||
    31         (g.@black = user && g.@status = "whiteWon")
    32     >
    33         <#assign toLost = toLost + 1/>
    34     </#if>
    35   </#list>
    36   <head>
    37     <title>
    38         <#if (toMove > 0)>${bundle.YourTurn} - </#if>
    39         ${bundle.TITLE_PLAIN}
    40     </title>
    41     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    42     <meta http-equiv="REFRESH" content="60;URL=/">
    43   </head>
    44   <body bgcolor="white">
    45       <h1>${bundle.TITLE}</h1>
    46 
    47       <#macro before t w>
    48         <#assign seconds = (t / 1000)?long/>
    49         <#assign minutes= (seconds / 60)?long/>
    50         <#assign hours= (minutes / 60)?long/>
    51         <#assign days= (hours / 24)?long/>
    52         <!--millis: ${t}, seconds: ${seconds}, minutes: ${minutes} hours: ${hours}, days: ${days} -->
    53         ${bundle("LastMove", t?int, seconds?int, minutes?int, hours?int, days?int, w?date?string.long)}
    54       </#macro>
    55 
    56       <#macro game game>
    57           ${bundle("gameWhiteBlack", game.@white?string, game.@black?string)}
    58           <#assign sinceNow= now - game.@modified?number/>
    59           <#assign when=toDate[game.@modified?string]/>
    60           <a href="/games/${game.@id}/"><@before t=sinceNow w=when/></a>
    61           <#if game.@comments?number != 0>
    62             ${bundle("comments", game.@comments?number)}
    63           </#if>
    64           <#assign printed = printed + 1/>
    65       </#macro>
    66 
    67       <#if message?? >
    68         <p>
    69             <span style="color: red">${message}</span>
    70         </p>
    71       </#if>
    72 
    73       <#if (toMove > 0)>
    74       <h5>${bundle("GAME_MOVE", toMove?int)}</h5>
    75 
    76       <ol>
    77       <#assign printed = 0/>
    78       <#list doc.gameIds.* as g>
    79         <#if (g.@white = user && g.@status = "whiteMove") ||
    80              (g.@black = user && g.@status = "blackMove")
    81         >
    82             <li>
    83                 <@game g/>
    84             </li>
    85             <#if printed = maxItems><#assign seeAll=true/><#break/></#if>
    86         </#if>
    87       </#list>
    88       </ol>
    89       </#if>
    90 
    91       <#if (toWait > 0)>
    92       <h5>${bundle("GAME_WAIT", toWait?int)}</h5>
    93       <ol>
    94       <#assign printed = 0/>
    95       <#list doc.gameIds.* as g>
    96         <#if (g.@white = user && g.@status = "blackMove") ||
    97              (g.@black = user && g.@status = "whiteMove")
    98         >
    99             <li>
   100                 <@game g/>
   101             </li>
   102             <#if printed = maxItems><#assign seeAll=true/><#break/></#if>
   103         </#if>
   104       </#list>
   105       </ol>
   106       </#if>
   107 
   108       <#if (toWon > 0)><!-- ${toWon} -->
   109       <h5>${bundle("GAME_WON", toWon?int)}</h5>
   110 
   111       <ol>
   112       <#assign printed = 0/>
   113       <#list doc.gameIds.* as g>
   114         <#if 
   115             (g.@white = user && g.@status = "whiteWon") ||
   116             (g.@black = user && g.@status = "blackWon")
   117         >
   118             <li>
   119                 <@game g/>
   120             </li>
   121             <#if printed = maxItems><#assign seeAll=true/><#break/></#if>
   122         </#if>
   123       </#list>
   124       </ol>
   125       </#if>
   126 
   127       <#if (toLost > 0)>
   128       <h5>${bundle("GAME_LOST", toLost?int)}</h5>
   129 
   130       <ol>
   131       <#assign printed = 0/>
   132       <#list doc.gameIds.* as g>
   133         <#if
   134             (g.@white = user && g.@status = "blackWon") ||
   135             (g.@black = user && g.@status = "whiteWon")
   136         >
   137             <li>
   138                 <@game g/>
   139             </li>
   140             <#if printed = maxItems><#assign seeAll=true/><#break/></#if>
   141         </#if>
   142       </#list>
   143       </ol>
   144       </#if>
   145 
   146       <form action="/games/create">
   147             ${bundle.WHITE}: <input type="text" name="white" value="" />
   148             ${bundle.BLACK}: <input type="text" name="black" value="" />
   149             <input type="submit" value="${bundle.CREATE}" />
   150       </form>
   151 
   152       <h5>${bundle.GAME_ALL}</h5>
   153 
   154       <ol>
   155       <#assign printed = 0/>
   156       <#list doc.gameIds.* as g>
   157         <li>
   158             <@game g/>
   159         </li>
   160         <#if printed = maxItems><#assign seeAll=true/><#break/></#if>
   161       </#list>
   162       </ol>
   163 
   164       <#if seeAll>
   165         <p>
   166         <a href="/?maxItems=1024">${bundle.SEE_ALL}</a>...
   167         </p>
   168       </#if>
   169 
   170       <h5><a href="/elo">${bundle.ELO_LIST}</a></h5>
   171       <h5><a href="/openings">${bundle.OPENINGS}</a></h5>
   172       <h5>${bundle.OPTIONS}</h5>
   173       
   174       <form action="/options">
   175             ${bundle.EMAIL} <input type="text" name="email" value='${email!""}' />
   176             <input type="submit" value="${bundle.CHANGE_EMAIL}" />
   177       </form>
   178       <form action="/options">
   179             ${bundle.LANGUAGE}
   180             <#macro lang locale>
   181             <option
   182                 value="${locale}" <#if bundle("LOCALE") = locale>selected</#if>
   183             >${bundle(locale)}</option>
   184             </#macro>
   185             <select name="language" id="column">
   186                 <@lang "en"/>
   187                 <@lang "cs"/>
   188               </select>
   189             <input type="submit" value="${bundle.CHANGE_LANGUAGE}" />
   190       </form>
   191 
   192       <hr/>
   193       ${bundle("copyright", version)}
   194   </body>
   195 </html>