diff options
| -rw-r--r-- | admin.php | 6 | ||||
| -rw-r--r-- | edit.php | 60 | ||||
| -rw-r--r-- | index.php | 4 | ||||
| -rw-r--r-- | request-edit.js | 31 | ||||
| -rw-r--r-- | style.css | 20 | 
5 files changed, 74 insertions, 47 deletions
| @@ -24,7 +24,6 @@ session_start();  ?>  </nav>  <main> -<p id="notice"></p>  <?php  if (isset($_SESSION['admin']) && $_SESSION['admin'] == true) {    try { @@ -34,7 +33,8 @@ if (isset($_SESSION['admin']) && $_SESSION['admin'] == true) {  		$conn = new PDO("mysql:host=localhost;dbname=$database", $user, $password);  		$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); -    echo '<div style="overflow-x:auto;">'; +		echo '<p id="notice">Reservation records: </p>'; +    echo '<div class="tablediv">';      echo "<table><thead>\n";      echo "<tr>";      echo "<th>ID</th>"; @@ -57,7 +57,7 @@ if (isset($_SESSION['admin']) && $_SESSION['admin'] == true) {        echo "<td>" . $row['id'] . "</td>";  			if ($row['approved']) -				echo "<td><input type=\"checkbox\" checked></td>"; +				echo "<td class=\"center\"><input type=\"checkbox\" checked></td>";  			else  				echo "<td class=\"center\"><input type=\"checkbox\"></td>"; @@ -22,7 +22,7 @@ if ($_SERVER["REQUEST_METHOD"] == "POST" && isset($_SESSION['admin']) && $_SESSI  	try {  		$recvData = json_decode(file_get_contents("php://input"));  		$recvData->id = clear_input($recvData->id); -		$recvData->approved = clear_input($recvData->approved); +		$recvData->approved = filter_var($recvData->approved, FILTER_VALIDATE_BOOLEAN);  		$recvData->specialCall = clear_input($recvData->specialCall);  		$recvData->fromTime = clear_input($recvData->fromTime);  		$recvData->toTime = clear_input($recvData->toTime); @@ -53,21 +53,25 @@ if ($_SERVER["REQUEST_METHOD"] == "POST" && isset($_SESSION['admin']) && $_SESSI  				qso=:qso   				WHERE id=:id"; -      $stmt = $conn->prepare($sql); -      $stmt->bindParam(':approved', 			$recvData->approved); -      $stmt->bindParam(':specialCall', 		$recvData->specialCall); -      $stmt->bindParam(':fromTime', 			$recvData->fromTime); -      $stmt->bindParam(':toTime', 				$recvData->toTime); -      $stmt->bindParam(':frequencies', 		$recvData->frequencies); -      $stmt->bindParam(':modes', 					$recvData->modes); -      $stmt->bindParam(':operatorCall', 	$recvData->operatorCall); -      $stmt->bindParam(':operatorName', 	$recvData->operatorName); -      $stmt->bindParam(':operatorEmail', 	$recvData->operatorEmail); -      $stmt->bindParam(':operatorPhone', 	$recvData->operatorPhone); -      $stmt->bindParam(':qso', 						$recvData->qso); -      $stmt->execute(); +			$recvData->approved = $recvData->approved === true ? "1" : "0"; + +			$stmt = $conn->prepare($sql); +			$stmt->bindParam(':id', 						$recvData->id); +			$stmt->bindParam(':approved', 			$recvData->approved); +			$stmt->bindParam(':specialCall', 		$recvData->specialCall); +			$stmt->bindParam(':fromTime', 			$recvData->fromTime); +			$stmt->bindParam(':toTime', 				$recvData->toTime); +			$stmt->bindParam(':frequencies', 		$recvData->frequencies); +			$stmt->bindParam(':modes', 					$recvData->modes); +			$stmt->bindParam(':operatorCall', 	$recvData->operatorCall); +			$stmt->bindParam(':operatorName', 	$recvData->operatorName); +			$stmt->bindParam(':operatorEmail', 	$recvData->operatorEmail); +			$stmt->bindParam(':operatorPhone', 	$recvData->operatorPhone); +			$stmt->bindParam(':qso', 						$recvData->qso); +			$stmt->execute();  			$sendData->action=$recvData->action; +  			echo json_encode($sendData);  		} else if ($recvData->action == "restore") { @@ -77,20 +81,24 @@ if ($_SERVER["REQUEST_METHOD"] == "POST" && isset($_SESSION['admin']) && $_SESSI  			$stmt->execute();  			$row = $stmt->fetch(); +			$sendData = null;  			$sendData->action=$recvData->action; -			$sendData->id=$row->id; -			$sendData->approved=$row->approved; -			$sendData->specialCall=$row->specialCall; -			$sendData->fromTime=$row->fromTime; -			$sendData->toTime=$row->toTime; -			$sendData->frequencies=$row->frequencies; -			$sendData->modes=$row->modes; -			$sendData->operatorCall=$row->operatorCall; -			$sendData->operatorName=$row->operatorName; -			$sendData->operatorEmail=$row->operatorEmail; -			$sendData->operatorPhone=$row->operatorPhone; -			$sendData->qso=$row->qso; +			$sendData->id=$row["id"]; + +			$sendData->approved=$row["approved"]; + +			$sendData->specialCall=$row["specialCall"]; +			$sendData->fromTime=$row["fromTime"]; +			$sendData->toTime=$row["toTime"]; +			$sendData->frequencies=$row["frequencies"]; +			$sendData->modes=$row["modes"]; +			$sendData->operatorCall=$row["operatorCall"]; +			$sendData->operatorName=$row["operatorName"]; +			$sendData->operatorEmail=$row["operatorEmail"]; +			$sendData->operatorPhone=$row["operatorPhone"]; +			$sendData->qso=$row["qso"]; +			$recvData->approved = filter_var($recvData->approved, FILTER_VALIDATE_BOOLEAN);  			echo json_encode($sendData);  		} else if ($recvData->action == "delete") { @@ -14,6 +14,7 @@ session_start();  <nav>    <a class="active" href="index.php">Activity Plan</a>    <a href="reservation.php">Make reservation</a> +  <span class="right">  <?php    if (isset($_SESSION['admin']) && $_SESSION['admin'] == true) {      echo '<a class="right" href="/logout.php">Logout</a>'; @@ -22,6 +23,7 @@ session_start();      echo '<a class="right" href="/admin.php">Login</a>';    }  ?> +  </span>  </nav>  <main>  <?php @@ -45,7 +47,7 @@ session_start();      echo "<th>QSO</th>";      echo "</tr></thead><tbody>\n"; -    foreach($db->query("SELECT * FROM $table where approved=false ORDER BY `id` DESC") as $row) { +    foreach($db->query("SELECT * FROM $table where approved=true ORDER BY `id` DESC") as $row) {        echo "<tr>";        echo "<td>" . $row['operatorCall'] . "</td>";        echo "<td>" . $row['fromTime'] . "</td>"; diff --git a/request-edit.js b/request-edit.js index 60c0d55..f6d2c05 100644 --- a/request-edit.js +++ b/request-edit.js @@ -6,42 +6,41 @@ function btnAction(action, btn) {      action: action,      id: trData[0].innerHTML,      approved: trData[1].firstElementChild.checked, -    operatorSign: trData[2].firstElementChild.innerHTML, +    operatorCall: trData[2].firstElementChild.innerHTML,      qso: trData[3].firstElementChild.innerHTML,      fromTime: trData[4].firstElementChild.innerHTML,      toTime: trData[5].firstElementChild.innerHTML, -    freqs: trData[6].firstElementChild.innerHTML, +    frequencies: trData[6].firstElementChild.innerHTML,      modes: trData[7].firstElementChild.innerHTML, -    specialSign: trData[8].firstElementChild.innerHTML, +    specialCall: trData[8].firstElementChild.innerHTML,      operatorName: trData[9].firstElementChild.innerHTML,      operatorEmail: trData[10].firstElementChild.innerHTML,      operatorPhone: trData[11].firstElementChild.innerHTML    } -  console.log(actionData); -    if (actionData.action == 'delete') -    if (confirm("Are you sure you want to delete reservation #" + actionData.id + " made by " + actionData.operatorSign + "?")) +    if (confirm("Are you sure you want to delete reservation #" + actionData.id + " made by " + actionData.operatorCall + "?"))        trDom.remove(); -  var xhr = new XMLHttpRequest(); -  xhr.onreadystatechange = function () { -    if (this.readyState == 4 && status == 200) { +  var xhttp = new XMLHttpRequest(); +  xhttp.onreadystatechange = function () { +    if (this.readyState == 4 && this.status == 200) {        try {          // JSON response to object          var response = JSON.parse(this.responseText); +        console.log(response);          // Handle various actions          if (response.action == "update") {            document.getElementById("notice").innerHTML = "Record #" + actionData.id + " updated.";          } else if (response.action == "restore") { -          trData[1].firstElementChild.checked = response.approved; -          trData[2].firstElementChild.innerHTML = response.operatorSign; +          trData[1].firstElementChild.checked = response.approved === "1"; +          trData[2].firstElementChild.innerHTML = response.operatorCall;            trData[3].firstElementChild.innerHTML = response.qso;            trData[4].firstElementChild.innerHTML = response.fromTime;            trData[5].firstElementChild.innerHTML = response.toTime; -          trData[6].firstElementChild.innerHTML = response.freqs; +          trData[6].firstElementChild.innerHTML = response.frequencies;            trData[7].firstElementChild.innerHTML = response.modes; -          trData[8].firstElementChild.innerHTML = response.specialSign; +          trData[8].firstElementChild.innerHTML = response.specialCall;            trData[9].firstElementChild.innerHTML = response.operatorName;            trData[10].firstElementChild.innerHTML = response.operatorEmail;            trData[11].firstElementChild.innerHTML = response.operatorPhone; @@ -49,7 +48,7 @@ function btnAction(action, btn) {          } else if (response.action == "delete") {            document.getElementById("notice").innerHTML = "Record #" + actionData.id + " deleted.";          } else { -          console.log("Nothing?"); +          console.log("No action?");            console.log(this.responseText);          }        } catch { @@ -58,6 +57,6 @@ function btnAction(action, btn) {        }      }    }; -  xhr.open("POST", "edit.php", true); -  xhr.send(JSON.stringify(actionData)); +  xhttp.open("POST", "edit.php", true); +  xhttp.send(JSON.stringify(actionData));  } @@ -74,7 +74,7 @@ a {  /* TABEL STYLING */  table { -    margin: 1rem 0; +    margin: 0;      border-collapse: collapse;      width: 100%;  } @@ -93,6 +93,24 @@ td, th {      white-space: nowrap;  } +.tablediv { +    overflow-x: scroll; +    height: 70vh; +} + +/*div.tablediv {*/ +    /*overflow:scroll;*/ +    /*height: 80vh;*/ +    /*width: 100%;*/ +    /*display: block;*/ +/*}*/ + +/*tbody {*/ +    /*overflow:scroll;*/ +    /*height: 80vh;*/ +    /*width: 80vw;*/ +/*}*/ +  .center {      text-align: center;  } | 
