-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathscript.js
More file actions
85 lines (68 loc) · 2.9 KB
/
script.js
File metadata and controls
85 lines (68 loc) · 2.9 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
const issueInputForm = document.getElementById('issueInputForm');
issueInputForm.addEventListener('submit', saveIssue);
function saveIssue(e){
//Getting issue details
const issueDesc = document.querySelector('#issueDescInput').value;
const issueSeverity = document.querySelector('#issueSeverityInput').value;
const issueAssignedTo = document.querySelector('#issueAssignedToInput').value;
let issueStatus = 'Open'
let issueId = chance.guid();
let issue = {
id: issueId,
description: issueDesc,
severity: issueSeverity,
assignedTo: issueAssignedTo,
status: issueStatus
}
pushIssue(issue);
issueInputForm.reset();
getIssues();
}
// let issues=[];
// localStorage.setItem('issues', JSON.stringify(issues));
getIssues();
function pushIssue(issue){
if(localStorage.getItem('issues') == null){
let issues=[];
issues.push(issue);
localStorage.setItem('issues', JSON.stringify(issues));
}else {
let issues = JSON.parse(localStorage.getItem('issues'));
issues.push(issue);
localStorage.setItem('issues', JSON.stringify(issues));
}
}
function getIssues(){
let issues = JSON.parse(localStorage.getItem('issues'));
const issueList = document.querySelector('#issueList');
issueList.innerHTML = '';
for(let i = 0; i<issues.length; i++){
const issueWrapper = document.createElement('div');
issueWrapper.classList.add('issueWrapper', 'bg-gray-300', 'p-7', 'mb-5');
issueWrapper.innerHTML = `
<h6 class="mb-4">Issue ID: ${issues[i].id}</h6>
<div class="${(issues[i].status === 'Open')? 'bg-blue-500' : 'bg-orange-700'} px-2 w-fit rounded text-white mb-8">${issues[i].status}</div>
<h3 class="text-4xl font-bold mb-3">${issues[i].description}</h3>
<div class="flex mb-2 ml-1" ><img src="/images/clock.png" class= "w-5 h-5 mt-2" ><p class="text-2xl ml-2">${issues[i].severity}</p></div>
<div class="flex mb-8" ><img src="/images/user.png" class= "w-7 h-7 mt-0" ><p class="text-2xl ml-2">${issues[i].assignedTo}</p></div>
<a href="#" class="bg-orange-700 text-white p-3 rounded mr-2 ${(issues[i].status === 'Closed')? 'hidden' : ''}" onclick = "setStatusClosed(${i})">Close</a>
<a href="#" class="bg-red-700 text-white p-3 rounded" onclick = "deleteIssue(${i})">Delete</a>
`
issueList.appendChild(issueWrapper);
}
}
function setStatusClosed(i){
let issues = JSON.parse(localStorage.getItem('issues'));
issues[i].status = 'Closed'
localStorage.setItem('issues', JSON.stringify(issues));
getIssues();
}
function deleteIssue(i){
let issues = JSON.parse(localStorage.getItem('issues'));
delete issues[i];
var filtered = issues.filter((el) => {
return el != null;
});
localStorage.setItem('issues', JSON.stringify(filtered));
getIssues();
}