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