Lisää valinta sille, minkä lukujärjestyksen käyttäjä haluaa nähdä

This commit is contained in:
Juhani Krekelä 2024-05-24 14:35:51 +03:00
parent ff8cf1083e
commit 7622731629
2 changed files with 47 additions and 0 deletions

View File

@ -59,6 +59,18 @@
</form>
</details>
<details class="ruutu" open>
<summary>Ajoitukset</summary>
<select id="lukkari-valinta">
<optgroup id="lukkari-valinta-luokat" label="Luokat">
</optgroup>
<optgroup id="lukkari-valinta-opettajat" label="Opettajat">
</optgroup>
<optgroup id="lukkari-valinta-tilat" label="Tilat">
</optgroup>
</select>
</details>
<script src="tietokanta.js"></script>
<script src="käyttöliittymä.js"></script>
<script>

View File

@ -95,6 +95,9 @@ function suoritaMuutos(tietokanta, muutos) {
const tunnitUusiLuokat = document.getElementById('tunnit-uusi-luokat');
seuraava = document.getElementById(`tunnit-uusi-luokka-${seuraavaId}`);
tunnitUusiLuokat.insertBefore(luoLuokkaValinta(id, uusi), seuraava);
const lukkariValintaLuokat = document.getElementById('lukkari-valinta-luokat');
seuraava = document.getElementById(`lukkari-valinta-luokka-${seuraavaId}`);
lukkariValintaLuokat.insertBefore(luoLuokkaVaihtoehto(id, uusi), seuraava);
} else if (taulu === taulut.luokat && uusi === undefined) {
// Luokka poistettu
poistaElementti(document.getElementById(`luokka-${id}`));
@ -112,6 +115,9 @@ function suoritaMuutos(tietokanta, muutos) {
const tunnitUusiOpettajat = document.getElementById('tunnit-uusi-opettajat');
seuraava = document.getElementById(`tunnit-uusi-opettaja-${seuraavaId}`);
tunnitUusiOpettajat.insertBefore(luoOpettajaValinta(id, uusi), seuraava);
const lukkariValintaOpettajat = document.getElementById('lukkari-valinta-opettajat');
seuraava = document.getElementById(`lukkari-valinta-opettaja-${seuraavaId}`);
lukkariValintaOpettajat.insertBefore(luoOpettajaVaihtoehto(id, uusi), seuraava);
} else if (taulu === taulut.opettajat && uusi === undefined) {
// Opettaja poistettu
poistaElementti(document.getElementById(`opettaja-${id}`));
@ -121,11 +127,15 @@ function suoritaMuutos(tietokanta, muutos) {
// Uusi tila
const seuraavaId = idJälkeen(tietokanta, taulu, id, vertaa);
const tilatLista = document.getElementById('tilat-lista');
// ks. kommentti uuden luokan tapauksessa
let seuraava = document.getElementById(`tila-${seuraavaId}`);
tilatLista.insertBefore(luoTila(tietokanta, id, uusi), seuraava);
const tunnitUusiTilat = document.getElementById(`tunnit-uusi-tilat`);
seuraava = document.getElementById(`tunnit-uusi-tila-${seuraavaId}`);
tunnitUusiTilat.insertBefore(luoTilaValinta(id, uusi), seuraava);
const lukkariValintaTilat = document.getElementById('lukkari-valinta-tilat');
seuraava = document.getElementById(`lukkari-valinta-tila-${seuraavaId}`);
lukkariValintaTilat.insertBefore(luoTilaVaihtoehto(id, uusi), seuraava);
} else if (taulu === taulut.tilat && uusi === undefined) {
// Tila poistettu
poistaElementti(document.getElementById(`tila-${id}`));
@ -137,6 +147,7 @@ function suoritaMuutos(tietokanta, muutos) {
(a, b) => vertaa(a.nimi, b.nimi)
);
const tunnitLista = document.getElementById('tunnit-lista');
// ks. kommentti uuden luokan tapauksessa
const seuraava = document.getElementById(`tunti-${id}`);
tunnitLista.insertBefore(luoTunti(tietokanta, id, uusi), seuraava);
} else if (taulu === taulut.tunnit && uusi === undefined) {
@ -297,3 +308,27 @@ function luoTilaValinta(id, nimi) {
li.appendChild(document.createTextNode(nimi));
return li;
}
function luoLuokkaVaihtoehto(id, nimi) {
const option = document.createElement('option');
option.id = `lukkari-valinta-luokka-${id}`;
option.value = `luokka-${id}`;
option.appendChild(document.createTextNode(nimi));
return option;
}
function luoOpettajaVaihtoehto(id, {nimi, lyhenne}) {
const option = document.createElement('option');
option.id = `lukkari-valinta-opettaja-${id}`;
option.value = `opettaja-${id}`;
option.appendChild(document.createTextNode(`${nimi} (${lyhenne})`));
return option;
}
function luoTilaVaihtoehto(id, nimi) {
const option = document.createElement('option');
option.id = `lukkari-valinta-tila-${id}`;
option.value = `tila-${id}`;
option.appendChild(document.createTextNode(nimi));
return option;
}