From 45225361551963c822a8baaabf0f807adbc10cd0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juhani=20Krekel=C3=A4?= Date: Thu, 23 May 2024 15:07:51 +0300 Subject: [PATCH] =?UTF-8?q?=C3=84l=C3=A4=20anna=20poistaa=20luokkaa,=20jos?= =?UTF-8?q?=20se=20on=20tunnin=20k=C3=A4yt=C3=B6ss=C3=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- käyttöliittymä.js | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) 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);