version 1.100, 2004/07/21 21:47:13
|
version 1.101, 2004/07/21 23:57:24
|
Line 72 sub list_discussion {
|
Line 72 sub list_discussion {
|
if ($mode eq 'board') { $discussiononly=1; } |
if ($mode eq 'board') { $discussiononly=1; } |
unless ($ENV{'request.course.id'}) { return ''; } |
unless ($ENV{'request.course.id'}) { return ''; } |
my $crs='/'.$ENV{'request.course.id'}; |
my $crs='/'.$ENV{'request.course.id'}; |
|
my $cid=$ENV{'request.course.id'}; |
if ($ENV{'request.course.sec'}) { |
if ($ENV{'request.course.sec'}) { |
$crs.='_'.$ENV{'request.course.sec'}; |
$crs.='_'.$ENV{'request.course.sec'}; |
} |
} |
Line 96 sub list_discussion {
|
Line 97 sub list_discussion {
|
my $showkey = $ressymb.'_showonlyunread'; |
my $showkey = $ressymb.'_showonlyunread'; |
my $visitkey = $ressymb.'_visit'; |
my $visitkey = $ressymb.'_visit'; |
my $ondispkey = $ressymb.'_markondisp'; |
my $ondispkey = $ressymb.'_markondisp'; |
my %dischash = &Apache::lonnet::get('nohist_'.$ENV{'request.course.id'}.'_discuss',[$lastkey,$showkey,$visitkey,$ondispkey],$ENV{'user.domain'},$ENV{'user.name'}); |
my $userpickkey = $ressymb.'_userpick'; |
|
my %dischash = &Apache::lonnet::get('nohist_'.$ENV{'request.course.id'}.'_discuss',[$lastkey,$showkey,$visitkey,$ondispkey,$userpickkey],$ENV{'user.domain'},$ENV{'user.name'}); |
my %discinfo = (); |
my %discinfo = (); |
my $showonlyunread = 0; |
my $showonlyunread = 0; |
my $markondisp = 0; |
my $markondisp = 0; |
Line 104 sub list_discussion {
|
Line 106 sub list_discussion {
|
my $previous = 0; |
my $previous = 0; |
my $visit = 0; |
my $visit = 0; |
my $newpostsflag = 0; |
my $newpostsflag = 0; |
|
my @posters = split/\&/,$dischash{$userpickkey}; |
|
|
# Retain identification of "NEW" posts identified in last display, if continuing 'previous' browsing of posts. |
# Retain identification of "NEW" posts identified in last display, if continuing 'previous' browsing of posts. |
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},['previous','sortposts']); |
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},['previous','sortposts','rolefilter','statusfilter','sectionpick','totposters']); |
my $sortposts = $ENV{'form.sortposts'}; |
my $sortposts = $ENV{'form.sortposts'}; |
|
my $rolefilter = $ENV{'form.rolefilter'}; |
|
my $statusfilter = $ENV{'form.statusfilter'}; |
|
my $sectionpick = $ENV{'form.sectionpick'}; |
|
my $totposters = $ENV{'form.totposters'}; |
$previous = $ENV{'form.previous'}; |
$previous = $ENV{'form.previous'}; |
if ($previous > 0) { |
if ($previous > 0) { |
$prevread = $previous; |
$prevread = $previous; |
Line 117 sub list_discussion {
|
Line 124 sub list_discussion {
|
} |
} |
} |
} |
|
|
|
# Get information about students and non-stundents in course for filtering display of posts |
|
my %roleshash = (); |
|
my %roleinfo = (); |
|
if ($rolefilter) { |
|
%roleshash = &Apache::lonnet::dump('nohist_userroles',$ENV{'course.'.$ENV{'request.course.id'}.'.domain'},$ENV{'course.'.$ENV{'request.course.id'}.'.num'}); |
|
foreach (keys %roleshash) { |
|
my ($role,$uname,$udom,$sec) = split/:/,$_; |
|
my ($end,$start) = split/:/,$roleshash{$_}; |
|
my $now = time; |
|
my $status = 'Active'; |
|
if (($now < $start) || ($end > 0 && $now > $end)) { |
|
$status = 'Expired'; |
|
} |
|
push @{$roleinfo{$uname.':'.$udom}}, $role.':'.$sec.':'.$status; |
|
} |
|
my ($classlist) = &Apache::loncoursedata::get_classlist( |
|
$ENV{'request.course.id'}, |
|
$ENV{'course.'.$ENV{'request.course.id'}.'.domain'}, |
|
$ENV{'course.'.$ENV{'request.course.id'}.'.num'}); |
|
my $sec_index = &Apache::loncoursedata::CL_SECTION(); |
|
my $status_index = &Apache::loncoursedata::CL_STATUS(); |
|
while (my ($student,$data) = each %$classlist) { |
|
my ($section,$status) = ($data->[$sec_index], |
|
$data->[$status_index]); |
|
push @{$roleinfo{$student}}, 'st:'.$section.':'.$status; |
|
} |
|
} |
|
|
# Get discussion display default settings for user |
# Get discussion display default settings for user |
my %userenv = &Apache::lonnet::get('environment',['discdisplay','discmarkread'],$ENV{'user.domain'},$ENV{'user.name'}); |
my %userenv = &Apache::lonnet::get('environment',['discdisplay','discmarkread'],$ENV{'user.domain'},$ENV{'user.name'}); |
my $discdisplay=$userenv{'discdisplay'}; |
my $discdisplay=$userenv{'discdisplay'}; |
Line 149 sub list_discussion {
|
Line 184 sub list_discussion {
|
my $viewgrades=(&Apache::lonnet::allowed('vgr',$crs) |
my $viewgrades=(&Apache::lonnet::allowed('vgr',$crs) |
&& ($symb=~/\.(problem|exam|quiz|assess|survey|form)$/)); |
&& ($symb=~/\.(problem|exam|quiz|assess|survey|form)$/)); |
my @discussionitems=(); |
my @discussionitems=(); |
|
my %shown = (); |
|
my @posteridentity=(); |
my %contrib=&Apache::lonnet::restore($ressymb,$ENV{'request.course.id'}, |
my %contrib=&Apache::lonnet::restore($ressymb,$ENV{'request.course.id'}, |
$ENV{'course.'.$ENV{'request.course.id'}.'.domain'}, |
$ENV{'course.'.$ENV{'request.course.id'}.'.domain'}, |
$ENV{'course.'.$ENV{'request.course.id'}.'.num'}); |
$ENV{'course.'.$ENV{'request.course.id'}.'.num'}); |
Line 357 sub list_discussion {
|
Line 394 sub list_discussion {
|
#figure out at what position this needs to print |
#figure out at what position this needs to print |
my $thisindex=$idx; |
my $thisindex=$idx; |
if ( (($ENV{'environment.threadeddiscussion'}) && (($sortposts eq '') || ($sortposts eq 'ascdate'))) || ($sortposts eq 'thread')) { |
if ( (($ENV{'environment.threadeddiscussion'}) && (($sortposts eq '') || ($sortposts eq 'ascdate'))) || ($sortposts eq 'thread')) { |
$thisindex=$origindex.substr('00'.$replies[$depth[$idx]],-2,2); |
$thisindex=$origindex.substr('00'.$replies[$depth[$idx]],-2,2); |
} |
} |
$alldiscussion{$thisindex}=$idx; |
$alldiscussion{$thisindex}=$idx; |
$index[$idx]=$thisindex; |
$shown{$idx} = 0; |
|
$index[$idx]=$thisindex; |
my $spansize = 2; |
my $spansize = 2; |
if ($showonlyunread && $prevread > $posttime) { |
if ($showonlyunread && $prevread > $posttime) { |
$notshown{$idx} = 1; |
$notshown{$idx} = 1; |
} else { |
} else { |
|
my $uname = $contrib{$idx.':sendername'}; |
|
my $udom = $contrib{$idx.':senderdomain'}; |
|
my $poster = $uname.':'.$udom; |
|
my $rolematch = ''; |
|
my $skiptest = 1; |
|
if ($totposters > 0) { |
|
if (grep/^$poster$/,@posters) { |
|
$shown{$idx} = 1; |
|
} |
|
} else { |
|
if ($rolefilter) { |
|
if ($rolefilter eq 'all') { |
|
$rolematch = '([^:]+)'; |
|
} else { |
|
$rolematch = $rolefilter; |
|
$skiptest = 0; |
|
} |
|
} |
|
if ($sectionpick) { |
|
if ($sectionpick eq 'all') { |
|
$rolematch .= ':([^:]*)'; |
|
} else { |
|
$rolematch .= ':'.$sectionpick; |
|
$skiptest = 0; |
|
} |
|
} |
|
if ($statusfilter) { |
|
if ($statusfilter eq 'all') { |
|
$rolematch .= ':([^:]+)'; |
|
} else { |
|
$rolematch .= ':'.$statusfilter; |
|
$skiptest = 0; |
|
} |
|
} |
|
if ($skiptest) { |
|
$shown{$idx} = 1; |
|
} else { |
|
foreach my $role (@{$roleinfo{$poster}}) { |
|
if ($role =~ m/^$rolematch$/) { |
|
$shown{$idx} = 1; |
|
last; |
|
} |
|
} |
|
} |
|
} |
|
} |
|
unless ($notshown{$idx} == 1) { |
if ($prevread > 0 && $prevread <= $posttime) { |
if ($prevread > 0 && $prevread <= $posttime) { |
$newitem{$idx} = 1; |
$newitem{$idx} = 1; |
$discussionitems[$idx] .= ' |
$discussionitems[$idx] .= ' |
Line 523 sub list_discussion {
|
Line 608 sub list_discussion {
|
unless (($sortposts eq 'thread') || ($sortposts eq 'ascdate' && $ENV{'environment.threadeddiscussion'})) { |
unless (($sortposts eq 'thread') || ($sortposts eq 'ascdate' && $ENV{'environment.threadeddiscussion'})) { |
$alldiscussion{$_} = $_; |
$alldiscussion{$_} = $_; |
} |
} |
unless ($notshown{$alldiscussion{$_}} eq '1') { |
unless ( ($notshown{$alldiscussion{$_}} eq '1') || ($shown{$alldiscussion{$_}} == 0) ) { |
if ($outputtarget ne 'tex') { |
if ($outputtarget ne 'tex') { |
$discussion.="\n<tr>"; |
$discussion.="\n<tr>"; |
} else { |
} else { |
Line 935 sub print_sortfilter_options {
|
Line 1020 sub print_sortfilter_options {
|
'diop' => 'Display Options', |
'diop' => 'Display Options', |
'curr' => 'Current setting ', |
'curr' => 'Current setting ', |
'actn' => 'Action', |
'actn' => 'Action', |
'prca' => 'Options can be set that control the sort order of the posts, in |
'prca' => 'Options can be set that control the sort order of the posts, in addition to which posts are displayed.', |
addition to which posts are displayed.', |
|
'soor' => 'Sort order', |
'soor' => 'Sort order', |
'disp' => 'Specific user roles', |
'disp' => 'Specific user roles', |
'actv' => 'Specific role status', |
'actv' => 'Specific role status', |
'spse' => 'Specific sections', |
'spse' => 'Specific sections', |
'psub' => 'Pick specific users (by name)', |
'psub' => 'Pick specific users (by name)', |
'shal' => 'Show a list of current posters', |
'shal' => 'Show a list of current posters' |
'yhni' => 'You have not indicated that you do not wish to change any of the discussion settings', |
|
'ywbr' => 'You will be returned to the previous page if you click OK.' |
|
); |
); |
$r->print(<<END); |
$r->print(<<END); |
<html> |
<html> |
Line 981 $bodytag
|
Line 1063 $bodytag
|
</td> |
</td> |
<td> </td> |
<td> </td> |
<td> |
<td> |
<select name="filterposts" multiple="true" size="5"> |
<select name="rolefilter" multiple="true" size="5"> |
<option value="all" />All users |
<option value="all" />All users |
<option value="st" />Students |
<option value="st" />Students |
<option value="cc" />Course Coordinators |
<option value="cc" />Course Coordinators |
Line 995 $bodytag
|
Line 1077 $bodytag
|
<td> |
<td> |
<select name="statusfilter"> |
<select name="statusfilter"> |
<option value="all" />Roles of any status |
<option value="all" />Roles of any status |
<option value="act" />Only active roles |
<option value="Active" />Only active roles |
<option value="ina" />Only inactive roles |
<option value="Expired" />Only inactive roles |
</select> |
</select> |
</td> |
</td> |
<td> </td> |
<td> </td> |
Line 1022 $bodytag
|
Line 1104 $bodytag
|
END |
END |
} |
} |
|
|
|
sub print_showposters { |
|
my ($r,$symb,$previous,$feedurl,$sortposts) = @_; |
|
# backward compatibility (bulletin boards used to be 'wrapped') |
|
if ($feedurl=~m|^/adm/wrapper/adm/.*/bulletinboard$|) { |
|
$feedurl=~s|^/adm/wrapper||; |
|
} |
|
# backward compatibility (bulletin boards used to be 'wrapped') |
|
my $ressymb=$symb; |
|
if ($ressymb =~ /bulletin___\d+___/) { |
|
unless ($ressymb =~ m|bulletin___\d+___adm/wrapper|) { |
|
$ressymb=~s|(bulletin___\d+___)|$1adm/wrapper|; |
|
} |
|
} |
|
my $crs='/'.$ENV{'request.course.id'}; |
|
$crs=~s/\_/\//g; |
|
my $seeid=&Apache::lonnet::allowed('rin',$crs); |
|
my %contrib=&Apache::lonnet::restore($ressymb,$ENV{'request.course.id'}, |
|
$ENV{'course.'.$ENV{'request.course.id'}.'.domain'}, |
|
$ENV{'course.'.$ENV{'request.course.id'}.'.num'}); |
|
my %namesort = (); |
|
my %postcounts = (); |
|
my %lt=&Apache::lonlocal::texthash( |
|
'diso' => 'Discussion filtering options', |
|
); |
|
my $bodytag=&Apache::loncommon::bodytag('Discussion options', |
|
'',''); |
|
if ($contrib{'version'}) { |
|
for (my $idx=1;$idx<=$contrib{'version'};$idx++) { |
|
my $hidden=($contrib{'hidden'}=~/\.$idx\./); |
|
my $deleted=($contrib{'deleted'}=~/\.$idx\./); |
|
unless ((($hidden) && (!$seeid)) || ($deleted)) { |
|
if ((!$contrib{$idx.':anonymous'}) || ($seeid)) { |
|
my %names = &Apache::lonnet::get('environment',['firstname','lastname'],$contrib{$idx.':senderdomain'},$contrib{$idx.':sendername'}); |
|
my $lastname = $names{'lastname'}; |
|
my $firstname = $names{'firstname'}; |
|
if ($lastname eq '') { |
|
$lastname = '_'; |
|
} |
|
if ($firstname eq '') { |
|
$firstname = '_'; |
|
} |
|
unless (defined($namesort{$lastname})) { |
|
%{$namesort{$lastname}} = (); |
|
} |
|
my $poster = $contrib{$idx.':sendername'}.':'.$contrib{$idx.':senderdomain'}; |
|
$postcounts{$poster} ++; |
|
if (defined($namesort{$lastname}{$firstname})) { |
|
if (!grep/^$poster$/,@{$namesort{$lastname}{$firstname}}) { |
|
push @{$namesort{$lastname}{$firstname}}, $poster; |
|
} |
|
} else { |
|
@{$namesort{$lastname}{$firstname}} = ("$poster"); |
|
} |
|
} |
|
} |
|
} |
|
} |
|
$r->print(<<END); |
|
<html> |
|
<head> |
|
<title>$lt{'diso'}</title> |
|
<meta http-equiv="pragma" content="no-cache" /> |
|
</head> |
|
$bodytag |
|
<form name="pickpostersform" method="post"> |
|
<table border="0"> |
|
<tr> |
|
<td bgcolor="#777777"> |
|
<table border="0" cellpadding="3"> |
|
<tr bgcolor="#e6ffff"> |
|
<td><b>No.</b></td> |
|
<td><b>Select</b></td> |
|
<td><b>Fullname</b><font color="#999999">(Username/domain)</font></td> |
|
<td><b>Posts</td> |
|
</tr> |
|
END |
|
my $count = 0; |
|
foreach my $last (sort keys %namesort) { |
|
foreach my $first (sort keys %{$namesort{$last}}) { |
|
foreach (sort @{$namesort{$last}{$first}}) { |
|
my ($uname,$udom) = split/:/,$_; |
|
if (!$uname || !$udom) { |
|
next; |
|
} else { |
|
$count ++; |
|
$r->print('<tr bgcolor="#ffffe6"><td align="right">'.$count.'</td><td align="center"><input name="stuinfo" type="checkbox" value="'.$_.'" /></td><td>'.$last.', '.$first.' ('.$uname.','.$udom.')</td><td>'.$postcounts{$_}.'</td></tr>'); |
|
} |
|
} |
|
} |
|
} |
|
$r->print(<<END); |
|
</table> |
|
</td> |
|
</tr> |
|
</table> |
|
<br /> |
|
<input type="hidden" name="sortposts" value="$sortposts" /> |
|
<input type="hidden" name="userpick" value="$symb" /> |
|
<input type="button" name="store" value="Display posts" onClick="javascript:document.pickpostersform.submit()" /> |
|
</form> |
|
</body> |
|
</html> |
|
END |
|
} |
|
|
sub fail_redirect { |
sub fail_redirect { |
my ($r,$feedurl) = @_; |
my ($r,$feedurl) = @_; |
if ($feedurl=~/^\/adm\//) { $feedurl.='?register=1' }; |
if ($feedurl=~/^\/adm\//) { $feedurl.='?register=1' }; |
Line 1040 ENDFAILREDIR
|
Line 1227 ENDFAILREDIR
|
} |
} |
|
|
sub redirect_back { |
sub redirect_back { |
my ($r,$feedurl,$typestyle,$sendsomething,$sendposts,$status,$previous,$sort) = @_; |
my ($r,$feedurl,$typestyle,$sendsomething,$sendposts,$status,$previous,$sort,$rolefilter,$statusfilter,$secpick,$numpicks) = @_; |
my $sorttag = ''; |
my $sorttag = ''; |
my $prevtag = ''; |
my $roletag = ''; |
|
my $statustag = ''; |
|
my $sectag = ''; |
|
my $userpicktag = ''; |
my $qrystr = ''; |
my $qrystr = ''; |
|
my $prevtag = ''; |
# backward compatibility (bulletin boards used to be 'wrapped') |
# backward compatibility (bulletin boards used to be 'wrapped') |
if ($feedurl=~m|^/adm/wrapper/adm/.*/bulletinboard$|) { |
if ($feedurl=~m|^/adm/wrapper/adm/.*/bulletinboard$|) { |
$feedurl=~s|^/adm/wrapper||; |
$feedurl=~s|^/adm/wrapper||; |
Line 1066 sub redirect_back {
|
Line 1257 sub redirect_back {
|
$feedurl .= '?'.$sortqry; |
$feedurl .= '?'.$sortqry; |
} |
} |
$sorttag = '<input type="hidden" name="sortposts" value="'.$sort.'" />'; |
$sorttag = '<input type="hidden" name="sortposts" value="'.$sort.'" />'; |
|
if ( (defined($numpicks)) && ($numpicks > 0) ) { |
|
my $userpickqry = 'totposters='.$numpicks; |
|
$feedurl .= '&'.$userpickqry; |
|
$userpicktag = '<input type="hidden" name="totposters" value="'.$numpicks.'" />'; |
|
} else { |
|
my $roleqry = 'rolefilter='.$rolefilter; |
|
$feedurl .= '&'.$roleqry; |
|
$roletag = '<input type="hidden" name="rolefilter" value="'.$rolefilter.'" />'; |
|
$feedurl .= '&statusfilter='.$statusfilter; |
|
$statustag ='<input type="hidden" name="statusfilter" value="'.$statusfilter.'" />'; |
|
$feedurl .= '§ionpick='.$secpick; |
|
$sectag = '<input type="hidden" name="sectionpick" value="'.$secpick.'" />'; |
|
} |
} |
} |
$r->print (<<ENDREDIR); |
$r->print (<<ENDREDIR); |
<html> |
<html> |
Line 1082 $typestyle
|
Line 1286 $typestyle
|
<form name="reldt" action="$feedurl" target="loncapaclient"> |
<form name="reldt" action="$feedurl" target="loncapaclient"> |
$prevtag |
$prevtag |
$sorttag |
$sorttag |
|
$statustag |
|
$roletag |
|
$sectag |
|
$userpicktag |
</form> |
</form> |
</body> |
</body> |
</html> |
</html> |
Line 1398 sub handler {
|
Line 1606 sub handler {
|
# --------------------------- Get query string for limited number of parameters |
# --------------------------- Get query string for limited number of parameters |
|
|
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, |
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, |
['hide','unhide','deldisc','postdata','preview','replydisc','threadedon','threadedoff','onlyunread','allposts','previous','markread','markonread','markondisp','modifydisp','changes','navmaps','navurl','sortfilter','sortposts','applysort']); |
['hide','unhide','deldisc','postdata','preview','replydisc','threadedon','threadedoff','onlyunread','allposts','previous','markread','markonread','markondisp','modifydisp','changes','navmaps','navurl','sortfilter','sortposts','applysort','rolefilter','statusfilter','sectionpick','posterlist','userpick']); |
|
if ($ENV{'form.posterlist'}) { |
|
&Apache::loncommon::content_type($r,'text/html'); |
|
$r->send_http_header; |
|
my $symb=$ENV{'form.posterlist'}; |
|
my $sortposts = $ENV{'form.sortposts'}; |
|
my ($map,$ind,$url)=&Apache::lonnet::decode_symb($symb); |
|
my $previous=$ENV{'form.previous'}; |
|
my $feedurl = &Apache::lonnet::clutter($url); |
|
# backward compatibility (bulletin boards used to be 'wrapped') |
|
if ($feedurl=~m|^/adm/wrapper/adm/.*/bulletinboard$|) { |
|
$feedurl=~s|^/adm/wrapper||; |
|
} |
|
&print_showposters($r,$symb,$previous,$feedurl,$sortposts); |
|
return OK; |
|
} |
|
if ($ENV{'form.userpick'}) { |
|
&Apache::loncommon::content_type($r,'text/html'); |
|
$r->send_http_header; |
|
my $symb=$ENV{'form.userpick'}; |
|
my ($map,$ind,$url)=&Apache::lonnet::decode_symb($symb); |
|
my $previous=$ENV{'form.previous'}; |
|
# backward compatibility (bulletin boards used to be 'wrapped') |
|
my $ressymb=$symb; |
|
unless ($ressymb =~ m|bulletin___\d+___adm/wrapper|) { |
|
$ressymb=~s|(bulletin___\d+___)|$1adm/wrapper|; |
|
} |
|
my $sort=$ENV{'form.sortposts'}; |
|
my @posters = (); |
|
if (ref($ENV{'form.stuinfo'}) eq 'ARRAY') { |
|
@posters = $ENV{'form.stuinfo'}; |
|
} else { |
|
$posters[0] = $ENV{'form.stuinfo'}; |
|
} |
|
my $numpicks = @posters; |
|
if (defined($ENV{'form.userpick'})) { |
|
my %discinfo = (); |
|
$discinfo{$ressymb.'_userpick'} = join('&',@posters); |
|
&Apache::lonnet::put('nohist_'.$ENV{'request.course.id'}.'_discuss',\%discinfo,$ENV{'user.domain'},$ENV{'user.name'}); |
|
} |
|
my $feedurl = &Apache::lonnet::clutter($url); |
|
# backward compatibility (bulletin boards used to be 'wrapped') |
|
if ($feedurl=~m|^/adm/wrapper/adm/.*/bulletinboard$|) { |
|
$feedurl=~s|^/adm/wrapper||; |
|
} |
|
&redirect_back($r,$feedurl,&mt('Changed sort/filter').'<br />','0','0','',$previous,$sort,'','','',$numpicks); |
|
return OK; |
|
} |
if ($ENV{'form.applysort'}) { |
if ($ENV{'form.applysort'}) { |
&Apache::loncommon::content_type($r,'text/html'); |
&Apache::loncommon::content_type($r,'text/html'); |
$r->send_http_header; |
$r->send_http_header; |
Line 1406 sub handler {
|
Line 1661 sub handler {
|
my ($map,$ind,$url)=&Apache::lonnet::decode_symb($symb); |
my ($map,$ind,$url)=&Apache::lonnet::decode_symb($symb); |
my $previous=$ENV{'form.previous'}; |
my $previous=$ENV{'form.previous'}; |
my $sort = $ENV{'form.sortposts'}; |
my $sort = $ENV{'form.sortposts'}; |
my $filter = $ENV{'form.filterposts'}; |
my $rolefilter = $ENV{'form.rolefilter'}; |
my $statusfilter = $ENV{'form.statusfilter'}; |
my $statusfilter = $ENV{'form.statusfilter'}; |
my $secpick = $ENV{'form.sectionpick'}; |
my $secpick = $ENV{'form.sectionpick'}; |
my $feedurl = &Apache::lonnet::clutter($url); |
my $feedurl = &Apache::lonnet::clutter($url); |
Line 1414 sub handler {
|
Line 1669 sub handler {
|
if ($feedurl=~m|^/adm/wrapper/adm/.*/bulletinboard$|) { |
if ($feedurl=~m|^/adm/wrapper/adm/.*/bulletinboard$|) { |
$feedurl=~s|^/adm/wrapper||; |
$feedurl=~s|^/adm/wrapper||; |
} |
} |
&redirect_back($r,$feedurl,&mt('Changed sort/filter').'<br />','0','0','',$previous,$sort,$filter,$secpick); |
&redirect_back($r,$feedurl,&mt('Changed sort/filter').'<br />','0','0','',$previous,$sort,$rolefilter,$statusfilter,$secpick); |
return OK; |
return OK; |
} elsif ($ENV{'form.sortfilter'}) { |
} elsif ($ENV{'form.sortfilter'}) { |
&Apache::loncommon::content_type($r,'text/html'); |
&Apache::loncommon::content_type($r,'text/html'); |