Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Project 179, Employee DataBase. Refactoring: Duplicate Code #1099

Open
ipzk241-zhdv opened this issue Jan 28, 2025 · 0 comments · May be fixed by #1100
Open

Project 179, Employee DataBase. Refactoring: Duplicate Code #1099

ipzk241-zhdv opened this issue Jan 28, 2025 · 0 comments · May be fixed by #1100

Comments

@ipzk241-zhdv
Copy link

Duplication.

Souce file: https://github.com/ZeroOctave/ZeroOctave-Javascript-Projects/blob/main/assets/Js/employeeDatabase.js

Code fragments:

// Getting value from User-----------------------------------------------------
function readFormData() {
  var formData = {};
  formData["name"] = document.getElementById("name").value;
  formData["code"] = document.getElementById("code").value;
  formData["city"] = document.getElementById("city").value;
  formData["date"] = document.getElementById("date").value;
  formData["dep"] = document.getElementById("dep").value;
  formData["des"] = document.getElementById("des").value;
  formData["salary"] = document.getElementById("salary").value;
  //   console.log(formData);
  return formData;
}
// Reseting Form---------------------------------------------------------------------------
function resetForm() {
  document.getElementById("name").value = "";
  document.getElementById("code").value = "";
  document.getElementById("city").value = "";
  document.getElementById("date").value = "";
  document.getElementById("dep").value = "";
  document.getElementById("des").value = "";
  document.getElementById("salary").value = "";
  selectRow = null;
}
// Editing Record ----------------------------------------------------------------------------

function onEdit(td) {
  selectRow = td.parentElement.parentElement;
  document.getElementById("name").value = selectRow.cells[0].innerHTML;
  document.getElementById("code").value = selectRow.cells[1].innerHTML;
  document.getElementById("city").value = selectRow.cells[2].innerHTML;
  document.getElementById("date").value = selectRow.cells[3].innerHTML;
  document.getElementById("dep").value = selectRow.cells[4].innerHTML;
  document.getElementById("des").value = selectRow.cells[5].innerHTML;
  document.getElementById("salary").value = selectRow.cells[6].innerHTML;
}

// Update Record-----------------------------------------------------------------------------
function updateRecord(formData) {
  selectRow.cells[0].innerHTML = formData.name;
  selectRow.cells[1].innerHTML = formData.code;
  selectRow.cells[2].innerHTML = formData.city;
  selectRow.cells[3].innerHTML = formData.date;
  selectRow.cells[4].innerHTML = formData.dep;
  selectRow.cells[5].innerHTML = formData.des;
  selectRow.cells[6].innerHTML = formData.salary;
}

In many cases, you are manually specifying the individual fields and the corresponding cell indexes (or field names), which can make the code harder to maintain and extend.
We can eliminate this by using data structures (such as arrays or objects) that group related information together and avoid manual repetition. This makes the code more flexible and maintainable.

@ipzk241-zhdv ipzk241-zhdv linked a pull request Jan 28, 2025 that will close this issue
5 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
1 participant