Incorporated changes for release 1.3.0
This commit is contained in:
@@ -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>";
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user