Handle optionnal flags

This commit is contained in:
nemunaire 2022-05-31 22:03:51 +02:00
commit a414cd22c8
18 changed files with 68 additions and 22 deletions

View file

@ -100,6 +100,11 @@
</script>
<div class="form-group mb-3">
{#if flag.bonus_gain}
<div class={'float-end badge bg-' + (flag.found?'success':'danger')} title={'Ce flag est optionnel, si vous le complétez il vous rapportera ' + flag.bonus_gain + ' points supplémentaires'}>
optionnel | {#if flag.bonus_gain > 0}+{/if}{flag.bonus_gain}&nbsp;pts
</div>
{/if}
<label for="sol_{flag.type}{flag.id}_0">{flag.label}&nbsp;:</label>
{#if flag.found && flag.value}
<span>{flag.value}</span>

View file

@ -161,7 +161,7 @@
{/if}
</Col>
<Col lg="6" class="mb-5">
{#if !$my.exercices[exercice.id].solved_rank && !solved[exercice.id]}
{#if $my.exercices[exercice.id].flags && $my.exercices[exercice.id].non_found_flags > 0 && !solved[exercice.id]}
<ExerciceFlags
{refresh_my}
{refresh_teams}
@ -169,7 +169,8 @@
bind:forcesolved={solved[exercice.id]}
flags={$my.exercices[exercice.id].flags}
/>
{:else}
{/if}
{#if $my.exercices[exercice.id].solved_rank || solved[exercice.id]}
<ExerciceSolved
{theme}
exercice={$my.exercices[exercice.id]}

View file

@ -11,6 +11,15 @@ function createMyStore() {
for (let k in my.exercices) {
my.exercices[k].id = k;
if (my.exercices[k].flags) {
let nb = 0;
for (let j in my.exercices[k].flags) {
if (!my.exercices[k].flags[j].found)
nb += 1;
}
my.exercices[k].non_found_flags = nb;
}
if (my.team_id === 0 && my.exercices[k].hints) {
for (let j in my.exercices[k].hints) {
my.exercices[k].hints[j].hidden = true;