Files
pairgoth/view-webapp/src/main/webapp/tour-registration.inc.html
2024-01-30 14:57:57 +01:00

266 lines
10 KiB
HTML

#set($parts = $api.get("tour/${params.id}/part"))
#set($pmap = $utils.toMap($parts))
<div class="tab-content" id="registration-tab">
<div id="reg-view">
<div id="list-header">
<div id="filter-box" class="ui icon input">
<input type="text" id="filter" placeholder="Search..."/>
<i class="circular times link icon"></i>
</div>
<div>
$parts.size() participants, $utils.countFinals($parts) confirmed.
</div>
</div>
<div id="players-list" class="roundbox">
<table id="players" class="ui celled selectable striped table">
<thead>
<th>Reg</th>
<th>Name</th>
<th>First name</th>
<th>Country</th>
<th>Club</th>
<th>Rank</th>
## TableSort bug which inverts specified sort...
<th data-sort-default="1" aria-sort="ascending">Rating</th>
<th data-sort-method="none">Participation</th>
</thead>
<tbody>
#foreach($part in $parts)
<tr data-id="$part.id" data-text="$esc.html("$part.name.toUpperCase() $part.firstname.toUpperCase() $part.club.toUpperCase()")">
<td class="centered reg-status #if($part.final)final#end">
<span class="preliminary"><i class="fa fa-question"></i></span>
<span class="final"><i class="fa fa-check"></i></span>
</td>
<td>$part.name</td>
<td>$part.firstname</td>
<td>$part.country.toUpperCase()</td>
<td>$part.club</td>
<td data-sort="$part.rank">#rank($part.rank)#if($part.mmsCorrection) ($part.mmsCorrection)#end</td>
<td>$part.rating</td>
<td class="participating">
#foreach($round in [1..$tour.rounds])
## CB TODO - upstream json parsing should not give longs here, should it?
#if($part.skip && $part.skip.contains($round.longValue()))
<label class="ui red circular label">$round</label>
#else
<label class="ui green circular label">$round</label>
#end
#end
</td>
</tr>
#end
</tbody>
</table>
</div>
<div class="form-actions">
<button id="add" class="ui blue right labeled icon floating info button">
<i class="plus icon"></i>
Add player
</button>
#if($tour.pairing.type == 'MAC_MAHON')
<button id="edit-macmahon-groups" class="ui right labeled icon floating button">
<i class="pencil icon"></i>
Mac Mahon groups
</button>
#end
</div>
</div>
</div>
<div id="player" class="popup">
<div class="popup-body">
<form id="player-form" class="ui form edit">
<input type="hidden" name="id"/>
<div class="popup-content">
<div id="search-form" class="five stackable fields">
<div class="two wide field">
<div class="toggle">
<input id="countryFilter" name="countryFilter" type="checkbox" value="$tour.country"/>
<div class="search-param checkbox">
<div class="circle"></div>
</div>
<label>$tour.country.toUpperCase()</label>
</div>
</div>
<div class="ten wide field">
<div class="ui icon input">
<input id="needle" name="needle" type="text" placeholder="Search...">
<i id="clear-search" class="clickable close icon"></i>
</div>
</div>
<div class="two wide field">
<div class="toggle">
<input id="aga" name="aga" type="checkbox" value="true"/>
<div class="search-param checkbox">
<div class="circle"></div>
</div>
<label>AGA</label>
</div>
</div>
<div class="two wide field">
<div class="toggle">
<input id="egf" name="egf" type="checkbox" checked value="true"/>
<div class="search-param checkbox">
<div class="circle"></div>
</div>
<label>EGF</label>
</div>
</div>
<div class="two wide field">
<div class="toggle">
<input id="ffg" name="ffg" type="checkbox" checked value="true"/>
<div class="search-param checkbox">
<div class="circle"></div>
</div>
<label>FFG</label>
</div>
</div>
<div id="search-result"></div>
</div>
<div class="two stackable fields">
<div class="eight wide field">
<label>Family name</label>
<span class="info"></span>
<input type="text" name="name" placeholder="last name"/>
</div>
<div class="eight wide field">
<label>Given name</label>
<span class="info"></span>
<input type="text" name="firstname" placeholder="first name"/>
</div>
</div>
<div class="two stackable fields">
<div class="eight wide field">
<label>Country</label>
<span class="info"></span>
<select name="country">
<option></option>
#set($defaultCountry = $translate.defaultCountry[$request.lang])
#foreach($country in $countries.countries)
<option value="$country.key">$country.value</option>
#end
</select>
</div>
<div class="eight wide field">
<label>Club</label>
<span class="info"></span>
<input type="text" name="club" placeholder="club"/>
</div>
</div>
<div class="two stackable fields">
<div class="eight wide field">
<label>Rank</label>
<span class="info"></span>
<select name="rank">
<option></option>
#levels()
</select>
</div>
<div class="eight wide field">
<label>Rating</label>
<span class="info"></span>
<input name="rating" type="text" class="numeric"/>
</div>
</div>
<div class="inline fields">
<label>Final ?</label>
<div id="final-reg" class="field">
<input name="final" type="hidden"/>
<button id="reg-status" type="button" class="ui icon roundedremove mini button">
<span class="final"><i class="fa fa-check"></i></span>
<span class="preliminary"><i class="fa fa-question"></i></span>
</button>
</div>
<label>Participation</label>
#foreach($r in [1..$tour.rounds])
<div class="centered field">
<label>R${r}</label>
<input name="r${r}" type="checkbox" checked="checked" class="participation"/>
</div>
#end
</div>
</div>
<div class="popup-footer">
<button id="cancel-register" type="button" class="ui gray right labeled icon floating close button">
<i class="times icon"></i>
<span class="edition">Close</span>
<span class="creation">Close</span>
</button>
<button id="unregister" type="button" class="ui red right labeled icon floating button">
<i class="trash icon"></i>
Unregister
</button>
<button id="register" type="button" class="ui green right labeled icon floating button">
<i class="plus icon"></i>
<span class="edition">Update</span>
<span class="creation">Register</span>
</button>
</div>
</form>
</div>
</div>
#if($tour.pairing.type == 'MAC_MAHON')
#set($mmbase = $api.get("tour/${params.id}/standings/0"))
#if($mmbase.isObject() && ($mmbase.error || $mmbase.message))
#if($mmbase.error)
#set($error = $mmbase.error)
#else
#set($error = $mmbase.message)
#end
<script type="text/javascript">
onLoad(() => {
showError("$error")
});
</script>
#set($mmbase = [])
#end
#set($mmsMap = $utils.getMmsMap($mmbase))
<div id="macmahon-groups" class="wide popup">
<div class="popup-body">
<div class="popup-content">
<div id="under-group" class="multi-select" title="bar-1">
#foreach($part in $mmsMap.get(30 + $tour.pairing.mmBar - 1))
<div data-id="$part.id" data-correction="${part.mmsCorrection|0}" class="listitem pairable"><span>$part.name $part.firstname</span><span>#rank($part.rank) $part.country</span></div>
#end
</div>
<div class="pairing-buttons">
<button id="under-to-top" class="ui blue icon floating button"><i class="angle double right icon"></i></button>
<button id="top-to-under" class="ui orange icon floating button"><i class="angle double left icon"></i></button>
</div>
<div id="top-group" class="multi-select" title="top group">
#foreach($part in $mmsMap.get(30 + $tour.pairing.mmBar))
<div data-id="$part.id" data-correction="${part.mmsCorrection|0}" class="listitem pairable"><span>$part.name $part.firstname</span><span>#rank($part.rank) $part.country</span></div>
#end
</div>
<div class="pairing-buttons">
<button id="top-to-super" class="ui blue icon floating button"><i class="angle double right icon"></i></button>
<button id="super-to-top" class="ui orange icon floating button"><i class="angle double left icon"></i></button>
</div>
<div id="super-group" class="multi-select" title="super group">
#foreach($part in $mmsMap.get(30 + $tour.pairing.mmBar + 1))
<div data-id="$part.id" data-correction="${part.mmsCorrection|0}" class="listitem pairable"><span>$part.name $part.firstname</span><span>#rank($part.rank) $part.country</span></div>
#end
</div>
</div>
<div class="popup-footer">
<button id="close-macmahon-groups" type="button" class="ui gray right labeled icon floating close button">
<i class="times icon"></i>
Close
</button>
<button id="reset-macmahon-groups" type="button" class="ui orange right labeled icon floating button">
<i class="trash icon"></i>
Reset Mac Mahon groups
</button>
</div>
</div>
</div>
#end
#[[
<script id="result" type="text/template">
{{for #data}}
<div class="result-line" data-index="{{:#getIndex()}}">[{{:origin}}] {{:country}} - {{:name}} {{:firstname}} {{:rank}} ({{:club}}) {{if origin === 'FFG' && country === 'FR' && license !== 'L'}}<span class="darkred">non licencié</span>{{/if}}</div>
{{/for}}
</script>
<script type="text/javascript" src="/lib/jsrender-1.0.13/jsrender.min.js"></script>
]]#