This repository has been archived on 2024-03-28. You can view files and clone it, but cannot push or open issues or pull requests.
atsebay.t/ui/src/routes/+layout.svelte

136 lines
5.3 KiB
Svelte
Raw Normal View History

2021-11-18 11:12:28 +00:00
<script>
2022-11-18 14:38:50 +00:00
import AuthButton from '$lib/components/AuthButton.svelte';
import Toaster from '$lib/components/Toaster.svelte';
2022-12-12 09:24:30 +00:00
import { refresh_auth, user } from '$lib/stores/user';
2022-03-01 12:16:20 +00:00
2022-12-12 09:24:30 +00:00
export let data;
2021-11-18 11:12:28 +00:00
function switchAdminMode() {
var tmp = $user.is_admin;
$user.is_admin = $user.was_admin || false;
$user.was_admin = tmp;
}
function disconnectCurrentUser() {
fetch('api/auth/logout', {
method: 'POST'
}).then((response) => {
refresh_auth();
});
}
let isSRS = false;
$: {
isSRS = window.location.host === 'srs.nemunai.re' || ($user && ($user.groups.includes('ing-srs') || $user.groups.includes('teachers')))
}
2021-11-18 11:12:28 +00:00
</script>
2022-02-28 09:52:27 +00:00
<svelte:head>
<title>ЕРІТА: MCQ and others courses related stuff</title>
2022-02-28 09:52:27 +00:00
</svelte:head>
{#if $user && $user.banner}
<div class="bg-danger text-white text-center py-1 fw-bolder">
{$user.banner}
</div>
{/if}
{#if isSRS}
<div style="position: fixed; bottom: 20px; right: 20px; z-index: -1; background-image: url('img/srstamps.png'); background-size: cover; width: 125px; height: 125px;"></div>
{/if}
2021-11-18 11:12:28 +00:00
<nav class="navbar navbar-expand-sm navbar-dark bg-primary">
<div class="container">
<a class="navbar-brand" href=".">
ЕРІТА
2021-11-18 11:12:28 +00:00
</a>
2022-03-02 03:31:08 +00:00
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#loggedMenu" aria-controls="loggedMenu" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
2021-11-18 11:12:28 +00:00
</button>
<div class="collapse navbar-collapse" id="loggedMenu">
<ul class="navbar-nav mr-auto">
<li class="nav-item">
{#if $user && $user.promo != $user.current_promo}
<a class="nav-link" href="adlin/{$user.promo}" target="_self">AdLin</a>
{:else}
<a class="nav-link" href="adlin" target="_self">AdLin</a>
{/if}
2021-11-18 11:12:28 +00:00
</li>
{#if isSRS}
<li class="nav-item">
<a class="nav-link" href="fic" target="_self">FIC</a>
</li>
{/if}
2021-11-18 11:12:28 +00:00
<li class="nav-item">
2022-12-12 09:24:30 +00:00
<a class="nav-link" class:active={data.rroute === 'surveys'} href="surveys">
2021-11-18 11:12:28 +00:00
Questionnaires
</a>
</li>
2022-09-04 19:44:20 +00:00
<li class="nav-item">
2022-12-12 09:24:30 +00:00
<a class="nav-link" class:active={data.rroute === 'works'} href="works">
2022-09-04 19:44:20 +00:00
Travaux
</a>
</li>
2021-11-18 11:12:28 +00:00
{#if $user && $user.is_admin}
2022-12-12 09:24:30 +00:00
<li class="nav-item"><a class="nav-link" class:active={data.rroute === 'users'} href="users">Étudiants</a></li>
2021-11-18 11:12:28 +00:00
{/if}
<li class="nav-item">
{#if $user && $user.promo != $user.current_promo}
<a class="nav-link" href="virli/{$user.promo}" target="_self">VIRLI</a>
{:else}
<a class="nav-link" href="virli" target="_self">VIRLI</a>
{/if}
</li>
2021-11-18 11:12:28 +00:00
</ul>
<ul class="navbar-nav ms-auto">
{#if $user}
{#if $user.was_admin}
<li class="nav-item">
<button class="btn btn-dark" on:click={switchAdminMode}>
Vue admin
</button>
</li>
{:else if $user.is_admin}
<li class="nav-item">
<button class="btn btn-light" on:click={switchAdminMode}>
Vue étudiant
</button>
</li>
{/if}
<li class="nav-item dropdown">
2022-12-15 14:15:38 +00:00
<a class="nav-link dropdown-toggle" data-bs-toggle="dropdown" href="#nav" role="button" aria-expanded="false">
2022-03-02 00:35:47 +00:00
<img class="rounded-circle" src="//photos.cri.epita.fr/square/{$user.login}" alt="Menu" style="margin: -0.75em 0; max-height: 2.5em; border: 2px solid white;">
2021-11-18 11:12:28 +00:00
</a>
<ul class="dropdown-menu dropdown-menu-end">
2022-12-12 09:24:30 +00:00
<li><a class="dropdown-item" class:active={data.rroute === 'keys'} href="keys">Clef PGP</a></li>
<li><a class="dropdown-item" class:active={data.rroute === 'bug-bounty'} href="bug-bounty">Bug Bounty</a></li>
2021-11-18 11:12:28 +00:00
<li><hr class="dropdown-divider"></li>
<li>
<button class="dropdown-item" on:click={disconnectCurrentUser}>
Se déconnecter
</button>
</li>
</ul>
</li>
{:else if $user === undefined}
<li class="nav-item">
<span class="spinner-border spinner-border-sm" role="status" aria-hidden="true"></span>
</li>
{:else}
<li class="nav-item">
2022-05-15 10:34:19 +00:00
<AuthButton class="btn btn-dark">
Se connecter
</AuthButton>
2021-11-18 11:12:28 +00:00
</li>
{/if}
</ul>
</div>
</div>
</nav>
<div class="container mt-3">
<slot></slot>
</div>
2022-03-01 12:16:20 +00:00
<Toaster />