diff --git a/käyttöliittymä.js b/käyttöliittymä.js index 5989bb5..0f5dfa3 100644 --- a/käyttöliittymä.js +++ b/käyttöliittymä.js @@ -91,7 +91,7 @@ function suoritaMuutos(tietokanta, muutos) { // "luokka-undefined". seuraava on siis null silloin kuin tämä luokka // tulee lisätä listan loppuun, joka vastaa insertBefore:n toimintaa 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'); seuraava = document.getElementById(`tunnit-uusi-luokka-${seuraavaId}`); tunnitUusiLuokat.insertBefore(luoLuokkaValinta(id, uusi), seuraava); @@ -158,7 +158,7 @@ function poistaElementti(elementti) { elementti.parentElement.removeChild(elementti); } -function luoLuokka(id, nimi) { +function luoLuokka(tietokanta, id, nimi) { const li = document.createElement('li'); li.id = `luokka-${id}`; const poistoPainike = document.createElement('input'); @@ -166,7 +166,15 @@ function luoLuokka(id, nimi) { poistoPainike.value = '-'; poistoPainike.addEventListener('click', () => { 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);