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>
{#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> <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,17 +77,8 @@
</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>
@ -103,7 +94,7 @@
</Alert> </Alert>
{/if} {/if}
{/if} {/if}
{/if}
<Masonry <Masonry
{items} {items}

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;!