Now you can edit the time table!
This commit is contained in:
parent
0c51504a7f
commit
1ac14dca72
5 changed files with 333 additions and 28 deletions
141
src/IdleScreen/EditTimetable.svelte
Normal file
141
src/IdleScreen/EditTimetable.svelte
Normal file
|
@ -0,0 +1,141 @@
|
||||||
|
<script>
|
||||||
|
import { newTable } from "./timeTable.svelte";
|
||||||
|
|
||||||
|
let table = JSON.parse(localStorage.getItem("TimeTable"));
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<div id="root">
|
||||||
|
<div id="root">
|
||||||
|
<div id="wrap">
|
||||||
|
<div class="Header Row">
|
||||||
|
<span class="DayOfWeek" style="Opacity: 0;"></span>
|
||||||
|
{#each table.Times as time}
|
||||||
|
<input
|
||||||
|
type="text"
|
||||||
|
onchange={() => {
|
||||||
|
newTable(table);
|
||||||
|
}}
|
||||||
|
bind:value={time}
|
||||||
|
/>
|
||||||
|
{/each}
|
||||||
|
</div>
|
||||||
|
<div class="Row">
|
||||||
|
<span class="DayOfWeek">Monday</span>
|
||||||
|
{#each table.Monday as time}
|
||||||
|
<input
|
||||||
|
type="text"
|
||||||
|
onchange={() => {
|
||||||
|
newTable(table);
|
||||||
|
}}
|
||||||
|
bind:value={time}
|
||||||
|
/>
|
||||||
|
{/each}
|
||||||
|
</div>
|
||||||
|
<div class="Row">
|
||||||
|
<span class="DayOfWeek">Tuesday</span>
|
||||||
|
{#each table.Tuesday as time}
|
||||||
|
<input
|
||||||
|
type="text"
|
||||||
|
onchange={() => {
|
||||||
|
newTable(table);
|
||||||
|
}}
|
||||||
|
bind:value={time}
|
||||||
|
/>
|
||||||
|
{/each}
|
||||||
|
</div>
|
||||||
|
<div class="Row">
|
||||||
|
<span class="DayOfWeek">Wednesday</span>
|
||||||
|
{#each table.Wednesday as time}
|
||||||
|
<input
|
||||||
|
type="text"
|
||||||
|
onchange={() => {
|
||||||
|
newTable(table);
|
||||||
|
}}
|
||||||
|
bind:value={time}
|
||||||
|
/>
|
||||||
|
{/each}
|
||||||
|
</div>
|
||||||
|
<div class="Row">
|
||||||
|
<span class="DayOfWeek">Thursday</span>
|
||||||
|
{#each table.Thursday as time}
|
||||||
|
<input
|
||||||
|
type="text"
|
||||||
|
onchange={() => {
|
||||||
|
newTable(table);
|
||||||
|
}}
|
||||||
|
bind:value={time}
|
||||||
|
/>
|
||||||
|
{/each}
|
||||||
|
</div>
|
||||||
|
<div class="Row">
|
||||||
|
<span class="DayOfWeek">Friday</span>
|
||||||
|
{#each table.Friday as time}
|
||||||
|
<input
|
||||||
|
type="text"
|
||||||
|
onchange={() => {
|
||||||
|
newTable(table);
|
||||||
|
}}
|
||||||
|
bind:value={time}
|
||||||
|
/>
|
||||||
|
{/each}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
#root {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
gap: 5px;
|
||||||
|
margin: 10px;
|
||||||
|
justify-content: center;
|
||||||
|
background-color: #303030;
|
||||||
|
padding: 10px;
|
||||||
|
margin: 20px;
|
||||||
|
border-radius: 10px;
|
||||||
|
width: fit-content;
|
||||||
|
}
|
||||||
|
|
||||||
|
#wrap {
|
||||||
|
display: flex;
|
||||||
|
background-color: #252525;
|
||||||
|
padding: 20px;
|
||||||
|
border-radius: 20px;
|
||||||
|
flex-direction: column;
|
||||||
|
gap: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.Row {
|
||||||
|
display: flex;
|
||||||
|
gap: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
span {
|
||||||
|
font-size: 15px;
|
||||||
|
color: white;
|
||||||
|
background-color: #3f3f3f;
|
||||||
|
padding: 5px;
|
||||||
|
border-radius: 10px;
|
||||||
|
width: 100px;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.DayOfWeek {
|
||||||
|
width: 100px;
|
||||||
|
background-color: #30492e;
|
||||||
|
}
|
||||||
|
|
||||||
|
input {
|
||||||
|
font-size: 15px;
|
||||||
|
color: white;
|
||||||
|
background-color: #3f3f3f;
|
||||||
|
padding: 5px;
|
||||||
|
border-radius: 10px;
|
||||||
|
width: 100px;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
.Header > input {
|
||||||
|
background-color: #30492e;
|
||||||
|
}
|
||||||
|
</style>
|
|
@ -1,7 +1,169 @@
|
||||||
<script>
|
<script>
|
||||||
import Time from "./time.svelte";
|
import Time from "./time.svelte";
|
||||||
import TimeTable from "./timeTable.svelte";
|
import TimeTable from "./timeTable.svelte";
|
||||||
|
import EditTimetableDiv from "./EditTimetable.svelte";
|
||||||
|
|
||||||
|
function EditTimetable() {
|
||||||
|
console.log("Edit timetable");
|
||||||
|
TabOpen.v = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
let TabOpen = { v: false };
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<TimeTable />
|
<div id="wrap">
|
||||||
<Time />
|
<div id="nav">
|
||||||
|
<a href="#/" aria-label="Back to main menu"
|
||||||
|
><button aria-label="Back to main menu"
|
||||||
|
><span class="front"
|
||||||
|
><svg
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
height="24px"
|
||||||
|
viewBox="0 -960 960 960"
|
||||||
|
width="24px"
|
||||||
|
fill="#FFFFFF"
|
||||||
|
><path
|
||||||
|
d="M240-200h120v-240h240v240h120v-360L480-740 240-560v360Zm-80 80v-480l320-240 320 240v480H520v-240h-80v240H160Zm320-350Z"
|
||||||
|
/></svg
|
||||||
|
> GO BACK
|
||||||
|
</span></button
|
||||||
|
></a
|
||||||
|
>
|
||||||
|
<h1>Idle Screen</h1>
|
||||||
|
<div>
|
||||||
|
<button
|
||||||
|
aria-label="Back to main menu"
|
||||||
|
onclick={() => EditTimetable()}
|
||||||
|
><span class="front"
|
||||||
|
><svg
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
height="24px"
|
||||||
|
viewBox="0 -960 960 960"
|
||||||
|
width="24px"
|
||||||
|
fill="#FFFFFF"
|
||||||
|
><path
|
||||||
|
d="M200-80q-33 0-56.5-23.5T120-160v-560q0-33 23.5-56.5T200-800h40v-80h80v80h320v-80h80v80h40q33 0 56.5 23.5T840-720v200h-80v-40H200v400h280v80H200Zm0-560h560v-80H200v80Zm0 0v-80 80ZM560-80v-123l221-220q9-9 20-13t22-4q12 0 23 4.5t20 13.5l37 37q8 9 12.5 20t4.5 22q0 11-4 22.5T903-300L683-80H560Zm300-263-37-37 37 37ZM620-140h38l121-122-18-19-19-18-122 121v38Zm141-141-19-18 37 37-18-19Z"
|
||||||
|
/></svg
|
||||||
|
> Edit timetable
|
||||||
|
</span></button
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="root">
|
||||||
|
<TimeTable /><Time />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{#if TabOpen.v !== false}
|
||||||
|
<div id="UperLayer">
|
||||||
|
<div id="wrapClose">
|
||||||
|
<EditTimetableDiv />
|
||||||
|
<button
|
||||||
|
class="close"
|
||||||
|
onclick={() => (TabOpen.v = false)}
|
||||||
|
aria-label="close">CLOSE</button
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{/if}
|
||||||
|
|
||||||
|
<style>
|
||||||
|
#wrap {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
#root {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
height: 100%;
|
||||||
|
justify-content: space-evenly;
|
||||||
|
}
|
||||||
|
|
||||||
|
#nav {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
|
background-color: #121212;
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
button {
|
||||||
|
background: #292929;
|
||||||
|
border-radius: 12px;
|
||||||
|
border: none;
|
||||||
|
margin: 10px;
|
||||||
|
padding: 2px 0px;
|
||||||
|
cursor: pointer;
|
||||||
|
outline-offset: 4px;
|
||||||
|
max-width: 400px;
|
||||||
|
}
|
||||||
|
button:hover .front {
|
||||||
|
transform: translateY(-7px);
|
||||||
|
}
|
||||||
|
|
||||||
|
button:active .front {
|
||||||
|
transform: translateY(-2px);
|
||||||
|
}
|
||||||
|
|
||||||
|
.front {
|
||||||
|
display: flex;
|
||||||
|
text-align: center;
|
||||||
|
align-items: center;
|
||||||
|
padding: 5px;
|
||||||
|
border-radius: 12px;
|
||||||
|
|
||||||
|
background: #4d4d4d;
|
||||||
|
color: white;
|
||||||
|
transform: translateY(-4px);
|
||||||
|
transition: all 0.1s ease-in-out;
|
||||||
|
font-family: "JetBrains Mono", monospace;
|
||||||
|
font-size: 25px;
|
||||||
|
}
|
||||||
|
h1 {
|
||||||
|
text-align: center;
|
||||||
|
margin: 5px 0px;
|
||||||
|
text-decoration: underline #444;
|
||||||
|
position: fixed;
|
||||||
|
top: 0;
|
||||||
|
left: 50%;
|
||||||
|
transform: translate(-50%, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
span {
|
||||||
|
font-size: 0.5em;
|
||||||
|
text-decoration: none;
|
||||||
|
color: #444;
|
||||||
|
}
|
||||||
|
|
||||||
|
#UperLayer {
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
backdrop-filter: blur(5px);
|
||||||
|
background-color: rgba(0, 0, 0, 0.5);
|
||||||
|
z-index: 1;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
#wrapClose {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
}
|
||||||
|
|
||||||
|
.close {
|
||||||
|
background-color: #2b2b2b;
|
||||||
|
color: #888;
|
||||||
|
border: none;
|
||||||
|
padding: 10px 20px;
|
||||||
|
border-radius: 5px;
|
||||||
|
cursor: pointer;
|
||||||
|
align-self: center;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
|
@ -132,7 +132,7 @@
|
||||||
#root {
|
#root {
|
||||||
display: grid;
|
display: grid;
|
||||||
place-items: center;
|
place-items: center;
|
||||||
height: 50%;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#wrap {
|
#wrap {
|
||||||
|
|
|
@ -1,5 +1,10 @@
|
||||||
<script>
|
<script module>
|
||||||
let table = {
|
export function newTable(timetable) {
|
||||||
|
localStorage.setItem("TimeTable", JSON.stringify(timetable));
|
||||||
|
table = timetable;
|
||||||
|
}
|
||||||
|
|
||||||
|
let table = $state({
|
||||||
Times: [
|
Times: [
|
||||||
"07:50 - 08:50",
|
"07:50 - 08:50",
|
||||||
"08:50 - 09:40",
|
"08:50 - 09:40",
|
||||||
|
@ -14,26 +19,26 @@
|
||||||
"Sanskrit",
|
"Sanskrit",
|
||||||
"Math",
|
"Math",
|
||||||
"Lunch",
|
"Lunch",
|
||||||
"Social Science",
|
|
||||||
"Hindi",
|
"Hindi",
|
||||||
|
"Social Science",
|
||||||
"Science",
|
"Science",
|
||||||
],
|
],
|
||||||
Tuesday: [
|
Tuesday: [
|
||||||
"English",
|
"English",
|
||||||
"GK",
|
"Art & Craft",
|
||||||
"Math",
|
"Math",
|
||||||
"Lunch",
|
"Lunch",
|
||||||
"Social Science",
|
|
||||||
"Hindi",
|
"Hindi",
|
||||||
|
"Social Science",
|
||||||
"Science",
|
"Science",
|
||||||
],
|
],
|
||||||
Wednesday: [
|
Wednesday: [
|
||||||
"English",
|
"English",
|
||||||
"Art & Craft",
|
"GK",
|
||||||
"Math",
|
"Math",
|
||||||
"Lunch",
|
"Lunch",
|
||||||
"Social Science",
|
|
||||||
"Hindi",
|
"Hindi",
|
||||||
|
"Social Science",
|
||||||
"Science",
|
"Science",
|
||||||
],
|
],
|
||||||
Thursday: [
|
Thursday: [
|
||||||
|
@ -41,8 +46,8 @@
|
||||||
"Sanskrit",
|
"Sanskrit",
|
||||||
"Math",
|
"Math",
|
||||||
"Lunch",
|
"Lunch",
|
||||||
"Social Science",
|
|
||||||
"Hindi",
|
"Hindi",
|
||||||
|
"Social Science",
|
||||||
"Science",
|
"Science",
|
||||||
],
|
],
|
||||||
Friday: [
|
Friday: [
|
||||||
|
@ -50,11 +55,19 @@
|
||||||
"Computers",
|
"Computers",
|
||||||
"Math",
|
"Math",
|
||||||
"Lunch",
|
"Lunch",
|
||||||
"Social Science",
|
|
||||||
"Hindi",
|
"Hindi",
|
||||||
|
"Social Science",
|
||||||
"Science",
|
"Science",
|
||||||
],
|
],
|
||||||
};
|
});
|
||||||
|
|
||||||
|
let TempTimeTable = localStorage.getItem("TimeTable") || "";
|
||||||
|
|
||||||
|
if (TempTimeTable != "") {
|
||||||
|
table = JSON.parse(TempTimeTable);
|
||||||
|
} else {
|
||||||
|
newTable(TempTimeTable);
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div id="root">
|
<div id="root">
|
||||||
|
@ -102,7 +115,6 @@
|
||||||
#root {
|
#root {
|
||||||
display: grid;
|
display: grid;
|
||||||
place-items: center;
|
place-items: center;
|
||||||
height: 50%;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#wrap {
|
#wrap {
|
||||||
|
@ -119,12 +131,12 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
span {
|
span {
|
||||||
font-size: 25px;
|
font-size: 20px;
|
||||||
color: white;
|
color: white;
|
||||||
background-color: #3f3f3f;
|
background-color: #3f3f3f;
|
||||||
padding: 10px;
|
padding: 5px;
|
||||||
border-radius: 10px;
|
border-radius: 10px;
|
||||||
width: 170px;
|
width: 140px;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -132,7 +144,7 @@
|
||||||
background-color: #30492e;
|
background-color: #30492e;
|
||||||
}
|
}
|
||||||
.DayOfWeek {
|
.DayOfWeek {
|
||||||
width: 150px;
|
width: 120px;
|
||||||
background-color: #30492e;
|
background-color: #30492e;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -94,16 +94,6 @@ function EditList() {
|
||||||
background-color: #121212;
|
background-color: #121212;
|
||||||
color: white;
|
color: white;
|
||||||
}
|
}
|
||||||
|
|
||||||
#left {
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
border-radius: 20px;
|
|
||||||
margin: 20px;
|
|
||||||
margin-top: 5px;
|
|
||||||
border: 2px solid #444;
|
|
||||||
font-family: "JetBrains Mono", monospace;
|
|
||||||
}
|
|
||||||
h1 {
|
h1 {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
margin: 5px 0px;
|
margin: 5px 0px;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue