<!DOCTYPE html>
<html lang="en">
<head>

 <!-- Select2 CSS --> 
<link href="https://cdn.jsdelivr.net/npm/select2@4.1.0-beta.1/dist/css/select2.min.css" rel="stylesheet" /> 

<!-- jQuery --> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script> 

<!-- Select2 JS --> 
<script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-beta.1/dist/js/select2.min.js"></script>

<style>


.page-header{

	text-align: center;
	background-color: green;
	width: 100%;
	margin-left: 0%;
	}
  

	
@media screen and (max-width: 1000px) {
  td.hhh, th.hhh {display:none; }
  .kkk{
  float: left;
  width: 100%;
  margin-top: 6px;
}
  
  
  }
  
    @media screen and (max-width: 600px) {
 tbody.ggg, thead.ggg {
    font-size:2.5vw;
  }
}

@media screen and (max-width: 360px) {
  td.kkk, th.kkk {display:none; }
  tbody.ggg, thead.ggg {
    font-size:2.5vw;
  }
	
	}


</style>
</head>
<body>
<?php
 include('includes/header.php');

 ?>
 <div id="content">
<div class="table-responsive-md">
<div  id="mob" style="margin-top: 40px">
<button>
<a href="EmployeeAdd.php" class="btn btn-lg btn-primary"><i class="fa fa-university "></i>Add New Employee</a>
</button>
<button>
<a href="EmployeeJobTitles.php" style="border-right-width: 8px" class="btn btn-lg btn-primary"><i class="fa fa-university "></i>Add New Job Titles</a>
</button>
<hr>


<div class="page-header"><h1><span class="different-text-color" style="font-weight:bold;">Employee List</h1>

<label><h3>search</h3></label>
<input type="text" id="myInput" onkeyup="myFunction()" placeholder="Search for names.." title="Type in a name">
</div>
<?php
// connect to the database
    include('connection.php');

?>
<table id="myTable" class="table table-bordered" style="font-size:1.5vw;" >
	<thead class="ggg">
		<tr>
			
			<th>EmployeeName</th>
			<th>PhoneNo</th>
			<th class="hhh">Email</th>
			<th class="hhh">Address</th>
			<th>JobTitle</th>
			<th>Salary</th>
			<th class="hhh">Id</th>
			<th class="hhh">FileImage</th>
			<th class="kkk">Status</th>
			<th colspan="2" align="center">Operation</th>
		</tr>
	</thead>
	<tbody class="ggg">
		 <?php $sqli=$conn->query("Select * from employee");
        foreach ($sqli as $key => $employee) {
  ?>
		   
		   <td><?php echo $employee ['EmployeeName']; ?></td>
		   <td><?php echo $employee ['PhoneNo']; ?></td>
		   <td class="hhh"><?php echo $employee ['Email']; ?></td>
		   <td class="hhh"><?php echo $employee ['Address']; ?></td>
		   <td><?php echo $employee ['JobTitle']; ?></td>
		   <td><?php echo $employee ['Salary']; ?></td>
		   <td class="hhh"><?php echo $employee ['Id']; ?></td>
		   
		   <td class="hhh"><img src='EmployeeImage/<?php echo $employee ['FileName']; ?>' height='50' width='100'/>
		   
		   
		   <td >
		   <?php 
                    if($employee ['Status']=="1")
  
  {
                        echo '<a href="inactive_employee.php?Id='.$employee ['Id'].'&ope=0"> <button type="button" class="btn btn-primary btn-sm"> Active </button></a>';
  }
                    else
					{
                        echo '<a href="inactive_employee.php?Id='.$employee ['Id'].'&ope=1"><button type="button" class="btn btn-warning btn-sm">Inactive</button></a>';
					}
                    ?>
					</td>
		  
		   
		   
		   <td class="kkk"><a href="EmployeeEdit.php?Id=<?php echo $row["Id"]; ?>"  class="btn btn-primary btn-xs glyphicon glyphicon-edit">Edit</td>
		   <td class="kkk"><a href="Employee1display.php?Id=<?php echo $row["Id"]; ?>"  class="btn btn-primary btn-xs glyphicon glyphicon-eye-open">View</td> 				   				   				  
		   </tr>
		<?php } ?>
	</tbody>
</table>
</div>
</div>
</div>




</body>
</html>
<script>
function myFunction() {
  var input, filter, table, tr, td, i, txtValue;
  input = document.getElementById("myInput");
  filter = input.value.toUpperCase();
  table = document.getElementById("myTable");
  tr = table.getElementsByTagName("tr");
  for (i = 0; i < tr.length; i++) {
    td = tr[i].getElementsByTagName("td")[0];
    if (td) {
      txtValue = td.textContent || td.innerText;
      if (txtValue.toUpperCase().indexOf(filter) > -1) {
        tr[i].style.display = "";
      } else {
        tr[i].style.display = "none";
      }
    }       
  }
}
</script>