Incorporated changes for release 1.3.0

This commit is contained in:
2026-02-24 19:59:54 -05:00
parent 3667c4358f
commit 6e5c6e03e3
38 changed files with 610 additions and 179 deletions

View File

@@ -2,7 +2,7 @@
/*
search.php
OpenDRS Online Discrepancy Reporting System
Copyright (C) 2021 Rod Wright
Copyright (C) 2022 Rod Wright
SPDX-License-Identifier: GPL-2.0
*/
@@ -304,14 +304,21 @@ if ($search) {
// group membership
if ($s_group) {
$group_param="Group member:";
$group_param="Group member: ";
// create an array of writeups that are members of the groups specified
$group_writeups=array();
foreach ($s_group as $group_val) {
if ($group_val=="0") $group_dsp="No";
if ($group_val=="1") $group_dsp="Yes";
$group_param="{$group_param} {$group_dsp}, ";
}
$group_param=rtrim($group_param,", ");
}
$wulink_query=mysqli_query($drs_db,"select writeupid from links where linkgroup=$group_val");
while($wulinkrow=mysqli_fetch_assoc($wulink_query)){
$group_writeups[]=$wulinkrow['writeupid'];
}
$group_name=dblookup($drs_db,"groups","id","name",$group_val);
$group_param="{$group_param} <font title=\"{$group_name}\">{$group_val}</font>, ";
}
$group_param=rtrim($group_param,", ");
} else {
$group_param="Group member: any";
}
}
@@ -495,20 +502,30 @@ if (! $exportcsv) {
";
// Group status cell **************
echo "
Group Member?<br>
Group Assignments:<br>
<select style=\"max-width:40%;\" name=\"s_group[]\" id=\"ms-group\" multiple title=\"Select the groups the results should be a member of. If you uncheck them all, this field will not be included in the search.\">
";
if ($search) {
$yesgroupstate=$nogroupstate="";
if (in_array("1",$s_group,true)) $yesgroupstate="selected";
if (in_array("0",$s_group,true)) $nogroupstate="selected";
} else {
$yesgroupstate=$nogroupstate="selected";
}echo "
<select name=\"s_group[]\" id=\"ms-group\" multiple title=\"If you uncheck all, then this field will not be included in the search.\">
<option value=\"1\" $yesgroupstate title=\"Writeup is a member of a group\">Show group members</option>
<option value=\"0\" $nogroupstate title=\"Writeup is not a member of a group\">Show non group members</option>
$grow=mysqli_query($drs_db,"select * from groups order by id asc");
while ($gitem=mysqli_fetch_assoc($grow)) {
if ($gitem["name"]=="") {
$gname="Group ".$gitem["id"];
} else {
$gname=$gitem["name"];
}
if($search) {
if (in_array($gitem["id"],$s_group,true)) {
printf("<option value=\"%s\" selected>%s</option>",$gitem["id"],$gname);
} else {
printf("<option value=\"%s\">%s</option>",$gitem["id"],$gname);
}
} else {
printf("<option value=\"%s\">%s</option>",$gitem["id"],$gname);
}
}
echo "
</select>
";
// ************************************
echo "
</td></tr>
@@ -763,25 +780,10 @@ if ($search) {
while ($eachid=mysqli_fetch_assoc($writeup)) {
$result_ids[]=$eachid['id'];
}
mysqli_data_seek($writeup,0);
// create an array of all ids in groups
$groupmems=array();
$groupmem_qry=mysqli_query($drs_db,"select writeupid from links");
while ($groupmemrow=mysqli_fetch_row($groupmem_qry)) {
$groupmems[]=$groupmemrow[0];
}
$groupmems=array_unique($groupmems);
// determine how many group members are in results
$member_count=0;
foreach($result_ids as $result_id) {
if (in_array($result_id,$groupmems)) $member_count += 1;
}
if (in_array("1",$s_group)) $show_groupmems=true;
if (in_array("0",$s_group)) $show_nongroupmems=true;
if ($show_groupmems == $show_nongroupmems) $num_results=mysqli_num_rows($writeup); //show members and nonmembers
if ($show_groupmems && !$show_nongroupmems) $num_results=$member_count; //only show members
if (!$show_groupmems && $show_nongroupmems) $num_results=mysqli_num_rows($writeup)-$member_count; //only show nonmembers
mysqli_data_seek($writeup,0);
reset($group_writeups);
$num_results=mysqli_num_rows($writeup);
if ($num_results > 0) {
if ($exportcsv) {
// generate csv file
@@ -886,7 +888,6 @@ if ($search) {
rewind($csv_fp);
// send file contents
$csv_contents=stream_get_contents($csv_fp);
//fpassthru($csv_fp);
// Close our pointer and free up memory and /tmp space
fclose($csv_fp);
echo $csv_contents;
@@ -946,11 +947,11 @@ if ($search) {
}
$disc_txt=$disc_txt."<div align=\"right\"><a href=\"groups.php?group=$group_num\"><img src=\"icons/block.png\" alt=\"GRP\" title=\"$imgtitle\"></a></div>";
} else {
$disc_txt=$disc_txt."<div align=\"right\"><a href=\"groups.php\"><img src=\"icons/block.png\" alt=\"GRP\" title=\"View writeup groups\"></a></div>";
$disc_txt=$disc_txt."<div align=\"right\"><a href=\"writeupdetail.php?id={$tablerow['id']}\"><img src=\"icons/block.png\" alt=\"GRP\" title=\"Member of $group_count groups. Click here to view.\"></a></div>";
}
}
if (($show_groupmems == $show_nongroupmems) || ($is_member && $show_groupmems) || (!$is_member && $show_nongroupmems)) {
if(in_array($tablerow['id'],$group_writeups) || count($s_group)==0) {
// print table row
printf(
"<tr>
@@ -985,7 +986,7 @@ if ($search) {
// determine if this is a member of a group
$member_qry=mysqli_query($drs_db,"select linkgroup from links where writeupid=\"{$tablerow['id']}\"");
$is_member=mysqli_num_rows($member_qry);
if (($show_groupmems == $show_nongroupmems) || ($is_member && $show_groupmems) || (!$is_member && $show_nongroupmems)) {
if(in_array($tablerow['id'],$group_writeups) || count($s_group)==0) {
displaywriteup($tablerow['id']);
echo "<br>";
}