File "add_assessor.php"

Full Path: /home/humancap/cl.humancap.com.my/assessment/cl-admin/add_assessor.php
File size: 13.29 KB
MIME-type: text/x-php
Charset: utf-8

<?php
require_once "../include/config.php";

// Start a session to manage user authentication
session_start();

// Check if the user is not authenticated (no session variable)
if (!isset($_SESSION["authenticated"]) || $_SESSION["authenticated"] !== true) {
    // Redirect to the login page
    header("Location: index.php");
    exit;
}

// Create a database connection
$conn = new mysqli($host, $username, $password, $database);

// Check the connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

 //check for session
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    // Retrieve JSON data from the form submission
    $position = $_POST["position"];
    $assessmentType = $_POST["assessmentType"];
 
    echo "Position = " . $position . " ";
    echo "assessmentType = " . $assessmentType . " ";
    

    if ($assessmentType === "self"){
      $candidateEmail = $_POST["candEmail"];
      $candidateName = $_POST["candName"];
      $assName = $candidateName;
      $assEmail = $candidateEmail;
      $assSelfOrExt = 1;
      echo "candidateEmail = " . $candidateEmail . " ";
    echo "candidateName = " . $candidateName . " ";
    } else {
      $candidateName = $_POST["candName2"];
      $assessorName = $_POST["assessorName"];
      $assessorEmail = $_POST["assessorEmail"];
      $assName = $assessorName;
      $assEmail = $assessorEmail;
      $assSelfOrExt = 2;

      echo "assessorName = " . $assessorName  . " ";
      echo "assessorEmail = " . $assessorEmail  . " ";
      echo "candidateName = " . $candidateName  . " ";
    }

      $status = 0;

      $sql = "INSERT INTO assessment_by_assessor (for_candidate_name, assessment_id, name, email, self_or_ext, status) VALUES (?, ?, ?, ?, ?, ?)";
      $stmt = $conn->prepare($sql);
      $stmt->bind_param("ssssii", $candidateName, $position, $assName, $assEmail, $assSelfOrExt, $status);


    if ($stmt->execute()) {
        $stmt->close();
        $conn->close();

        header("Location: assessors.php");
        exit; // Make sure to exit the script after redirection
    } else {
        echo "Error: " . $stmt->error;
        $stmt->close();
        $conn->close();
    }

} else {
    // GET PROJECT DATA
    $sql = "SELECT name, nama, username FROM project where id = ".$_SESSION["project_id"];

    $project_data = $conn->query($sql);

    $row = $project_data->fetch_assoc();   

    $projectname = $row["name"];
    $projectnama = $row["nama"];
    $projectusername = $row["username"];

    // GET POSITIONS DATA
    $sql2 = "SELECT id, name FROM assessment where project_id = ".$_SESSION["project_id"];

    $position_data = $conn->query($sql2);

}

?>

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="utf-8">
  <meta content="width=device-width, initial-scale=1.0" name="viewport">

  <title>Add Assessor</title>
  <meta content="" name="description">
  <meta content="" name="keywords">

  <!-- Favicons -->
  <link href="assets/img/favicon.png" rel="icon">
  <link href="assets/img/apple-touch-icon.png" rel="apple-touch-icon">

  <!-- Google Fonts -->
  <link href="https://fonts.gstatic.com" rel="preconnect">
  <link href="https://fonts.googleapis.com/css?family=Open+Sans:300,300i,400,400i,600,600i,700,700i|Nunito:300,300i,400,400i,600,600i,700,700i|Poppins:300,300i,400,400i,500,500i,600,600i,700,700i" rel="stylesheet">

  <!-- Vendor CSS Files -->
  <link href="assets/vendor/bootstrap/css/bootstrap.min.css" rel="stylesheet">
  <link href="assets/vendor/bootstrap-icons/bootstrap-icons.css" rel="stylesheet">
  <link href="assets/vendor/boxicons/css/boxicons.min.css" rel="stylesheet">
  <link href="assets/vendor/quill/quill.snow.css" rel="stylesheet">
  <link href="assets/vendor/quill/quill.bubble.css" rel="stylesheet">
  <link href="assets/vendor/remixicon/remixicon.css" rel="stylesheet">
  <link href="assets/vendor/simple-datatables/style.css" rel="stylesheet">

  <!-- Template Main CSS File -->
  <link href="assets/css/style.css" rel="stylesheet">
</head>

<body>

  <!-- ======= Header ======= -->
  <header id="header" class="header fixed-top d-flex align-items-center">

    <div class="d-flex align-items-center justify-content-between">
      <a href="index.html" class="logo d-flex align-items-center">
        <img src="assets/img/logo.png" alt="">
        <span class="d-none d-lg-block">Competency Assessment</span>
      </a>
      <i class="bi bi-list toggle-sidebar-btn"></i>
    </div><!-- End Logo -->

    <!--
    <div class="search-bar">
      <form class="search-form d-flex align-items-center" method="POST" action="">
        <input type="text" name="query" placeholder="Search" title="Enter search keyword">
        <button type="submit" title="Search"><i class="bi bi-search"></i></button>
      </form>
    </div>
    -->

    <nav class="header-nav ms-auto">
      <ul class="d-flex align-items-center">

        <li class="nav-item d-block d-lg-none">
          <a class="nav-link nav-icon search-bar-toggle " href="#">
            <i class="bi bi-search"></i>
          </a>
        </li><!-- End Search Icon-->

        <li class="nav-item dropdown pe-3">

          <a class="nav-link nav-profile d-flex align-items-center pe-0" href="#" data-bs-toggle="dropdown">
            <img src="assets/img/avatar.jpg" alt="Profile" class="rounded-circle">
            <span class="d-none d-md-block dropdown-toggle ps-2"><?php echo ucfirst($projectusername); ?></span>
          </a><!-- End Profile Image Icon -->

          <ul class="dropdown-menu dropdown-menu-end dropdown-menu-arrow profile">
            <li class="dropdown-header">
              <h6>Competency Assessment</h6>
              <span>Administrator</span>
            </li>
            <li>
              <hr class="dropdown-divider">
            </li>
            <li>
              <a class="dropdown-item d-flex align-items-center" href="logout.php">
                <i class="bi bi-box-arrow-right"></i>
                <span>Sign Out</span>
              </a>
            </li>

          </ul><!-- End Profile Dropdown Items -->
        </li><!-- End Profile Nav -->

      </ul>
    </nav><!-- End Icons Navigation -->

  </header><!-- End Header -->

  <?php require_once "../include/sidebar.php"; ?>

  <main id="main" class="main">

    
    <div class="pagetitle">
      <h1>Add Assessor</h1>
      <nav>
        <ol class="breadcrumb">
          <li class="breadcrumb-item"><a href="index.html">Assessors List</a></li>
          <li class="breadcrumb-item active">Add</li>
        </ol>
      </nav>
    </div>

    <section class="section">
      <div class="row">
        <div class="col-lg-12">

          <div class="card">
            <div class="card-body">
              <p>&nbsp;</p>
              <!--<h5 class="card-title">Multi Columns Form</h5>-->

              <!-- Multi Columns Form -->
              <form class="row g-6" method="post" onsubmit="return validateEmail()" action="<?php echo $_SERVER['PHP_SELF']; ?>">
                <div class="col-md-4">
                  <label for="assessmentType" class="form-label">Assessment Type</label>
                  <select id="assessmentType" name="assessmentType" class="form-select" onchange="toggleFields()">
                    <option selected>Choose...</option>
                    <option value="self">Self Assessment</option>
                    <option value="candidate">Assessment for a Candidate</option>
                  </select>
                </div>
                <div class="col-md-6" id="positionField" style="display: none;">
                  <label for="position" class="form-label">Assess for Position</label>
                  <select id="position" class="form-select" name="position">
                    <?php                     
                      if ($position_data->num_rows > 0) {
                          // Output data of each row
                          while ($row_position = $position_data->fetch_assoc()) {
                              echo '<option value="' . $row_position["id"] . '">' . $row_position["name"] . '</option>';
                          }
                      } else {
                          echo '<option value="">No positions available</option>';
                      }
                    ?>
                  </select>
                </div>
                <div class="col-md-4"></div>

                <div class="col-md-6" id="candidateFields" style="display: none;">
                  <label for="CandName" class="form-label">Candidate's Name</label>
                  <input type="text" class="form-control" id="CandName" name="candName">
                  <label for="CandEmail" class="form-label">Candidate's Email</label>
                  <input type="email" class="form-control" id="CandEmail" name="candEmail" placeholder="candidate@email.com"> 
                </div>

                <div class="col-6" id="assessorFields" style="display: none;">
                  <label for="CandNam2e2" class="form-label">Candidate's Name</label>
                  <input type="text" class="form-control" id="CandName2" name="candName2">    
                  <label for="AssessorName" class="form-label">Assessor's Name</label>
                  <input type="text" class="form-control" id="AssessorName" name="assessorName" placeholder="">
                  <label for="AssessorEmail" class="form-label">Assessor's Email</label>
                  <input type="email" class="form-control" id="AssessorEmail" name="assessorEmail" placeholder="assessor@email.com">
                </div>
                <p>&nbsp;</p>
                <div class="text-center">
                  <button type="submit" class="btn btn-primary" onclick="validateForm(event)">Submit</button>
                </div>
              </form>

              <script>
                function validateForm(event) {
                  var selectedOption = document.getElementById("assessmentType").value;

                  if (selectedOption === "self") {
                    return true; // Allow form submission
                  } else {                    
                    var candName2 = document.getElementById('CandName2').value;
                    var assessorName = document.getElementById('AssessorName').value;

                    if (candName2 === assessorName) {
                        alert("Candidate's Name and Assessor's Name cannot be the same.");
                        event.preventDefault(); // Prevent form submission
                        return false;
                    } else {
                        return true; // Allow form submission
                    }
                  }
                }

                function toggleFields() {
                  var selectedOption = document.getElementById("assessmentType").value;
                  var candidateFields = document.getElementById("candidateFields");
                  var assessorFields = document.getElementById("assessorFields");

                  if (selectedOption === "self") {
                    positionField.style.display = "block";
                    candidateFields.style.display = "block";
                    assessorFields.style.display = "none";
                  } else if (selectedOption === "candidate") {
                    positionField.style.display = "block";
                    candidateFields.style.display = "none";
                    assessorFields.style.display = "block";
                  } else {
                    positionField.style.display = "none";
                    candidateFields.style.display = "none";
                    assessorFields.style.display = "none";
                  }
                }

                function validateEmail() {
                    var selectedOption = document.getElementById("assessmentType").value;

                    if (selectedOption === "self") {
                      var emailField = document.getElementById("CandEmail");
                    } else {
                      var emailField = document.getElementById("AssessorEmail");
                    }  

                    var email = emailField.value;

                    var emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; // Regular expression for email validation

                    if (!emailRegex.test(email)) {
                      alert("Please enter a valid email address");
                      emailField.focus();
                      return false;
                    }

                    return true;
                }
              </script>

            </div>
          </div>
        </div>
        </div>
      </div>
    </section>

  </main><!-- End #main -->

  <!-- ======= Footer ======= -->
  <footer id="footer" class="footer">

  </footer><!-- End Footer -->

  <a href="#" class="back-to-top d-flex align-items-center justify-content-center"><i class="bi bi-arrow-up-short"></i></a>

  <!-- Vendor JS Files -->
  <script src="assets/vendor/apexcharts/apexcharts.min.js"></script>
  <script src="assets/vendor/bootstrap/js/bootstrap.bundle.min.js"></script>
  <script src="assets/vendor/chart.js/chart.umd.js"></script>
  <script src="assets/vendor/echarts/echarts.min.js"></script>
  <script src="assets/vendor/quill/quill.min.js"></script>
  <script src="assets/vendor/simple-datatables/simple-datatables.js"></script>
  <script src="assets/vendor/tinymce/tinymce.min.js"></script>
  <script src="assets/vendor/php-email-form/validate.js"></script>

  <!-- Template Main JS File -->
  <script src="assets/js/main.js"></script>

  <script>

  </script>

</body>
</html>