Skip to content

Commit 0c9f7fc

Browse files
committed
Update app.js and index.html
Made more progress
1 parent 2b58f90 commit 0c9f7fc

2 files changed

Lines changed: 100 additions & 14 deletions

File tree

‎14-grocery-bud/setup/app.js‎

Lines changed: 99 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,47 @@ let editID = "";
1515
// ****** EVENT LISTENERS **********
1616
// submit form
1717
form.addEventListener("submit", addItem);
18+
// clear items
19+
clearBtn.addEventListener("click", clearItems);
1820

1921
// ****** FUNCTIONS **********
2022
function addItem(e) {
2123
e.preventDefault();
2224
const value = grocery.value;
2325
const id = new Date().getTime().toString();
26+
2427
if (value && !editFlag) {
25-
console.log("add item to the list");
28+
const element = document.createElement("article");
29+
// add class
30+
element.classList.add("grocery-item");
31+
// add id
32+
const attr = document.createAttribute("data-id");
33+
attr.value = id;
34+
element.setAttributeNode(attr);
35+
element.innerHTML = `<p class="title">${value}</p>
36+
<div class="btn-container">
37+
<button type="button" class="edit-btn">
38+
<i class="fas fa-edit"></i>
39+
</button>
40+
<button type="button" class="delete-btn">
41+
<i class="fas fa-trash"></i>
42+
</button>
43+
</div>`;
44+
45+
const deleteBtn = element.querySelector(".delete-btn");
46+
const editBtn = element.querySelector(".edit-btn");
47+
deleteBtn.addEventListener("click", deleteItem);
48+
editBtn.addEventListener("click", editItem);
49+
// append child
50+
list.appendChild(element);
51+
// display alert
52+
displayAlert("item added to the list", "success");
53+
// show container
54+
container.classList.add("show-container");
55+
// add to local storage
56+
addToLocalStorage(id, value);
57+
// set back to default
58+
setBackToDefault();
2659
} else if (value && editFlag) {
2760
console.log("editing");
2861
} else {
@@ -42,6 +75,71 @@ function displayAlert(text, action) {
4275
}, 1000);
4376
}
4477

78+
// clear items
79+
function clearItems() {
80+
const items = document.querySelectorAll(".grocery-item");
81+
82+
if (items.length > 0) {
83+
items.forEach(function (item) {
84+
list.removeChild(item);
85+
});
86+
}
87+
container.classList.remove("show-container");
88+
displayAlert("emptied list", "danger");
89+
// localStorage.removeItem('list');
90+
}
91+
92+
// delete function
93+
function deleteItem(e) {
94+
const element = e.currentTarget.parentElement.parentElement;
95+
const id = element.dataset.id;
96+
list.removeChild(element);
97+
98+
if (list.children.length === 0) {
99+
container.classList.remove("show-container");
100+
}
101+
displayAlert("item removed", "danger");
102+
setBackToDefault();
103+
// remove from local storage
104+
// removeFromLocalStorage(id);
105+
}
106+
107+
// edit function
108+
function editItem(e) {
109+
const element = e.currentTarget.parentElement.parentElement;
110+
111+
// set edit items
112+
editElement = e.currentTarget.parentElement.previousElementSibling;
113+
// set form value
114+
grocery.value = editElement.innerHTML;
115+
let editFlag = true;
116+
let editID = element.dataset.id;
117+
submitBtn.textContent = "edit";
118+
}
119+
120+
// set back to default
121+
function setBackToDefault() {
122+
console.log("set back to default");
123+
grocery.value = "";
124+
editFlag = false;
125+
editID = "";
126+
submitBtn.textContent = "submit";
127+
}
128+
45129
// ****** LOCAL STORAGE **********
130+
function addToLocalStorage(id, value) {
131+
//Check to if there is an existing todo list
132+
/* let todoList;
133+
if (!localStorage.getItem("todo-list")) {
134+
todoList = [];
135+
} else {
136+
todoList = JSON.parse(localStorage.getItem("todo-list"));
137+
}
138+
139+
todoList.push(todo);
140+
localStorage.setItem("todo-list", JSON.stringify(todoList)); */
141+
}
142+
143+
function removeFromLocalStorage(id) {}
46144

47145
// ****** SETUP ITEMS **********

‎14-grocery-bud/setup/index.html‎

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -25,19 +25,7 @@ <h3>grocery bud</h3>
2525
</form>
2626
<!-- list -->
2727
<div class="grocery-container">
28-
<div class="grocery-list">
29-
<article class="grocery-item">
30-
<p class="title">item</p>
31-
<div class="btn-container">
32-
<button type="button" class="edit-btn">
33-
<i class="fas fa-edit"></i>
34-
</button>
35-
<button type="button" class="delete-btn">
36-
<i class="fas fa-trash"></i>
37-
</button>
38-
</div>
39-
</article>
40-
</div>
28+
<div class="grocery-list"></div>
4129
<!-- button -->
4230
<button type="button" class="clear-btn">clear items</button>
4331
</div>

0 commit comments

Comments
 (0)