Files
HotLunches/support_log.php
T
2026-10-19 15:22:52 -07:00

311 lines
9.8 KiB
PHP

<?php
require_once("include/globals.php");
if (SessionActive() != 1 || ! UserLoggedIn()) {
header("Location: /");
exit();
}
// Start the template and output buffering
startTemplate();
$templatePageTitle = getLanguageText('TEXT-SUPPORT-LOG');
$headerArgs = "";
// Ensure that only valid user types have access to this module
$AllowedUserTypes = array('SuperUser','System Administrator','Application Administrator','Administration Team','Schedule Team');
if (checkPermission($AllowedUserTypes) != 1) {
echo("<br>\n");
$error_message = getLanguageText('ERRORMSG-ACCESS-DENIED');
include "form.messages.php";
return;
}
//
// Process all actions to list and edit records
//
$naction = "";
$view = "Open";
if (array_key_exists('naction',$_GET)) $naction = $_GET['naction'];
if (array_key_exists('view',$_GET)) $view = db_escape_string($_GET['view']);
switch ($naction) {
case 'open':
$record_num = intval($_GET['record_num']);
db_query("UPDATE support_requests SET status = 'Open' WHERE school_num = $school_num AND record_num = $record_num");
break;
case 'close':
$record_num = intval($_GET['record_num']);
db_query("UPDATE support_requests SET status = 'Closed' WHERE school_num = $school_num AND record_num = $record_num");
break;
case 'close-all':
db_query("UPDATE support_requests SET status = 'Closed' WHERE school_num = $school_num");
break;
}
$CurrentTable = "support_requests";
$DeleteField = "emailfrom,submitted";
$dSeparator = "<br>";
$FormFile = "support_requests.form.php";
$TitleText = getLanguageText('TEXT-SUPPORT-LOG');
$OrderBy = "submitted desc";
$Sequence = 'N';
if (array_key_exists('naction',$_GET)) $naction = $_GET['naction'];
if (array_key_exists('naction',$_POST)) $naction = $_POST['naction'];
$school_num = $school_record['record_num'];
switch (strtolower($naction)) {
case "add":
$PageTitle = "Create a New $TitleText";
$ButtonText = "Add $TitleText";
$next_naction = "insert";
$active = 'Y';
include $FormFile;
break;
case "insert":
extract($_POST);
// Get new sequence number
if ($Sequence == 'Y') {
$query = "select max(sequence) sequence " .
"from $CurrentTable " .
"where school_num = $school_num";
$results = db_query($query);
$row = db_fetch_array($results);
$sequence = intval($row['sequence']) + 1;
}
$table = new Table("$CurrentTable");
$query = $table->BuildInsert();
db_query($query);
$form_message = "$TitleText Has Been Inserted";
$naction = "list";
break;
case "edit":
$PageTitle = "Edit an Existing $TitleText";
$ButtonText = "Update $TitleText";
$next_naction = "update";
// Get current record
$record_num = intval($_GET['record_num']);
$query = "select * from $CurrentTable where record_num = $record_num";
$results = db_query($query);
if (db_num_rows($results) == 1) {
$row = db_fetch_array($results);
extract($row);
include $FormFile;
}
else {
$error_message = "Error: Record Not Found";
}
break;
case "update":
extract($_POST);
$table = new Table("$CurrentTable");
$query = $table->BuildUpdate();
db_query($query);
$form_message = "$TitleText Has Been Updated";
$naction = "list";
break;
case "delete":
$record_num = intval($_GET['record_num']);
$query = "select * from $CurrentTable where record_num = $record_num";
$results = db_query($query);
if (db_num_rows($results) == 1) {
$row = db_fetch_array($results);
extract($row);
$dFields = explode(",",$DeleteField);
$dTitle = "$TitleText ";
for ($i = 0; $i < count($dFields); $i++) {
$dTitle .= $row[$dFields[$i]] . $dSeparator;
}
include "delete.form.php";
}
else {
$error_message = "Error: Record Not Found";
$naction = 'list';
}
break;
case "delete-confirmed":
$record_num = intval($_GET['record_num']);
// Delete the current record
$query = "delete from $CurrentTable where record_num = $record_num";
db_query($query);
$form_message = "$TitleText Has Been Deleted";
$naction = "list";
break;
case "up":
case "down":
// Get current record
$record_num = intval($_GET['record_num']);
$query = "select * from $CurrentTable where record_num = $record_num";
$results = db_query($query);
$row = db_fetch_array($results);
$sequence = $row['sequence'];
if ($naction == 'up') $nsequence = $sequence - 1;
if ($naction == 'down') $nsequence = $sequence + 1;
// Update other record
$query = "update $CurrentTable set sequence = $sequence " .
"where sequence = $nsequence " .
"and school_num = $school_num";
db_query($query);
// Update current record
$query = "update $CurrentTable set sequence = $nsequence " .
"where record_num = $record_num " .
"and school_num = $school_num";
db_query($query);
$naction = "list";
break;
case "search":
$PageTitle = "Search for a $TitleText";
$ButtonText = "Lookup $TitleText";
$ChoosePagination = 'Y';
$next_naction = "lookup";
include $FormFile;
break;
default:
$naction = "list";
break;
}
//
// List all records if naction is "list"
//
if ($naction == "list") {
if ($Sequence == 'Y') {
// Resequence the records
$query = "select * from $CurrentTable " .
"where sequence > 0 " .
"and school_num = $school_num " .
"order by sequence";
$results = db_query($query);
if (db_num_rows($results)) {
$count = 1;
while ($row = db_fetch_array($results)) {
$rnum = $row['record_num'];
$query = "update $CurrentTable set sequence = $count where record_num = $rnum";
db_query($query);
$count++;
}
}
}
// Ensure that the school_num is included in the lookup_where
if (isset($lookup_where) && strlen($lookup_where) > 0) {
$lookup_where .= " and school_num = $school_num ";
}
else {
$lookup_where = "where school_num = $school_num ";
}
// Get records to display
$columnHeaders = array("Submitted","Message");
$columnHeaders = array(getLanguageText('TEXT-TIME'),
getLanguageText('TEXT-MESSAGE')
);
$swhere = "";
$commands = array();
switch ($view) {
case 'Open':
$query = "select submitted,emailreply,emailfrom,emailmessage,status,record_num " .
"from support_requests " .
"where school_num = $school_num " .
"and status = 'Open' " .
"order by $OrderBy limit 0,100";
$close_icon = "<img src='images/icons/accept24.png' alt='Close Support Request' border='0'>";
$commands = array("<a href='?action=view-support-log&naction=close&record_num=%d' title='Close Support Request'>$close_icon</a>");
break;
case 'Closed':
case 'All':
if ($view == 'Closed') {
$swhere = "and status = 'Closed' ";
$open_icon = "<img src='images/icons/add24.png' alt='Reopen Support Request' border='0'>";
$commands = array("<a href='?action=view-support-log&naction=open&view=Closed&record_num=%d' title='Reopen Support Request'>$open_icon</a>");
}
$query = "select submitted,emailreply,emailfrom,emailmessage,status,record_num " .
"from support_requests " .
"where school_num = $school_num " .
$swhere .
"order by $OrderBy limit 0,100";
break;
}
$results = db_query($query);
// Get data and reformat
$data = array();
$count = 0;
while ($row = db_fetch_array($results)) {
extract($row);
if (strlen($emailfrom)) $emailmessage = str_replace($emailfrom,"<a href='mailto:$emailfrom'>$emailfrom</a>",$emailmessage);
$emailmessage = nl2br($emailmessage);
$data[$count] = array("<nobr>$submitted</nobr><br>\nStatus: $status", $emailmessage);
$data[$count]['record_num'] = $record_num;
$count++;
}
$message_width = $default_data_width;
include "form.messages.php";
echo("<center>\n");
echo("<p><b>$view $TitleText</b></p>\n");
?>
<table cellpadding='5' cellspacing='1'>
<tr>
<td align='center'><a href='?action=view-support-log&naction=list&view=Open' class='btn btn--primary btn--xsmall'><span><?php displayLanguageText('TEXT-VIEW-OPEN') ?></span></a></td>
<td align='center'><a href='?action=view-support-log&naction=list&view=Closed' class='btn btn--primary btn--xsmall'><span><?php displayLanguageText('TEXT-VIEW-CLOSED') ?></span></a></td>
<td align='center'><a href='?action=view-support-log&naction=close-all' onclick='return confirm("<?php displayLanguageText('TEXT-CONFIRM-UPDATE'); ?>");' class='btn btn--primary btn--xsmall'><span>Close All</span></a></td>
<td align='center'><a href='?action=view-support-log&naction=list&view=All' class='btn btn--primary btn--xsmall'><span><?php displayLanguageText('TEXT-VIEW-ALL') ?></span></a></td>
</tr>
</table>
<?php
listDataCustom($data,$columnHeaders,$action,$commands,'N');
echo("</center>\n");
echo("<br>\n");
}
endTemplate();
?>