Add a new page to list repos and submissions
This commit is contained in:
parent
643e4d50bd
commit
6323d96b60
12 changed files with 167 additions and 33 deletions
|
|
@ -37,6 +37,7 @@
|
|||
{#await work then w}
|
||||
{#if $user && $user.is_admin}
|
||||
<button class="btn btn-primary ms-1 float-end" on:click={() => { edit = !edit; } } title="Éditer"><i class="bi bi-pencil"></i></button>
|
||||
<a class="btn btn-success ms-1 float-end" href="works/{w.id}/rendus" title="Voir les rendus"><i class="bi bi-files"></i></a>
|
||||
{/if}
|
||||
<div class="d-flex align-items-center">
|
||||
<h2>
|
||||
|
|
@ -108,7 +109,7 @@
|
|||
<dt>Rendu ?</dt>
|
||||
<dd>
|
||||
{#if w.submission_url}
|
||||
<SubmissionStatus work={w} />
|
||||
<SubmissionStatus work={w} user={$user} />
|
||||
{:else}
|
||||
{#await my_submission}
|
||||
<div class="spinner-grow spinner-grow-sm mx-1" role="status"></div>
|
||||
|
|
@ -162,7 +163,7 @@
|
|||
<div class="card-body d-flex justify-content-between">
|
||||
<div>
|
||||
{#if w.submission_url}
|
||||
<strong>État du rendu :</strong> <SubmissionStatus work={w} />
|
||||
<strong>État du rendu :</strong> <SubmissionStatus work={w} user={$user} />
|
||||
{:else}
|
||||
Rendu :
|
||||
{#await my_submission}
|
||||
|
|
|
|||
95
ui/src/routes/works/[wid]/rendus.svelte
Normal file
95
ui/src/routes/works/[wid]/rendus.svelte
Normal file
|
|
@ -0,0 +1,95 @@
|
|||
<script context="module">
|
||||
import { getWork } from '../../../lib/works';
|
||||
|
||||
export async function load({ params, stuff }) {
|
||||
return {
|
||||
props: {
|
||||
work: stuff.work,
|
||||
},
|
||||
};
|
||||
}
|
||||
</script>
|
||||
|
||||
<script lang="ts">
|
||||
import { goto } from '$app/navigation';
|
||||
|
||||
import { user } from '../../../stores/user';
|
||||
import BuildState from '../../../components/BuildState.svelte';
|
||||
import DateFormat from '../../../components/DateFormat.svelte';
|
||||
import SubmissionStatus from '../../../components/SubmissionStatus.svelte';
|
||||
import SurveyBadge from '../../../components/SurveyBadge.svelte';
|
||||
import { getRepositories } from '../../../lib/repositories';
|
||||
import { getUsers } from '../../../lib/users';
|
||||
|
||||
export let work = null;
|
||||
</script>
|
||||
|
||||
{#await work then w}
|
||||
<div class="d-flex align-items-center">
|
||||
<h2>
|
||||
<a href="works/{w.id}" class="text-muted" style="text-decoration: none"><</a>
|
||||
{w.title}
|
||||
</h2>
|
||||
<SurveyBadge class="ms-2" survey={w} />
|
||||
</div>
|
||||
|
||||
{#await getUsers(w.promo, w.group)}
|
||||
{:then users}
|
||||
<table class="w-100 mb-5">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Login</th>
|
||||
<th>Rendu</th>
|
||||
<th>Dépôts</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{#each users as user (user.id)}
|
||||
<tr>
|
||||
<td><a href="users/{user.login}">{user.login}</a></td>
|
||||
<td>
|
||||
<SubmissionStatus work={w} user={user} />
|
||||
</td>
|
||||
<td>
|
||||
{#await getRepositories(w.id, user.id) then repos}
|
||||
<div class="d-flex flex-column">
|
||||
{#each repos as repo (repo.id)}
|
||||
<div class="d-flex justify-content-between align-items-center">
|
||||
<code class="text-truncate mx-1">
|
||||
{repo.uri}
|
||||
</code>
|
||||
<div class="mx-1">
|
||||
{#if repo.last_check}
|
||||
<DateFormat date={new Date(repo.last_check)} dateStyle="medium" timeStyle="medium" />
|
||||
<BuildState repo_pull_state={repo.getBuildState()} />
|
||||
{:else}
|
||||
-
|
||||
{/if}
|
||||
</div>
|
||||
<button
|
||||
class="btn btn-sm btn-primary mx-1"
|
||||
title="Rafraîchir"
|
||||
on:click={() => repo.retrieveWork()}
|
||||
>
|
||||
<i class="bi bi-arrow-clockwise"></i>
|
||||
</button>
|
||||
</div>
|
||||
{/each}
|
||||
</div>
|
||||
{/await}
|
||||
</td>
|
||||
<td>
|
||||
<a
|
||||
href="/api/users/{user.id}/works/{w.id}/download"
|
||||
class="btn btn-sm btn-dark"
|
||||
title="Télécharger la tarball du rendu"
|
||||
>
|
||||
<i class="bi bi-download"></i>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
{/each}
|
||||
</tbody>
|
||||
</table>
|
||||
{/await}
|
||||
{/await}
|
||||
|
|
@ -63,7 +63,7 @@
|
|||
{work.title}
|
||||
{#if work.group}<span class="badge bg-secondary">{work.group}</span>{/if}
|
||||
{#if work.startAvailability() < Date.now()}
|
||||
<SubmissionStatus {work} />
|
||||
<SubmissionStatus {work} user={$user} />
|
||||
{/if}
|
||||
<SurveyBadge survey={work} class="float-end" />
|
||||
</td>
|
||||
|
|
|
|||
Reference in a new issue