|
|
|
const newTodoTxt = document.getElementById("newTodoTxt") |
|
const newTodoBtn = document.getElementById("newTodoBtn") |
|
const todoListView = document.getElementById("todoListView") |
|
|
|
let todoList = [] |
|
|
|
todoList.push("prova") |
|
todoList.push("prova 2") |
|
|
|
console.log(todoList) |
|
|
|
newTodoBtn.onclick = () => { |
|
const value = newTodoTxt.value |
|
todoList.push(value) |
|
console.log(todoList) |
|
UpdateTodoListView() |
|
} |
|
|
|
function todoListElementToHTMLString(todo, pos) { |
|
return `<li> |
|
<div class="uk-card"> |
|
|
|
<div class="uk-card-body"> |
|
<p>${todo}</p> |
|
|
|
</div> |
|
<div class="uk-card-footer"> |
|
<button class="uk-button uk-button-default uk-margin-small-right" type="button" |
|
uk-toggle="target: #edit-${pos}">Modifica</button> |
|
<button class="uk-button uk-button-danger uk-margin-small-right" type="button" |
|
uk-toggle="target: #delete-${pos}">Cancella</button> |
|
</div> |
|
</div> |
|
<!-- This is the modal --> |
|
<div id="edit-${pos}" uk-modal> |
|
<div class="uk-modal-dialog uk-modal-body"> |
|
<h2 class="uk-modal-title">Modifica Todo</h2> |
|
<input id="editTodoTxt-${pos}" class="uk-input" type="text" placeholder="Input"> |
|
<p class="uk-text-right"> |
|
<button class="uk-button uk-button-default uk-modal-close" |
|
type="button">Cancel</button> |
|
<button id="editTodoBtn-${pos}" class="uk-button uk-button-primary uk-modal-close" type="button" onclick="TodoEdit(${pos})" >Save</button> |
|
</p> |
|
</div> |
|
</div> |
|
<!-- This is the delete modal --> |
|
<div id="delete-${pos}" uk-modal> |
|
<div class="uk-modal-dialog uk-modal-body"> |
|
<h2 class="uk-modal-title">Cancellazione Todo</h2> |
|
<p>${todo}</p> |
|
<p class="uk-text-right"> |
|
<button class="uk-button uk-button-default uk-modal-close" |
|
type="button">Cancel</button> |
|
<button id="deleteTodoBtn-${pos}" class="uk-button uk-button-primary uk-modal-close" type="button" onclick="TodoDelete(${pos})" >Save</button> |
|
</p> |
|
</div> |
|
</div> |
|
</li>` |
|
} |
|
|
|
function TodoDelete(pos) { |
|
todoList.splice(pos, 1) |
|
UpdateTodoListView() |
|
} |
|
|
|
function TodoEdit(pos) { |
|
const value = document.getElementById(`editTodoTxt-${pos}`).value |
|
console.log("edit", pos, value) |
|
todoList[pos] = value |
|
UpdateTodoListView() |
|
} |
|
|
|
function UpdateTodoListView() { |
|
let outHTML = "" |
|
let i = 0 |
|
for (const el of todoList) { |
|
const elementHTMLString = todoListElementToHTMLString(el, i) |
|
outHTML += elementHTMLString |
|
i += 1 |
|
} |
|
todoListView.innerHTML = outHTML |
|
|
|
} |
|
|
|
UpdateTodoListView() |