aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--package-lock.json34
-rw-r--r--package.json1
-rw-r--r--rollup.config.js6
-rw-r--r--src/components/Sidebar.svelte106
4 files changed, 92 insertions, 55 deletions
diff --git a/package-lock.json b/package-lock.json
index b5f2182..f2e64c2 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -13,6 +13,7 @@
},
"devDependencies": {
"@rollup/plugin-commonjs": "^17.0.0",
+ "@rollup/plugin-json": "^4.1.0",
"@rollup/plugin-node-resolve": "^11.0.0",
"@rollup/plugin-typescript": "^8.3.0",
"@smui/button": "^4.2.0",
@@ -330,6 +331,18 @@
"rollup": "^2.30.0"
}
},
+ "node_modules/@rollup/plugin-json": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-4.1.0.tgz",
+ "integrity": "sha512-yfLbTdNS6amI/2OpmbiBoW12vngr5NW2jCJVZSBEz+H5KfUJZ2M7sDjk0U6GOOdCWFVScShte29o9NezJ53TPw==",
+ "dev": true,
+ "dependencies": {
+ "@rollup/pluginutils": "^3.0.8"
+ },
+ "peerDependencies": {
+ "rollup": "^1.20.0 || ^2.0.0"
+ }
+ },
"node_modules/@rollup/plugin-node-resolve": {
"version": "11.2.1",
"resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.1.tgz",
@@ -2235,9 +2248,9 @@
}
},
"node_modules/svelte": {
- "version": "3.44.2",
- "resolved": "https://registry.npmjs.org/svelte/-/svelte-3.44.2.tgz",
- "integrity": "sha512-jrZhZtmH3ZMweXg1Q15onb8QlWD+a5T5Oca4C1jYvSURp2oD35h4A5TV6t6MEa93K4LlX6BkafZPdQoFjw/ylA==",
+ "version": "3.49.0",
+ "resolved": "https://registry.npmjs.org/svelte/-/svelte-3.49.0.tgz",
+ "integrity": "sha512-+lmjic1pApJWDfPCpUUTc1m8azDqYCG1JN9YEngrx/hUyIcFJo6VZhj0A1Ai0wqoHcEIuQy+e9tk+4uDgdtsFA==",
"dev": true,
"engines": {
"node": ">= 8"
@@ -2933,6 +2946,15 @@
"resolve": "^1.17.0"
}
},
+ "@rollup/plugin-json": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-4.1.0.tgz",
+ "integrity": "sha512-yfLbTdNS6amI/2OpmbiBoW12vngr5NW2jCJVZSBEz+H5KfUJZ2M7sDjk0U6GOOdCWFVScShte29o9NezJ53TPw==",
+ "dev": true,
+ "requires": {
+ "@rollup/pluginutils": "^3.0.8"
+ }
+ },
"@rollup/plugin-node-resolve": {
"version": "11.2.1",
"resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.1.tgz",
@@ -4320,9 +4342,9 @@
"integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w=="
},
"svelte": {
- "version": "3.44.2",
- "resolved": "https://registry.npmjs.org/svelte/-/svelte-3.44.2.tgz",
- "integrity": "sha512-jrZhZtmH3ZMweXg1Q15onb8QlWD+a5T5Oca4C1jYvSURp2oD35h4A5TV6t6MEa93K4LlX6BkafZPdQoFjw/ylA==",
+ "version": "3.49.0",
+ "resolved": "https://registry.npmjs.org/svelte/-/svelte-3.49.0.tgz",
+ "integrity": "sha512-+lmjic1pApJWDfPCpUUTc1m8azDqYCG1JN9YEngrx/hUyIcFJo6VZhj0A1Ai0wqoHcEIuQy+e9tk+4uDgdtsFA==",
"dev": true
},
"svelte-check": {
diff --git a/package.json b/package.json
index 2279014..def4f0a 100644
--- a/package.json
+++ b/package.json
@@ -10,6 +10,7 @@
},
"devDependencies": {
"@rollup/plugin-commonjs": "^17.0.0",
+ "@rollup/plugin-json": "^4.1.0",
"@rollup/plugin-node-resolve": "^11.0.0",
"@rollup/plugin-typescript": "^8.3.0",
"@smui/button": "^4.2.0",
diff --git a/rollup.config.js b/rollup.config.js
index f97c6cc..a4ce770 100644
--- a/rollup.config.js
+++ b/rollup.config.js
@@ -6,6 +6,7 @@ import { terser } from 'rollup-plugin-terser';
import sveltePreprocess from 'svelte-preprocess';
import typescript from '@rollup/plugin-typescript';
import css from 'rollup-plugin-css-only';
+import json from '@rollup/plugin-json';
const production = !process.env.ROLLUP_WATCH;
@@ -78,7 +79,10 @@ export default {
// If we're building for production (npm run build
// instead of npm run dev), minify
- production && terser()
+ production && terser(),
+
+ // Reading from local json should only happen in development - Furkan
+ !production && json()
],
watch: {
clearScreen: false
diff --git a/src/components/Sidebar.svelte b/src/components/Sidebar.svelte
index 53982bb..b5b33c9 100644
--- a/src/components/Sidebar.svelte
+++ b/src/components/Sidebar.svelte
@@ -1,60 +1,70 @@
<script lang="ts">
- import DarkModeSwitch from "./DarkModeSwitch.svelte";
- import AssignLabs from "./AssignLabs/AssignLabs.svelte";
- import FileUploads from "./FileUploads.svelte";
+ import DarkModeSwitch from "./DarkModeSwitch.svelte";
+ import AssignLabs from "./AssignLabs/AssignLabs.svelte";
+ import FileUploads from "./FileUploads.svelte";
+ import { onMount } from "svelte";
+ import { parseDatabase, parseDatabaseLocal } from "../util/parser";
+ import { parseDatabaseFile } from "../logic/EditorActions";
+ import * as local_db from "../../pt-db.json";
- let sections = [
- { name: "File Uploads", component: FileUploads },
- { name: "Peer Teachers", component: null },
- { name: "Assign Labs", component: AssignLabs },
- { name: "Labs", component: null },
- { name: "Active Peer Teachers", component: null },
- { name: "Stats", component: null },
- { name: "TAMU Html Output", component: null },
- ];
+ let sections = [
+ { name: "File Uploads", component: FileUploads },
+ { name: "Peer Teachers", component: null },
+ { name: "Assign Labs", component: AssignLabs },
+ { name: "Labs", component: null },
+ { name: "Active Peer Teachers", component: null },
+ { name: "Stats", component: null },
+ { name: "TAMU Html Output", component: null },
+ ];
- // Set initial page to Assign Labs while I work on it
- let selected = sections[2];
+ // Set initial page to Assign Labs while I work on it
+ let selected = sections[2];
- function chooseSection(sec) {
- selected = sec;
- }
+ onMount(async () => {
+ // load database on mount for testing purposes
+ console.log("reading local database")
+ parseDatabaseLocal(local_db)
+ });
+
+ function chooseSection(sec) {
+ selected = sec;
+ }
</script>
<!-- Entire Page -->
<div class="flex flex-row h-screen">
- <!-- SIDEBAR -->
- <div class="w-2/12 flex flex-col border-r">
- <!-- Header for sidebar sections -->
- <div
- class="font-serif flex-none text-center text-2xl text-neutral-900 p-4 border-b font-black overflow-hidden"
- >
- <!-- Text -->
- <div>Peer Teacher Manager</div>
- <div>
- <DarkModeSwitch />
- </div>
- </div>
-
- <!-- Sidebar sections -->
- <div class="flex-col overflow-y-auto">
- <ul class="menu bg-base-100 w-full text-xl">
- {#each sections as sec}
- <li>
- <div
- class={selected == sec ? "active" : ""}
- on:click={() => chooseSection(sec)}
- >
- {sec.name}
- </div>
- </li>
- {/each}
- </ul>
- </div>
+ <!-- SIDEBAR -->
+ <div class="w-2/12 flex flex-col border-r">
+ <!-- Header for sidebar sections -->
+ <div
+ class="font-serif flex-none text-center text-2xl text-neutral-900 p-4 border-b font-black overflow-hidden"
+ >
+ <!-- Text -->
+ <div>Peer Teacher Manager</div>
+ <div>
+ <DarkModeSwitch />
+ </div>
</div>
- <!-- Chosen Section / Component -->
- <div class="flex-auto">
- <svelte:component this={selected.component} />
+ <!-- Sidebar sections -->
+ <div class="flex-col overflow-y-auto">
+ <ul class="menu bg-base-100 w-full text-xl">
+ {#each sections as sec}
+ <li>
+ <div
+ class={selected == sec ? "active" : ""}
+ on:click={() => chooseSection(sec)}
+ >
+ {sec.name}
+ </div>
+ </li>
+ {/each}
+ </ul>
</div>
+ </div>
+
+ <!-- Chosen Section / Component -->
+ <div class="flex-auto">
+ <svelte:component this={selected.component} />
+ </div>
</div>