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