-
-
Notifications
You must be signed in to change notification settings - Fork 454
/
Copy pathemployeeDatabase.js
96 lines (83 loc) · 2.97 KB
/
employeeDatabase.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
let selectRow = null;
const emp_codes = new Set();
const formFields = ["name", "code", "city", "date", "dep", "des", "salary"];
function onFormSubmit() {
let formData = readFormData();
if (emp_codes.has(formData.code)) {
alert("Emp-Code " + formData.code + " already exists!");
} else {
if (selectRow == null) {
insertNewRecord(formData);
resetForm();
} else {
updateRecord(formData);
resetForm();
}
}
}
// Getting value from User-----------------------------------------------------
function readFormData() {
let formData = {};
formFields.forEach(field => {
formData[field] = document.getElementById(field).value;
});
return formData;
}
// Inserting & Showing Record in Another Table-----------------------------------------------
function insertNewRecord(data) {
let table = document.getElementById("myTable").getElementsByTagName("tbody")[0];
let newRow = table.insertRow(table.length);
formFields.forEach((field, i) => {
let cell = newRow.insertCell(i);
cell.innerHTML = data[field];
});
// Add edit and delete buttons to the last two cells
let editCell = newRow.insertCell(formFields.length);
editCell.innerHTML = `<a onclick="onEdit(this)">Edit</a>`;
let deleteCell = newRow.insertCell(formFields.length + 1);
deleteCell.innerHTML = `<a onclick="onDelete(this)">Delete</a>`;
emp_codes.add(data.code);
}
// Resetting Form-----------------------------------------------------------
function resetForm() {
formFields.forEach(field => {
document.getElementById(field).value = "";
});
selectRow = null;
}
// Editing Record ----------------------------------------------------------------------------
function onEdit(td) {
selectRow = td.parentElement.parentElement;
formFields.forEach((field, i) => {
document.getElementById(field).value = selectRow.cells[i].innerHTML;
});
}
// Update Record-----------------------------------------------------------------------------
function updateRecord(formData) {
formFields.forEach((field, i) => {
selectRow.cells[i].innerHTML = formData[field];
});
}
// Deleting Record--------------------------------------------------------------------------
function onDelete(td) {
if (confirm("Are you want to delete this record ?")) {
let row = td.parentElement.parentElement;
emp_codes.delete(row.cells[1].innerHTML);
document.getElementById("myTable").deleteRow(row.rowIndex);
resetForm();
}
}
// Search Function ------------------------------------------------------------------------
function myFunction() {
let input = document.getElementById("myInput");
let filter = input.value.toUpperCase();
let table = document.getElementById("myTable");
let tr = table.getElementsByTagName("tr");
for (let i = 0; i < tr.length; i++) {
let td = tr[i].getElementsByTagName("td")[0];
if (td) {
let txtValue = td.textContent || td.innerText;
tr[i].style.display = txtValue.toUpperCase().indexOf(filter) > -1 ? "" : "none";
}
}
}