server/qa/ui/src/lib/components/Header.svelte

121 lines
3.0 KiB
Svelte

<script>
import { page } from '$app/stores'
import {
Badge,
Button,
ButtonGroup,
Col,
Collapse,
Container,
Dropdown,
DropdownItem,
DropdownMenu,
DropdownToggle,
Icon,
Navbar,
NavbarBrand,
Nav,
NavItem,
NavLink,
Progress,
Row,
} from 'sveltestrap';
import { auth, version } from '$lib/stores/auth';
export let activemenu = "";
$: {
const path = $page.url.href.substr(document.baseURI.length-1).split("/");
if (path.length > 1) {
activemenu = path[1];
} else {
activemenu = "";
}
}
async function rungitlab() {
const res = await fetch('api/gitlab/token');
if (res.status === 200) {
return res.json();
} else {
throw new Error((await res.json()).errmsg);
}
}
const gitlab = rungitlab();
</script>
<Navbar color="dark" dark expand="xs">
<NavbarBrand href=".">
<img src="../img/fic.png" alt="FIC" height="26">
QA
</NavbarBrand>
<Nav navbar>
<NavItem>
<NavLink
href="."
active={activemenu === ''}
>
<Icon name="house-door" />
<span class="d-none d-md-inline">Accueil</span>
</NavLink>
</NavItem>
<NavItem>
<NavLink
href="themes"
active={activemenu === 'themes'}
>
<Icon name="box-seam" />
<span class="d-none d-md-inline">Scénarios</span>
</NavLink>
</NavItem>
<NavItem>
<NavLink
href="exercices"
active={activemenu === 'exercices'}
>
<Icon name="bar-chart-steps" />
<span class="d-none d-md-inline">Étapes</span>
</NavLink>
</NavItem>
{#if $auth && $auth.is_manager}
<NavItem>
<NavLink
href="teams"
active={activemenu === 'teams'}
>
<Icon name="people" />
<span class="d-none d-md-inline">Équipes</span>
</NavLink>
</NavItem>
<NavItem>
<NavLink
href="repositories"
active={activemenu === 'repositories'}
>
<Icon name="archive" />
<span class="d-none d-md-inline">Dépôts</span>
</NavLink>
</NavItem>
{/if}
</Nav>
<Nav class="ms-auto text-light" navbar>
{#await gitlab then gl}
<Icon name="gitlab" />
{:catch err}
<Button
color="warning"
size="sm"
href="auth/gitlab?next=/"
>
<Icon name="gitlab" /> Connexion GitLab
</Button>
{/await}
<NavItem class="ms-2 text-truncate">
v{$version.version}
{#if $auth}&ndash; Logged as {$auth.name} (team #{$auth.id_team}){/if}
</NavItem>
</Nav>
</Navbar>