Bulk insert of tasks

This commit is contained in:
Standa Lukeš 2020-10-04 20:49:46 +00:00
parent 1af13c38ed
commit 0ba8e229d2
2 changed files with 26 additions and 1 deletions

View file

@ -8,6 +8,8 @@
import TaskDisplay from "./TaskDisplay.svelte";
import TaskDetailEditor from "./TaskDetailEditor.svelte";
import { forceSimulation } from "./force-simulation";
import { refresh as refreshTaskStatuses, taskStatuses } from './task-status-cache'
import { isLoggedIn } from "./ksp-task-grabber";
export let tasks: TasksFile;
@ -155,6 +157,26 @@
tasks = tasks;
}
}
async function loadYear() {
if (!isLoggedIn()) {
alert("Musíš se přihlásit")
return
}
const y = prompt("Který ročník (číslo 26...X)")
await refreshTaskStatuses([`${y}-Z1-1`])
const newTasks = Array.from($taskStatuses.values()).filter(t => t.id.startsWith(y + "-") && !tasks.tasks.find(tt => tt.type == "open-data" && tt.taskReference == t.id))
const newDescriptors: TaskDescriptor[] =
newTasks.map(t => ({
type: "open-data",
id: t.id,
taskReference: t.id,
requires: [],
position: [0, 0],
title: t.name
}))
tasks.tasks = [...tasks.tasks, ...newDescriptors]
}
</script>
<style>
@ -309,6 +331,9 @@
Úhel rotace: <input bind:value={angle} type="range" max="360" min="0" on:change={setAngleToTheCurrentLabel} />
</div>
{/if}
<div>
<button on:click={loadYear} disabled={!isLoggedIn()} title={isLoggedIn() ? "Nahraje všechny úlohy z jednoho ročníku, které tu ještě nejsou" : "Je nutné být přihlášený a na stránce v KSP template."}>Nahrát celý ročník</button>
</div>
</div>
<div class="taskDetails">

View file

@ -17,7 +17,7 @@ export const taskStatuses = readable(lastVal, write => {
export function refresh(ids: string[]) {
if (!isLoggedIn()) return;
grabTaskStates(ids).then(t => {
return grabTaskStates(ids).then(t => {
const tt = Array.from(t.entries())
writeFn(new Map(Array.from(lastVal.entries()).concat(tt)))
localStorage.setItem("taskStatuses-cache", JSON.stringify(tt))