6 Commits

13 changed files with 119 additions and 73 deletions

View File

@@ -280,4 +280,5 @@
is enabled. is enabled.
- Validate all date and time fields to prevent user entered invalid date - Validate all date and time fields to prevent user entered invalid date
formats from crashing php. 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 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.
You'll need to know how to configure your web server. This means where 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 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 allow clients to reach them. You'll also need to know the username and
password of the MySQL administrator. password of the MySQL administrator.
2. Unpack 2. Unpack
Unpack the distribution in a convenient place (such as /tmp or My Documents). Unpack the distribution in a convenient place (such as /tmp or My Documents).
A directory will be created called OpenLog-x.x.x. A directory will be created called OpenLog-x.x.x.
3. Review License 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 4. Run the install script
If installing on a Linux or Unix based system, type ./install.sh at a 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 command prompt. If installing on a Windows based system, double click
install.bat. Follow the prompts. install.bat. Follow the prompts.
5. Check and set Configuration 5. Check and set Configuration
Click on the Administration menu option on the main page to adjust the initial 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 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.

View File

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

View File

@@ -280,4 +280,7 @@
is enabled. is enabled.
- Validate all date and time fields to prevent user entered invalid date - Validate all date and time fields to prevent user entered invalid date
formats from crashing php. 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,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) {

View File

@@ -968,15 +968,15 @@ 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) { if ($isadmin && $operation != NULL) {
$templaterow = mysqli_query($db, "select * from notetemplates where tech!=\"0\" order by tech asc, templatename asc"); $templaterow = mysqli_query($db, "select * from notetemplates where tech!=\"0\" order by tech asc, templatename asc");
} else { } 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) { if ($isadmin && $operation != NULL) {
$techname=dblookup($db, "techs", "techid", "techname", $templateitem["tech"]); $techname = dblookup($db, "techs", "techid", "techname", $templateitem["tech"]);
printf("<option value=\"%s\">%s(%s)</option>", $templateitem["templateid"], $templateitem["templatename"], $techname); printf("<option value=\"%s\">%s(%s)</option>", $templateitem["templateid"], $templateitem["templatename"], $techname);
} else { } else {
printf("<option value=\"%s\">%s</option>", $templateitem["templateid"], $templateitem["templatename"]); printf("<option value=\"%s\">%s</option>", $templateitem["templateid"], $templateitem["templatename"]);
@@ -1020,7 +1020,7 @@ function fix_date($datestring)
if (!$datestring) $datestring = $today; if (!$datestring) $datestring = $today;
$datepatt = '/^\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\d|3[01])$/'; $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); $datestring = mysqli_real_escape_string($db, $datestring);
return $datestring; return $datestring;
} }
@@ -1034,7 +1034,7 @@ function fix_time($timestring)
if (!$timestring) $timestring = $now; if (!$timestring) $timestring = $now;
$timepatt = '/^([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]$/'; $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); $timestring = mysqli_real_escape_string($db, $timestring);
return $timestring; return $timestring;
} }

View File

@@ -9,7 +9,7 @@
include("functions.php"); 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"); header("Location: login.php");
} }
@@ -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 (array_key_exists('login',$_SESSION)) { if (array_key_exists('login', $_SESSION)) {
// show the template selection line // show the template selection line
templateselect($techid, NULL); templateselect($techid, NULL);
} }

View File

@@ -178,7 +178,7 @@ if ($mfadd) {
// add the record to maintforms // add the record to maintforms
if (! $pdatamismatch) { 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) 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);

View File

@@ -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\"");

View File

@@ -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);

View File

@@ -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'] ?? ["log","maintform","part"]; $target = $_REQUEST['target'] ?? ["log", "maintform", "part"];
$doparts = PARTS_FUNCTIONS; $doparts = PARTS_FUNCTIONS;
$logname = LOG_NAME; $logname = LOG_NAME;

View File

@@ -163,9 +163,9 @@ if ($usertemplateid) {
} }
// determine original owner of template // 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) { if ($efftechid != NULL && $efftechid != $orig_owner) {
$operation="add"; $operation = "add";
} }
if ($operation == "add") { if ($operation == "add") {

View File

@@ -202,7 +202,7 @@ then
else else
# proceed with upgrade # proceed with upgrade
# put app in maintenance mode # 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 # make sure mod_rewrite is enabled
if [[ ! -e "$APACHE_CONF_DIR/../mods-enabled/rewrite.load" ]] if [[ ! -e "$APACHE_CONF_DIR/../mods-enabled/rewrite.load" ]]
then then