Skip to content

Commit 39c75a7

Browse files
committed
Update exercises for OOD schedule '24.
1 parent 0b5e32e commit 39c75a7

File tree

19 files changed

+559
-211
lines changed

19 files changed

+559
-211
lines changed

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
.idea
2+
.vscode
23
**/node_modules

HSR.Template.Exercises/documentStyle.css

+3-16
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,9 @@ th a {
120120
td {
121121
text-align: center;
122122
}
123+
td[data-text] {
124+
text-align: left;
125+
}
123126
thead th {
124127
padding-left: 1rem;
125128
padding-right: 1rem;
@@ -130,25 +133,9 @@ tbody th {
130133

131134

132135
/* lists */
133-
ul, ol {
134-
padding-left: 0;
135-
list-style-position: inside;
136-
}
137136
ul {
138137
list-style-type: circle;
139138
}
140-
ol {
141-
list-style: upper-alpha;
142-
}
143-
ul li, ol li {
144-
list-style-position: inside;
145-
}
146-
ul ul, ul ol, ol ul, ol ol {
147-
padding-left: 1rem;
148-
}
149-
ol ol {
150-
list-style-type: lower-roman;
151-
}
152139
li > pre {
153140
margin: 0;
154141
padding: 0;

index.html

+7-7
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,13 @@ <h2>Ziele der Übung</h2>
1818
<p>Vertiefen und praktisches Anwenden von Klassen und Modulen im Zusammenhang mit dem Model-View-Controller Pattern.</p>
1919

2020
<h2>Vorbereitung</h2>
21-
<ul>
21+
<ol>
2222
<li>Kopieren/klonen Sie die Aufgabe von <a href="https://github.com/IFS-Web/HSR.CAS-FEE.JS-ENG2" target="_blank">github.com/IFS-Web/HSR.CAS-FEE.JS-ENG2</a> auf Ihren Rechner.</li>
2323
<li>Öffnen Sie eine Command Prompt (z.B. Windows Console, cmd.exe) und navigieren Sie in den Ordner "/vorlage"</li>
2424
<li>Führen Sie den Command "npm install" aus, um das npm-Paket mit dessen Abhängigkeiten zu installieren.</li>
2525
<li>Starten Sie den Server mit "npm start"</li>
2626
<li>Die Webseite ist unter <a href="http://localhost:3000/" target="_blank">http://localhost:3000/</a> erreichbar.</li>
27-
</ul>
27+
</ol>
2828

2929
<h2>API</h2>
3030
<p>Der Server gibt das zoo.html File im Ordner vorlage/public zurück. Eine zusätzliche Server-API ist nicht notwendig.</p>
@@ -115,7 +115,7 @@ <h2>Aufgaben</h2>
115115
<h3>Exercise 1</h3>
116116
</header>
117117
In dieser Übung werden Sie sich mit der Vorlage vertraut machen und die verwendeten JavaScript Konstrukte innerhalb der Applikation analysieren. Sie finden die Anweisungen unter <code>// TODO: Step 1</code>.
118-
<ul>
118+
<ol>
119119
<li>Erstellen Sie pro Funktion ein eigenes File. Benennen Sie die Files nach dem kebap-case Schema (siehe <code>// TODO: Step 1</code>). Beispielsweise wird die Funktion <code>createStorage()</code> im Verlauf der Übung zur FoodStorage Klasse umgebaut; die Logik von <code>createStorage()</code> findet sich schlussendlich im <code>food-storage.js</code> File ein.</li>
120120
<li>Bauen Sie die folgende Ordnerstruktur auf und verschieben Sie die Files, welche Sie im vorherigen Schritt angelegt haben, in die zugehörigen Ordner. Platzieren Sie die <code>&lt;script&gt;</code>-Tags mit den File-Referenzen ins <code>zoo.html</code>.
121121
<ul>
@@ -135,7 +135,7 @@ <h3>Exercise 1</h3>
135135
<li>zoo.html<code class="list-description">(View)</code></li>
136136
</ul>
137137
</li>
138-
</ul>
138+
</ol>
139139
</section>
140140
<section>
141141
<header>
@@ -161,14 +161,14 @@ <h3>Exercise 2</h3>
161161
<h3>Exercise 3</h3>
162162
</header>
163163
Führen Sie nun ES2015 Modules ein. Sie finden die Tipps unter <code>// TODO: Step 3</code>.
164-
<ul>
165-
<li>Ihre Lösung ist nach Exercise 2 optimal vorbereitet für den Einsatz von ES2015 Modules. Achtung: Ihre Lösung lässt sich bis zum kompletten Abschluss des Step 3 nicht mehr ausführen.</li>
164+
Ihre Lösung ist nach Exercise 2 optimal vorbereitet für den Einsatz von ES2015 Modules. Achtung: Der Code lässt sich bis zum kompletten Abschluss des Step 3 nicht mehr ausführen.
165+
<ol>
166166
<li>Referenzieren Sie die js-Files als Modules. Exportieren Sie die Klassen/Konstanten, welche von anderen Files wiederverwendet werden sollen.</li>
167167
<li>Importieren Sie wo nötig die Klassen/Konstanten mittels Import-Syntax.</li>
168168
<li>Deklarieren Sie ebenfalls den Zoo-Controller-Aufruf im <code>zoo.html</code> im <code>&lt;script type="module"&gt;</code>-Syntax.</li>
169169
<li>Entfernen Sie schlussendlich die nicht mehr benötigten <code>script</code>-Tags im <code>zoo.html</code> File.</li>
170170
<li>Optional: Wie könnten Sie die Business Services testbar (d.h. unabhängig von den Data Access Services) machen?</li>
171-
</ul>
171+
</ol>
172172
</section>
173173
<section>
174174
<header>

solution-exercise1/package-lock.json

+130-44
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

solution-exercise1/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "zoo-srv-ex1",
3-
"version": "0.21.0",
3+
"version": "0.22.0",
44
"private": true,
55
"scripts": {
66
"start": "node ./bin/www"

solution-exercise1/public/js/controllers/zoo-controller.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ function initEventHandlers() {
3030
if (!isNaN(foodId)) {
3131
event.target.setAttribute('disabled', true);
3232

33-
foodService.orderFoodById(foodId);
33+
foodService.orderFoodById(foodId, () => showFood());
3434
showFood();
3535
event.target.removeAttribute('disabled');
3636
}

0 commit comments

Comments
 (0)