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(
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();
}));

View File

@ -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);

View File

@ -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']);