8 Commits

Author SHA1 Message Date
b0aaf70e4d Merge remote-tracking branch 'origin/5.3.0dev' 2026-02-24 10:46:30 -05:00
b70996b4d9 Fixed typo (applocation) 2026-02-24 10:22:09 -05:00
8647c9b4d8 Refresh page to show changes when user selects a different color 2026-02-24 09:50:59 -05:00
b201ac6d24 Fixes to prevent php warnings about trying to access array offset on null 2026-02-24 09:50:05 -05:00
1480feecf0 Reformats 2026-02-24 09:48:02 -05:00
f84395f79a Reformats 2026-02-24 09:47:38 -05:00
f3db1c1523 Updated for color preference fix 2026-02-24 09:46:43 -05:00
f20b4cd8b6 Update LICENSE
Added License info for the Fugue icon set
2026-02-14 10:55:58 -05:00
13 changed files with 119 additions and 73 deletions

View File

@@ -280,4 +280,5 @@
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.

32
INSTALL
View File

@@ -4,32 +4,30 @@
SPDX-License-Identifier: GPL-2.0
Installation of OpenLog is straightforward.
1. Gather the required information.
You'll need to know how to configure your web server. This means where
you want to put the files to be served and any configuration required to
allow clients to reach them. You'll also need to know the username and
password of the MySQL administrator.
You'll need to know how to configure your web server. This means where
you want to put the files to be served and any configuration required to
allow clients to reach them. You'll also need to know the username and
password of the MySQL administrator.
2. Unpack
Unpack the distribution in a convenient place (such as /tmp or My Documents).
A directory will be created called OpenLog-x.x.x.
Unpack the distribution in a convenient place (such as /tmp or My Documents).
A directory will be created called OpenLog-x.x.x.
3. Review License
Change to the openlog-x.x.x directory and review the LICENSE file.
Change to the openlog-x.x.x directory and review the LICENSE file.
4. Run the install script
If installing on a Linux or Unix based system, type ./install.sh at a
command prompt. If installing on a Windows based system, double click
install.bat. Follow the prompts.
If installing on a Linux or Unix based system, type ./install.sh at a
command prompt. If installing on a Windows based system, double click
install.bat. Follow the prompts.
5. Check and set Configuration
Click on the Administration menu option on the main page to adjust the initial
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
top to add techs, subjects, shifts, etc.
7. Start using OpenLog.
Click on the Administration menu option on the main page to adjust the initial
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
top to add techs, subjects, shifts, etc.
6. Start using OpenLog.

View File

@@ -14,10 +14,10 @@
** DO NOT EDIT **
************************************************************************
*/
$appname="APPNAME";
$dbname="DBNAME";
$username="DBUSER";
$dbpass="DBPASS";
$appname = "APPNAME";
$dbname = "DBNAME";
$username = "DBUSER";
$dbpass = "DBPASS";
function dberrmsg($dbname) {
echo "
@@ -34,7 +34,7 @@ function dberrmsg($dbname) {
exit();
}
$db=@mysqli_connect("localhost",$username,$dbpass,$dbname);
$db = @mysqli_connect("localhost",$username,$dbpass,$dbname);
if (mysqli_errno($db)) {
dberrmsg($dbname);
}

View File

@@ -280,4 +280,7 @@
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.

View File

@@ -764,17 +764,25 @@ switch ($table) {
";
// pull current values from database
$currentvalues = mysqli_fetch_assoc(mysqli_query($db, "select * from techs where techid=$id"));
$name = $currentvalues["techname"];
$pass = $passconf = "password_is_unchanged";
$shift = $currentvalues["shift"];
if ($currentvalues["admin"] == 1) {
$admintag = "<input type=\"checkbox\" name=\"admin\" checked>";
if (!empty($currentvalues)) {
$name = $currentvalues["techname"];
$pass = $passconf = "password_is_unchanged";
$shift = $currentvalues["shift"];
if ($currentvalues["admin"] == 1) {
$admintag = "<input type=\"checkbox\" name=\"admin\" checked>";
} else {
$admintag = "<input type=\"checkbox\" name=\"admin\">";
}
if ($currentvalues["status"] == 1) {
$activetag = "<input type=\"checkbox\" name=\"active\" checked>";
} else {
$activetag = "<input type=\"checkbox\" name=\"active\">";
}
} else {
$name = NULL;
$pass = NULL;
$shift = NULL;
$admintag = "<input type=\"checkbox\" name=\"admin\">";
}
if ($currentvalues["status"] == 1) {
$activetag = "<input type=\"checkbox\" name=\"active\" checked>";
} else {
$activetag = "<input type=\"checkbox\" name=\"active\">";
}
} else {
@@ -878,10 +886,15 @@ switch ($table) {
";
// pull current values from database
$currentvalues = mysqli_fetch_assoc(mysqli_query($db, "select * from shifts where shiftid=$id"));
$name = $currentvalues["shiftname"];
if ($currentvalues["status"] == 1) {
$activetag = "<input type=\"checkbox\" name=\"active\" checked>";
if (!empty($currentvalues)) {
$name = $currentvalues["shiftname"];
if ($currentvalues["status"] == 1) {
$activetag = "<input type=\"checkbox\" name=\"active\" checked>";
} else {
$activetag = "<input type=\"checkbox\" name=\"active\">";
}
} else {
$name = NULL;
$activetag = "<input type=\"checkbox\" name=\"active\">";
}
} else {
@@ -952,10 +965,15 @@ switch ($table) {
";
// pull current values from database
$currentvalues = mysqli_fetch_assoc(mysqli_query($db, "select * from subjects where subjectid=$id"));
$name = $currentvalues["subjectname"];
if ($currentvalues["status"] == 1) {
$activetag = "<input type=\"checkbox\" name=\"active\" checked>";
if (!empty($currentvalues)) {
$name = $currentvalues["subjectname"];
if ($currentvalues["status"] == 1) {
$activetag = "<input type=\"checkbox\" name=\"active\" checked>";
} else {
$activetag = "<input type=\"checkbox\" name=\"active\">";
}
} else {
$name = "";
$activetag = "<input type=\"checkbox\" name=\"active\">";
}
} else {
@@ -1026,12 +1044,19 @@ switch ($table) {
";
// pull current values from database
$currentvalues = mysqli_fetch_assoc(mysqli_query($db, "select * from links where linkid=$id"));
$name = $currentvalues["displaytxt"];
$priority = $currentvalues["linkpriority"];
$url = $currentvalues["urltxt"];
if ($currentvalues["status"] == 1) {
$activetag = "<input type=\"checkbox\" name=\"active\" checked>";
if (!empty($currentvalues)) {
$name = $currentvalues["displaytxt"];
$priority = $currentvalues["linkpriority"];
$url = $currentvalues["urltxt"];
if ($currentvalues["status"] == 1) {
$activetag = "<input type=\"checkbox\" name=\"active\" checked>";
} else {
$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
@@ -1145,10 +1170,22 @@ switch ($table) {
";
// pull current values from database
$currentvalues = mysqli_fetch_assoc(mysqli_query($db, "select * from flags where flagid=$id"));
$name = $currentvalues["flagname"];
$flagsym = $currentvalues["flagsym"];
$flagcolor = $currentvalues["flagcolor"];
$flagcoloropts = "";
if (!empty($currentvalues)) {
$name = $currentvalues["flagname"];
$flagsym = $currentvalues["flagsym"];
$flagcolor = $currentvalues["flagcolor"];
$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) {
if ($chex == $flagcolor) {
$flagcoloropts = $flagcoloropts . "<option value=\"$chex\" selected>$cname</option>";
@@ -1156,11 +1193,6 @@ switch ($table) {
$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 {
// set form options for add
$sectiontitle = "<b>Add New Flag</b><br><br>";
@@ -1246,10 +1278,15 @@ switch ($table) {
";
// pull current values from database
$currentvalues = mysqli_fetch_assoc(mysqli_query($db, "select * from logpartactions where lpactionid=$id"));
$name = $currentvalues["lpactionname"];
if ($currentvalues["status"] == 1) {
$activetag = "<input type=\"checkbox\" name=\"active\" checked>";
if (!empty($currentvalues)) {
$name = $currentvalues["lpactionname"];
if ($currentvalues["status"] == 1) {
$activetag = "<input type=\"checkbox\" name=\"active\" checked>";
} else {
$activetag = "<input type=\"checkbox\" name=\"active\">";
}
} else {
$name = NULL;
$activetag = "<input type=\"checkbox\" name=\"active\">";
}
} else {
@@ -1320,9 +1357,15 @@ switch ($table) {
";
// pull current values from database
$currentvalues = mysqli_fetch_assoc(mysqli_query($db, "select * from banners where bannerid=$id"));
$name = $currentvalues["bannername"];
$bnrcolor = $currentvalues["bannercolor"];
$bnrtextcolor = $currentvalues["textcolor"];
if (!empty($currentvalues)) {
$name = $currentvalues["bannername"];
$bnrcolor = $currentvalues["bannercolor"];
$bnrtextcolor = $currentvalues["textcolor"];
} else {
$name = NULL;
$bnrcolor = NULL;
$bnrtextcolor = NULL;
}
$bnrcoloropts = "";
foreach ($basic_colors as $cname => $chex) {
if ($chex == $bnrcolor) {

View File

@@ -968,15 +968,15 @@ function templateselect($techid, $operation)
<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.\">
";
if ($isadmin && $operation!=NULL) {
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");
}
printf("<option value=\"%s\" selected>%s</option>", "0", "Select user template");
while ($templateitem = mysqli_fetch_assoc($templaterow)) {
if ($isadmin && $operation!=NULL) {
$techname=dblookup($db, "techs", "techid", "techname", $templateitem["tech"]);
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"]);
@@ -1020,7 +1020,7 @@ function fix_date($datestring)
if (!$datestring) $datestring = $today;
$datepatt = '/^\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\d|3[01])$/';
if (!preg_match($datepatt,$datestring)) $datestring = $today;
if (!preg_match($datepatt, $datestring)) $datestring = $today;
$datestring = mysqli_real_escape_string($db, $datestring);
return $datestring;
}
@@ -1034,7 +1034,7 @@ function fix_time($timestring)
if (!$timestring) $timestring = $now;
$timepatt = '/^([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]$/';
if (!preg_match($timepatt,$timestring)) $timestring = $now;
if (!preg_match($timepatt, $timestring)) $timestring = $now;
$timestring = mysqli_real_escape_string($db, $timestring);
return $timestring;
}

View File

@@ -9,7 +9,7 @@
include("functions.php");
if (!array_key_exists("login",$_SESSION) && !array_key_exists("partview",$_REQUEST)) {
if (!array_key_exists("login", $_SESSION) && !array_key_exists("partview", $_REQUEST)) {
header("Location: login.php");
}
@@ -98,7 +98,7 @@ if ($add) {
// sanitize and fix blank date and time
$date = fix_date($date);
$time = fix_time($time);
// determine whether supplied date is future or past
$datediff = mysqli_fetch_row(mysqli_query($db, "select datediff(\"$date\",CURRENT_DATE)"));
// if future, set time to 00:00:01, if past, set to 23:59:59
@@ -265,7 +265,7 @@ if ($edit) {
// sanitize and fix blank date and time
$date = fix_date($date);
$time = fix_time($time);
// remove cruft from note text
$note = strip_tags($note, "<a>");
$note = mysqli_real_escape_string($db, $note);
@@ -500,7 +500,7 @@ if ($delete) {
format_message(0, "<strong>Note deleted.</strong> <a href=\"lognotes.php\">Return to main page.</a>");
}
if (array_key_exists('login',$_SESSION)) {
if (array_key_exists('login', $_SESSION)) {
// show the template selection line
templateselect($techid, NULL);
}

View File

@@ -178,7 +178,7 @@ if ($mfadd) {
// add the record to maintforms
if (! $pdatamismatch) {
$lognoteid = ($lognoteid==NULL) ? 0 : $lognoteid;
$lognoteid = ($lognoteid == NULL) ? 0 : $lognoteid;
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\")");
$newmaintformid = mysqli_insert_id($db);

View File

@@ -116,6 +116,8 @@ if (!$print) {
// color settings
$hexcolor = "#" . ltrim($hexcolor);
putsetting($modcolor, $hexcolor, $techid);
$currentpage = $_SERVER['PHP_SELF'];
header("Refresh: .1; url=$currentpage");
}
if ($resetcustom) mysqli_query($db, "delete from customs where customtech=\"$techid\"");

View File

@@ -130,7 +130,6 @@ if ($add) {
}
// run through the memberlist and modify the table
foreach ($memberlist as $memberdev) {
$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\")");
mysqli_query($db, $addqry);

View File

@@ -35,7 +35,7 @@ $srchploc = $_REQUEST['srchploc'] ?? NULL;
$srchnha = $_REQUEST['srchnha'] ?? NULL;
$srchrepord = $_REQUEST['srchrepord'] ?? NULL;
$srchflags = $_POST['srchflags'] ?? [];
$target = $_REQUEST['target'] ?? ["log","maintform","part"];
$target = $_REQUEST['target'] ?? ["log", "maintform", "part"];
$doparts = PARTS_FUNCTIONS;
$logname = LOG_NAME;

View File

@@ -163,9 +163,9 @@ if ($usertemplateid) {
}
// determine original owner of template
$orig_owner=dblookup($db, "notetemplates","templateid","tech",$templateid);
$orig_owner = dblookup($db, "notetemplates", "templateid", "tech", $templateid);
if ($efftechid != NULL && $efftechid != $orig_owner) {
$operation="add";
$operation = "add";
}
if ($operation == "add") {

View File

@@ -202,7 +202,7 @@ then
else
# proceed with upgrade
# put app in maintenance mode
echo "Putting the applocation in maintenance mode..."
echo "Putting the application in maintenance mode..."
# make sure mod_rewrite is enabled
if [[ ! -e "$APACHE_CONF_DIR/../mods-enabled/rewrite.load" ]]
then