Compare commits
24 Commits
968964e3fe
...
v5.4.0-dev
| Author | SHA1 | Date | |
|---|---|---|---|
| 5d3296c3bc | |||
| 09464aace5 | |||
| e3de786766 | |||
| b0aaf70e4d | |||
| b70996b4d9 | |||
| 8647c9b4d8 | |||
| b201ac6d24 | |||
| 1480feecf0 | |||
| f84395f79a | |||
| f3db1c1523 | |||
| 962bd7b504 | |||
| ec8efec61e | |||
| d23a19a3eb | |||
| 152bb30029 | |||
| 11c876886a | |||
| 9cce143cf9 | |||
| eb29a3799c | |||
| ba7db9279d | |||
| ce8e5d9ca7 | |||
| 0600ba18cd | |||
| ef0599342b | |||
| 5129d30992 | |||
| ed7a25cea3 | |||
| f20b4cd8b6 |
10
CHANGELOG
10
CHANGELOG
@@ -278,3 +278,13 @@
|
|||||||
installation.
|
installation.
|
||||||
- Various code cleanups to prevent php warnings in the logs if logging
|
- Various code cleanups to prevent php warnings in the logs if logging
|
||||||
is enabled.
|
is enabled.
|
||||||
|
- Validate all date and time fields to prevent user entered invalid date
|
||||||
|
formats from crashing php.
|
||||||
|
- Fixed profile page to automatically refresh page to show the results
|
||||||
|
when a user changes their color preferences.
|
||||||
|
|
||||||
|
5.3.1 - 2026-02-25
|
||||||
|
- Fixed bug reported as Issue 1 where failure to select an action for a
|
||||||
|
part entered in a lognote crashed php in logentry.php.
|
||||||
|
- Fixed bug where the prompt to set flags on reference chain appeared
|
||||||
|
even when no flags were available to select in logentry.php.
|
||||||
|
|||||||
4
INSTALL
4
INSTALL
@@ -4,7 +4,6 @@
|
|||||||
|
|
||||||
SPDX-License-Identifier: GPL-2.0
|
SPDX-License-Identifier: GPL-2.0
|
||||||
|
|
||||||
|
|
||||||
Installation of OpenLog is straightforward.
|
Installation of OpenLog is straightforward.
|
||||||
|
|
||||||
1. Gather the required information.
|
1. Gather the required information.
|
||||||
@@ -31,5 +30,4 @@ settings. You will need to log in as OpenLogAdmin. The initial default password
|
|||||||
is "OpenLog-1". From the Administration page, you can click on the links at the
|
is "OpenLog-1". From the Administration page, you can click on the links at the
|
||||||
top to add techs, subjects, shifts, etc.
|
top to add techs, subjects, shifts, etc.
|
||||||
|
|
||||||
7. Start using OpenLog.
|
6. Start using OpenLog.
|
||||||
|
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
5.3.0
|
5.3.1
|
||||||
|
|||||||
@@ -122,7 +122,7 @@ set autocommit = 0;
|
|||||||
|
|
||||||
INSERT INTO
|
INSERT INTO
|
||||||
`configs`
|
`configs`
|
||||||
VALUES (1, 'ol_version', '5.2.4'),
|
VALUES (1, 'ol_version', '5.3.1'),
|
||||||
(2, 'log_name', 'OpenLog'),
|
(2, 'log_name', 'OpenLog'),
|
||||||
(3, 'banner', '1'),
|
(3, 'banner', '1'),
|
||||||
(
|
(
|
||||||
|
|||||||
@@ -144,3 +144,7 @@ do
|
|||||||
done
|
done
|
||||||
echo "...done."
|
echo "...done."
|
||||||
# -------------------------------------
|
# -------------------------------------
|
||||||
|
|
||||||
|
# ---------- version 5.3.1 ------------
|
||||||
|
# Nothing to do
|
||||||
|
# -------------------------------------
|
||||||
@@ -84,3 +84,8 @@ CREATE TABLE IF NOT EXISTS `reflinks` (
|
|||||||
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci;
|
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci;
|
||||||
|
|
||||||
-- --------------------------------------
|
-- --------------------------------------
|
||||||
|
|
||||||
|
-- ---------- version 5.3.1 -------------
|
||||||
|
-- Update version number
|
||||||
|
UPDATE configs SET confvalue = "5.3.1" WHERE confname = "ol_version";
|
||||||
|
-- --------------------------------------
|
||||||
13
default-apache.conf
Normal file
13
default-apache.conf
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
# _APPNAME_ default Apache configuration
|
||||||
|
|
||||||
|
Alias /_BASEURL_ _DOCROOTIN_/_BASEURL_
|
||||||
|
|
||||||
|
<Directory _DOCROOTIN_/_BASEURL_>
|
||||||
|
AllowOverride Options
|
||||||
|
Options FollowSymLinks
|
||||||
|
DirectoryIndex index.php
|
||||||
|
|
||||||
|
#RewriteEngine On
|
||||||
|
#RewriteBase /_BASEURL_/
|
||||||
|
#RewriteRule . maintenancemode.php [L]
|
||||||
|
</Directory>
|
||||||
@@ -278,3 +278,14 @@
|
|||||||
installation.
|
installation.
|
||||||
- Various code cleanups to prevent php warnings in the logs if logging
|
- Various code cleanups to prevent php warnings in the logs if logging
|
||||||
is enabled.
|
is enabled.
|
||||||
|
- Validate all date and time fields to prevent user entered invalid date
|
||||||
|
formats from crashing php.
|
||||||
|
- Fixed profile page to automatically refresh page to show the results
|
||||||
|
when a user changes their color preferences.
|
||||||
|
|
||||||
|
5.3.1 - 2026-02-25
|
||||||
|
- Fixed bug reported as Issue 1 where failure to select an action for a
|
||||||
|
part entered in a lognote crashed php in logentry.php.
|
||||||
|
- Fixed bug where the prompt to set flags on reference chain appeared
|
||||||
|
even when no flags were available to select in logentry.php.
|
||||||
|
|
||||||
|
|||||||
@@ -764,6 +764,7 @@ switch ($table) {
|
|||||||
";
|
";
|
||||||
// pull current values from database
|
// pull current values from database
|
||||||
$currentvalues = mysqli_fetch_assoc(mysqli_query($db, "select * from techs where techid=$id"));
|
$currentvalues = mysqli_fetch_assoc(mysqli_query($db, "select * from techs where techid=$id"));
|
||||||
|
if (!empty($currentvalues)) {
|
||||||
$name = $currentvalues["techname"];
|
$name = $currentvalues["techname"];
|
||||||
$pass = $passconf = "password_is_unchanged";
|
$pass = $passconf = "password_is_unchanged";
|
||||||
$shift = $currentvalues["shift"];
|
$shift = $currentvalues["shift"];
|
||||||
@@ -777,6 +778,13 @@ switch ($table) {
|
|||||||
} else {
|
} else {
|
||||||
$activetag = "<input type=\"checkbox\" name=\"active\">";
|
$activetag = "<input type=\"checkbox\" name=\"active\">";
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
$name = NULL;
|
||||||
|
$pass = NULL;
|
||||||
|
$shift = NULL;
|
||||||
|
$admintag = "<input type=\"checkbox\" name=\"admin\">";
|
||||||
|
$activetag = "<input type=\"checkbox\" name=\"active\">";
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
// set form options for add
|
// set form options for add
|
||||||
$sectiontitle = "<b>Add New Tech</b><br><br>";
|
$sectiontitle = "<b>Add New Tech</b><br><br>";
|
||||||
@@ -878,12 +886,17 @@ switch ($table) {
|
|||||||
";
|
";
|
||||||
// pull current values from database
|
// pull current values from database
|
||||||
$currentvalues = mysqli_fetch_assoc(mysqli_query($db, "select * from shifts where shiftid=$id"));
|
$currentvalues = mysqli_fetch_assoc(mysqli_query($db, "select * from shifts where shiftid=$id"));
|
||||||
|
if (!empty($currentvalues)) {
|
||||||
$name = $currentvalues["shiftname"];
|
$name = $currentvalues["shiftname"];
|
||||||
if ($currentvalues["status"] == 1) {
|
if ($currentvalues["status"] == 1) {
|
||||||
$activetag = "<input type=\"checkbox\" name=\"active\" checked>";
|
$activetag = "<input type=\"checkbox\" name=\"active\" checked>";
|
||||||
} else {
|
} else {
|
||||||
$activetag = "<input type=\"checkbox\" name=\"active\">";
|
$activetag = "<input type=\"checkbox\" name=\"active\">";
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
$name = NULL;
|
||||||
|
$activetag = "<input type=\"checkbox\" name=\"active\">";
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
// set form options for add
|
// set form options for add
|
||||||
$sectiontitle = "<b>Add New Shift</b><br><br>";
|
$sectiontitle = "<b>Add New Shift</b><br><br>";
|
||||||
@@ -952,12 +965,17 @@ switch ($table) {
|
|||||||
";
|
";
|
||||||
// pull current values from database
|
// pull current values from database
|
||||||
$currentvalues = mysqli_fetch_assoc(mysqli_query($db, "select * from subjects where subjectid=$id"));
|
$currentvalues = mysqli_fetch_assoc(mysqli_query($db, "select * from subjects where subjectid=$id"));
|
||||||
|
if (!empty($currentvalues)) {
|
||||||
$name = $currentvalues["subjectname"];
|
$name = $currentvalues["subjectname"];
|
||||||
if ($currentvalues["status"] == 1) {
|
if ($currentvalues["status"] == 1) {
|
||||||
$activetag = "<input type=\"checkbox\" name=\"active\" checked>";
|
$activetag = "<input type=\"checkbox\" name=\"active\" checked>";
|
||||||
} else {
|
} else {
|
||||||
$activetag = "<input type=\"checkbox\" name=\"active\">";
|
$activetag = "<input type=\"checkbox\" name=\"active\">";
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
$name = "";
|
||||||
|
$activetag = "<input type=\"checkbox\" name=\"active\">";
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
// set form options for add
|
// set form options for add
|
||||||
$sectiontitle = "<b>Add New Subject</b><br><br>";
|
$sectiontitle = "<b>Add New Subject</b><br><br>";
|
||||||
@@ -1026,6 +1044,7 @@ switch ($table) {
|
|||||||
";
|
";
|
||||||
// pull current values from database
|
// pull current values from database
|
||||||
$currentvalues = mysqli_fetch_assoc(mysqli_query($db, "select * from links where linkid=$id"));
|
$currentvalues = mysqli_fetch_assoc(mysqli_query($db, "select * from links where linkid=$id"));
|
||||||
|
if (!empty($currentvalues)) {
|
||||||
$name = $currentvalues["displaytxt"];
|
$name = $currentvalues["displaytxt"];
|
||||||
$priority = $currentvalues["linkpriority"];
|
$priority = $currentvalues["linkpriority"];
|
||||||
$url = $currentvalues["urltxt"];
|
$url = $currentvalues["urltxt"];
|
||||||
@@ -1034,6 +1053,12 @@ switch ($table) {
|
|||||||
} else {
|
} else {
|
||||||
$activetag = "<input type=\"checkbox\" name=\"active\">";
|
$activetag = "<input type=\"checkbox\" name=\"active\">";
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
$name = NULL;
|
||||||
|
$priority = NULL;
|
||||||
|
$url = NULL;
|
||||||
|
$activetag = "<input type=\"checkbox\" name=\"active\">";
|
||||||
|
}
|
||||||
// determine where we are in the priority stack
|
// determine where we are in the priority stack
|
||||||
$prow = mysqli_fetch_assoc(mysqli_query($db, "select min(linkpriority) as highest from links"));
|
$prow = mysqli_fetch_assoc(mysqli_query($db, "select min(linkpriority) as highest from links"));
|
||||||
if ($prow["highest"] == $priority) {
|
if ($prow["highest"] == $priority) {
|
||||||
@@ -1145,10 +1170,22 @@ switch ($table) {
|
|||||||
";
|
";
|
||||||
// pull current values from database
|
// pull current values from database
|
||||||
$currentvalues = mysqli_fetch_assoc(mysqli_query($db, "select * from flags where flagid=$id"));
|
$currentvalues = mysqli_fetch_assoc(mysqli_query($db, "select * from flags where flagid=$id"));
|
||||||
|
if (!empty($currentvalues)) {
|
||||||
$name = $currentvalues["flagname"];
|
$name = $currentvalues["flagname"];
|
||||||
$flagsym = $currentvalues["flagsym"];
|
$flagsym = $currentvalues["flagsym"];
|
||||||
$flagcolor = $currentvalues["flagcolor"];
|
$flagcolor = $currentvalues["flagcolor"];
|
||||||
$flagcoloropts = "";
|
$flagcoloropts = "";
|
||||||
|
if ($currentvalues["status"] == 1) {
|
||||||
|
$activetag = "<input type=\"checkbox\" name=\"active\" checked>";
|
||||||
|
} else {
|
||||||
|
$activetag = "<input type=\"checkbox\" name=\"active\">";
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$name = NULL;
|
||||||
|
$flagsym = NULL;
|
||||||
|
$flagcolor = NULL;
|
||||||
|
$activetag = "<input type=\"checkbox\" name=\"active\">";
|
||||||
|
}
|
||||||
foreach ($basic_colors as $cname => $chex) {
|
foreach ($basic_colors as $cname => $chex) {
|
||||||
if ($chex == $flagcolor) {
|
if ($chex == $flagcolor) {
|
||||||
$flagcoloropts = $flagcoloropts . "<option value=\"$chex\" selected>$cname</option>";
|
$flagcoloropts = $flagcoloropts . "<option value=\"$chex\" selected>$cname</option>";
|
||||||
@@ -1156,11 +1193,6 @@ switch ($table) {
|
|||||||
$flagcoloropts = $flagcoloropts . "<option value=\"$chex\">$cname</option>";
|
$flagcoloropts = $flagcoloropts . "<option value=\"$chex\">$cname</option>";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ($currentvalues["status"] == 1) {
|
|
||||||
$activetag = "<input type=\"checkbox\" name=\"active\" checked>";
|
|
||||||
} else {
|
|
||||||
$activetag = "<input type=\"checkbox\" name=\"active\">";
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
// set form options for add
|
// set form options for add
|
||||||
$sectiontitle = "<b>Add New Flag</b><br><br>";
|
$sectiontitle = "<b>Add New Flag</b><br><br>";
|
||||||
@@ -1246,12 +1278,17 @@ switch ($table) {
|
|||||||
";
|
";
|
||||||
// pull current values from database
|
// pull current values from database
|
||||||
$currentvalues = mysqli_fetch_assoc(mysqli_query($db, "select * from logpartactions where lpactionid=$id"));
|
$currentvalues = mysqli_fetch_assoc(mysqli_query($db, "select * from logpartactions where lpactionid=$id"));
|
||||||
|
if (!empty($currentvalues)) {
|
||||||
$name = $currentvalues["lpactionname"];
|
$name = $currentvalues["lpactionname"];
|
||||||
if ($currentvalues["status"] == 1) {
|
if ($currentvalues["status"] == 1) {
|
||||||
$activetag = "<input type=\"checkbox\" name=\"active\" checked>";
|
$activetag = "<input type=\"checkbox\" name=\"active\" checked>";
|
||||||
} else {
|
} else {
|
||||||
$activetag = "<input type=\"checkbox\" name=\"active\">";
|
$activetag = "<input type=\"checkbox\" name=\"active\">";
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
$name = NULL;
|
||||||
|
$activetag = "<input type=\"checkbox\" name=\"active\">";
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
// set form options for add
|
// set form options for add
|
||||||
$sectiontitle = "<b>Add New Part Action</b><br><br>";
|
$sectiontitle = "<b>Add New Part Action</b><br><br>";
|
||||||
@@ -1320,9 +1357,15 @@ switch ($table) {
|
|||||||
";
|
";
|
||||||
// pull current values from database
|
// pull current values from database
|
||||||
$currentvalues = mysqli_fetch_assoc(mysqli_query($db, "select * from banners where bannerid=$id"));
|
$currentvalues = mysqli_fetch_assoc(mysqli_query($db, "select * from banners where bannerid=$id"));
|
||||||
|
if (!empty($currentvalues)) {
|
||||||
$name = $currentvalues["bannername"];
|
$name = $currentvalues["bannername"];
|
||||||
$bnrcolor = $currentvalues["bannercolor"];
|
$bnrcolor = $currentvalues["bannercolor"];
|
||||||
$bnrtextcolor = $currentvalues["textcolor"];
|
$bnrtextcolor = $currentvalues["textcolor"];
|
||||||
|
} else {
|
||||||
|
$name = NULL;
|
||||||
|
$bnrcolor = NULL;
|
||||||
|
$bnrtextcolor = NULL;
|
||||||
|
}
|
||||||
$bnrcoloropts = "";
|
$bnrcoloropts = "";
|
||||||
foreach ($basic_colors as $cname => $chex) {
|
foreach ($basic_colors as $cname => $chex) {
|
||||||
if ($chex == $bnrcolor) {
|
if ($chex == $bnrcolor) {
|
||||||
|
|||||||
@@ -953,8 +953,9 @@ function templateselect($techid, $operation)
|
|||||||
{
|
{
|
||||||
// Displays a line enabling selection of a user or global template
|
// Displays a line enabling selection of a user or global template
|
||||||
// $techid is the id number of the current tech
|
// $techid is the id number of the current tech
|
||||||
// $operation is one of "add" "edit" "delete"
|
// $operation is one of "add" "edit" "delete" or NULL
|
||||||
global $db;
|
global $db;
|
||||||
|
$isadmin = dblookup($db, "techs", "techid", "admin", $techid);
|
||||||
echo "
|
echo "
|
||||||
<form method=\"post\">
|
<form method=\"post\">
|
||||||
";
|
";
|
||||||
@@ -967,11 +968,20 @@ function templateselect($techid, $operation)
|
|||||||
<td>
|
<td>
|
||||||
<select name=\"usertemplateid\" title=\"Select the user template you'd like to load and click the Load Template button. User template selection takes precedence.\">
|
<select name=\"usertemplateid\" title=\"Select the user template you'd like to load and click the Load Template button. User template selection takes precedence.\">
|
||||||
";
|
";
|
||||||
|
if ($isadmin && $operation != NULL) {
|
||||||
|
$templaterow = mysqli_query($db, "select * from notetemplates where tech!=\"0\" order by tech asc, templatename asc");
|
||||||
|
} else {
|
||||||
$templaterow = mysqli_query($db, "select * from notetemplates where tech=\"$techid\" order by templatename asc");
|
$templaterow = mysqli_query($db, "select * from notetemplates where tech=\"$techid\" order by templatename asc");
|
||||||
|
}
|
||||||
printf("<option value=\"%s\" selected>%s</option>", "0", "Select user template");
|
printf("<option value=\"%s\" selected>%s</option>", "0", "Select user template");
|
||||||
while ($templateitem = mysqli_fetch_assoc($templaterow)) {
|
while ($templateitem = mysqli_fetch_assoc($templaterow)) {
|
||||||
|
if ($isadmin && $operation != NULL) {
|
||||||
|
$techname = dblookup($db, "techs", "techid", "techname", $templateitem["tech"]);
|
||||||
|
printf("<option value=\"%s\">%s(%s)</option>", $templateitem["templateid"], $templateitem["templatename"], $techname);
|
||||||
|
} else {
|
||||||
printf("<option value=\"%s\">%s</option>", $templateitem["templateid"], $templateitem["templatename"]);
|
printf("<option value=\"%s\">%s</option>", $templateitem["templateid"], $templateitem["templatename"]);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
echo "
|
echo "
|
||||||
</select> or
|
</select> or
|
||||||
";
|
";
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
include("functions.php");
|
include("functions.php");
|
||||||
|
|
||||||
if (!$_SESSION['login'] && !$_REQUEST['partview']) {
|
if (!array_key_exists("login", $_SESSION) && !array_key_exists("partview", $_REQUEST)) {
|
||||||
header("Location: login.php");
|
header("Location: login.php");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -40,7 +40,7 @@ $uids = $_POST['uids'] ?? [];
|
|||||||
$partnums = $_POST['partnums'] ?? [];
|
$partnums = $_POST['partnums'] ?? [];
|
||||||
$sernums = $_POST['sernums'] ?? [];
|
$sernums = $_POST['sernums'] ?? [];
|
||||||
$actions = $_POST['actions'] ?? [];
|
$actions = $_POST['actions'] ?? [];
|
||||||
$mfreqs = $_POST['mfreqs'] ?? [];
|
$mfreqs = $_POST['mfreqs'] ?? ["off"];
|
||||||
$schedmaintcomplete = $_REQUEST['schedmaintcomplete'] ?? NULL;
|
$schedmaintcomplete = $_REQUEST['schedmaintcomplete'] ?? NULL;
|
||||||
$partview = $_REQUEST['partview'] ?? NULL;
|
$partview = $_REQUEST['partview'] ?? NULL;
|
||||||
|
|
||||||
@@ -199,7 +199,7 @@ if ($add) {
|
|||||||
// add it to logparts table
|
// add it to logparts table
|
||||||
mysqli_query($db, "insert into logparts(lognoteid,partid,action) values(\"$newnoteid\",\"$lpid\",\"$actions[$plidx]\")");
|
mysqli_query($db, "insert into logparts(lognoteid,partid,action) values(\"$newnoteid\",\"$lpid\",\"$actions[$plidx]\")");
|
||||||
// create a maintenance form if required
|
// create a maintenance form if required
|
||||||
if ($mfreqs[$plidx] == "on") {
|
if (array_key_exists($plidx,$mfreqs) && $mfreqs[$plidx] == "on") {
|
||||||
mysqli_query($db, "insert into maintforms(mfdate,mftech,mfpart,pending,lognoteid) values(\"$date\",\"$techid\",\"$lpid\",1,\"$newnoteid\")");
|
mysqli_query($db, "insert into maintforms(mfdate,mftech,mfpart,pending,lognoteid) values(\"$date\",\"$techid\",\"$lpid\",1,\"$newnoteid\")");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -217,7 +217,7 @@ if ($add) {
|
|||||||
// add it to logparts table
|
// add it to logparts table
|
||||||
mysqli_query($db, "insert into logparts(lognoteid,partid,action) values(\"$newnoteid\",\"$lpid\",\"$actions[$plidx]\")");
|
mysqli_query($db, "insert into logparts(lognoteid,partid,action) values(\"$newnoteid\",\"$lpid\",\"$actions[$plidx]\")");
|
||||||
// create a maintenance form if required
|
// create a maintenance form if required
|
||||||
if ($mfreqs[$plidx] == "on") {
|
if (array_key_exists($plidx,$mfreqs) && $mfreqs[$plidx] == "on") {
|
||||||
mysqli_query($db, "insert into maintforms(mfdate,mftech,mfpart,pending,lognoteid) values(\"$date\",\"$techid\",\"$lpid\",1,\"$newnoteid\")");
|
mysqli_query($db, "insert into maintforms(mfdate,mftech,mfpart,pending,lognoteid) values(\"$date\",\"$techid\",\"$lpid\",1,\"$newnoteid\")");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -235,7 +235,7 @@ if ($add) {
|
|||||||
// add it to logparts table
|
// add it to logparts table
|
||||||
mysqli_query($db, "insert into logparts(lognoteid,partid,action) values(\"$newnoteid\",\"$lpid\",\"$actions[$plidx]\")");
|
mysqli_query($db, "insert into logparts(lognoteid,partid,action) values(\"$newnoteid\",\"$lpid\",\"$actions[$plidx]\")");
|
||||||
// create a maintenance form if required
|
// create a maintenance form if required
|
||||||
if ($mfreqs[$plidx] == "on") {
|
if (array_key_exists($plidx,$mfreqs) && $mfreqs[$plidx] == "on") {
|
||||||
mysqli_query($db, "insert into maintforms(mfdate,mftech,mfpart,pending,lognoteid) values(\"$date\",\"$techid\",\"$lpid\",1,\"$newnoteid\")");
|
mysqli_query($db, "insert into maintforms(mfdate,mftech,mfpart,pending,lognoteid) values(\"$date\",\"$techid\",\"$lpid\",1,\"$newnoteid\")");
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@@ -364,7 +364,7 @@ if ($edit) {
|
|||||||
// add it to logparts table
|
// add it to logparts table
|
||||||
mysqli_query($db, "insert into logparts(lognoteid,partid,action) values(\"$noteid\",\"$lpid\",\"$actions[$plidx]\")");
|
mysqli_query($db, "insert into logparts(lognoteid,partid,action) values(\"$noteid\",\"$lpid\",\"$actions[$plidx]\")");
|
||||||
// create a maintenance form if required
|
// create a maintenance form if required
|
||||||
if ($mfreqs[$plidx] == "on") {
|
if (array_key_exists($plidx,$mfreqs) && $mfreqs[$plidx] == "on") {
|
||||||
mysqli_query($db, "insert into maintforms(mfdate,mftech,mfpart,pending,lognoteid) values(\"$date\",\"$techid\",\"$lpid\",1,\"$noteid\")");
|
mysqli_query($db, "insert into maintforms(mfdate,mftech,mfpart,pending,lognoteid) values(\"$date\",\"$techid\",\"$lpid\",1,\"$noteid\")");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -382,7 +382,7 @@ if ($edit) {
|
|||||||
// add it to logparts table
|
// add it to logparts table
|
||||||
mysqli_query($db, "insert into logparts(lognoteid,partid,action) values(\"$noteid\",\"$lpid\",\"$actions[$plidx]\")");
|
mysqli_query($db, "insert into logparts(lognoteid,partid,action) values(\"$noteid\",\"$lpid\",\"$actions[$plidx]\")");
|
||||||
// create a maintenance form if required
|
// create a maintenance form if required
|
||||||
if ($mfreqs[$plidx] == "on") {
|
if (array_key_exists($plidx,$mfreqs) && $mfreqs[$plidx] == "on") {
|
||||||
mysqli_query($db, "insert into maintforms(mfdate,mftech,mfpart,pending,lognoteid) values(\"$date\",\"$techid\",\"$lpid\",1,\"$noteid\")");
|
mysqli_query($db, "insert into maintforms(mfdate,mftech,mfpart,pending,lognoteid) values(\"$date\",\"$techid\",\"$lpid\",1,\"$noteid\")");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -400,7 +400,7 @@ if ($edit) {
|
|||||||
// add it to logparts table
|
// add it to logparts table
|
||||||
mysqli_query($db, "insert into logparts(lognoteid,partid,action) values(\"$noteid\",\"$lpid\",\"$actions[$plidx]\")");
|
mysqli_query($db, "insert into logparts(lognoteid,partid,action) values(\"$noteid\",\"$lpid\",\"$actions[$plidx]\")");
|
||||||
// create a maintenance form if required
|
// create a maintenance form if required
|
||||||
if ($mfreqs[$plidx] == "on") {
|
if (array_key_exists($plidx,$mfreqs) && $mfreqs[$plidx] == "on") {
|
||||||
mysqli_query($db, "insert into maintforms(mfdate,mftech,mfpart,pending,lognoteid) values(\"$date\",\"$techid\",\"$lpid\",1,\"$noteid\")");
|
mysqli_query($db, "insert into maintforms(mfdate,mftech,mfpart,pending,lognoteid) values(\"$date\",\"$techid\",\"$lpid\",1,\"$noteid\")");
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@@ -500,7 +500,7 @@ if ($delete) {
|
|||||||
format_message(0, "<strong>Note deleted.</strong> <a href=\"lognotes.php\">Return to main page.</a>");
|
format_message(0, "<strong>Note deleted.</strong> <a href=\"lognotes.php\">Return to main page.</a>");
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($_SESSION['login']) {
|
if (array_key_exists('login', $_SESSION)) {
|
||||||
// show the template selection line
|
// show the template selection line
|
||||||
templateselect($techid, NULL);
|
templateselect($techid, NULL);
|
||||||
}
|
}
|
||||||
@@ -619,7 +619,6 @@ $flagcount = 1;
|
|||||||
|
|
||||||
// display checkboxes for all the flags, selecting the ones that are set for this note/template
|
// display checkboxes for all the flags, selecting the ones that are set for this note/template
|
||||||
while ($flagcheckbox = mysqli_fetch_assoc($flagslist)) {
|
while ($flagcheckbox = mysqli_fetch_assoc($flagslist)) {
|
||||||
|
|
||||||
if (in_array($flagcheckbox["flagid"], $theseflags)) {
|
if (in_array($flagcheckbox["flagid"], $theseflags)) {
|
||||||
printf(
|
printf(
|
||||||
"<input type=\"checkbox\" name=\"flags[]\" value=\"%s\" checked><font color=\"%s\" title=\"%s\">%s</font>",
|
"<input type=\"checkbox\" name=\"flags[]\" value=\"%s\" checked><font color=\"%s\" title=\"%s\">%s</font>",
|
||||||
@@ -648,9 +647,15 @@ while ($flagcheckbox = mysqli_fetch_assoc($flagslist)) {
|
|||||||
$flagcount = 1;
|
$flagcount = 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (mysqli_num_rows($flagslist)) {
|
||||||
echo "
|
echo "
|
||||||
<br><input type=\"checkbox\" name=\"syncflags\" value=\"1\"><font title=\"Set the selected flags on the other notes in the reference chain\">Set flags on reference chain</font>
|
<br><input type=\"checkbox\" name=\"syncflags\" value=\"1\"><font title=\"Set the selected flags on the other notes in the reference chain\">Set flags on reference chain</font>
|
||||||
";
|
";
|
||||||
|
} else {
|
||||||
|
echo "
|
||||||
|
<input type=\"hidden\" name=\"syncflags\" value=\"0\">
|
||||||
|
";
|
||||||
|
}
|
||||||
|
|
||||||
if ($add && $refto) $refstring = $refto;
|
if ($add && $refto) $refstring = $refto;
|
||||||
echo "
|
echo "
|
||||||
@@ -678,18 +683,14 @@ if ($add) {
|
|||||||
<td align=\"center\"><input type=\"text\" name=\"partnums[$partline]\" size=\"20\"></td>
|
<td align=\"center\"><input type=\"text\" name=\"partnums[$partline]\" size=\"20\"></td>
|
||||||
<td align=\"center\"><input type=\"text\" name=\"sernums[$partline]\" size=\"20\"></td>
|
<td align=\"center\"><input type=\"text\" name=\"sernums[$partline]\" size=\"20\"></td>
|
||||||
<td align=\"center\"><select name=\"actions[$partline]\">
|
<td align=\"center\"><select name=\"actions[$partline]\">
|
||||||
<option value=\"select\">Select Action</option>
|
<option value=\"$defaultaction\" selected>Select Action</option>
|
||||||
";
|
";
|
||||||
$actrow = mysqli_query($db, "select * from logpartactions");
|
$actrow = mysqli_query($db, "select * from logpartactions");
|
||||||
while ($actitem = mysqli_fetch_assoc($actrow)) {
|
while ($actitem = mysqli_fetch_assoc($actrow)) {
|
||||||
if ($actitem["status"] == 1) {
|
if ($actitem["status"] == 1) {
|
||||||
if ($actitem["lpactionid"] == $defaultaction) {
|
|
||||||
printf("<option value=\"%s\" selected>%s</option>", $actitem["lpactionid"], $actitem["lpactionname"]);
|
|
||||||
} else {
|
|
||||||
printf("<option value=\"%s\">%s</option>", $actitem["lpactionid"], $actitem["lpactionname"]);
|
printf("<option value=\"%s\">%s</option>", $actitem["lpactionid"], $actitem["lpactionname"]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
echo "
|
echo "
|
||||||
</select>
|
</select>
|
||||||
</td>
|
</td>
|
||||||
@@ -739,19 +740,28 @@ if ($edit) {
|
|||||||
<td align=\"center\">$epsn</td>
|
<td align=\"center\">$epsn</td>
|
||||||
<td align=\"center\">
|
<td align=\"center\">
|
||||||
";
|
";
|
||||||
$actrow = mysqli_query($db, "select * from logpartactions");
|
if ($defaultaction) {
|
||||||
while ($actitem = mysqli_fetch_assoc($actrow)) {
|
// an action was selected previously, so just display it
|
||||||
if ($actitem["lpactionid"] == $defaultaction) {
|
$actname = dblookup($db, "logpartactions", "lpactionid", "lpactionname", $defaultaction);
|
||||||
echo "$actitem[lpactionname]";
|
echo "$actname";
|
||||||
}
|
|
||||||
}
|
}
|
||||||
echo "
|
echo "
|
||||||
</td>
|
</td>
|
||||||
";
|
";
|
||||||
// find maint form for this line and show link
|
// find maint form for this line and show link
|
||||||
$mflinknum = mysqli_fetch_assoc(mysqli_query($db, "select maintformid from maintforms where lognoteid=\"$noteid\" and mfpart=\"$lpidvar\""))["maintformid"];
|
|
||||||
echo "
|
echo "
|
||||||
<td align=\"center\"><a href=\"maintformentry.php?mfedit=1&maintformid=$mflinknum\" title=\"Click to view/edit this maintenance form\">$mflinknum</a></td>
|
<td align=\"center\">
|
||||||
|
";
|
||||||
|
$mflinkqry = mysqli_query($db, "select maintformid from maintforms where lognoteid=\"$noteid\" and mfpart=\"$lpidvar\"");
|
||||||
|
if (mysqli_num_rows($mflinkqry)) {
|
||||||
|
$mflinkdata = mysqli_fetch_assoc($mflinkqry);
|
||||||
|
$mflinknum = $mflinkdata["maintformid"];
|
||||||
|
echo "
|
||||||
|
<a href=\"maintformentry.php?mfedit=1&maintformid=$mflinknum\" title=\"Click to view/edit this maintenance form\">$mflinknum</a>
|
||||||
|
";
|
||||||
|
}
|
||||||
|
echo "
|
||||||
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
";
|
";
|
||||||
}
|
}
|
||||||
@@ -764,18 +774,14 @@ if ($edit) {
|
|||||||
<td align=\"center\"><input type=\"text\" name=\"partnums[$partline]\" size=\"20\"></td>
|
<td align=\"center\"><input type=\"text\" name=\"partnums[$partline]\" size=\"20\"></td>
|
||||||
<td align=\"center\"><input type=\"text\" name=\"sernums[$partline]\" size=\"20\"></td>
|
<td align=\"center\"><input type=\"text\" name=\"sernums[$partline]\" size=\"20\"></td>
|
||||||
<td align=\"center\"><select name=\"actions[$partline]\">
|
<td align=\"center\"><select name=\"actions[$partline]\">
|
||||||
<option value=\"select\">Select Action</option>
|
<option value=\"$defaultaction\" selected>Select Action</option>
|
||||||
";
|
";
|
||||||
$actrow = mysqli_query($db, "select * from logpartactions");
|
$actrow = mysqli_query($db, "select * from logpartactions");
|
||||||
while ($actitem = mysqli_fetch_assoc($actrow)) {
|
while ($actitem = mysqli_fetch_assoc($actrow)) {
|
||||||
if ($actitem["status"] == 1) {
|
if ($actitem["status"] == 1) {
|
||||||
if ($actitem["lpactionid"] == $defaultaction) {
|
|
||||||
printf("<option value=\"%s\" selected>%s</option>", $actitem["lpactionid"], $actitem["lpactionname"]);
|
|
||||||
} else {
|
|
||||||
printf("<option value=\"%s\">%s</option>", $actitem["lpactionid"], $actitem["lpactionname"]);
|
printf("<option value=\"%s\">%s</option>", $actitem["lpactionid"], $actitem["lpactionname"]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
echo "
|
echo "
|
||||||
</select>
|
</select>
|
||||||
</td>
|
</td>
|
||||||
|
|||||||
@@ -9,11 +9,11 @@
|
|||||||
|
|
||||||
include("functions.php");
|
include("functions.php");
|
||||||
|
|
||||||
$print = $_REQUEST['print'];
|
$print = $_REQUEST['print'] ?? NULL;
|
||||||
$tech = $_REQUEST['tech'];
|
$tech = $_REQUEST['tech'] ?? NULL;
|
||||||
$pass = $_REQUEST['pass'];
|
$pass = $_REQUEST['pass'] ?? NULL;
|
||||||
$login = $_REQUEST['login'];
|
$login = $_REQUEST['login'] ?? NULL;
|
||||||
$cancel = $_REQUEST['cancel'];
|
$cancel = $_REQUEST['cancel'] ?? NULL;
|
||||||
|
|
||||||
if ($cancel) {
|
if ($cancel) {
|
||||||
session_destroy();
|
session_destroy();
|
||||||
|
|||||||
@@ -178,6 +178,7 @@ if ($mfadd) {
|
|||||||
|
|
||||||
// add the record to maintforms
|
// add the record to maintforms
|
||||||
if (! $pdatamismatch) {
|
if (! $pdatamismatch) {
|
||||||
|
$lognoteid = ($lognoteid == NULL) ? 0 : $lognoteid;
|
||||||
mysqli_query($db, "insert into maintforms(mfdate,mftime,mftech,mfpart,mfpartloc,mfmalfunction,nha,repord,lognoteid,pending)
|
mysqli_query($db, "insert into maintforms(mfdate,mftime,mftech,mfpart,mfpartloc,mfmalfunction,nha,repord,lognoteid,pending)
|
||||||
values (\"$mfdate\", \"$mftime\",\"$loggedinas\",\"$mfpart\",\"$mfpartloc\",\"$mfmalfunction\",\"$nha\",\"$repord\",\"$lognoteid\",\"$pending\")");
|
values (\"$mfdate\", \"$mftime\",\"$loggedinas\",\"$mfpart\",\"$mfpartloc\",\"$mfmalfunction\",\"$nha\",\"$repord\",\"$lognoteid\",\"$pending\")");
|
||||||
$newmaintformid = mysqli_insert_id($db);
|
$newmaintformid = mysqli_insert_id($db);
|
||||||
@@ -186,7 +187,7 @@ if ($mfadd) {
|
|||||||
// update the flagmap table
|
// update the flagmap table
|
||||||
foreach ($flags as $thisflag) {
|
foreach ($flags as $thisflag) {
|
||||||
// set flag for this maintenance form
|
// set flag for this maintenance form
|
||||||
mysqli_query($db, "insert into flagmap(flagid,maintformid) values(\"$thisflag\",\"$$newmaintformid\")");
|
mysqli_query($db, "insert into flagmap(flagid,maintformid) values(\"$thisflag\",\"$newmaintformid\")");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -116,6 +116,8 @@ if (!$print) {
|
|||||||
// color settings
|
// color settings
|
||||||
$hexcolor = "#" . ltrim($hexcolor);
|
$hexcolor = "#" . ltrim($hexcolor);
|
||||||
putsetting($modcolor, $hexcolor, $techid);
|
putsetting($modcolor, $hexcolor, $techid);
|
||||||
|
$currentpage = $_SERVER['PHP_SELF'];
|
||||||
|
header("Refresh: .1; url=$currentpage");
|
||||||
}
|
}
|
||||||
if ($resetcustom) mysqli_query($db, "delete from customs where customtech=\"$techid\"");
|
if ($resetcustom) mysqli_query($db, "delete from customs where customtech=\"$techid\"");
|
||||||
|
|
||||||
|
|||||||
@@ -75,7 +75,7 @@ if ($action) {
|
|||||||
// sanitize user input
|
// sanitize user input
|
||||||
$completedate = fix_date($completedate);
|
$completedate = fix_date($completedate);
|
||||||
// update events
|
// update events
|
||||||
mysqli_query($db, "update events set last_date=\"$completedate\", deferred_flag=0, deferred_date=\"0000-00-00\" where eventid=\"$id\"");
|
mysqli_query($db, "update events set last_date=\"$completedate\", deferred_flag=0, deferred_date=\"0001-01-01\" where eventid=\"$id\"");
|
||||||
if ($addlognote) {
|
if ($addlognote) {
|
||||||
$compltaskname = mysqli_fetch_row(mysqli_query($db, "select tasks.taskname from tasks,events where events.eventid=\"$id\" and tasks.taskid=events.task"))[0];
|
$compltaskname = mysqli_fetch_row(mysqli_query($db, "select tasks.taskname from tasks,events where events.eventid=\"$id\" and tasks.taskid=events.task"))[0];
|
||||||
$compldevicename = mysqli_fetch_row(mysqli_query($db, "select devices.devicename from devices,events where events.eventid=\"$id\" and devices.deviceid=events.device"))[0];
|
$compldevicename = mysqli_fetch_row(mysqli_query($db, "select devices.devicename from devices,events where events.eventid=\"$id\" and devices.deviceid=events.device"))[0];
|
||||||
@@ -130,7 +130,6 @@ if ($add) {
|
|||||||
}
|
}
|
||||||
// run through the memberlist and modify the table
|
// run through the memberlist and modify the table
|
||||||
foreach ($memberlist as $memberdev) {
|
foreach ($memberlist as $memberdev) {
|
||||||
|
|
||||||
$addqry = ("insert into events(task,device,start_date,last_date,deferred_flag,deferred_date,active_flag)
|
$addqry = ("insert into events(task,device,start_date,last_date,deferred_flag,deferred_date,active_flag)
|
||||||
values(\"$task\",\"$memberdev\",\"$start_date\",\"$last_date\",\"$deferred_flag\",\"$deferred_date\",\"$active_flag\")");
|
values(\"$task\",\"$memberdev\",\"$start_date\",\"$last_date\",\"$deferred_flag\",\"$deferred_date\",\"$active_flag\")");
|
||||||
mysqli_query($db, $addqry);
|
mysqli_query($db, $addqry);
|
||||||
@@ -490,8 +489,8 @@ if ($action) {
|
|||||||
while ($tablerow = mysqli_fetch_assoc($existingdata)) {
|
while ($tablerow = mysqli_fetch_assoc($existingdata)) {
|
||||||
extract($tablerow);
|
extract($tablerow);
|
||||||
if ($start_date == "0001-01-01") $start_date = $today;
|
if ($start_date == "0001-01-01") $start_date = $today;
|
||||||
if ($last_date == "0000-00-00") $last_date = "";
|
if ($last_date == "0001-01-01") $last_date = "";
|
||||||
if ($deferred_date == "0000-00-00") $deferred_date = "";
|
if ($deferred_date == "0001-01-01") $deferred_date = "";
|
||||||
if ($active_flag) {
|
if ($active_flag) {
|
||||||
$statdef = "<img src=\"icons/tick.png\" title=\"active\" alt=\"active\">";
|
$statdef = "<img src=\"icons/tick.png\" title=\"active\" alt=\"active\">";
|
||||||
} else {
|
} else {
|
||||||
@@ -857,7 +856,7 @@ if ($action) {
|
|||||||
$taskdata = mysqli_fetch_assoc(mysqli_query($db, "select * from tasks where taskid=\"$def_task\""));
|
$taskdata = mysqli_fetch_assoc(mysqli_query($db, "select * from tasks where taskid=\"$def_task\""));
|
||||||
extract($taskdata, EXTR_PREFIX_ALL, "taskdata");
|
extract($taskdata, EXTR_PREFIX_ALL, "taskdata");
|
||||||
if (! ($taskdata_period == "once" && $def_last_date > $def_start_date)) {
|
if (! ($taskdata_period == "once" && $def_last_date > $def_start_date)) {
|
||||||
if ($def_last_date == "0000-00-00") {
|
if ($def_last_date == "0001-01-01") {
|
||||||
$lastdatestrg = "never";
|
$lastdatestrg = "never";
|
||||||
} else {
|
} else {
|
||||||
$lastdatestrg = "$def_last_date";
|
$lastdatestrg = "$def_last_date";
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ $srchploc = $_REQUEST['srchploc'] ?? NULL;
|
|||||||
$srchnha = $_REQUEST['srchnha'] ?? NULL;
|
$srchnha = $_REQUEST['srchnha'] ?? NULL;
|
||||||
$srchrepord = $_REQUEST['srchrepord'] ?? NULL;
|
$srchrepord = $_REQUEST['srchrepord'] ?? NULL;
|
||||||
$srchflags = $_POST['srchflags'] ?? [];
|
$srchflags = $_POST['srchflags'] ?? [];
|
||||||
$target = $_REQUEST['target'] ?? NULL;
|
$target = $_REQUEST['target'] ?? ["log", "maintform", "part"];
|
||||||
|
|
||||||
$doparts = PARTS_FUNCTIONS;
|
$doparts = PARTS_FUNCTIONS;
|
||||||
$logname = LOG_NAME;
|
$logname = LOG_NAME;
|
||||||
@@ -56,7 +56,7 @@ framework("begin", "$logname Search", "Search", $print);
|
|||||||
|
|
||||||
// echo "REQUEST variables: <br>";
|
// echo "REQUEST variables: <br>";
|
||||||
// var_dump($_REQUEST);
|
// var_dump($_REQUEST);
|
||||||
|
// echo "<br>";
|
||||||
|
|
||||||
// ******** begin database manipulation ********
|
// ******** begin database manipulation ********
|
||||||
|
|
||||||
@@ -92,7 +92,6 @@ if ($search) {
|
|||||||
$srchpname = trim($srchpname);
|
$srchpname = trim($srchpname);
|
||||||
$srchploc = trim($srchploc);
|
$srchploc = trim($srchploc);
|
||||||
$srchnha = trim($srchnha);
|
$srchnha = trim($srchnha);
|
||||||
if ($target[0] == "") $target = [];
|
|
||||||
if (in_array("log", $target)) {
|
if (in_array("log", $target)) {
|
||||||
// define the query constraints
|
// define the query constraints
|
||||||
// log note id
|
// log note id
|
||||||
@@ -131,23 +130,6 @@ if ($search) {
|
|||||||
$logfromtables[] = "lognotes";
|
$logfromtables[] = "lognotes";
|
||||||
$logconstraints[] = "lognotes.lognote like \"%$srchtext%\"";
|
$logconstraints[] = "lognotes.lognote like \"%$srchtext%\"";
|
||||||
}
|
}
|
||||||
// flags
|
|
||||||
if (!empty($srchflags)) {
|
|
||||||
unset($flagconstraints);
|
|
||||||
$flagcount = count($srchflags);
|
|
||||||
$logfromtables[] = "lognotes";
|
|
||||||
$logfromtables[] = "flagmap";
|
|
||||||
$flagconstraints[] = "flagmap.lognoteid=lognotes.lognoteid and flagmap.flagid in (";
|
|
||||||
foreach ($srchflags as $flagid) {
|
|
||||||
$flagconstraints[] = "\"$flagid\"";
|
|
||||||
$flagconstraints[] = ",";
|
|
||||||
}
|
|
||||||
// remove final comma
|
|
||||||
array_splice($flagconstraints, -1, 1);
|
|
||||||
$flagconstraints[] = ") group by flagmap.lognoteid having count(distinct flagmap.flagid)=$flagcount";
|
|
||||||
// make flagconstraints a single string so that the final implode doesn't split it
|
|
||||||
$logconstraints[] = join('', $flagconstraints);
|
|
||||||
}
|
|
||||||
// uid
|
// uid
|
||||||
if ($srchuid != "any" && $srchuid != "") {
|
if ($srchuid != "any" && $srchuid != "") {
|
||||||
$logfromtables[] = "lognotes";
|
$logfromtables[] = "lognotes";
|
||||||
@@ -200,12 +182,28 @@ if ($search) {
|
|||||||
$logfromtables[] = "maintforms";
|
$logfromtables[] = "maintforms";
|
||||||
$logconstraints[] = "lognotes.lognoteid=logparts.lognoteid and logparts.partid=parts.partid and maintforms.mfpart=parts.partid and maintforms.repord=\"{$srchrepord}\"";
|
$logconstraints[] = "lognotes.lognoteid=logparts.lognoteid and logparts.partid=parts.partid and maintforms.mfpart=parts.partid and maintforms.repord=\"{$srchrepord}\"";
|
||||||
}
|
}
|
||||||
|
// flags
|
||||||
|
if (!empty($srchflags)) {
|
||||||
|
unset($flagconstraints);
|
||||||
|
$flagcount = count($srchflags);
|
||||||
|
$logfromtables[] = "lognotes";
|
||||||
|
$logfromtables[] = "flagmap";
|
||||||
|
$flagconstraints[] = "flagmap.lognoteid=lognotes.lognoteid and flagmap.flagid in (";
|
||||||
|
foreach ($srchflags as $flagid) {
|
||||||
|
$flagconstraints[] = "\"$flagid\"";
|
||||||
|
$flagconstraints[] = ",";
|
||||||
|
}
|
||||||
|
// remove final comma
|
||||||
|
array_splice($flagconstraints, -1, 1);
|
||||||
|
$flagconstraints[] = ") group by flagmap.lognoteid having count(distinct flagmap.flagid)=$flagcount";
|
||||||
|
// make flagconstraints a single string so that the final implode doesn't split it
|
||||||
|
$logconstraints[] = join('', $flagconstraints);
|
||||||
|
}
|
||||||
// build the clauses and run the query
|
// build the clauses and run the query
|
||||||
$logfromclause = implode(",", array_unique($logfromtables));
|
$logfromclause = implode(",", array_unique($logfromtables));
|
||||||
$logwhereclause = implode(" and ", $logconstraints);
|
$logwhereclause = implode(" and ", $logconstraints);
|
||||||
$logrowqry = mysqli_query($db, "select lognotes.* from $logfromclause where $logwhereclause order by lognotes.date asc, lognotes.time asc");
|
$logrowqry = mysqli_query($db, "select lognotes.* from $logfromclause where $logwhereclause order by lognotes.date asc, lognotes.time asc");
|
||||||
}
|
}
|
||||||
if ($target[0] == "") $target = [];
|
|
||||||
if (in_array("maintform", $target)) {
|
if (in_array("maintform", $target)) {
|
||||||
// maintforms search
|
// maintforms search
|
||||||
// define the query constraints
|
// define the query constraints
|
||||||
@@ -248,23 +246,6 @@ if ($search) {
|
|||||||
$mffromtables[] = "maintactions";
|
$mffromtables[] = "maintactions";
|
||||||
$mfconstraints[] = "maintforms.mfmalfunction like \"%$srchtext%\" or (maintactions.action like \"%$srchtext%\" and maintforms.maintformid=maintactions.maintformnum)";
|
$mfconstraints[] = "maintforms.mfmalfunction like \"%$srchtext%\" or (maintactions.action like \"%$srchtext%\" and maintforms.maintformid=maintactions.maintformnum)";
|
||||||
}
|
}
|
||||||
// flags
|
|
||||||
if (!empty($srchflags)) {
|
|
||||||
unset($flagconstraints);
|
|
||||||
$flagcount = count($srchflags);
|
|
||||||
$mffromtables[] = "maintforms";
|
|
||||||
$mffromtables[] = "flagmap";
|
|
||||||
$flagconstraints[] = "flagmap.maintformid=maintforms.maintformid and flagmap.flagid in (";
|
|
||||||
foreach ($srchflags as $thisflagid) {
|
|
||||||
$flagconstraints[] = "\"$thisflagid\"";
|
|
||||||
$flagconstraints[] = ",";
|
|
||||||
}
|
|
||||||
// remove final comma
|
|
||||||
array_splice($flagconstraints, -1, 1);
|
|
||||||
$flagconstraints[] = ") group by flagmap.maintformid having count(distinct flagmap.flagid)=$flagcount";
|
|
||||||
// make flagconstraints a single string so that the final implode doesn't split it
|
|
||||||
$mfconstraints[] = join('', $flagconstraints);
|
|
||||||
}
|
|
||||||
// uid
|
// uid
|
||||||
if ($srchuid != "any" && $srchuid != "") {
|
if ($srchuid != "any" && $srchuid != "") {
|
||||||
$mffromtables[] = "maintforms";
|
$mffromtables[] = "maintforms";
|
||||||
@@ -307,12 +288,28 @@ if ($search) {
|
|||||||
$mffromtables[] = "maintforms";
|
$mffromtables[] = "maintforms";
|
||||||
$mfconstraints[] = "maintforms.mfpart=parts.partid and maintforms.repord=\"{$srchrepord}\"";
|
$mfconstraints[] = "maintforms.mfpart=parts.partid and maintforms.repord=\"{$srchrepord}\"";
|
||||||
}
|
}
|
||||||
|
// flags
|
||||||
|
if (!empty($srchflags)) {
|
||||||
|
unset($flagconstraints);
|
||||||
|
$flagcount = count($srchflags);
|
||||||
|
$mffromtables[] = "maintforms";
|
||||||
|
$mffromtables[] = "flagmap";
|
||||||
|
$flagconstraints[] = "flagmap.maintformid=maintforms.maintformid and flagmap.flagid in (";
|
||||||
|
foreach ($srchflags as $thisflagid) {
|
||||||
|
$flagconstraints[] = "\"$thisflagid\"";
|
||||||
|
$flagconstraints[] = ",";
|
||||||
|
}
|
||||||
|
// remove final comma
|
||||||
|
array_splice($flagconstraints, -1, 1);
|
||||||
|
$flagconstraints[] = ") group by flagmap.maintformid having count(distinct flagmap.flagid)=$flagcount";
|
||||||
|
// make flagconstraints a single string so that the final implode doesn't split it
|
||||||
|
$mfconstraints[] = join('', $flagconstraints);
|
||||||
|
}
|
||||||
// build the clauses and run the query
|
// build the clauses and run the query
|
||||||
$mffromclause = implode(",", array_unique($mffromtables));
|
$mffromclause = implode(",", array_unique($mffromtables));
|
||||||
$mfwhereclause = implode(" and ", $mfconstraints);
|
$mfwhereclause = implode(" and ", $mfconstraints);
|
||||||
$mfrowqry = mysqli_query($db, "select maintforms.* from $mffromclause where $mfwhereclause order by maintforms.mfdate asc, maintforms.mftime asc");
|
$mfrowqry = mysqli_query($db, "select maintforms.* from $mffromclause where $mfwhereclause order by maintforms.mfdate asc, maintforms.mftime asc");
|
||||||
}
|
}
|
||||||
if ($target[0] == "") $target = [];
|
|
||||||
if (in_array("part", $target)) {
|
if (in_array("part", $target)) {
|
||||||
// parts search
|
// parts search
|
||||||
// define the query constraints
|
// define the query constraints
|
||||||
@@ -334,7 +331,6 @@ if ($search) {
|
|||||||
// tech doesn't apply to parts
|
// tech doesn't apply to parts
|
||||||
// subject doesn't apply to parts
|
// subject doesn't apply to parts
|
||||||
// search text doesn't apply to parts
|
// search text doesn't apply to parts
|
||||||
// flags doesn't apply to parts
|
|
||||||
// uid
|
// uid
|
||||||
if ($srchuid != "any" && $srchuid != "") {
|
if ($srchuid != "any" && $srchuid != "") {
|
||||||
$pfromtables[] = "parts";
|
$pfromtables[] = "parts";
|
||||||
@@ -373,6 +369,7 @@ if ($search) {
|
|||||||
$pfromtables[] = "maintforms";
|
$pfromtables[] = "maintforms";
|
||||||
$pconstraints[] = "maintforms.mfpart=parts.partid and maintforms.repord=\"{$srchrepord}\"";
|
$pconstraints[] = "maintforms.mfpart=parts.partid and maintforms.repord=\"{$srchrepord}\"";
|
||||||
}
|
}
|
||||||
|
// flags doesn't apply to parts
|
||||||
// build the clauses and run the query
|
// build the clauses and run the query
|
||||||
$pfromclause = implode(",", array_unique($pfromtables));
|
$pfromclause = implode(",", array_unique($pfromtables));
|
||||||
$pwhereclause = implode(" and ", $pconstraints);
|
$pwhereclause = implode(" and ", $pconstraints);
|
||||||
|
|||||||
@@ -162,6 +162,12 @@ if ($usertemplateid) {
|
|||||||
$loadtemplate = NULL;
|
$loadtemplate = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// determine original owner of template
|
||||||
|
$orig_owner = dblookup($db, "notetemplates", "templateid", "tech", $templateid);
|
||||||
|
if ($efftechid != NULL && $efftechid != $orig_owner) {
|
||||||
|
$operation = "add";
|
||||||
|
}
|
||||||
|
|
||||||
if ($operation == "add") {
|
if ($operation == "add") {
|
||||||
if ($submit) {
|
if ($submit) {
|
||||||
if ($note) {
|
if ($note) {
|
||||||
|
|||||||
@@ -41,3 +41,15 @@ fi
|
|||||||
# ---------- version 5.2.4.4 -----------
|
# ---------- version 5.2.4.4 -----------
|
||||||
# No changes
|
# No changes
|
||||||
# --------------------------------------
|
# --------------------------------------
|
||||||
|
|
||||||
|
# ---------- version 5.2.5 -------------
|
||||||
|
# No changes
|
||||||
|
# --------------------------------------
|
||||||
|
|
||||||
|
# ---------- version 5.3.0 -------------
|
||||||
|
# No changes
|
||||||
|
# --------------------------------------
|
||||||
|
|
||||||
|
# ---------- version 5.3.1 -------------
|
||||||
|
# No changes
|
||||||
|
# --------------------------------------
|
||||||
82
install.sh
82
install.sh
@@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
APP_NAME="OpenLog"
|
APP_NAME="OpenLog"
|
||||||
DEFAULT_DB_NAME="openlog"
|
DEFAULT_DB_NAME="openlog"
|
||||||
APP_VERSION="5.3.0"
|
APP_VERSION="5.3.1"
|
||||||
DOC_ROOT="/var/www"
|
DOC_ROOT="/var/www"
|
||||||
INSTALL_LOC="openlog"
|
INSTALL_LOC="openlog"
|
||||||
APACHE_CONF_DIR="/etc/apache2/conf-available"
|
APACHE_CONF_DIR="/etc/apache2/conf-available"
|
||||||
@@ -201,9 +201,36 @@ then
|
|||||||
abort_exit
|
abort_exit
|
||||||
else
|
else
|
||||||
# proceed with upgrade
|
# proceed with upgrade
|
||||||
|
# put app in maintenance mode
|
||||||
# take app offline during upgrade
|
echo "Putting the application in maintenance mode..."
|
||||||
a2disconf $install_loc_in
|
# make sure mod_rewrite is enabled
|
||||||
|
if [[ ! -e "$APACHE_CONF_DIR/../mods-enabled/rewrite.load" ]]
|
||||||
|
then
|
||||||
|
a2enmod -q rewrite
|
||||||
|
systemctl restart apache2
|
||||||
|
fi
|
||||||
|
# disable the app
|
||||||
|
a2disconf -q $install_loc_in
|
||||||
|
systemctl reload apache2
|
||||||
|
# modify the apache conf file
|
||||||
|
if ! grep -q "RewriteEngine" "$APACHE_CONF_DIR/$install_loc_in.conf"
|
||||||
|
then
|
||||||
|
# this is an old version of the conf file. Replace with new version
|
||||||
|
cp -f default-apache.conf $APACHE_CONF_DIR/$install_loc_in.conf
|
||||||
|
sed -i "s|_APPNAME_|$APP_NAME|g" $APACHE_CONF_DIR/$install_loc_in.conf
|
||||||
|
sed -i "s|_BASEURL_|$install_loc_in|g" $APACHE_CONF_DIR/$install_loc_in.conf
|
||||||
|
sed -i "s|_DOCROOTIN_|$doc_root_in|g" $APACHE_CONF_DIR/$install_loc_in.conf
|
||||||
|
fi
|
||||||
|
sed -i "s|#Rewrite|Rewrite|g" $APACHE_CONF_DIR/$install_loc_in.conf
|
||||||
|
# copy in the default maintenancemode.php if it's not already there
|
||||||
|
if [[ ! -e "$install_path/maintenancemode.php" ]]
|
||||||
|
then
|
||||||
|
cp maintenancemode.php $install_path/
|
||||||
|
# modify the maintenancemode.php file
|
||||||
|
sed -i "s|_APPNAME_|$APP_NAME|g" $install_path/maintenancemode.php
|
||||||
|
fi
|
||||||
|
# re-enable the app in maintenance mode
|
||||||
|
a2enconf -q $install_loc_in
|
||||||
systemctl reload apache2
|
systemctl reload apache2
|
||||||
|
|
||||||
datestamp=$(date +%Y-%m-%d_%H:%M:%S)
|
datestamp=$(date +%Y-%m-%d_%H:%M:%S)
|
||||||
@@ -231,8 +258,8 @@ then
|
|||||||
echo "Backing up current installation to the package directory."
|
echo "Backing up current installation to the package directory."
|
||||||
cp -R $install_path $backupdir/$install_loc_in-$datestamp-backup
|
cp -R $install_path $backupdir/$install_loc_in-$datestamp-backup
|
||||||
|
|
||||||
# delete all existing installation files except db.php
|
# delete all existing installation files except db.php and maintenancemode.php
|
||||||
find $install_path/ -mindepth 1 -not -name 'db.php' -delete
|
find $install_path/ -mindepth 1 ! \( -name 'db.php' -o -name 'maintenancemode.php' \) -delete
|
||||||
|
|
||||||
echo "Performing database updates..."
|
echo "Performing database updates..."
|
||||||
# apply database updates from sql file
|
# apply database updates from sql file
|
||||||
@@ -271,6 +298,17 @@ then
|
|||||||
chown -R $httpd_user_group $install_path
|
chown -R $httpd_user_group $install_path
|
||||||
echo "Backups of the previous openlog files and the previous database were made"
|
echo "Backups of the previous openlog files and the previous database were made"
|
||||||
echo "and are located in the $backupdir directory."
|
echo "and are located in the $backupdir directory."
|
||||||
|
|
||||||
|
# take app out of maintenance mode
|
||||||
|
echo "Taking the app out of maintenance mode..."
|
||||||
|
# disable the app
|
||||||
|
a2disconf -q $install_loc_in
|
||||||
|
systemctl reload apache2
|
||||||
|
# modify the apache conf file
|
||||||
|
sed -i "s|Rewrite|#Rewrite|g" $APACHE_CONF_DIR/$install_loc_in.conf
|
||||||
|
# re-enable the app in production mode
|
||||||
|
a2enconf -q $install_loc_in
|
||||||
|
systemctl reload apache2
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
# This was a mistake. Exit now to avoid clobbering another app.
|
# This was a mistake. Exit now to avoid clobbering another app.
|
||||||
@@ -369,10 +407,16 @@ else
|
|||||||
if [[ ! -f "$install_path/db.php" ]]
|
if [[ ! -f "$install_path/db.php" ]]
|
||||||
then
|
then
|
||||||
cp db.php.template $install_path/db.php
|
cp db.php.template $install_path/db.php
|
||||||
sed -i "s/DBNAME/$new_db_name/g" $install_path/db.php
|
sed -i "s|DBNAME|$new_db_name|g" $install_path/db.php
|
||||||
sed -i "s/DBUSER/$db_user/g" $install_path/db.php
|
sed -i "s|DBUSER|$db_user|g" $install_path/db.php
|
||||||
sed -i "s/DBPASS/$db_pass/g" $install_path/db.php
|
sed -i "s|DBPASS|$db_pass|g" $install_path/db.php
|
||||||
sed -i "s/APPNAME/$APP_NAME/g" $install_path/db.php
|
sed -i "s|APPNAME|$APP_NAME|g" $install_path/db.php
|
||||||
|
fi
|
||||||
|
# Create maintenancemode.php if it doesn't exist
|
||||||
|
if [[ ! -f "$install_path/maintenancemode.php" ]]
|
||||||
|
then
|
||||||
|
cp maintenancemode.php $install_path/maintenancemode.php
|
||||||
|
sed -i "s|_APPNAME_|$APP_NAME|g" $install_path/maintenancemode.php
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# copy distribution to install location
|
# copy distribution to install location
|
||||||
@@ -407,25 +451,21 @@ echo "$APP_NAME has been $operation."
|
|||||||
base_url=$install_loc_in
|
base_url=$install_loc_in
|
||||||
if [[ "$operation" == "upgraded" ]]
|
if [[ "$operation" == "upgraded" ]]
|
||||||
then
|
then
|
||||||
a2enconf $base_url
|
a2enconf -q $base_url
|
||||||
systemctl reload apache2
|
systemctl reload apache2
|
||||||
fi
|
fi
|
||||||
if [[ "$operation" == "installed" ]]
|
if [[ "$operation" == "installed" ]]
|
||||||
then
|
then
|
||||||
echo "# $APP_NAME default Apache configuration" > $APACHE_CONF_DIR/$base_url.conf
|
cp -f default-apache.conf $APACHE_CONF_DIR/$base_url.conf
|
||||||
echo "" >> $APACHE_CONF_DIR/$base_url.conf
|
sed -i "s|_APPNAME_|$APP_NAME|g" $APACHE_CONF_DIR/$base_url.conf
|
||||||
echo "Alias /$base_url $doc_root_in/$base_url" >> $APACHE_CONF_DIR/$base_url.conf
|
sed -i "s|_BASEURL_|$base_url|g" $APACHE_CONF_DIR/$base_url.conf
|
||||||
echo "" >> $APACHE_CONF_DIR/$base_url.conf
|
sed -i "s|_DOCROOTIN_|$doc_root_in|g" $APACHE_CONF_DIR/$base_url.conf
|
||||||
echo "<Directory $doc_root_in/$base_url>" >> $APACHE_CONF_DIR/$base_url.conf
|
|
||||||
echo " AllowOverride Options" >> $APACHE_CONF_DIR/$base_url.conf
|
|
||||||
echo " Options FollowSymLinks" >> $APACHE_CONF_DIR/$base_url.conf
|
|
||||||
echo " DirectoryIndex index.php" >> $APACHE_CONF_DIR/$base_url.conf
|
|
||||||
echo "</Directory>" >> $APACHE_CONF_DIR/$base_url.conf
|
|
||||||
echo -n "The apache2 $base_url configuration must be enabled. Would you like to do that now? [Y/n] :"
|
echo -n "The apache2 $base_url configuration must be enabled. Would you like to do that now? [Y/n] :"
|
||||||
read enconf
|
read enconf
|
||||||
if [[ "$enconf" == "" || "$enconf" == "Y" || "$enconf" == "y" ]]
|
if [[ "$enconf" == "" || "$enconf" == "Y" || "$enconf" == "y" ]]
|
||||||
then
|
then
|
||||||
a2enconf $base_url.conf >/dev/null
|
a2enconf -q $base_url.conf >/dev/null
|
||||||
systemctl reload apache2
|
systemctl reload apache2
|
||||||
echo "You can now point a web browser to $base_url on your web server "
|
echo "You can now point a web browser to $base_url on your web server "
|
||||||
echo "to set up and configure $APP_NAME."
|
echo "to set up and configure $APP_NAME."
|
||||||
|
|||||||
26
maintenancemode.php
Normal file
26
maintenancemode.php
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
<?php
|
||||||
|
/*
|
||||||
|
maintenancemode.php
|
||||||
|
OpenLog Online Logbook
|
||||||
|
Copyright (C) 2026 Rod Wright
|
||||||
|
|
||||||
|
SPDX-License-Identifier: GPL-2.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
echo "
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>_APPNAME_</title>
|
||||||
|
<style type=\"text/css\">
|
||||||
|
* {font-family: Arial, Helvetica, sans-serif;}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<br><br><br><br>
|
||||||
|
_APPNAME_ is currently down for maintenance. Please try again later.
|
||||||
|
<br><br>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
";
|
||||||
|
|
||||||
|
?>
|
||||||
Reference in New Issue
Block a user