<?php
require('includes/header.php');

   include('connection.php');
 
?>
<!DOCTYPE html>
<html lang="en" >
<meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0">
    <link rel="shortcut icon" type="image/x-icon" href="upload/icon.png">
    <title>Job Titles</title>
	
   
      <link rel="stylesheet" type="text/css" href="assets/css/font-awesome.min.css">
    <link rel="stylesheet" type="text/css" href="assets/css/select2.min.css">
    <link rel="stylesheet" type="text/css" href="assets/css/dataTables.bootstrap4.min.css">
    <link rel="stylesheet" type="text/css" href="assets/css/bootstrap-datetimepicker.min.css">
    <link rel="stylesheet" type="text/css" href="assets/css/style1.css">



<style>
#myTable tr:nth-child(even) td{
  background-color: #f2f2f2;
}

.page-header1{

	text-align: center;
	background-color: #2780e3;
	width: 100%;
	margin-left: 0%;
	}
  .page-title1 {
    color: #f7f6f5;
    font-size: 50px;
    font-weight: normal;
    margin-bottom: 10px;
}
	.page {
    color: #2780e3;
    font-size: 50px;
    font-weight: normal;
    margin-bottom: 10px;
}




.page-title {
    color: #f7f6f5;
    font-size: 50px;
    font-weight: normal;
    margin-bottom: 10px;
}
.page-header{
	border-radius: 20px;
	color: #f9f9f9;
	text-align: center;
	background-color: green;
	width: 100%;
	margin-left: 0%;
	font-weight: bold;
	}
form {
  margin-right:100px;
  margin:20px 100px 20px 100px;
  border-radius: 15px;
  background-color: #3c42383d;
  padding: 20px 50px 20px 50px;
}

input[type=text], select {

  padding: 12px 20px;
  margin: 8px 0;
  display: inline-block;
  border: 1px solid #ccc;
  border-radius: 4px;
  box-sizing: border-box;
}

input[type=submit] {
  width: 50%;
  background-color: #4CAF50;
  color: white;
  padding: 20px;
  margin: 8px 0;
  border: 1px;
  border-radius: 15px;
  cursor: pointer;
  margin-left: 200px;
}
input[type=reset] {
  margin-left:150px;
  margin-top:5px;
  border-radius: 15px;
  background-color: #3c42383d;
  padding: 20px 50px 20px 50px;
}

input[type=submit]:hover {
  background-color: #45a049;
}
button {
 
  margin-top:5px;
  border-radius: 20px;
  background-color: #3c42383d;
  padding: 20px 20px 20px 20px;
}
button:hover {
  background-color: #45a049;
}
form {
  width: 80%;
  border-collapse: collapse;
  margin: 100px auto;
}
.col-25 {
  float: left;
  width: 30%;
  margin-top: 10px;
}

.col-75 {
  float: left;
  width: 70%;
  margin-top: 10px;
}
/* Responsive layout - when the screen is less than 600px wide, make the two columns stack on top of each other instead of next to each other */
@media screen and (max-width: 700px) {
  .col-25, .col-75, input[type=submit] {
    width: 100%;
    margin-top: 0;
  }
 
}

</style>

  <body>
<div id="content">
<div class="table-responsive-md">
<div  id="mob" style="margin-top:40px">
  

  
      <div class="row">
          	<div style="font-weight:bold; text-align: center;"  class="alert-info">
				    <?php
				    if(isset($_GET['msg'])) echo $_GET['msg'];
				    ?>
				</div>
	  
        <form action="EmployeeAction.php" method="post" enctype="multipart/form-data" >
		<h2 class="page-header">Add New JobTitle</br>নতুন পদবী যোগ করুন </h2>
			<div class="row">
				<div class="col-25">
					<label for="fname">JobTitle Name</br>পদবী নাম :</label>
				</div>
					<div class="col-75">
			<input type="text" name="JobTitle" required placeholder="JobTitle Name...">
			</div>
			</div>
			<div class="row">
				<div class="col-25">
			<label for="fname">Job Description</br>পদবী বিবরণ :</label>
			</div>
			<div class="col-75">
			<input type="text" name="JobDescription" required placeholder="JobDescription ...">
			</div>
			</div>
		<div class="m-t-20 text-center">
          <button class="btn btn-primary submit-btn btn-rounded" type="submit" name="jobtitlessave">Save</button>
		  <button type="reset" name="" class="btn btn-primary submit-btn btn-rounded" value="Clear Fields">Reset</button>
		  </div>
        </form>
		
		
		        <div class="">
            <div class="content">
			<div class="page-header">
<div class="row">
                    <div class="col-sm-6 col-3">
                        <h4 class="page-title">JobTitle List</br>পদবী তালিকা </h4>
                    </div>
					
                    <div class="col-sm-5 col-9 text-right m-b-20">
                       <label class="page-title"><h3>search</h3></label>
<input type="text" id="myInput" onkeyup="myFunction()" placeholder="Search for names.." title="Type in a name">
</div>
                    </div>
                </div>
				<div class="row">
					<div class="col-md-12">
						<div class="table-responsive">
									<table  class="table table-border table-striped custom-table datatable mb-0">
                                    <thead class="ggg">
                                        <tr>
                                            <th>Id</br>নম্বর </th>
											<th>JobTitle</br>পদবী শিরোনাম </th>
                                            <th>Description</br>বিবরণ </th>
											<th class="text-right">Action</br>সংশোধন </th>
                                        </tr>
                                    </thead>
                                    <tbody id="myTable" class="ggg">
									 <?php 
									 $sqlQuery = "SELECT Jid, JobTitle, JobDescription FROM jobtitles where JUserId ='" . $_SESSION['UserId'] . "'";
$resultSet = mysqli_query($conn, $sqlQuery) or die("database error:". mysqli_error($conn));
									 while( $row  = mysqli_fetch_assoc($resultSet) ) { ?>
                                        <tr>
                                            <td><?php echo $row ['Jid']; ?></td>
											<td class="kkk"><?php echo $row ['JobTitle']; ?></td>
                                            <td><?php echo $row ['JobDescription']; ?></td>
                            
											<td class="text-right">
											<div class="dropdown dropdown-action">
												<a href="#" class="action-icon dropdown-toggle" data-toggle="dropdown" aria-expanded="false"><i class="fa fa-ellipsis-v"></i></a>
												<div class="dropdown-menu dropdown-menu-right">
													<li>
													<a class="dropdown-item" href="jobtitlesEdit.php?Id=<?php echo $row["Jid"]; ?>"><i class="btn btn-primary btn-xs glyphicon glyphicon-edit"></i> Edit</a>
													</li>
													<li>
													<a class="dropdown-item" href="jobtitles1.php?Id=<?php echo $row["Jid"]; ?>"><i class="btn btn-primary btn-xs glyphicon glyphicon-eye-open"></i> view</a>
													</li>
													<li>
													<a class="dropdown-item" href="#" data-toggle="modal" data-target="#delete_patient"><i class="fa fa-trash-o m-r-5"></i> Delete</a>
													</li>
												</div>
											</div>
										</td>
                                        </tr>
                                <?php } ?>        
                                    </tbody>
                                </table>
								</div>
                            </div>
                        </div>
                    </div>
				</div> 
				</div>
					</div>
				</div></div>		
 
<div class="sidebar-overlay" data-reff=""></div>
    <script src="assets/js/jquery-3.2.1.min.js"></script>
	<script src="assets/js/popper.min.js"></script>
    <script src="assets/js/bootstrap.min.js"></script>
    <script src="assets/js/jquery.dataTables.min.js"></script>
    <script src="assets/js/dataTables.bootstrap4.min.js"></script>
    <script src="assets/js/jquery.slimscroll.js"></script>
    <script src="assets/js/app.js"></script>


</body>
</html>


<script>
$(document).ready(function(){
  $("#myInput").on("keyup", function() {
    var value = $(this).val().toLowerCase();
    $("#myTable tr").filter(function() {
      $(this).toggle($(this).text().toLowerCase().indexOf(value) > -1)
    });
  });
});
</script>
