|
|
@ -91,7 +91,7 @@ function suoritaMuutos(tietokanta, muutos) {
|
|
|
|
// "luokka-undefined". seuraava on siis null silloin kuin tämä luokka
|
|
|
|
// "luokka-undefined". seuraava on siis null silloin kuin tämä luokka
|
|
|
|
// tulee lisätä listan loppuun, joka vastaa insertBefore:n toimintaa
|
|
|
|
// tulee lisätä listan loppuun, joka vastaa insertBefore:n toimintaa
|
|
|
|
let seuraava = document.getElementById(`luokka-${seuraavaId}`);
|
|
|
|
let seuraava = document.getElementById(`luokka-${seuraavaId}`);
|
|
|
|
luokatLista.insertBefore(luoLuokka(id, uusi), seuraava);
|
|
|
|
luokatLista.insertBefore(luoLuokka(tietokanta, id, uusi), seuraava);
|
|
|
|
const tunnitUusiLuokat = document.getElementById('tunnit-uusi-luokat');
|
|
|
|
const tunnitUusiLuokat = document.getElementById('tunnit-uusi-luokat');
|
|
|
|
seuraava = document.getElementById(`tunnit-uusi-luokka-${seuraavaId}`);
|
|
|
|
seuraava = document.getElementById(`tunnit-uusi-luokka-${seuraavaId}`);
|
|
|
|
tunnitUusiLuokat.insertBefore(luoLuokkaValinta(id, uusi), seuraava);
|
|
|
|
tunnitUusiLuokat.insertBefore(luoLuokkaValinta(id, uusi), seuraava);
|
|
|
@ -136,7 +136,9 @@ function suoritaMuutos(tietokanta, muutos) {
|
|
|
|
// TODO: Järjestys
|
|
|
|
// TODO: Järjestys
|
|
|
|
const tunnitLista = document.getElementById('tunnit-lista');
|
|
|
|
const tunnitLista = document.getElementById('tunnit-lista');
|
|
|
|
tunnitLista.appendChild(luoTunti(tietokanta, id, uusi));
|
|
|
|
tunnitLista.appendChild(luoTunti(tietokanta, id, uusi));
|
|
|
|
// TODO: tunti poistettu, muutos
|
|
|
|
} else if (taulu === taulut.tunnit && uusi === undefined) {
|
|
|
|
|
|
|
|
poistaElementti(document.getElementById(`tunti-${id}`));
|
|
|
|
|
|
|
|
// TODO: tunti muutos
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
throw new Error(`Ei toteutettu ${taulu} ${id} ${vanha} ${uusi}`);
|
|
|
|
throw new Error(`Ei toteutettu ${taulu} ${id} ${vanha} ${uusi}`);
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -156,7 +158,7 @@ function poistaElementti(elementti) {
|
|
|
|
elementti.parentElement.removeChild(elementti);
|
|
|
|
elementti.parentElement.removeChild(elementti);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
function luoLuokka(id, nimi) {
|
|
|
|
function luoLuokka(tietokanta, id, nimi) {
|
|
|
|
const li = document.createElement('li');
|
|
|
|
const li = document.createElement('li');
|
|
|
|
li.id = `luokka-${id}`;
|
|
|
|
li.id = `luokka-${id}`;
|
|
|
|
const poistoPainike = document.createElement('input');
|
|
|
|
const poistoPainike = document.createElement('input');
|
|
|
@ -164,7 +166,15 @@ function luoLuokka(id, nimi) {
|
|
|
|
poistoPainike.value = '-';
|
|
|
|
poistoPainike.value = '-';
|
|
|
|
poistoPainike.addEventListener('click', () => {
|
|
|
|
poistoPainike.addEventListener('click', () => {
|
|
|
|
suorita(_tietokanta.transaktio((t) => {
|
|
|
|
suorita(_tietokanta.transaktio((t) => {
|
|
|
|
t.poista(taulut.luokat, id);
|
|
|
|
const käyttävät =
|
|
|
|
|
|
|
|
t.suodata(taulut.tunnit, (tunti) => tunti.luokat.includes(id))
|
|
|
|
|
|
|
|
.map((x) => tuntiTeksti(tietokanta, t.hae(taulut.tunnit, x)));
|
|
|
|
|
|
|
|
if (käyttävät.length === 0) {
|
|
|
|
|
|
|
|
t.poista(taulut.luokat, id);
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
const lista = käyttävät.join('\n- ');
|
|
|
|
|
|
|
|
alert(`Ei voida poistaa ennen tunteja:\n- ${lista}`);
|
|
|
|
|
|
|
|
}
|
|
|
|
}));
|
|
|
|
}));
|
|
|
|
});
|
|
|
|
});
|
|
|
|
li.appendChild(poistoPainike);
|
|
|
|
li.appendChild(poistoPainike);
|
|
|
@ -227,7 +237,7 @@ function tuntiTeksti(tietokanta, tunti) {
|
|
|
|
const opettajat = tunti.opettajat
|
|
|
|
const opettajat = tunti.opettajat
|
|
|
|
.map((x) => tietokanta.hae(taulut.opettajat, x).lyhenne);
|
|
|
|
.map((x) => tietokanta.hae(taulut.opettajat, x).lyhenne);
|
|
|
|
const tilat = tunti.tilat.map((x) => tietokanta.hae(taulut.tilat, x));
|
|
|
|
const tilat = tunti.tilat.map((x) => tietokanta.hae(taulut.tilat, x));
|
|
|
|
return `${kertaa}× ${nimi} ${luokat} ${opettajat} ${tilat}`;
|
|
|
|
return `${luokat} ${opettajat} ${kertaa}×${nimi} tilassa ${tilat}`;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
function luoLuokkaValinta(id, nimi) {
|
|
|
|
function luoLuokkaValinta(id, nimi) {
|
|
|
|