Browse Source

Načítání řešení úlohy

mj-deploy
Standa Lukeš 4 years ago
parent
commit
1206a05633
  1. 2
      frontend/src/Editor.svelte
  2. 32
      frontend/src/TaskDisplay.svelte
  3. 3
      frontend/src/TaskPanel.svelte

2
frontend/src/Editor.svelte

@ -153,7 +153,7 @@
<li>{cat}</li> <li>{cat}</li>
{/each} {/each}
</ul> </ul>
<TaskDisplay task={currentTask} /> <TaskDisplay taskId={currentTask} />
{:else} {:else}
<h3>Nothing selected...</h3> <h3>Nothing selected...</h3>
{/if} {/if}

32
frontend/src/TaskDisplay.svelte

@ -1,7 +1,14 @@
<script type="ts"> <script type="ts">
import { grabAssignment } from "./ksp-task-grabber"; import { grabAssignment, grabSolution } from "./ksp-task-grabber";
import { nonNull } from './helpers' import { nonNull } from './helpers'
export let task: string | null | undefined import App from "./App.svelte";
export let taskId: string | null | undefined
export let showSolution: boolean = false
$: {
taskId
showSolution = false
}
</script> </script>
<style> <style>
div { div {
@ -10,14 +17,29 @@
</style> </style>
<div> <div>
{#if task != null} {#if taskId != null}
{#await grabAssignment(nonNull(task))} {#await grabAssignment(nonNull(taskId))}
Načítám úlohu Načítám úlohu
{:then task} {:then task}
{@html task.titleHtml} {@html task.titleHtml}
<hr>
{@html task.description} {@html task.description}
<div class="clearfloat" /> <div class="clearfloat" />
<div class="solution">
{#if !showSolution}
<a href="javasctipt:;"
on:click|preventDefault|stopPropagation={() => showSolution = true}>
Zobrazit řešení úlohy
</a>
{:else}
<h4>Řešení</h4>
{#await grabSolution(nonNull(taskId))}
Načítám...
{:then solution}
{@html solution.description}
{/await}
{/if}
</div>
{/await} {/await}
{/if} {/if}
</div> </div>

3
frontend/src/TaskPanel.svelte

@ -38,6 +38,7 @@ import TaskDisplay from "./TaskDisplay.svelte";
overflow: hidden; overflow: hidden;
padding: 0 100px 0 100px; padding: 0 100px 0 100px;
box-sizing: border-box; box-sizing: border-box;
z-index: 120;
} }
.panel.collapsed:not(:hover) { .panel.collapsed:not(:hover) {
display: none; display: none;
@ -54,7 +55,7 @@ import TaskDisplay from "./TaskDisplay.svelte";
<div class="panel {heightClass}" <div class="panel {heightClass}"
on:click={() => selectedTask && select(selectedTask)}> on:click={() => selectedTask && select(selectedTask)}>
<TaskDisplay task={selectedTask?.id} /> <TaskDisplay taskId={selectedTask?.id} />
<button type=button class="closeButton" on:click|stopPropagation={() => heightClass = "collapsed"}> <button type=button class="closeButton" on:click|stopPropagation={() => heightClass = "collapsed"}>
Zavřít Zavřít
</button> </button>