From ed17d3769bf21dc23204535b1f23222d84d2688e Mon Sep 17 00:00:00 2001 From: Tommaso Bramoso Date: Mon, 17 Feb 2025 13:46:55 +0100 Subject: [PATCH 1/2] esercitazione_18 --- .../toDos-web/src/components/todo_item.svelte | 8 ++++++ .../toDos-web/src/components/todo_list.svelte | 28 ++++++++++++++++++- 2 files changed, 35 insertions(+), 1 deletion(-) diff --git a/TPSI/bramoso_tommaso/svelte/toDos-web/src/components/todo_item.svelte b/TPSI/bramoso_tommaso/svelte/toDos-web/src/components/todo_item.svelte index f202dccd..0f08af3e 100644 --- a/TPSI/bramoso_tommaso/svelte/toDos-web/src/components/todo_item.svelte +++ b/TPSI/bramoso_tommaso/svelte/toDos-web/src/components/todo_item.svelte @@ -5,6 +5,7 @@ import Priority from "./priority.svelte"; export let todo; + let old_priority = todo.priority; const dispatch = createEventDispatcher(); const item_change = (type) => { @@ -18,6 +19,13 @@ const edit_task = () => { document.getElementById(todo.id).blur(); } + + $: { + if(todo.priority != old_priority) { + old_priority = todo.priority; + item_change('update'); + } + } diff --git a/TPSI/bramoso_tommaso/svelte/toDos-web/src/components/todo_list.svelte b/TPSI/bramoso_tommaso/svelte/toDos-web/src/components/todo_list.svelte index 3a2bf674..52e68a5c 100644 --- a/TPSI/bramoso_tommaso/svelte/toDos-web/src/components/todo_list.svelte +++ b/TPSI/bramoso_tommaso/svelte/toDos-web/src/components/todo_list.svelte @@ -2,6 +2,7 @@ import Icon from "./icon.svelte"; import Priority from "./priority.svelte"; import TodoItem from "./todo_item.svelte"; + import { onMount } from "svelte"; let todos = []; let last_id = 0; @@ -14,17 +15,42 @@ priority: 3 }; console.log("CREATE", todo); + localStorage.setItem(`todo${todo.id}`, JSON.stringify(todo)); todos = [...todos, todo]; } const change_todo_item = async (e) => { - delete_item(e.detail.id); + switch(e.detail.type) { + case 'update': + update_item(e.detail.id); + break; + case 'delete': + delete_item(e.detail.id); + break; + }; + } + + const update_item = (id) => { + console.log("UPDATE", id); + + const todo = todos.filter(t => t.id == id)[0]; + localStorage.setItem(`todo${id}`, JSON.stringify(todo)); } const delete_item = (id) => { console.log("DELETE", id); todos = todos.filter(t => t.id != id); } + + onMount(async () => { + for (let i = 0; i < localStorage.length; i++) { + const key = localStorage.key(i); + const todo = JSON.parse(localStorage.getItem(key)); + if (todo != null) + todos.push(todo); + } + todos = [...todos]; + });

ToDos

From c563f2c9065a9cf31ccd9cbf500ae1bc953238a3 Mon Sep 17 00:00:00 2001 From: Tommaso Bramoso Date: Mon, 17 Mar 2025 13:15:28 +0100 Subject: [PATCH 2/2] progetto terminato --- .../svelte/toDos-web/src/components/todo_item.svelte | 2 +- .../svelte/toDos-web/src/components/todo_list.svelte | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/TPSI/bramoso_tommaso/svelte/toDos-web/src/components/todo_item.svelte b/TPSI/bramoso_tommaso/svelte/toDos-web/src/components/todo_item.svelte index 0f08af3e..32ade3e3 100644 --- a/TPSI/bramoso_tommaso/svelte/toDos-web/src/components/todo_item.svelte +++ b/TPSI/bramoso_tommaso/svelte/toDos-web/src/components/todo_item.svelte @@ -48,7 +48,7 @@ on:change={edit_task} />
- + item_change('delete')} /> diff --git a/TPSI/bramoso_tommaso/svelte/toDos-web/src/components/todo_list.svelte b/TPSI/bramoso_tommaso/svelte/toDos-web/src/components/todo_list.svelte index 52e68a5c..ce2f5ba3 100644 --- a/TPSI/bramoso_tommaso/svelte/toDos-web/src/components/todo_list.svelte +++ b/TPSI/bramoso_tommaso/svelte/toDos-web/src/components/todo_list.svelte @@ -40,11 +40,18 @@ const delete_item = (id) => { console.log("DELETE", id); todos = todos.filter(t => t.id != id); + + localStorage.removeItem('todo${id}'); } onMount(async () => { for (let i = 0; i < localStorage.length; i++) { const key = localStorage.key(i); + const keyn = +key.substring(4); + + if (keyn >= last_id) { + last_id = keyn; + } const todo = JSON.parse(localStorage.getItem(key)); if (todo != null) todos.push(todo);