Compare commits
2 Commits
4522536155
...
ff8cf1083e
Author | SHA1 | Date |
---|---|---|
|
ff8cf1083e | |
|
a7a51cdcd9 |
|
@ -108,7 +108,7 @@ function suoritaMuutos(tietokanta, muutos) {
|
|||
const opettajatLista = document.getElementById('opettajat-lista');
|
||||
// ks. kommentti uuden luokan tapauksessa
|
||||
let seuraava = document.getElementById(`opettaja-${seuraavaId}`);
|
||||
opettajatLista.insertBefore(luoOpettaja(id, uusi), seuraava);
|
||||
opettajatLista.insertBefore(luoOpettaja(tietokanta, id, uusi), seuraava);
|
||||
const tunnitUusiOpettajat = document.getElementById('tunnit-uusi-opettajat');
|
||||
seuraava = document.getElementById(`tunnit-uusi-opettaja-${seuraavaId}`);
|
||||
tunnitUusiOpettajat.insertBefore(luoOpettajaValinta(id, uusi), seuraava);
|
||||
|
@ -122,7 +122,7 @@ function suoritaMuutos(tietokanta, muutos) {
|
|||
const seuraavaId = idJälkeen(tietokanta, taulu, id, vertaa);
|
||||
const tilatLista = document.getElementById('tilat-lista');
|
||||
let seuraava = document.getElementById(`tila-${seuraavaId}`);
|
||||
tilatLista.insertBefore(luoTila(id, uusi), seuraava);
|
||||
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);
|
||||
|
@ -133,9 +133,12 @@ function suoritaMuutos(tietokanta, muutos) {
|
|||
// TODO: tila muutos
|
||||
} else if (taulu === taulut.tunnit && vanha === undefined) {
|
||||
// Uusi tunti
|
||||
// TODO: Järjestys
|
||||
const seuraavaId = idJälkeen(tietokanta, taulu, id,
|
||||
(a, b) => vertaa(a.nimi, b.nimi)
|
||||
);
|
||||
const tunnitLista = document.getElementById('tunnit-lista');
|
||||
tunnitLista.appendChild(luoTunti(tietokanta, id, uusi));
|
||||
const seuraava = document.getElementById(`tunti-${id}`);
|
||||
tunnitLista.insertBefore(luoTunti(tietokanta, id, uusi), seuraava);
|
||||
} else if (taulu === taulut.tunnit && uusi === undefined) {
|
||||
poistaElementti(document.getElementById(`tunti-${id}`));
|
||||
// TODO: tunti muutos
|
||||
|
@ -182,7 +185,7 @@ function luoLuokka(tietokanta, id, nimi) {
|
|||
return li;
|
||||
}
|
||||
|
||||
function luoOpettaja(id, {nimi, lyhenne}) {
|
||||
function luoOpettaja(tietokanta, id, {nimi, lyhenne}) {
|
||||
const li = document.createElement('li');
|
||||
li.id = `opettaja-${id}`;
|
||||
const poistoPainike = document.createElement('input');
|
||||
|
@ -190,7 +193,15 @@ function luoOpettaja(id, {nimi, lyhenne}) {
|
|||
poistoPainike.value = '-';
|
||||
poistoPainike.addEventListener('click', () => {
|
||||
suorita(_tietokanta.transaktio((t) => {
|
||||
t.poista(taulut.opettajat, id);
|
||||
const käyttävät =
|
||||
t.suodata(taulut.tunnit, (tunti) => tunti.opettajat.includes(id))
|
||||
.map((x) => tuntiTeksti(tietokanta, t.hae(taulut.tunnit, x)));
|
||||
if (käyttävät.length === 0) {
|
||||
t.poista(taulut.opettajat, id);
|
||||
} else {
|
||||
const lista = käyttävät.join('\n- ');
|
||||
alert(`Ei voida poistaa ennen tunteja:\n- ${lista}`);
|
||||
}
|
||||
}));
|
||||
});
|
||||
li.appendChild(poistoPainike);
|
||||
|
@ -198,7 +209,7 @@ function luoOpettaja(id, {nimi, lyhenne}) {
|
|||
return li;
|
||||
}
|
||||
|
||||
function luoTila(id, nimi) {
|
||||
function luoTila(tietokanta, id, nimi) {
|
||||
const li = document.createElement('li');
|
||||
li.id = `tila-${id}`;
|
||||
const poistoPainike = document.createElement('input');
|
||||
|
@ -206,7 +217,15 @@ function luoTila(id, nimi) {
|
|||
poistoPainike.value = '-';
|
||||
poistoPainike.addEventListener('click', () => {
|
||||
suorita(_tietokanta.transaktio((t) => {
|
||||
t.poista(taulut.tilat, id);
|
||||
const käyttävät =
|
||||
t.suodata(taulut.tunnit, (tunti) => tunti.tilat.includes(id))
|
||||
.map((x) => tuntiTeksti(tietokanta, t.hae(taulut.tunnit, x)));
|
||||
if (käyttävät.length === 0) {
|
||||
t.poista(taulut.tilat, id);
|
||||
} else {
|
||||
const lista = käyttävät.join('\n- ');
|
||||
alert(`Ei voida poistaa ennen tunteja:\n- ${lista}`);
|
||||
}
|
||||
}));
|
||||
});
|
||||
li.appendChild(poistoPainike);
|
||||
|
@ -237,7 +256,7 @@ function tuntiTeksti(tietokanta, tunti) {
|
|||
const opettajat = tunti.opettajat
|
||||
.map((x) => tietokanta.hae(taulut.opettajat, x).lyhenne);
|
||||
const tilat = tunti.tilat.map((x) => tietokanta.hae(taulut.tilat, x));
|
||||
return `${luokat} ${opettajat} ${kertaa}×${nimi} tilassa ${tilat}`;
|
||||
return `${luokat} ${opettajat} ${nimi}×${kertaa} tilassa ${tilat}`;
|
||||
}
|
||||
|
||||
function luoLuokkaValinta(id, nimi) {
|
||||
|
|
Loading…
Reference in New Issue