From f8915cfa1f70d837fe89f0af61fb36ed9bcf52f8 Mon Sep 17 00:00:00 2001 From: Furkan Sahin Date: Sun, 5 Jun 2022 21:06:09 -0500 Subject: WiP --- src/components/AssignLabs/AssignLabs.svelte | 232 ++++++++++++++++++++++++++++ 1 file changed, 232 insertions(+) create mode 100644 src/components/AssignLabs/AssignLabs.svelte (limited to 'src/components/AssignLabs/AssignLabs.svelte') diff --git a/src/components/AssignLabs/AssignLabs.svelte b/src/components/AssignLabs/AssignLabs.svelte new file mode 100644 index 0000000..9331b81 --- /dev/null +++ b/src/components/AssignLabs/AssignLabs.svelte @@ -0,0 +1,232 @@ + + + + +
+ + +
+ +
+ Peer Teacher +
+
+ +
+ + -- cgit v1.2.3 From 2b4098759b4b7b5ce446b89bd888b4f442e8149c Mon Sep 17 00:00:00 2001 From: Furkan Sahin Date: Thu, 9 Jun 2022 16:07:15 -0500 Subject: Defined all 3 columns and temporarily automated store by populating them with a db from localstorage in order to test more efficiently. --- src/components/AssignLabs/AssignLabs.svelte | 50 +++++++++++++++++++++++++++-- 1 file changed, 48 insertions(+), 2 deletions(-) (limited to 'src/components/AssignLabs/AssignLabs.svelte') diff --git a/src/components/AssignLabs/AssignLabs.svelte b/src/components/AssignLabs/AssignLabs.svelte index 9331b81..3964d02 100644 --- a/src/components/AssignLabs/AssignLabs.svelte +++ b/src/components/AssignLabs/AssignLabs.svelte @@ -11,6 +11,12 @@ import { labStore, ptStore } from "../../stores"; import Lab from "./Lab.svelte"; import PT from "./PT.svelte"; + import { onMount } from "svelte"; + import { + parseDatabase, + parseDatabaseLocal, + parseLabSchedule, + } from "../../util/parser"; let selectedPeerTeacher: PeerTeacher | undefined; @@ -100,6 +106,14 @@ component: Lab, }, ]; + + // Load db from local storage so I don't have to keep uploading + onMount(() => { + const db = localStorage.getItem("db"); + if (db) { + parseDatabaseLocal(JSON.parse(db)); + } + }); +
+
Peer Teacher
+
+ {#each peerTeachers as pt} +
{ + selectedPeerTeacher = pt; + }} + > + +
+ {/each} +
+
+
+
Labs
+
+ {#each labs as lab} + + + + {/each} +
+
+
- Peer Teacher + {selectedPeerTeacher?.name ?? "PT's Labs"} +
+
+ {#each assignedLabs as lab} + + + + {/each}
- -- cgit v1.2.3 From 99721049d08f95f9f1aa4ea7645df9bdb82d6998 Mon Sep 17 00:00:00 2001 From: Furkan Sahin Date: Sun, 26 Jun 2022 16:20:05 -0500 Subject: Added a universal list of all unassigned labs to aid in scheduling. use vh/vw instead of percent. --- src/components/AssignLabs/AssignLabs.svelte | 88 ++++++++++++++++++----------- 1 file changed, 56 insertions(+), 32 deletions(-) (limited to 'src/components/AssignLabs/AssignLabs.svelte') diff --git a/src/components/AssignLabs/AssignLabs.svelte b/src/components/AssignLabs/AssignLabs.svelte index 6c1276a..082a71f 100644 --- a/src/components/AssignLabs/AssignLabs.svelte +++ b/src/components/AssignLabs/AssignLabs.svelte @@ -27,6 +27,8 @@ }) .sort((a, b) => a.id - b.id); + $: unassignedLabs = labs.filter((lab) => !lab.assigned); + $: compatibleLabs = labs.filter( (lab) => // Lab not already assigned @@ -108,42 +110,64 @@ }); -
- - -
-
Peer Teacher
-
- {#each peerTeachers as pt} -
{ - selectedPeerTeacher = pt; - }} - > - -
- {/each} +
+ +
+ +
+ +
Peer Teacher
+ +
+ {#each peerTeachers as pt} +
{ + selectedPeerTeacher = pt; + }} + > + +
+ {/each} +
-
-
-
Labs
-
- {#each labs as lab} - - {/each} +
+
Labs
+
+ {#each compatibleLabs as lab} + + {/each} +
-
-
-
- {selectedPeerTeacher?.name ?? "PT's Labs"} -
-
- {#each assignedLabs as lab} - - {/each} +
+
+ {selectedPeerTeacher?.name ?? "PT's Labs"} +
+
+ {#each assignedLabs as lab} + + {/each} +
+ + +
+ {#each unassignedLabs as lab} +
+

{lab.course}

+

{lab.section}

+
+ {/each} +
-- cgit v1.2.3 From aac7d5f8f05b661db4415d2cbb7dc351b53d774b Mon Sep 17 00:00:00 2001 From: Furkan Sahin Date: Sun, 26 Jun 2022 18:06:32 -0500 Subject: Pass selected pt to LabBox. TODO get all reactive statements to actually update ie selected PT's labs --- src/components/AssignLabs/AssignLabs.svelte | 28 +++++++++++----------------- 1 file changed, 11 insertions(+), 17 deletions(-) (limited to 'src/components/AssignLabs/AssignLabs.svelte') diff --git a/src/components/AssignLabs/AssignLabs.svelte b/src/components/AssignLabs/AssignLabs.svelte index 082a71f..9623560 100644 --- a/src/components/AssignLabs/AssignLabs.svelte +++ b/src/components/AssignLabs/AssignLabs.svelte @@ -1,8 +1,8 @@ @@ -20,15 +18,27 @@
CSCE {lab.course} - {lab.section} - {#if assign} + {iconClick()}}/> +
+
+ +
+

{lab.event.info}

+

{lab.building} {lab.room}

+
+
+ + -
-

{lab.event.info}

-

{lab.building} {lab.room}

-
-
+ {/if} --> \ No newline at end of file diff --git a/src/components/helpers/Icon.svelte b/src/components/helpers/Icon.svelte index c9154f3..8dc2a89 100644 --- a/src/components/helpers/Icon.svelte +++ b/src/components/helpers/Icon.svelte @@ -4,7 +4,7 @@ export let height = "1rem"; export let focusable = "false"; export let handleClick = () => { - console.log("Default icon on:click function prints this"); + console.log("Default on:click handler for Icon.svelte. No handler passed"); }; let icons = [ { -- cgit v1.2.3 From 3dea5572103aea641149c5ec73fc621ed914d8f9 Mon Sep 17 00:00:00 2001 From: Furkan Sahin Date: Sat, 16 Jul 2022 00:57:03 -0400 Subject: updating all necessary reactive declarations through single function. All reactive variables correctly update now. --- src/components/AssignLabs/AssignLabs.svelte | 41 +++++++++++++++++------------ 1 file changed, 24 insertions(+), 17 deletions(-) (limited to 'src/components/AssignLabs/AssignLabs.svelte') diff --git a/src/components/AssignLabs/AssignLabs.svelte b/src/components/AssignLabs/AssignLabs.svelte index 1bbc006..a9e3e8d 100644 --- a/src/components/AssignLabs/AssignLabs.svelte +++ b/src/components/AssignLabs/AssignLabs.svelte @@ -41,6 +41,12 @@ ) ); + function updateReactiveDeclarations() { + selectedPeerTeacher = selectedPeerTeacher; + peerTeachers = peerTeachers; + labs = labs; + } + function deletePT(id: number) { if (selectedPeerTeacher?.id === id) { selectedPeerTeacher = undefined; @@ -68,29 +74,16 @@ return; } lab.assigned = true; - selectedPeerTeacher?.labs.add(id); - - // Self assignemnt to update `assignedLabs` and `compatibleLabs` - selectedPeerTeacher = selectedPeerTeacher; - // Self assignment to update PT values used in `Peer Teacher` column - peerTeachers = peerTeachers; + updateReactiveDeclarations(); } function unassignLab(id: number) { - console.log("unassiging", id) const lab = $labStore.get(id); if (lab === undefined) return; lab.assigned = false; - selectedPeerTeacher?.labs.delete(id); - - // Mark lab as unassigned - - // Self assignemnt to update `assignedLabs` and `compatibleLabs` - selectedPeerTeacher = selectedPeerTeacher; - // Self assignment to update PT values used in `Peer Teacher` column - peerTeachers = peerTeachers; + updateReactiveDeclarations(); } // Load db from local storage so I don't have to keep uploading @@ -133,7 +126,14 @@
Labs
{#each compatibleLabs as lab} - {assignLab(lab.id)}} /> + { + assignLab(lab.id); + }} + /> {/each}
@@ -145,7 +145,14 @@
{#each assignedLabs as lab} - {unassignLab(lab.id)}} /> + { + unassignLab(lab.id); + }} + /> {/each}
-- cgit v1.2.3 From 68272d3e577fb36a1d872cec3956c0425307c4f4 Mon Sep 17 00:00:00 2001 From: Furkan Sahin Date: Sat, 16 Jul 2022 01:14:54 -0400 Subject: Reposition and give title to unassigned labs --- src/components/AssignLabs/AssignLabs.svelte | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) (limited to 'src/components/AssignLabs/AssignLabs.svelte') diff --git a/src/components/AssignLabs/AssignLabs.svelte b/src/components/AssignLabs/AssignLabs.svelte index a9e3e8d..3489b36 100644 --- a/src/components/AssignLabs/AssignLabs.svelte +++ b/src/components/AssignLabs/AssignLabs.svelte @@ -159,16 +159,19 @@ -
- {#each unassignedLabs as lab} -
-

{lab.course}

-

{lab.section}

-
- {/each} +
+

Unassigned Labs

+
+ {#each unassignedLabs as lab} +
+

{lab.course}

+

{lab.section}

+
+ {/each} +
-- cgit v1.2.3 From 86c8db5547a3b56fcfd8eb83bd0d6e684985ecdd Mon Sep 17 00:00:00 2001 From: Furkan Sahin Date: Sat, 16 Jul 2022 01:21:36 -0400 Subject: Animate unassigned labs, mostly cleanup unused code --- src/components/AssignLabs/AssignLabs.svelte | 34 ++++------------------------- 1 file changed, 4 insertions(+), 30 deletions(-) (limited to 'src/components/AssignLabs/AssignLabs.svelte') diff --git a/src/components/AssignLabs/AssignLabs.svelte b/src/components/AssignLabs/AssignLabs.svelte index 3489b36..3a326ad 100644 --- a/src/components/AssignLabs/AssignLabs.svelte +++ b/src/components/AssignLabs/AssignLabs.svelte @@ -4,11 +4,7 @@ import Lab from "./LabBox.svelte"; import PT from "./PTBox.svelte"; import { onMount } from "svelte"; - import { - parseDatabase, - parseDatabaseLocal, - parseLabSchedule, - } from "../../util/parser"; + import { parseDatabaseLocal } from "../../util/parser"; let selectedPeerTeacher: PeerTeacher | undefined; @@ -47,32 +43,9 @@ labs = labs; } - function deletePT(id: number) { - if (selectedPeerTeacher?.id === id) { - selectedPeerTeacher = undefined; - } - - $ptStore.get(id)?.labs.forEach((lab_id) => { - const lab = $labStore?.get(lab_id); - if (lab !== undefined) lab.assigned = false; - }); - - ptStore.update((map) => { - map.delete(id); - return map; - }); - - // Self assignemnt to update `assignedLabs` and `compatibleLabs` - selectedPeerTeacher = selectedPeerTeacher; - } - function assignLab(id: number) { - // Mark lab as assigned const lab = $labStore.get(id); - if (lab === undefined) { - console.error("Error lab does not exist"); - return; - } + if (lab === undefined) return; lab.assigned = true; selectedPeerTeacher?.labs.add(id); updateReactiveDeclarations(); @@ -151,6 +124,7 @@ iconName="minus-circle" iconClick={() => { unassignLab(lab.id); + }} /> {/each} @@ -166,7 +140,7 @@ > {#each unassignedLabs as lab}

{lab.course}

{lab.section}

-- cgit v1.2.3