Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <html>
- <head>
- <title>Employee Details Form</title>
- <style>
- /************************************************************/
- .employee-table,
- .employee-table-row,
- .employee-table-column{
- border: 1px solid #fff;
- background-color:#000;
- color:#fff;
- }
- .employee-form{
- background-color:#000;
- color:#fff;
- width:50%;
- padding:10px;
- }
- .employee-form-title,
- .employee-table-title{
- font-weight:bold;
- }
- /************************************************************/
- </style>
- <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/font/bootstrap-icons.css">
- </head>
- <body>
- <span>
- <span>
- <select class="search-criteria">
- <option class="search-criteria-option" value="id">ID</option>
- <option class="search-criteria-option" value="firstName">First Name</option>
- <option class="search-criteria-option" value="lastName">Last Name</option>
- </select>
- </span>
- <span>
- <input type="text" class="search-text" placeholder="enter search text"/>
- </span>
- <span>
- <select class="employee-type">
- <option class="employee-type-option" value="fulltime">Full Time</option>
- <option class="employee-type-option" value="parttime">Part Time</option>
- </select>
- </span>
- <span>
- <select class="shift-details">
- <option class="shift-details-option" value="first">First</option>
- <option class="shift-details-option" value="second">Second</option>
- <option class="shift-details-option" value="third">Third</option>
- <option class="shift-details-option" value="fourth">Fourth</option>
- </select>
- </span>
- <span>
- <input type="button" class="search-button" value="search"/>
- </span>
- </span>
- <br>
- <label class="employee-table-title">Employee Details</label>
- <table class="employee-table">
- <tr class="employee-table-row">
- <td class="employee-table-column">ID</td>
- <td class="employee-table-column">First Name</td>
- <td class="employee-table-column">Last Name</td>
- <td class="employee-table-column">Employee Type</td>
- <td class="employee-table-column">Shift Details</td>
- <td class="employee-table-column">Additional Information</td>
- <td class="employee-table-column">Actions</td>
- </tr>
- </table>
- <input type="button" class="refresh-button" value="refresh"/>
- <br>
- <form class="employee-form">
- <label class="employee-form-title">Employee Details Form</label>
- <br>
- <input type="text" name="firstName" class="first-name" placeholder="enter first name"/>
- <br>
- <input type="text" name="lastName" class="last-name" placeholder="enter last name"/>
- <br>
- <span>
- <input type="radio" name="employeeType" class="employee-type" value="fulltime"><label>full time</label>
- <input type="radio" name="employeeType" class="employee-type" value="parttime"><label>part time</label>
- </span>
- <br>
- <select name="shiftType" class="shift-type">
- <option class="shift-type-option" value="first">first shift</option> <option class="shift-type-option" value="second">second shift</option><option class="shift-type-option" value="third">third shift</option> <option class="shift-type-option" value="fourth">fourth shift</option><option class="shift-type-option" value="fifth">fifth shift</option>
- </select>
- <br>
- <textarea placeholder="enter additional info" name="information" rows="2"></textarea>
- <br>
- <input type="button" value="add" class="add-button">
- </form>
- <script>
- /************************************************************/
- let employeeTable=document.getElementsByClassName("employee-table")[0];
- /************************************************************/
- /* fetch("").then(function(data){
- }).then(function(data){
- }).catch(function(error){
- }); */
- let data=[{
- "id":506,
- "firstName":"emp",
- "lastName":"one",
- "employeeType":"fulltime",
- "shiftType":"first",
- "information":"emp one fulltime first"
- },{
- "id":410,
- "firstName":"emp",
- "lastName":"two",
- "employeeType":"parttime",
- "shiftType":"second",
- "information":"emp two parttime second"
- },{
- "id":678,
- "firstName":"emp",
- "lastName":"three",
- "employeeType":"fulltime",
- "shiftType":"third",
- "information":"emp three fulltime third"
- }];
- /************************************************************/
- let add_button=document.getElementsByClassName("add-button")[0];
- add_button.addEventListener("click", function(){
- let firstName=document.getElementsByName("firstName")[0].value;
- let lastName=document.getElementsByName("lastName")[0].value;
- let employeeType;
- let employeeTypes=document.getElementsByName("employeeType");
- for(let i=0;i<employeeTypes.length;i++){
- if(employeeTypes[i].checked==true){
- employeeType=employeeTypes[i].value;
- }
- };
- let shiftType=document.getElementsByName("shiftType")[0].value;
- let info=document.getElementsByName("information")[0].value;
- let employee={};
- employee["id"]=parseInt(Math.random()*1000);
- employee["firstName"]=firstName;
- employee["lastName"]=lastName;
- employee["employeeType"]=employeeType;
- employee["shiftType"]=shiftType;
- employee["information"]=info;
- console.log(employee);
- fetch("https://ena9dcthp7aw7pv.m.pipedream.net", {
- method: 'POST',
- mode: 'cors',
- cache: 'no-cache',
- credentials: 'same-origin',
- headers: {
- 'Content-Type': 'application/json'
- },
- redirect: 'follow',
- referrerPolicy: 'no-referrer',
- body: JSON.stringify(employee)
- }).then(function(){
- data.push(employee);
- employeeTable.innerHTML=employeeTable.rows[0].innerHTML;
- init();
- })
- });
- /************************************************************/
- let handleDelete=function(){
- let rowIndex=event.target.parentNode.parentNode.parentNode.parentNode.rowIndex;
- event.target.parentNode.parentNode.parentNode.parentNode.remove();
- data.splice(rowIndex-1,1);
- }
- /************************************************************/
- let handleEdit=function(){
- let rowIndex=event.target.parentNode.parentNode.parentNode.parentNode.rowIndex;
- let editEmployee=data.slice(rowIndex-1,rowIndex)[0];
- let employee_form=document.getElementsByClassName("employee-form")[0];
- console.log(editEmployee);
- for(let el of employee_form.childNodes){
- if(el.name&&editEmployee[el.name]){
- if((el.type=="radio")&&(el.value==editEmployee[el.name])){
- el.checked="true";
- }
- el.value=editEmployee[el.name];
- }
- }
- }
- /************************************************************/
- let search_button=document.getElementsByClassName("search-button")[0];
- search_button.onclick=function(){
- let search_criteria=document.getElementsByClassName("search-criteria")[0].value;
- let search_txt=document.getElementsByClassName("search-text")[0].value.toString();
- let shift_type=document.getElementsByClassName("shift-details")[0].value;
- let employee_type=document.getElementsByClassName("employee-type")[0].value;
- console.log(search_criteria, search_txt, shift_type, employee_type);
- let filtered_contacts=[];
- for(let employee of data){
- console.log(employee[search_criteria], employee["shiftType"], employee["employeeType"]);
- if((employee["shiftType"]==shift_type)&&(employee["employeeType"]==employee_type)&&(employee[search_criteria]==search_txt)){
- filtered_contacts.push(employee);
- }
- }
- data=filtered_contacts;
- console.log(data);
- employeeTable.innerHTML=employeeTable.rows[0].innerHTML;
- init();
- }
- /************************************************************/
- let init=function(){
- for(let employee of data){
- let employeeRow=document.createElement("tr");
- employeeRow.classList.add("employee-table-row");
- for(let prop in employee){
- let employeeRowColumn=document.createElement("td");
- employeeRowColumn.innerText=employee[prop];
- employeeRowColumn.classList.add("employee-table-column");
- employeeRow.append(employeeRowColumn);
- }
- let actionsElem=document.createElement("td");
- actionsElem.classList.add("employee-table-column");
- actionsElem.innerHTML=`<span><span onclick="handleEdit()"><i class="bi bi-pencil-square"></i></span><span onclick="handleDelete()"><i class="bi bi-trash"></i>
- </span></span>`;
- employeeRow.append(actionsElem);
- employeeTable.append(employeeRow);
- }
- }
- init();
- /************************************************************/
- let refresh_button=document.getElementsByClassName("refresh-button")[0];
- refresh_button.addEventListener("click", function(){
- data=[{
- "id":506,
- "firstName":"emp",
- "lastName":"one",
- "employeeType":"fulltime",
- "shiftType":"first",
- "information":"emp one fulltime first"
- },{
- "id":410,
- "firstName":"emp",
- "lastName":"two",
- "employeeType":"parttime",
- "shiftType":"second",
- "information":"emp two parttime second"
- },{
- "id":678,
- "firstName":"emp",
- "lastName":"three",
- "employeeType":"fulltime",
- "shiftType":"third",
- "information":"emp three fulltime third"
- }];;
- console.log(data);
- employeeTable.innerHTML=employeeTable.rows[0].innerHTML;
- init();
- });
- /************************************************************/
- </script>
- </body>
- </html>
Advertisement
Add Comment
Please, Sign In to add comment