261 lines
11 KiB
PHP
261 lines
11 KiB
PHP
<?php
|
|
/*
|
|
lognotes.php
|
|
OpenLog Online Logbook
|
|
Copyright (C) 2025 Rod Wright
|
|
|
|
SPDX-License-Identifier: GPL-2.0
|
|
*/
|
|
|
|
include("functions.php");
|
|
|
|
//$tgt_year=$_REQUEST['y'];
|
|
//$tgt_month=$_REQUEST['m'];
|
|
//$tgt_day=$_REQUEST['d'];
|
|
$tgt_date=$_REQUEST['tgt_date'] ?? "";
|
|
$print=$_REQUEST['print'] ?? "";
|
|
if (isset($_SESSION['login'])) $techid=$_SESSION['login'];
|
|
|
|
|
|
$logname=LOG_NAME;
|
|
$tablestyle=LOG_STYLE;
|
|
|
|
if ($print) {
|
|
$sbcolor=P_SIDEBAR_COLOR;
|
|
$mbgcolor=P_MENUBG_COLOR;
|
|
} else {
|
|
$sbcolor=SIDEBAR_COLOR;
|
|
$mbgcolor=MENUBG_COLOR;
|
|
}
|
|
|
|
// use default date values if not supplied
|
|
if ($tgt_date=="") $tgt_date=$today;
|
|
|
|
// define shifttable_classic function
|
|
function shifttable_classic($shift, $tgt_date, $db) {
|
|
// convert the shift number to a name for display
|
|
$doparts=PARTS_FUNCTIONS;
|
|
$showtime=SHOW_TS;
|
|
$shname=dblookup($db,"shifts","shiftid","shiftname",$shift);
|
|
$dshdrdata=mysqli_query($db,"select date,shift from lognotes where date=\"$tgt_date\" and shift=\"$shift\"");
|
|
$dshdr=mysqli_fetch_row($dshdrdata);
|
|
if ($dshdr) {
|
|
// print the shift header
|
|
printf("<b><font size=\"+1\">%s</font></b>\n",$shname);
|
|
$note=mysqli_query($db,"select lognoteid,tech,subject,lognote,refs,time from lognotes where date=\"$tgt_date\" and shift=\"$shift\" order by time asc");
|
|
echo "<br><table border=\"1\" width=\"100%\">\n";
|
|
echo "<tr><th width=\"70\">Note ID</th><th width=\"70\">Tech</th><th width=\"100\">Subject</th><th>Note</th><th width=\"70\">References</th></tr>\n";
|
|
while ($tablerow = mysqli_fetch_assoc($note)) {
|
|
$reftonote=$tablerow["lognoteid"];
|
|
$refs=" <a href=\"logentry.php?add=1&refto=$reftonote\"><img src=\"icons/plus.png\" border=\"0\" title=\"Add referring note\" alt=\"Add referring note\"></a>";
|
|
if (islink($tablerow["lognoteid"])) {
|
|
$refs=$refs." <a href=\"refchain.php?chainnote=$reftonote\"><img src=\"icons/magnifier--arrow.png\" border=\"0\" title=\"View reference chain\" alt=\"View reference chain\"></a>";
|
|
}
|
|
// convert tech number to name
|
|
$tname=dblookup($db,"techs","techid","techname",$tablerow["tech"]);
|
|
//convert subject number to name
|
|
$subjname=dblookup($db,"subjects","subjectid","subjectname",$tablerow["subject"]);
|
|
// create links of urls in note
|
|
$fmtnote=convertweblinks($tablerow["lognote"]);
|
|
// generate the flags string
|
|
$flagstring="";
|
|
$allflagqry=mysqli_query($db,"select flagid from flags");
|
|
while ($allflagids=mysqli_fetch_row($allflagqry)) {
|
|
$flagid=$allflagids[0];
|
|
$flag_tbl="flag_".$flagid;
|
|
if (mysqli_num_rows(mysqli_query($db,"select id from $flag_tbl where target=\"lognotes\" and id=\"$reftonote\""))) {
|
|
$flagparam=mysqli_fetch_assoc(mysqli_query($db,"select * from flags where flagid=\"$flagid\""));
|
|
$flagcolor=$flagparam["flagcolor"];
|
|
$flagsym=$flagparam["flagsym"];
|
|
$flagname=$flagparam["flagname"];
|
|
$flagstring=$flagstring."<font color=\"$flagcolor\" title=\"$flagname\">$flagsym</font> ";
|
|
}
|
|
}
|
|
if ($flagstring) {
|
|
$fmtnote=$fmtnote."<br>".$flagstring." ";
|
|
} else {
|
|
$fmtnote=$fmtnote."<br>";
|
|
}
|
|
if ($doparts) {
|
|
// turn on the parts indicator if parts were entered with the note
|
|
if (mysqli_num_rows(mysqli_query($db,"select logpartid from logparts where lognoteid=\"$reftonote\""))) {
|
|
$fmtnote=$fmtnote."<a href=\"logentry.php?partview=1¬eid=$reftonote\">PARTS</a>";
|
|
}
|
|
}
|
|
// now print the line in the table
|
|
if ($showtime) {
|
|
printf(
|
|
"<tr>
|
|
<td valign=\"top\"><a href=\"logentry.php?edit=1¬eid=%s\" title=\"Edit this note\">%s</a> %s</td>
|
|
<td valign=\"top\"> %s</td>
|
|
<td valign=\"top\">%s</td>
|
|
<td valign=\"top\">%s</td>
|
|
<td valign=\"top\">%s</td>
|
|
</tr>\n",
|
|
$tablerow["lognoteid"],$tablerow["lognoteid"],$tablerow["time"],
|
|
$tname,
|
|
$subjname,
|
|
$fmtnote,
|
|
$refs
|
|
);
|
|
} else {
|
|
printf(
|
|
"<tr>
|
|
<td valign=\"top\"><a href=\"logentry.php?edit=1¬eid=%s\">%s</a></td>
|
|
<td valign=\"top\"> %s</td>
|
|
<td valign=\"top\">%s</td>
|
|
<td valign=\"top\">%s</td>
|
|
<td valign=\"top\">%s</td>
|
|
</tr>\n",
|
|
$tablerow["lognoteid"],$tablerow["lognoteid"],
|
|
$tname,
|
|
$subjname,
|
|
$fmtnote,
|
|
$refs
|
|
);
|
|
}
|
|
}
|
|
echo "</table>\n";
|
|
} else {
|
|
// print the shift header
|
|
echo "<b>No entries for $shname</b>";
|
|
}
|
|
echo "<br><br>\n";
|
|
}
|
|
|
|
// define the shifttable_clean function
|
|
function shifttable_clean($shift, $tgt_date, $db) {
|
|
// convert the shift number to a name for display
|
|
$doparts=PARTS_FUNCTIONS;
|
|
$showtime=SHOW_TS;
|
|
$shname=dblookup($db,"shifts","shiftid","shiftname",$shift);
|
|
$dshdrdata=mysqli_query($db,"select date,shift from lognotes where date=\"$tgt_date\" and shift=\"$shift\"");
|
|
$dshdr=mysqli_fetch_row($dshdrdata);
|
|
if ($dshdr) {
|
|
// print the shift header
|
|
printf("<b><font size=\"+1\">%s</font></b>\n",$shname);
|
|
$note=mysqli_query($db,"select lognoteid,tech,subject,lognote,refs,time from lognotes where date=\"$tgt_date\" and shift=\"$shift\" order by time asc");
|
|
echo "<br><br>";
|
|
echo "<table border=\"0\" width=\"100%\"><tr><td>\n";
|
|
while ($tablerow = mysqli_fetch_assoc($note)) {
|
|
$reftonote=$tablerow["lognoteid"];
|
|
$refs=" <a href=\"logentry.php?add=1&refto=$reftonote\"><img src=\"icons/plus.png\" border=\"0\" title=\"Add referring note\" alt=\"Add referring note\"></a>";
|
|
if (islink($tablerow["lognoteid"])) {
|
|
$refs=$refs." <a href=\"refchain.php?chainnote=$reftonote\"><img src=\"icons/magnifier--arrow.png\" border=\"0\" title=\"View reference chain\" alt=\"View reference chain\"></a>";
|
|
}
|
|
// convert tech number to name
|
|
$tname=dblookup($db,"techs","techid","techname",$tablerow["tech"]);
|
|
//convert subject number to name
|
|
$subjname=dblookup($db,"subjects","subjectid","subjectname",$tablerow["subject"]);
|
|
// create links of urls in note
|
|
$fmtnote=convertweblinks($tablerow["lognote"]);
|
|
// generate the flags string
|
|
$flagstring="";
|
|
$allflagqry=mysqli_query($db,"select flagid from flags");
|
|
while ($allflagids=mysqli_fetch_row($allflagqry)) {
|
|
$flagid=$allflagids[0];
|
|
$flag_tbl="flag_".$flagid;
|
|
if (mysqli_num_rows(mysqli_query($db,"select id from $flag_tbl where target=\"lognotes\" and id=\"$reftonote\""))) {
|
|
$flagparam=mysqli_fetch_assoc(mysqli_query($db,"select * from flags where flagid=\"$flagid\""));
|
|
$flagcolor=$flagparam["flagcolor"];
|
|
$flagsym=$flagparam["flagsym"];
|
|
$flagname=$flagparam["flagname"];
|
|
$flagstring=$flagstring."<font color=\"$flagcolor\" title=\"$flagname\">$flagsym</font> ";
|
|
}
|
|
}
|
|
if ($flagstring) {
|
|
$fmtnote=$fmtnote."<br>".$flagstring." ";
|
|
} else {
|
|
$fmtnote=$fmtnote."<br>";
|
|
}
|
|
if ($doparts) {
|
|
// turn on the parts indicator if parts were entered with the note
|
|
if (mysqli_num_rows(mysqli_query($db,"select logpartid from logparts where lognoteid=\"$reftonote\""))) {
|
|
$fmtnote=$fmtnote."<a href=\"logentry.php?edit=1¬eid=$reftonote\" title=\"Click here to see note and parts data.\">PARTS</a>";
|
|
}
|
|
}
|
|
// now print the line in the table
|
|
if ($showtime) {
|
|
printf(
|
|
"<a href=\"logentry.php?edit=1¬eid=%s\" title=\"Note ID. Click to edit.\">%s</a>
|
|
<b>%s
|
|
%s
|
|
%s
|
|
%s</b>
|
|
<br>%s<br>
|
|
<hr>\n",
|
|
$tablerow["lognoteid"],$tablerow["lognoteid"],
|
|
$tablerow["time"],
|
|
$tname,
|
|
$subjname,
|
|
$refs,
|
|
$fmtnote
|
|
);
|
|
} else {
|
|
printf(
|
|
"<a href=\"logentry.php?edit=1¬eid=%s\">%s</a>
|
|
<b>%s
|
|
%s
|
|
%s</b>
|
|
<br>%s<br>
|
|
<hr>\n",
|
|
$tablerow["lognoteid"],$tablerow["lognoteid"],
|
|
$tname,
|
|
$subjname,
|
|
$refs,
|
|
$fmtnote
|
|
);
|
|
}
|
|
}
|
|
echo "</td></tr></table>\n";
|
|
} else {
|
|
// print the shift header
|
|
echo "<b>No entries for $shname</b>";
|
|
}
|
|
echo "<br><br>\n";
|
|
}
|
|
|
|
framework("begin","$logname","Online Logbook",$print);
|
|
|
|
pagetable("begin");
|
|
if(!$print) {
|
|
pageblock("left","begin");
|
|
//calendar($tgt_year,$tgt_month,$tgt_day,"lognotes.php");
|
|
echo "<div id=\"caldate\" style=\"display: none;\">";
|
|
echo htmlspecialchars($tgt_date);
|
|
echo "</div>
|
|
<div id=\"lognotescalendar\"></div>
|
|
<form method=\"post\" id=\"calendar\" action=\"lognotes.php\">
|
|
<input type=\"hidden\" id=\"targetdate\" name=\"tgt_date\" value=\"$tgt_date\">
|
|
</form>
|
|
";
|
|
sidemenu();
|
|
echo "<br><br>";
|
|
showlinklist($print);
|
|
pageblock("left","end");
|
|
} else {
|
|
echo "
|
|
<center><b>$tgt_year-$tgt_month-$tgt_day</b></center><br>
|
|
";
|
|
}
|
|
pageblock("right","begin");
|
|
banner($print);
|
|
if (isset($techid)) nag($techid);
|
|
//$date=date("Y-m-d",mktime(0,0,0,$tgt_month,$tgt_day,$tgt_year));
|
|
$qry=mysqli_query($db,"select shiftid from shifts where status=1 order by shiftid asc");
|
|
while ($shnum=mysqli_fetch_row($qry)) {
|
|
if ($tablestyle==1) {
|
|
shifttable_classic($shnum[0],$tgt_date,$db);
|
|
} else if ($tablestyle==2) {
|
|
shifttable_clean($shnum[0],$tgt_date,$db);
|
|
}
|
|
}
|
|
|
|
banner($print);
|
|
pageblock("right","end");
|
|
pagetable("end");
|
|
|
|
framework("end","","",$print);
|
|
|
|
?>
|