Lisää käyttöliittymä tunnin kahdentamiselle

This commit is contained in:
Juhani Krekelä 2023-08-11 19:48:18 +03:00
parent e6c0ac4727
commit a6de5097b0
3 changed files with 26 additions and 16 deletions

View File

@ -83,9 +83,9 @@ document.getElementById('lisää-tunti').addEventListener('submit', (tapahtuma)
suorita( suorita(
tapahtumaTyypit.lisääTunti, tapahtumaTyypit.lisääTunti,
nimi, nimi,
luokka, [luokka],
opettajaLyhenne, [opettajaLyhenne],
tila, [tila],
); );
nimiElementti.value = ''; nimiElementti.value = '';
@ -329,8 +329,18 @@ function luoTuntiLista() {
for (let [id, tunti] of tunnit.järjestyksessä()) { for (let [id, tunti] of tunnit.järjestyksessä()) {
let tuntiListassa = document.createElement('li'); 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('-', () => { tuntiListassa.appendChild(luoPainike('-', () => {
console.log(id);
suorita(tapahtumaTyypit.poistaTunti, id); suorita(tapahtumaTyypit.poistaTunti, id);
piirräKaikki(); piirräKaikki();
})); }));

View File

@ -305,15 +305,15 @@ testi('tuntien käsittely', () => {
assertEq('aluksi', tunnit.järjestyksessä(), []); assertEq('aluksi', tunnit.järjestyksessä(), []);
assertEq('historia', assertEq('historia',
suorita(tapahtumaTyypit.lisääTunti, 'Historia', '5B', 'KV', 1), suorita(tapahtumaTyypit.lisääTunti, ['Historia'], ['5B'], ['KV'], [1]),
0 0
); );
assertEq('äidinkieli', assertEq('äidinkieli',
suorita(tapahtumaTyypit.lisääTunti, 'Äidinkieli', '1A', 'AS', 0), suorita(tapahtumaTyypit.lisääTunti, ['Äidinkieli'], ['1A'], ['AS'], [0]),
1 1
); );
assertEq('kuvataide', assertEq('kuvataide',
suorita(tapahtumaTyypit.lisääTunti, 'Kuvataide', '5A', 'MM', 2), suorita(tapahtumaTyypit.lisääTunti, ['Kuvataide'], ['5A'], ['MM'], [2]),
2 2
); );
assertEq('lisättyä pituus', tunnit.järjestyksessä().length, 3); assertEq('lisättyä pituus', tunnit.järjestyksessä().length, 3);

View File

@ -165,11 +165,11 @@ class Tunnit {
tunnit = new Map(); tunnit = new Map();
#seuraavaId = 0; #seuraavaId = 0;
lisää(nimi, luokka, opettajaLyhenne, tila) { lisää(nimi, luokat, opettajaLyhenteet, tilat) {
let id = this.#seuraavaId++; let id = this.#seuraavaId++;
this.tunnit.set( this.tunnit.set(
id, id,
new Tunti(nimi, [luokka], [opettajaLyhenne], [tila]) new Tunti(nimi, luokat, opettajaLyhenteet, tilat)
); );
return id; return id;
} }
@ -394,8 +394,8 @@ testi('tilojen nimet', () => {
testi('tuntien lisääminen', () => { testi('tuntien lisääminen', () => {
let tunnit = new Tunnit(); let tunnit = new Tunnit();
assertEq('historia', tunnit.lisää('Historia', '5B', 'KV', 0), 0); assertEq('historia', tunnit.lisää('Historia', ['5B'], ['KV'], [0]), 0);
assertEq('äidinkieli', tunnit.lisää('Äidinkieli', '1A', 'AS', 1), 1); assertEq('äidinkieli', tunnit.lisää('Äidinkieli', ['1A'], ['AS'], [1]), 1);
assertEq('historia nimi', tunnit.tunnit.get(0).nimi, 'Historia'); assertEq('historia nimi', tunnit.tunnit.get(0).nimi, 'Historia');
assertEq('historia luokat', tunnit.tunnit.get(0).luokat.alkiot(), ['5B']); assertEq('historia luokat', tunnit.tunnit.get(0).luokat.alkiot(), ['5B']);
assertEq('historia opettajat', tunnit.tunnit.get(0).opettajaLyhenteet.alkiot(), ['KV']); assertEq('historia opettajat', tunnit.tunnit.get(0).opettajaLyhenteet.alkiot(), ['KV']);
@ -408,20 +408,20 @@ testi('tuntien lisääminen', () => {
testi('tuntien poistaminen', () => { testi('tuntien poistaminen', () => {
let tunnit = new Tunnit(); let tunnit = new Tunnit();
tunnit.lisää('Historia', '5B', 'KV', 0); tunnit.lisää('Historia', ['5B'], ['KV'], [0]);
tunnit.lisää('Äidinkieli', '1B', 'AS', 1); tunnit.lisää('Äidinkieli', ['1B'], ['AS'], [1]);
tunnit.poista(0); tunnit.poista(0);
tunnit.poista(1); tunnit.poista(1);
assertThrow('jo poistettu', 'ei tuntia ID:llä 1', () => { assertThrow('jo poistettu', 'ei tuntia ID:llä 1', () => {
tunnit.poista(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', () => { testi('tuntien järjestys', () => {
let tunnit = new Tunnit(); let tunnit = new Tunnit();
tunnit.lisää('Historia', '5B', 'KV', 0); tunnit.lisää('Historia', ['5B'], ['KV'], [0]);
tunnit.lisää('Äidinkieli', '1B', 'AS', 1); tunnit.lisää('Äidinkieli', ['1B'], ['AS'], [1]);
assertEq('aluksi', tunnit.järjestyksessä()[0][1].nimi, 'Historia'); assertEq('aluksi', tunnit.järjestyksessä()[0][1].nimi, 'Historia');
tunnit.tunnit.get(1).nimi = 'Historia'; tunnit.tunnit.get(1).nimi = 'Historia';
assertEq('sama nimi', tunnit.järjestyksessä()[0][1].luokat.alkiot(), ['1B']); assertEq('sama nimi', tunnit.järjestyksessä()[0][1].luokat.alkiot(), ['1B']);