More dynamic submission page
This commit is contained in:
parent
0042d373f6
commit
8b0043dc8d
@ -1,8 +1,12 @@
|
||||
<script>
|
||||
import { createEventDispatcher } from 'svelte';
|
||||
|
||||
import DateFormat from '../components/DateFormat.svelte';
|
||||
import { WorkRepository, getRemoteRepositories, getRepositories } from '../lib/repositories';
|
||||
import { ToastsStore } from '../stores/toasts';
|
||||
|
||||
const dispatch = createEventDispatcher();
|
||||
|
||||
let className = '';
|
||||
export { className as class };
|
||||
|
||||
@ -21,6 +25,8 @@
|
||||
repo_pull_state.then((state) => {
|
||||
if (state.status == "pending" || state.status == "running") {
|
||||
setTimeout(() => updatePullState(repo), state.status == "pending" ? 1000 : 3000);
|
||||
} else if (state.status == "success") {
|
||||
dispatch('update_submission');
|
||||
}
|
||||
})
|
||||
}
|
||||
|
@ -23,6 +23,15 @@
|
||||
|
||||
export let work = null;
|
||||
let edit = false;
|
||||
let my_submission = null;
|
||||
|
||||
work.then((w) => {
|
||||
refresh_submission(w);
|
||||
})
|
||||
|
||||
function refresh_submission(w) {
|
||||
my_submission = w.getSubmission();
|
||||
}
|
||||
</script>
|
||||
|
||||
{#await work then w}
|
||||
@ -95,6 +104,28 @@
|
||||
<dd><DateFormat date={new Date(w.start_availability)} dateStyle="medium" timeStyle="medium" /></dd>
|
||||
<dt>Date de fin</dt>
|
||||
<dd><DateFormat date={new Date(w.end_availability)} dateStyle="medium" timeStyle="medium" /></dd>
|
||||
<dt>Rendu ?</dt>
|
||||
<dd>
|
||||
{#if w.submission_url}
|
||||
<SubmissionStatus work={w} />
|
||||
{:else}
|
||||
{#await my_submission}
|
||||
<div class="spinner-grow spinner-grow-sm mx-1" role="status"></div>
|
||||
{:then submission}
|
||||
<i
|
||||
class="bi bi-check-circle text-success"
|
||||
title="Oui !"
|
||||
></i>
|
||||
<DateFormat date={new Date(submission.date)} dateStyle="medium" timeStyle="medium" />
|
||||
{:catch}
|
||||
<i
|
||||
class="bi bi-x-circle text-danger"
|
||||
title="Pas de rendu trouvé"
|
||||
></i>
|
||||
Non
|
||||
{/await}
|
||||
{/if}
|
||||
</dd>
|
||||
</dl>
|
||||
{#if w.description}
|
||||
<hr>
|
||||
@ -124,7 +155,7 @@
|
||||
{/if}
|
||||
{/if}
|
||||
|
||||
<WorkRepository class="mb-3" readonly={w.corrected || new Date(w.end_availability) <= new Date()} work={w} />
|
||||
<WorkRepository class="mb-3" readonly={w.corrected || new Date(w.end_availability) <= new Date()} work={w} on:update_submission={() => refresh_submission(w)} />
|
||||
<div class="card mb-3">
|
||||
<div class="card-body d-flex justify-content-between">
|
||||
<div>
|
||||
@ -132,7 +163,7 @@
|
||||
<strong>État du rendu :</strong> <SubmissionStatus work={w} />
|
||||
{:else}
|
||||
Rendu :
|
||||
{#await w.getSubmission()}
|
||||
{#await my_submission}
|
||||
<div class="spinner-grow spinner-grow-sm mx-1" role="status"></div>
|
||||
{:then submission}
|
||||
<strong>{submission.commit} ({submission.tag})</strong> (taille : {submission.size} o, date : <DateFormat date={new Date(submission.date)} dateStyle="medium" timeStyle="medium" />)
|
||||
@ -142,13 +173,20 @@
|
||||
{/if}
|
||||
</div>
|
||||
<div class="d-flex flex-column justify-content-center">
|
||||
<a
|
||||
href="/api/works/{w.id}/download"
|
||||
class="btn btn-sm btn-dark"
|
||||
title="Voir la tarball de mon rendu"
|
||||
>
|
||||
<i class="bi bi-download"></i>
|
||||
</a>
|
||||
{#await my_submission then submission}
|
||||
<a
|
||||
href="/api/works/{w.id}/download"
|
||||
class="btn btn-sm btn-dark"
|
||||
title="Voir la tarball de mon rendu"
|
||||
>
|
||||
<i class="bi bi-download"></i>
|
||||
</a>
|
||||
{:catch}
|
||||
<i
|
||||
class="bi bi-x-circle text-danger"
|
||||
title="Pas de rendu trouvé"
|
||||
></i>
|
||||
{/await}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
Reference in New Issue
Block a user