software-development-2022-e.../session-1/my-fancy-to-do-app/index.html

67 lines
2.2 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>TITLE</title>
<link
href="https://fonts.googleapis.com/css2?family=Jost:wght@400;700&display=swap"
rel="stylesheet"
/>
<link rel="stylesheet" href="styles.css" />
<script src="https://unpkg.com/vue@next" defer></script>
<script src="app.js" defer></script>
</head>
<body>
<!--
ein todo app
+ liste (v-for, array)
+ inputfield mit item (databinding)
+ bei enter speichern und anzeigen (event)
+ items müssen gelöscht werden können (methode?)
+ todos als absolviert markieren (checkbox)
+ button clear all
+ erledigte durchstreichen
+ zählen wie viele tasks erledigt sind
reihenfolge:
1. inputfield :)
2. array erstellen
3. button erstellen
4. item hinzufügen
5. vorheriger input löschen
6. enter zum hinzufügen (GESCHAFFT DANK GOOGLEN!)
7. todos anzeigen (hämmer, aber in hässlech)
8. alles löschen button (entschäuschend einfach gewesen)
9. Spezifisches löschen (hard af)
10. checkbox hinzufügen
11: css klasse erstellen
12: style binding
-->
<section id="app">
<input
type="text"
v-model="inputValue"
@keyup.enter="addToList"
/>
<button @click="addToList">Add</button> Anzahl erledigter Tasks: {{totalCompletedTasks}}
<hr>
<ul>
<li v-for="(item, index) in items">
<input type="checkbox" v-model="item.done" />
<!-- geht aber ist nicht so schön
<del v-if="item.done">{{item.name}}</del>
<span v-else>{{item.name}}</span>
-->
<!-- schöner mit CSS class: ich-bin-durchgestrichen-->
<span :class="{ 'ich-bin-durchgestrichen': item.done }">{{item.name}}</span>
<button @click="deleteItem(index)">delete</button>
</li>
</ul>
<button @click="deleteAll">Delete all</button>
</section>
</body>
</html>