From a6de5097b0722d5dbf56bdfd4acfea28588a5b2b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juhani=20Krekel=C3=A4?= Date: Fri, 11 Aug 2023 19:48:18 +0300 Subject: [PATCH] =?UTF-8?q?Lis=C3=A4=C3=A4=20k=C3=A4ytt=C3=B6liittym=C3=A4?= =?UTF-8?q?=20tunnin=20kahdentamiselle?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- käyttöliittymä.js | 18 ++++++++++++++---- tietomalli.js | 6 +++--- tietotyypit.js | 18 +++++++++--------- 3 files changed, 26 insertions(+), 16 deletions(-) diff --git a/käyttöliittymä.js b/käyttöliittymä.js index 17d1c34..d0f04b4 100644 --- a/käyttöliittymä.js +++ b/käyttöliittymä.js @@ -83,9 +83,9 @@ document.getElementById('lisää-tunti').addEventListener('submit', (tapahtuma) suorita( tapahtumaTyypit.lisääTunti, nimi, - luokka, - opettajaLyhenne, - tila, + [luokka], + [opettajaLyhenne], + [tila], ); nimiElementti.value = ''; @@ -329,8 +329,18 @@ function luoTuntiLista() { for (let [id, tunti] of tunnit.järjestyksessä()) { let tuntiListassa = document.createElement('li'); + tuntiListassa.appendChild(luoPainike('+', () => { + suorita( + tapahtumaTyypit.lisääTunti, + tunti.nimi, + tunti.luokat.alkiot(), + tunti.opettajaLyhenteet.alkiot(), + tunti.tilat.alkiot() + ); + piirräKaikki(); + })); + tuntiListassa.appendChild(luoPainike('-', () => { - console.log(id); suorita(tapahtumaTyypit.poistaTunti, id); piirräKaikki(); })); diff --git a/tietomalli.js b/tietomalli.js index d95017b..0ccbbbf 100644 --- a/tietomalli.js +++ b/tietomalli.js @@ -305,15 +305,15 @@ testi('tuntien käsittely', () => { assertEq('aluksi', tunnit.järjestyksessä(), []); assertEq('historia', - suorita(tapahtumaTyypit.lisääTunti, 'Historia', '5B', 'KV', 1), + suorita(tapahtumaTyypit.lisääTunti, ['Historia'], ['5B'], ['KV'], [1]), 0 ); assertEq('äidinkieli', - suorita(tapahtumaTyypit.lisääTunti, 'Äidinkieli', '1A', 'AS', 0), + suorita(tapahtumaTyypit.lisääTunti, ['Äidinkieli'], ['1A'], ['AS'], [0]), 1 ); assertEq('kuvataide', - suorita(tapahtumaTyypit.lisääTunti, 'Kuvataide', '5A', 'MM', 2), + suorita(tapahtumaTyypit.lisääTunti, ['Kuvataide'], ['5A'], ['MM'], [2]), 2 ); assertEq('lisättyä pituus', tunnit.järjestyksessä().length, 3); diff --git a/tietotyypit.js b/tietotyypit.js index 0dd3095..704e03d 100644 --- a/tietotyypit.js +++ b/tietotyypit.js @@ -165,11 +165,11 @@ class Tunnit { tunnit = new Map(); #seuraavaId = 0; - lisää(nimi, luokka, opettajaLyhenne, tila) { + lisää(nimi, luokat, opettajaLyhenteet, tilat) { let id = this.#seuraavaId++; this.tunnit.set( id, - new Tunti(nimi, [luokka], [opettajaLyhenne], [tila]) + new Tunti(nimi, luokat, opettajaLyhenteet, tilat) ); return id; } @@ -394,8 +394,8 @@ testi('tilojen nimet', () => { testi('tuntien lisääminen', () => { let tunnit = new Tunnit(); - assertEq('historia', tunnit.lisää('Historia', '5B', 'KV', 0), 0); - assertEq('äidinkieli', tunnit.lisää('Äidinkieli', '1A', 'AS', 1), 1); + assertEq('historia', tunnit.lisää('Historia', ['5B'], ['KV'], [0]), 0); + assertEq('äidinkieli', tunnit.lisää('Äidinkieli', ['1A'], ['AS'], [1]), 1); assertEq('historia nimi', tunnit.tunnit.get(0).nimi, 'Historia'); assertEq('historia luokat', tunnit.tunnit.get(0).luokat.alkiot(), ['5B']); assertEq('historia opettajat', tunnit.tunnit.get(0).opettajaLyhenteet.alkiot(), ['KV']); @@ -408,20 +408,20 @@ testi('tuntien lisääminen', () => { testi('tuntien poistaminen', () => { let tunnit = new Tunnit(); - tunnit.lisää('Historia', '5B', 'KV', 0); - tunnit.lisää('Äidinkieli', '1B', 'AS', 1); + tunnit.lisää('Historia', ['5B'], ['KV'], [0]); + tunnit.lisää('Äidinkieli', ['1B'], ['AS'], [1]); tunnit.poista(0); tunnit.poista(1); assertThrow('jo poistettu', 'ei tuntia ID:llä 1', () => { tunnit.poista(1); }); - assertEq('kuvataide', tunnit.lisää('Kuvataide', '6A', 'MM', 2), 2); + assertEq('kuvataide', tunnit.lisää('Kuvataide', ['6A'], ['MM'], [2]), 2); }); testi('tuntien järjestys', () => { let tunnit = new Tunnit(); - tunnit.lisää('Historia', '5B', 'KV', 0); - tunnit.lisää('Äidinkieli', '1B', 'AS', 1); + tunnit.lisää('Historia', ['5B'], ['KV'], [0]); + tunnit.lisää('Äidinkieli', ['1B'], ['AS'], [1]); assertEq('aluksi', tunnit.järjestyksessä()[0][1].nimi, 'Historia'); tunnit.tunnit.get(1).nimi = 'Historia'; assertEq('sama nimi', tunnit.järjestyksessä()[0][1].luokat.alkiot(), ['1B']);