frontend: Improve team registration processus

This commit is contained in:
nemunaire 2025-03-29 12:46:16 +01:00
parent f05664e2e3
commit 7da127ecb0
5 changed files with 49 additions and 16 deletions

View file

@ -30,6 +30,12 @@
partJ = true; partJ = true;
} }
function JchangeTeam() {
value = { };
partJ = false;
}
function submit(event) { function submit(event) {
if (!partJ) { if (!partJ) {
JvalidateTeam(); JvalidateTeam();
@ -62,7 +68,11 @@
</option> </option>
{/each} {/each}
</select> </select>
<Button color="info" type="button" on:click={JvalidateTeam} disabled={partJ}>Valider</Button> {#if partJ}
<Button color="info" type="button" on:click={JchangeTeam}>Changer</Button>
{:else}
<Button color="info" type="button" on:click={JvalidateTeam} disabled={partJ}>Valider</Button>
{/if}
<div class="invalid-feedback"> <div class="invalid-feedback">
Veuillez indiquer une équipe valide. Veuillez indiquer une équipe valide.
</div> </div>

View file

@ -37,6 +37,9 @@ function createMyStore() {
}); });
} else if (res_my.status === 404) { } else if (res_my.status === 404) {
update((m) => (null)); update((m) => (null));
if (cb) {
cb(null);
}
} }
} }

View file

@ -3,7 +3,9 @@
import "bootstrap-icons/font/bootstrap-icons.css"; import "bootstrap-icons/font/bootstrap-icons.css";
import { base } from '$app/paths'; import { base } from '$app/paths';
import { page } from '$app/stores';
import { import {
Alert,
Container, Container,
//Styles, //Styles,
} from '@sveltestrap/sveltestrap'; } from '@sveltestrap/sveltestrap';
@ -11,6 +13,7 @@
import Header from '$lib/components/Header.svelte'; import Header from '$lib/components/Header.svelte';
import { challengeInfo } from '$lib/stores/challengeinfo'; import { challengeInfo } from '$lib/stores/challengeinfo';
import { my } from '$lib/stores/my.js';
import { settings } from '$lib/stores/settings'; import { settings } from '$lib/stores/settings';
</script> </script>
@ -32,6 +35,21 @@
</div> </div>
{/if} {/if}
<Header /> <Header />
{#if !$my && $page.route.id != "/register"}
<Container class="mt-3 mb-3">
{#if $settings.allowRegistration}
<Alert color="warning" class="text-justify" fade={false}>
<strong>Votre équipe n'est pas encore enregistrée.</strong> Rendez-vous sur <a href="register">cette page</a> pour procéder à votre inscription.
</Alert>
{:else}
<Alert color="danger" class="text-justify" fade={false}>
<strong>Il semblerait qu'il y ait eu un problème lors de l'attribution de votre certificat.</strong> Veuillez vous signaler auprès de notre équipe afin de corriger ce problème.
</Alert>
{/if}
</Container>
{/if}
<slot></slot> <slot></slot>
<style> <style>

View file

@ -77,21 +77,12 @@
</script> </script>
<Container class="mt-3 mb-5"> <Container class="mt-3 mb-5">
{#if !$my} {#if $my}
{#if $settings.allowRegistration} {#if !($my.team_id)}
<Alert color="warning" class="text-justify" fade={false}>
<strong>Votre équipe n'est pas encore enregistrée.</strong> Rendez-vous sur <a href="register">cette page</a> pour procéder à votre inscription.
</Alert>
{:else}
<Alert color="danger" class="text-justify" fade={false}>
<strong>Il semblerait qu'il y ait eu un problème lors de l'attribution de votre certificat.</strong> Veuillez vous signaler auprès de notre équipe afin de corriger ce problème.
</Alert>
{/if}
{:else if !($my.team_id)}
<Alert color="danger" fade={false}> <Alert color="danger" fade={false}>
<strong>Attention&nbsp;:</strong> puisqu'il s'agit de captures effectuées dans le but de découvrir si des actes malveillants ont été commis sur différents systèmes d'information, les contenus qui sont téléchargeables <em>peuvent</em> contenir du contenu malveillant&nbsp;! <strong>Attention&nbsp;:</strong> puisqu'il s'agit de captures effectuées dans le but de découvrir si des actes malveillants ont été commis sur différents systèmes d'information, les contenus qui sont téléchargeables <em>peuvent</em> contenir du contenu malveillant&nbsp;!
</Alert> </Alert>
{:else if $teams[$my.team_id]} {:else if $teams[$my.team_id]}
<Alert color="info" class="text-justify" fade={false}> <Alert color="info" class="text-justify" fade={false}>
<strong>Félicitations {#if $my.members}{#each $my.members as member, index (member.id)}{#if member.id !== $my.members[0].id}{#if member.id === $my.members[$my.members.length - 1].id}&nbsp;et {:else}, {/if}{/if}{member.firstname} {member.lastname}{/each}&nbsp;{/if}!</strong> vous êtes maintenant connecté à l'espace de votre équipe <em>{$teams[$my.team_id].name}</em>. <strong>Félicitations {#if $my.members}{#each $my.members as member, index (member.id)}{#if member.id !== $my.members[0].id}{#if member.id === $my.members[$my.members.length - 1].id}&nbsp;et {:else}, {/if}{/if}{member.firstname} {member.lastname}{/each}&nbsp;{/if}!</strong> vous êtes maintenant connecté à l'espace de votre équipe <em>{$teams[$my.team_id].name}</em>.
{#if !$settings.denyNameChange}Vous pouvez changer ce nom dès maintenant en vous rendant sur la page de <a href="edit">votre équipe</a>.{/if} {#if !$settings.denyNameChange}Vous pouvez changer ce nom dès maintenant en vous rendant sur la page de <a href="edit">votre équipe</a>.{/if}
@ -102,9 +93,9 @@
<strong>Les membres de votre équipe ne sont pas encore enregistrés.</strong> Passez voir l'équipe serveur pour corriger cela. <strong>Les membres de votre équipe ne sont pas encore enregistrés.</strong> Passez voir l'équipe serveur pour corriger cela.
</Alert> </Alert>
{/if} {/if}
{/if}
{/if} {/if}
<Masonry <Masonry
{items} {items}
let:item let:item

View file

@ -7,6 +7,7 @@
Container, Container,
Icon, Icon,
Row, Row,
Spinner,
} from '@sveltestrap/sveltestrap'; } from '@sveltestrap/sveltestrap';
import { goto } from '$app/navigation'; import { goto } from '$app/navigation';
@ -23,8 +24,10 @@
let partJ = false; let partJ = false;
let messageClass; let messageClass;
let message; let message;
let registrationInProgress = false;
function gotoHomeOnDiff(i) { function gotoHomeOnDiff(i) {
registrationInProgress = true;
my.refresh((my) => { my.refresh((my) => {
if (my && my.team_id) { if (my && my.team_id) {
themesStore.refresh(() => { themesStore.refresh(() => {
@ -32,6 +35,10 @@
}); });
} else if (i > 0) { } else if (i > 0) {
setTimeout(gotoHomeOnDiff, 650, i-1); setTimeout(gotoHomeOnDiff, 650, i-1);
} else {
registrationInProgress = false;
messageClass = 'danger';
message = "Temps d'attente dépassé.";
} }
}) })
} }
@ -106,9 +113,13 @@
<strong>Oups, il semblerait qu'il y ait eu un problème lors de l'attribution de votre certificat.</strong> <strong>Oups, il semblerait qu'il y ait eu un problème lors de l'attribution de votre certificat.</strong>
Veuillez vous signaler auprès de notre équipe afin de corriger ce problème. Veuillez vous signaler auprès de notre équipe afin de corriger ce problème.
</Alert> </Alert>
{:else if registrationInProgress}
<div class="d-flex justify-content-center align-items-center gap-4 mt-5 fw-bold text-primary">
<Spinner size="lg" color="primary" /> Inscription en cours&hellip;
</div>
{:else} {:else}
{#if !$settings.denyTeamCreation && !partJ} {#if !$settings.denyTeamCreation && !partJ}
<Card body class="niceborder my-3"> <Card body class="niceborder my-3 text-white">
<p> <p>
Votre équipe n'est pas encore enregistrée sur notre serveur. Afin de Votre équipe n'est pas encore enregistrée sur notre serveur. Afin de
pouvoir participer au challenge, nous vous remercions de bien vouloir pouvoir participer au challenge, nous vous remercions de bien vouloir
@ -118,7 +129,7 @@
</Card> </Card>
{/if} {/if}
{#if $settings.canJoinTeam && !partR} {#if $settings.canJoinTeam && !partR}
<Card body class="niceborder my-3"> <Card body class="niceborder my-3 text-white">
<p> <p>
{#if !$settings.denyTeamCreation} {#if !$settings.denyTeamCreation}
Si votre équipe est déjà créée, rejoignez-là&nbsp;! Si votre équipe est déjà créée, rejoignez-là&nbsp;!