-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.js
138 lines (108 loc) · 4.1 KB
/
main.js
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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
let username = document.getElementById('name')
let phone = document.getElementById('phone_no')
let email = document.getElementById('email')
let nameError = document.querySelector('#nameError')
let phonenoError = document.querySelector('#phonenoError')
let emailError = document.querySelector('#emailError')
let createUserForm = document.querySelector('.create-user-form')
let allUsers = JSON.parse(localStorage.getItem('users')) || []
createUserForm.addEventListener('submit', (event)=>{
event.preventDefault();
fullname = username.value.trim() !== ''
phonenumber = phone.value.trim() !== ''
useremail = email.value.trim() !== ''
if(!fullname){
nameError.textContent = 'Name is required'
nameError.style.color = 'red'
setTimeout(() => {
nameError.textContent = ''
}, 3000);
}
if(!phonenumber){
phonenoError.textContent = 'Phone number is required'
phonenoError.style.color = 'red'
setTimeout(() => {
phonenoError.textContent = ''
}, 3000);
}
if(!useremail){
emailError.textContent = 'Email is required'
emailError.style.color = 'red'
setTimeout(() => {
emailError.textContent = ''
}, 3000);
}
user = fullname && phonenumber && useremail
let newUser ={
full_name: username.value.trim(),
phone_number: phone.value.trim(),
user_email: email.value.trim()
}
if(user == true){
let editIndex = parseInt(createUserForm.dataset.editIndex)
if (isNaN(editIndex)) {
// Add new user
allUsers.push(newUser)
} else {
// Edit existing user
allUsers[editIndex] = newUser
// Reset edit index
createUserForm.dataset.editIndex = ''
// Change button back to Create
createUserForm.querySelector('.btnsubmit').value = 'Create Account'
}
console.log(allUsers);
localStorage.setItem('users', JSON.stringify(allUsers))
username.value = ''
phone.value = ''
email.value = ''
displayUsers()
}
})
function displayUsers(){
let existingUsers = document.querySelectorAll('#displayUserstbl .userdata')
existingUsers.forEach(userRow=>{
userRow.remove();
})
allUsers.forEach((user, index)=>{
let userNumber = document.createElement('td')
userNumber.textContent = index + 1
let userName = document.createElement('td')
userName.textContent = user.full_name
let userPhone = document.createElement('td')
userPhone.textContent = user.phone_number
let userEmail = document.createElement('td')
userEmail.textContent = user.user_email
let deleteUserbtn = document.createElement('button')
deleteUserbtn.textContent = 'Delete'
deleteUserbtn.addEventListener('click', ()=>{
allUsers.splice(index, 1)
localStorage.setItem('users', JSON.stringify(allUsers))
displayUsers()
})
let updateUserbtn = document.createElement('button')
updateUserbtn.textContent = 'Update'
updateUserbtn.style.marginLeft = '10px'
updateUserbtn.addEventListener('click', ()=>{
// Populate form fields with user details
username.value = user.full_name
phone.value = user.phone_number
email.value = user.user_email
// Change Create button to Save button
createUserForm.querySelector('.btnsubmit').value = 'Save'
// Save the index of the user being edited
createUserForm.dataset.editIndex = index
})
let row = document.createElement('tr')
row.className = 'userdata'
row.appendChild(userNumber)
row.appendChild(userName)
row.appendChild(userPhone)
row.appendChild(userEmail)
row.appendChild(deleteUserbtn)
row.appendChild(updateUserbtn)
let displayUserstbl = document.querySelector('#displayUserstbl')
displayUserstbl.appendChild(row)
})
}
displayUsers()