ui: Working on works

This commit is contained in:
nemunaire 2022-07-08 11:53:50 +02:00
commit 197c23736d
12 changed files with 475 additions and 10 deletions

View file

@ -7,7 +7,9 @@
import { getSurveys } from '../lib/surveys';
import { getScore } from '../lib/users';
let req_surveys = getSurveys();
export let allworks = false;
let req_surveys = getSurveys(allworks);
export let direct = null;
req_surveys.then((surveys) => {
@ -17,6 +19,18 @@
}
}
});
function gotoSurvey(survey) {
if (survey.kind === "w") {
goto(`works/${survey.id}`);
} else if (survey.direct != null) {
goto(`surveys/${survey.id}/live`);
} else if ($user.is_admin) {
goto(`surveys/${survey.id}/responses`);
} else {
goto(`surveys/${survey.id}`);
}
}
</script>
<table class="table table-striped table-hover mb-0">
@ -38,7 +52,7 @@
</tr>
{:then surveys}
<tbody style="cursor: pointer;">
{#each surveys as survey, sid (survey.id)}
{#each surveys as survey, sid (survey.kind + survey.id)}
{#if (survey.shown || survey.direct != null || ($user && $user.is_admin)) && (!$user || (!$user.was_admin || $user.promo == survey.promo) || $user.is_admin)}
{#if $user && $user.is_admin && (sid == 0 || surveys[sid-1].promo != survey.promo)}
<tr class="bg-info text-light">
@ -47,7 +61,7 @@
</th>
</tr>
{/if}
<tr on:click={e => goto(survey.direct != null ?`surveys/${survey.id}/live`:$user.is_admin?`surveys/${survey.id}/responses`:`surveys/${survey.id}`)}>
<tr on:click={e => gotoSurvey(survey)}>
<td>
{#if !survey.shown}<i class="bi bi-eye-slash-fill" title="Ce questionnaire n'est pas affiché aux étudiants"></i>{/if}
{survey.title}
@ -55,12 +69,12 @@
<SurveyBadge {survey} class="float-end" />
</td>
{#if survey.startAvailability() > Date.now()}
<td>
<td title="Disponible à partir du {survey.start_availability}">
<DateFormat date={survey.start_availability} dateStyle="medium" timeStyle="medium" />
<i class="bi bi-arrow-bar-right"></i>
</td>
{:else}
<td>
<td title="Sera fermé le {survey.start_availability}">
<i class="bi bi-arrow-bar-left"></i>
<DateFormat date={survey.end_availability} dateStyle="medium" timeStyle="medium" />
</td>