-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.js
More file actions
executable file
·94 lines (83 loc) · 3.92 KB
/
index.js
File metadata and controls
executable file
·94 lines (83 loc) · 3.92 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
let globalTaskData = [];
taskContents = document.getElementById("taskContentsrow");
const addCard = () => {
const newTaskDetails = {
id: `${Date.now()}`,
url: document.getElementById("imageURL").value,
title: document.getElementById("taskTitle").value,
type: document.getElementById("taskType").value,
description: document.getElementById("taskDescription").value,
}
taskContents.insertAdjacentHTML('beforeend', generateTaskCard(newTaskDetails));
globalTaskData.push(newTaskDetails);
saveToLocalStorage();
}
const generateTaskCard = ({id, url, title, type, description}) =>{
return (`<div class="col-md-6 col-lg-4 mt-3" id=${id} key=${id}>
<div class="card">
<div class="card-header">
<div class="card-header d-flex justify-content-end">
<button type="button" class="btn btn-outline-info" name=${id} onclick="editTask(this)">
<i class="fas fa-pencil-alt" name=${id} onclick="editTask(this)"></i>
<button>
<button type="button" class="btn btn-outline-danger" name=${id} onclick="deleteTask(this)">
<i class="far fa-trash-alt" name=${id} onclick="deleteTask(this)"></i>
<button>
</div>
</div>
<img src=${url} class="card-img-top" alt="image"/>
<div class="card-body">
<h5 class="card-title">${title}</h5>
<p class="card-text">${description}</p>
<span class="badge bg-primary">${type}</span>
</div>
<div class="card-footer">
<button class="btn btn-outline-primary float-end"> OPEN TASK</button>
</div>
</div>
</div>`)
}
const saveToLocalStorage = () => {
localStorage.setItem("nikhiltasks", JSON.stringify({nikhil: globalTaskData}));
}
const reloadTaskCard = () => {
const localStorageCopy = JSON.parse(localStorage.getItem("nikhiltasks"));
console.log(localStorageCopy);
if(localStorageCopy) {
globalTaskData = localStorageCopy["nikhil"];
}
console.log(globalTaskData)
globalTaskData.map((cardData) => {
taskContents.insertAdjacentHTML('beforeend', generateTaskCard(cardData));
})
}
const deleteTask = (e) => {
const targetID = e.getAttribute("name");
globalTaskData = globalTaskData.filter((cardData) => cardData.id!==targetID);
saveToLocalStorage();
window.location.reload();
}
const editTask = (e) => {
const targetID = e.getAttribute("name");
console.log(e)
console.log(e.parentNode)
console.log(e.parentNode.parentNode.parentNode.childNodes)
console.log(e.parentNode.parentNode.parentNode.childNodes[5].childNodes[1])
console.log(e.parentNode.parentNode.parentNode.childNodes[5].childNodes[3])
console.log(e.parentNode.parentNode.parentNode.childNodes[5].childNodes[5])
e.parentNode.parentNode.parentNode.childNodes[5].childNodes[1].setAttribute("contenteditable", "true")
e.parentNode.parentNode.parentNode.childNodes[5].childNodes[3].setAttribute("contenteditable", "true")
e.parentNode.parentNode.parentNode.childNodes[5].childNodes[5].setAttribute("contenteditable", "true")
console.log(e.parentNode.parentNode.parentNode.childNodes[7].childNodes[1])
e.parentNode.parentNode.parentNode.childNodes[7].childNodes[1].setAttribute("onclick", "saveEditTask(this)")
e.parentNode.parentNode.parentNode.childNodes[7].childNodes[1].innerHTML = "Save Changes"
}
const saveEditTask = (e) => {
const targetID = e.getAttribute("name");
console.log(e)
/*console.log(e.parentNode)
console.log(e.parentNode.parentNode.parentNode.childNodes)
console.log(e.parentNode.parentNode.parentNode.childNodes[5].childNodes[1])
console.log(e.parentNode.parentNode.parentNode.childNodes[5].childNodes[3])
console.log(e.parentNode.parentNode.parentNode.childNodes[5].childNodes[5])*/
}