diff options
| author | Furkan Sahin <furkan-dev@proton.me> | 2022-07-22 17:29:41 -0400 |
|---|---|---|
| committer | Furkan Sahin <furkan-dev@proton.me> | 2022-07-22 17:29:41 -0400 |
| commit | d59b6bf8df3d0f5748edfc4f97c06097c3665e13 (patch) | |
| tree | 89d807f3b68ab918ac307cbcad70e998daa21db4 /src/components/Labs/Labs.svelte | |
| parent | 60861ee254d28ab7e122aca8d9ee526a4ee07060 (diff) | |
Init labs page
Diffstat (limited to 'src/components/Labs/Labs.svelte')
| -rw-r--r-- | src/components/Labs/Labs.svelte | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/src/components/Labs/Labs.svelte b/src/components/Labs/Labs.svelte new file mode 100644 index 0000000..8e6e445 --- /dev/null +++ b/src/components/Labs/Labs.svelte @@ -0,0 +1,65 @@ +<script lang="ts"> + import { labStore, ptStore } from "../../stores"; + import type Lab from "../../models/Lab"; + + let selected_lab: Lab | undefined; + + $: labs = [...$labStore.values()].sort((a, b) => a.id - b.id); + + + let headers = ["", "Course", "Sec", "Time", "Location", "Assigned PT",""]; + + $: pts = [...$ptStore.values()]; + + // TODO Make this more efficient rather than checking each PT per each Lab + $: labsAndPts = [...$labStore.values()].flatMap( (lab) => { + return [{ + "lab" : lab, + "pt" : pts.find( (pt) => { + return pt.labs.has(lab.id) + }) + }]; + }); + + // $: console.log("pt", pts.find( (pt) => { + // return pt.firstname == "Adam" + // })) + + +</script> + +<div class="overflow-auto h-full"> + <table class="table w-full"> + <!-- head --> + <thead> + <tr> + {#each headers as header, i} + <th> {i == 0 ? labs.length : header}</th> + {/each} + </tr> + </thead> + <tbody> + {#each labsAndPts as l, i} + <tr + on:click={() => { + selected_lab = l.lab; + }} + class={selected_lab == l.lab ? "active" : "hover"} + > + <th>{i + 1}</th> + <th>{l.lab?.course}</th> + <th>{l.lab?.section}</th> + <th>{l.lab?.time}</th> + <th>{l.lab?.location}</th> + <th>{l.pt?.name ?? "UNASSIGNED"}</th> + <th + ><button + class="btn btn-ghost btn-xs">Delete</button + ></th + > + </tr> + {/each} + </tbody> + </table> + </div> +
\ No newline at end of file |
