Persistent dialog state and recap for registration, some fixes for printing pairing
This commit is contained in:
@@ -9,6 +9,8 @@ import com.republicate.kson.Json
|
||||
class PairgothTool {
|
||||
fun toMap(array: Json.Array) = array.map { ser -> ser as Json.Object }.associateBy { it.getLong("id")!! }
|
||||
|
||||
fun countFinals(array: Json.Array) = array.map { ser -> ser as Json.Object }.count { it.getBoolean("final") ?: false }
|
||||
|
||||
fun getCriteria() = mapOf(
|
||||
"NONE" to "No tie break", // No ranking / tie-break
|
||||
|
||||
|
@@ -210,6 +210,24 @@
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.ui.form .field :invalid {
|
||||
color: #9f3a38;
|
||||
background: #fff6f6;
|
||||
background-image: initial;
|
||||
background-position-x: initial;
|
||||
background-position-y: initial;
|
||||
background-size: initial;
|
||||
background-repeat-x: initial;
|
||||
background-repeat-y: initial;
|
||||
background-attachment: initial;
|
||||
background-origin: initial;
|
||||
background-clip: initial;
|
||||
}
|
||||
|
||||
.ui.striped.table>tbody>tr:nth-child(2n),.ui.striped.table>tr:nth-child(2n) {
|
||||
background-color: rgba(0,0,50,.1)
|
||||
}
|
||||
|
||||
.form-actions {
|
||||
position: sticky;
|
||||
bottom: 1em;
|
||||
@@ -385,11 +403,11 @@
|
||||
}
|
||||
|
||||
#title {
|
||||
font-size: 1rem;
|
||||
margin-top: 0;
|
||||
font-size: 1rem !important;
|
||||
margin-top: 0.1em !important;
|
||||
}
|
||||
|
||||
#logo, #lang, .steps, #filter-box, #footer, #pairing-left, #pairing-buttons, button, #standings-params {
|
||||
#logo, #lang, .steps, #filter-box, #footer, #pairing-left, #pairing-buttons, button, #standings-params, #logout {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
@@ -397,8 +415,16 @@
|
||||
transform: scale(0.7);
|
||||
}
|
||||
|
||||
#pairing-right {
|
||||
max-width: unset !important;
|
||||
}
|
||||
|
||||
#paired {
|
||||
max-height: unset;
|
||||
max-height: unset !important;
|
||||
max-width: unset !important;
|
||||
font-size: 1rem !important;
|
||||
line-height: 1.1rem !important;
|
||||
min-width: 60vw;
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -54,6 +54,13 @@
|
||||
|
||||
/* registration section */
|
||||
|
||||
#list-header {
|
||||
display: flex;
|
||||
flex-flow: row wrap;
|
||||
justify-content: space-between;
|
||||
margin: 0 1em;
|
||||
}
|
||||
|
||||
#players-list {
|
||||
max-width: 95vw;
|
||||
overflow-x: auto;
|
||||
@@ -229,6 +236,9 @@
|
||||
background-color: rgba(100,200,255,200);
|
||||
cursor: grab;
|
||||
}
|
||||
&:not(.selected):nth-child(2n) {
|
||||
background-color: rgba(0,0,50,.1)
|
||||
}
|
||||
}
|
||||
}
|
||||
#pairables {
|
||||
|
@@ -146,3 +146,4 @@ to à
|
||||
unpairable players joueurs non disponibles
|
||||
version 0.1 supports the version 0.1 supporte le système d’appariement
|
||||
white vs. black blanc vs. Noir
|
||||
confirmed. confirmé(s).
|
@@ -161,6 +161,7 @@ function modal(id) {
|
||||
function close_modal() {
|
||||
$('body').removeClass('dimmed');
|
||||
$(`.popup`).removeClass('shown');
|
||||
store('addingPlayers', false);
|
||||
}
|
||||
|
||||
function downloadFile(blob, filename) {
|
||||
|
@@ -84,6 +84,26 @@ function fillPlayer(player) {
|
||||
$('#register').focus();
|
||||
}
|
||||
|
||||
function addPlayers() {
|
||||
let form = $('#player-form')[0];
|
||||
form.addClass('add');
|
||||
// keep preliminary/final status
|
||||
let status = form.val('final') || false;
|
||||
form.reset();
|
||||
// initial search checkboxes position
|
||||
['countryFilter', 'aga', 'egf', 'ffg'].forEach(id => {
|
||||
let value = store(id);
|
||||
if (value !== null && typeof(value) !== 'undefined') {
|
||||
$(`#${id}`)[0].checked = value;
|
||||
}
|
||||
});
|
||||
form.val('final', status);
|
||||
$('#player').removeClass('edit').addClass('create');
|
||||
modal('player');
|
||||
$('#needle').focus();
|
||||
store('addingPlayers', true);
|
||||
}
|
||||
|
||||
let tableSort;
|
||||
|
||||
onLoad(() => {
|
||||
@@ -125,22 +145,7 @@ onLoad(() => {
|
||||
});
|
||||
|
||||
$('#add').on('click', e => {
|
||||
let form = $('#player-form')[0];
|
||||
form.addClass('add');
|
||||
// keep preliminary/final status
|
||||
let status = form.val('final') || false;
|
||||
form.reset();
|
||||
// initial search checkboxes position
|
||||
['countryFilter', 'aga', 'egf', 'ffg'].forEach(id => {
|
||||
let value = store(id);
|
||||
if (value !== null && typeof(value) !== 'undefined') {
|
||||
$(`#${id}`)[0].checked = value;
|
||||
}
|
||||
});
|
||||
form.val('final', status);
|
||||
$('#player').removeClass('edit').addClass('create');
|
||||
modal('player');
|
||||
$('#needle').focus();
|
||||
addPlayers();
|
||||
});
|
||||
$('#cancel-register').on('click', e => {
|
||||
e.preventDefault();
|
||||
@@ -309,4 +314,7 @@ onLoad(() => {
|
||||
$('#filter')[0].value = '';
|
||||
$('tbody > tr').removeClass('hidden');
|
||||
});
|
||||
if (store('addingPlayers')) {
|
||||
addPlayers();
|
||||
}
|
||||
});
|
||||
|
@@ -1,15 +1,18 @@
|
||||
#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>
|
||||
<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">
|
||||
#set($parts = $api.get("tour/${params.id}/part"))
|
||||
#set($pmap = $utils.toMap($parts))
|
||||
<table id="players" class="ui celled selectable striped table">
|
||||
<thead>
|
||||
<th>Reg</th>
|
||||
@@ -175,7 +178,7 @@
|
||||
<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">Cancel</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>
|
||||
|
Reference in New Issue
Block a user