From 81af3a7e80973f6019ce6a387fd8a6dfb2c2d95c Mon Sep 17 00:00:00 2001 From: "James N. V. Cash" Date: Mon, 18 Feb 2019 18:43:52 -0500 Subject: [PATCH] Add "complete" state to todo items --- prolog/todo_api.pl | 5 ++++- prolog/todo_page.pl | 16 ++++++++++------ 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/prolog/todo_api.pl b/prolog/todo_api.pl index 9a175f1..f5775fc 100644 --- a/prolog/todo_api.pl +++ b/prolog/todo_api.pl @@ -35,8 +35,11 @@ add_todo(js{desc: Desc}), State1) :- gensym('', Id), - NewTodo = todo{desc: Desc, id: Id}, + NewTodo = todo{desc: Desc, id: Id, complete: false}, phrase(add_todo(NewTodo), [State0], [State1]), !. +handle_event(State, update, State) :- + debug(pengine, "Updating state ~w", [State]). + handle_event(State, Event, State) :- debug(pengine, "Unknown Pengine event ~w ~w", [State, Event]). diff --git a/prolog/todo_page.pl b/prolog/todo_page.pl index a39b2e4..e304f8d 100644 --- a/prolog/todo_page.pl +++ b/prolog/todo_page.pl @@ -36,13 +36,17 @@ br([]), \add_todo])])). +todo_css --> + css(['.complete'(['text-decoration'('line-through')])]). + todo_list --> - vue_html([vue_list(todo in todos, + vue_html([\include_css(todo_css), + vue_list(todo in todos, li(class(todo), - [ - input([type(checkbox), name(toggle)]), - $('todo.desc') - ]) + label(['v-bind:class'('{complete: todo.complete}')], + [vue_input([type(checkbox), name(toggle), + model('todo.complete')]), + $('todo.desc')])) )]). add_todo --> @@ -52,4 +56,4 @@ placeholder('Enter ToDo')]), input([type(submit), value('Add')]) ]) - ). \ No newline at end of file + ).