Result sheets printing
This commit is contained in:
@@ -431,4 +431,65 @@
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
.page {
|
||||
width: 96vw;
|
||||
height: 96vh;
|
||||
page-break-after: always;
|
||||
.page-item {
|
||||
font-size: 1.4rem;
|
||||
line-height: 1.5rem;
|
||||
height: 24vh;
|
||||
border-bottom: 1px dotted gray;
|
||||
display: flex;
|
||||
flex-flow: column nowrap;
|
||||
justify-content: space-evenly;
|
||||
.title {
|
||||
margin-top: 1vh;
|
||||
font-weight: bold;
|
||||
text-align: center;
|
||||
}
|
||||
.subtitle {
|
||||
font-size: 1rem;
|
||||
text-align: center;
|
||||
}
|
||||
.details {
|
||||
margin: 1vh 1em;
|
||||
display: flex;
|
||||
flex-flow: row nowrap;
|
||||
justify-content: space-between;
|
||||
line-height: 1.1rem;
|
||||
}
|
||||
.instructions {
|
||||
text-align: center;
|
||||
font-style: italic;
|
||||
}
|
||||
.players {
|
||||
display: flex;
|
||||
flex-flow: row nowrap;
|
||||
justify-content: space-between;
|
||||
gap: 1em;
|
||||
.equal {
|
||||
padding: 0.2em 1em;
|
||||
border: solid 1px gray;
|
||||
}
|
||||
.player {
|
||||
padding: 0.2em 1em;
|
||||
border: solid 1px gray;
|
||||
flex: 1;
|
||||
}
|
||||
}
|
||||
.signatures {
|
||||
height: 8vh;
|
||||
display: flex;
|
||||
flex-flow: row nowrap;
|
||||
justify-content: space-between;
|
||||
.signature {
|
||||
font-style: italic;
|
||||
text-align: left;
|
||||
flex: 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -292,6 +292,12 @@
|
||||
padding: 0.2em 0.8em;
|
||||
}
|
||||
|
||||
.result-sheets {
|
||||
position: absolute;
|
||||
bottom: 1em;
|
||||
right: 1em;
|
||||
}
|
||||
|
||||
/* results section */
|
||||
|
||||
#results-list {
|
||||
|
@@ -113,6 +113,7 @@ Your feedback is most welcome! Vos retours sont les bienvenus !
|
||||
and uses the same algorithm internally, as well as import and export features towards its format. et utilise le même algorithme en interne, ainsi que des fonctionnalités d’import et d’export vers et depuis son format.
|
||||
apache licence licence Apache
|
||||
black noir
|
||||
Black Noir
|
||||
club club
|
||||
country pays
|
||||
d d
|
||||
@@ -135,6 +136,7 @@ pairing system, ideal for championships with no handicap games, as well as the ,
|
||||
pairing system, more suited for classical tournaments and cups. It is still in an alpha stage. Future versions will support more pairing systems and more features. , plus adapté pour les tournois classiques et les coupes. Il en est encore à une phase « alpha ». Les versions futures comporteront plus de systèmes d’appariements et de fonctionnalités.
|
||||
project is fully open source, and under the very permissive est un logiciel libre, et sous la très permissive
|
||||
result résultat
|
||||
result sheets feuilles de résultat
|
||||
sources sources
|
||||
sources on FFG's gitlab sur le serveur gitab de la FFG
|
||||
standalone, standard interface indépendant, interface standard
|
||||
@@ -146,5 +148,6 @@ to à
|
||||
unpairable players joueurs non disponibles
|
||||
version 0.1 supports the version 0.1 supporte le système d’appariement
|
||||
white blanc
|
||||
White Blanc
|
||||
white vs. black blanc vs. Noir
|
||||
confirmed. confirmé(s).
|
73
view-webapp/src/main/webapp/result-sheets.html
Normal file
73
view-webapp/src/main/webapp/result-sheets.html
Normal file
@@ -0,0 +1,73 @@
|
||||
#macro(rank $rank)#if( $rank<0 )#set( $k = -$rank )${k}k#else#set( $d=$rank+1 )${d}d#end#end
|
||||
#if (!$tour)
|
||||
<div class="section">
|
||||
<h2 class="error">Invalid tournament id</h2>
|
||||
</div>
|
||||
#end
|
||||
#set($round = $math.toInteger($!params.round))
|
||||
#if(!$round)
|
||||
#set($round = 1)
|
||||
#else
|
||||
#set($round = $math.min($math.max($round, 1), $tour.rounds))
|
||||
#end
|
||||
<div class="section">
|
||||
#set($parts = $api.get("tour/${params.id}/part"))
|
||||
#set($pmap = $utils.toMap($parts))
|
||||
#set($roundPairing = $api.get("tour/${params.id}/pair/$round"))
|
||||
#if($roundPairing.error)
|
||||
<script type="text/javascript">
|
||||
onLoad(() => {
|
||||
showError("$roundPairing.error")
|
||||
});
|
||||
</script>
|
||||
#stop
|
||||
#end
|
||||
#set($games = $roundPairing.games)
|
||||
#foreach($game in $games)
|
||||
#set($white = $pmap[$game.w])
|
||||
#set($black = $pmap[$game.b])
|
||||
#if($foreach.index % 4 == 0)
|
||||
<div class="page">
|
||||
#end
|
||||
|
||||
<div class="page-item">
|
||||
<div class="title">$tour.name</div>
|
||||
<div class="subtitle">Result sheet</div>
|
||||
<div class="details">
|
||||
<div>Table $game.t</div>
|
||||
<div>Hd $game.h</div>
|
||||
<div>Round $round</div>
|
||||
</div>
|
||||
<div class="instructions">
|
||||
Surround winner's name or ½-½
|
||||
</div>
|
||||
<div class="players">
|
||||
<div class="white player">
|
||||
<div class="color">White</div>
|
||||
<div class="name">$white.name $white.firstname #rank($white.rank)<br/>($white.country, $white.club)</div>
|
||||
## <div class="pin">$white.egf</div>
|
||||
</div>
|
||||
<div class="equal">½-½</div>
|
||||
<div class="black player">
|
||||
<div class="color">Black</div>
|
||||
<div class="name">$black.name $black.firstname #rank($black.rank)<br/>($black.country, $black.club)</div>
|
||||
## <div class="pin">$black.egf</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="signatures">
|
||||
<div class="signature">Signature:</div>
|
||||
<div class="equal"> </div>
|
||||
<div class="signature">Signature:</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
#if($foreach.index % 4 == 3)
|
||||
</div>
|
||||
#end
|
||||
#end
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
onLoad(() => {
|
||||
window.print();
|
||||
});
|
||||
</script>
|
@@ -113,3 +113,4 @@
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<div class="result-sheets"><a href="result-sheets?id=${tour.id}&round=${round}" target="_blank" class="ui mini floating icon button">result sheets <i class="fa fa-external-link"></i></a></div>
|
Reference in New Issue
Block a user