--- loncom/interface/lonfeedback.pm 2004/11/15 21:51:19 1.134
+++ loncom/interface/lonfeedback.pm 2004/11/15 23:02:45 1.138
@@ -1,7 +1,7 @@
# The LearningOnline Network
# Feedback
#
-# $Id: lonfeedback.pm,v 1.134 2004/11/15 21:51:19 albertel Exp $
+# $Id: lonfeedback.pm,v 1.138 2004/11/15 23:02:45 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -132,7 +132,6 @@ sub list_discussion {
$prevread = $dischash{$lastkey};
}
}
- &Apache::lonnet::logthis("\n last read r symb ".$lastkey);
# Get information about students and non-students in course for filtering display of posts
my %roleshash = ();
@@ -360,17 +359,17 @@ imscp_v1p1.xsd http://www.imsglobal.org/
'
';
if ($visible>2) {
$discussion.=''.
- ' '.
- '
- | ';
if ($newpostsflag) {
if (!$markondisp) {
- $discussion .=''.&mt('Mark NEW posts no longer new').' ';
+ $discussion .=' | '.&mt('Mark NEW posts no longer new').' ';
} else {
$discussion .= ' | | ';
}
@@ -1475,7 +1474,8 @@ END
sub print_display_options {
my ($r,$symb,$previous,$dispchgA,$dispchgB,$markchg,$toggchg,$feedurl) = @_;
- &dewrapper(\$feedurl);
+ &Apache::loncommon::content_type($r,'text/html');
+ $r->send_http_header;
my $function = &Apache::loncommon::get_users_function();
my $tabcolor = &Apache::loncommon::designparm($function.'.tabbg',
@@ -1656,6 +1656,7 @@ $lt{'sdpf'}
$lt{'prca'} - $l
+
@@ -1674,7 +1675,9 @@ END
sub print_sortfilter_options {
my ($r,$symb,$previous,$feedurl) = @_;
- &dewrapper(\$feedurl);
+ &Apache::loncommon::content_type($r,'text/html');
+ $r->send_http_header;
+
my @sections = ();
my $section_sel = '';
my $numsections = 0;
@@ -1997,6 +2000,9 @@ sub redirect_back {
my $qrystr = '';
my $prevtag = '';
+ &Apache::loncommon::content_type($r,'text/html');
+ $r->send_http_header;
+
&dewrapper(\$feedurl);
if ($feedurl=~/^\/adm\//) { $feedurl.='?register=1' };
if ($previous > 0) {
@@ -2396,6 +2402,8 @@ sub adddiscuss {
sub show_preview {
my $r=shift;
+ &Apache::loncommon::content_type($r,'text/html');
+ $r->send_http_header;
my $message=&clear_out_html($ENV{'form.comment'});
$message=~s/\n/\
/g;
$message=&Apache::lonspeller::markeduptext($message);
@@ -2729,7 +2737,7 @@ sub handler {
# --------------------------- Get query string for limited number of parameters
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},
- ['hide','unhide','deldisc','postdata','preview','replydisc','editdisc','threadedon','threadedoff','onlyunread','allposts','onlyunmark','previous','markread','markonread','markondisp','toggoff','toggon','modifydisp','changes','navtime','navmaps','navurl','sortfilter','sortposts','applysort','rolefilter','statusfilter','sectionpick','posterlist','userpick','attach','origpage','currnewattach','deloldattach','keepold','allversions','export']);
+ ['hide','unhide','deldisc','postdata','preview','replydisc','editdisc','cmd','symb','onlyunread','allposts','onlyunmark','previous','markread','markonread','markondisp','toggoff','toggon','modifydisp','changes','navtime','navmaps','navurl','sortposts','applysort','rolefilter','statusfilter','sectionpick','posterlist','userpick','attach','origpage','currnewattach','deloldattach','keepold','allversions','export']);
if ($ENV{'form.discsymb'}) {
my ($symb,$feedurl) = &get_feedurl_and_clean_symb($ENV{'form.discsymb'});
my $readkey = $symb.'_read';
@@ -2752,8 +2760,6 @@ sub handler {
&Apache::lonnet::put('nohist_'.$ENV{'request.course.id'}.'_discuss',
\%readinghash,$ENV{'user.domain'},$ENV{'user.name'});
}
- &Apache::loncommon::content_type($r,'text/html');
- $r->send_http_header;
&redirect_back($r,$feedurl,&mt('Marked postings read/unread').'
',
'0','0','',$ENV{'form.previous'},'','','',);
return OK;
@@ -2793,16 +2799,12 @@ END
return OK;
}
if ($ENV{'form.posterlist'}) {
- &Apache::loncommon::content_type($r,'text/html');
- $r->send_http_header;
my ($symb,$feedurl)=&get_feedurl_and_clean_symb($ENV{'form.applysort'});
&print_showposters($r,$symb,$ENV{'form.previous'},$feedurl,
$ENV{'form.sortposts'});
return OK;
}
if ($ENV{'form.userpick'}) {
- &Apache::loncommon::content_type($r,'text/html');
- $r->send_http_header;
my @posters = &Apache::loncommon::get_env_multiple('form.stuinfo');
my ($symb,$feedurl)=&get_feedurl_and_clean_symb($ENV{'form.userpick'});
my $numpicks = @posters;
@@ -2816,18 +2818,14 @@ END
return OK;
}
if ($ENV{'form.applysort'}) {
- &Apache::loncommon::content_type($r,'text/html');
- $r->send_http_header;
my ($symb,$feedurl)=&get_feedurl_and_clean_symb($ENV{'form.applysort'});
&redirect_back($r,$feedurl,&mt('Changed sort/filter').'
','0','0',
'',$ENV{'form.previous'},$ENV{'form.sortposts'},
$ENV{'form.rolefilter'},$ENV{'form.statusfilter'},
$ENV{'form.secpick'});
return OK;
- } elsif ($ENV{'form.sortfilter'}) {
- &Apache::loncommon::content_type($r,'text/html');
- $r->send_http_header;
- my ($symb,$feedurl)=&get_feedurl_and_clean_symb($ENV{'form.sortfilter'});
+ } elsif ($ENV{'form.cmd'} eq 'sortfilter') {
+ my ($symb,$feedurl)=&get_feedurl_and_clean_symb($ENV{'form.symb'});
&print_sortfilter_options($r,$symb,$ENV{'form.previous'},$feedurl);
return OK;
} elsif ($ENV{'form.navtime'}) {
@@ -2889,8 +2887,6 @@ $textline
ENDREDIR
return OK;
} elsif ($ENV{'form.modifydisp'}) {
- &Apache::loncommon::content_type($r,'text/html');
- $r->send_http_header;
my ($symb,$feedurl)=&get_feedurl_and_clean_symb($ENV{'form.modifydisp'});
my ($dispchgA,$dispchgB,$markchg,$toggchg) =
split(/_/,$ENV{'form.changes'});
@@ -2900,86 +2896,41 @@ ENDREDIR
} elsif ($ENV{'form.markondisp'} || $ENV{'form.markonread'} ||
$ENV{'form.allposts'} || $ENV{'form.onlyunread'} ||
$ENV{'form.onlyunmark'} || $ENV{'form.toggoff'} ||
- $ENV{'form.toggon'} ) {
- &Apache::loncommon::content_type($r,'text/html');
- $r->send_http_header;
- my $feedurl;
- if ( ($ENV{'form.toggoff'}) || ($ENV{'form.toggon'}) ) {
+ $ENV{'form.toggon'} || $ENV{'form.markread'}) {
+ my ($symb,$feedurl)=&get_feedurl_and_clean_symb($ENV{'form.symb'});
+ my %discinfo;
# ------------------------ Modify setting for read/unread toggle for each post
- my $symb=$ENV{'form.toggoff'}?$ENV{'form.toggoff'}:$ENV{'form.toggon'};
- ($symb,$feedurl)=&get_feedurl_and_clean_symb($symb);
- my %discinfo;
- $discinfo{$symb.'_readtoggle'}=1;
- if ($ENV{'form.toggoff'}) { $discinfo{$symb.'_readtoggle'}=0; }
- &Apache::lonnet::put('nohist_'.$ENV{'request.course.id'}.'_discuss',
- \%discinfo,$ENV{'user.domain'},$ENV{'user.name'});
- }
- if (($ENV{'form.markondisp'}) || ($ENV{'form.markonread'})) {
+ if ($ENV{'form.toggoff'}) { $discinfo{$symb.'_readtoggle'}=0; }
+ if ($ENV{'form.toggon'}) { $discinfo{$symb.'_readtoggle'}=1; }
# --------- Modify setting for identification of 'NEW' posts in this discussion
- my $symb=$ENV{'form.markondisp'}?$ENV{'form.markondisp'}:$ENV{'form.markonread'};
- ($symb,$feedurl)=&get_feedurl_and_clean_symb($symb);
- my %discinfo;
- my $lastkey = $symb.'_lastread';
- my $ondispkey = $symb.'_markondisp';
- if ($ENV{'form.markondisp'}) {
- $discinfo{$lastkey} = time;
- $discinfo{$ondispkey} = 1;
- } elsif ($ENV{'form.markonread'}) {
- if ( $ENV{'form.previous'} > 0 ) {
- $discinfo{$lastkey} = $ENV{'form.previous'};
- }
- $discinfo{$ondispkey} = 0;
- }
- &Apache::lonnet::put('nohist_'.$ENV{'request.course.id'}.'_discuss',
- \%discinfo,$ENV{'user.domain'},$ENV{'user.name'});
+ if ($ENV{'form.markondisp'}) {
+ $discinfo{$symb.'_lastread'} = time;
+ $discinfo{$symb.'_markondisp'} = 1;
+ }
+ if ($ENV{'form.markonread'}) {
+ if ( $ENV{'form.previous'} > 0 ) {
+ $discinfo{$symb.'_lastread'} = $ENV{'form.previous'};
+ }
+ $discinfo{$symb.'_markondisp'} = 0;
}
- if ($ENV{'form.allposts'} || $ENV{'form.onlyunread'} ||
- $ENV{'form.onlyunmark'}) {
# --------------------------------- Modify display setting for this discussion
- my $symb;
- if ($ENV{'form.allposts'}) {
- $symb = $ENV{'form.allposts'};
- } elsif ($ENV{'form.onlyunread'}) {
- $symb = $ENV{'form.onlyunread'};
- } else {
- $symb = $ENV{'form.onlyunmark'};
- }
- ($symb,$feedurl)=&get_feedurl_and_clean_symb($symb);
- my %discinfo;
- if ($ENV{'form.allposts'}) {
- $discinfo{$symb.'_showonlyunread'} = 0;
- $discinfo{$symb.'_showonlyunmark'} = 0;
- } elsif ($ENV{'form.onlyunread'}) {
- $discinfo{$symb.'_showonlyunread'} = 1;
- } else {
- $discinfo{$symb.'_showonlyunmark'} = 1;
- }
- &Apache::lonnet::put('nohist_'.$ENV{'request.course.id'}.'_discuss',
- \%discinfo,$ENV{'user.domain'},$ENV{'user.name'});
+ if ($ENV{'form.allposts'}) {
+ $discinfo{$symb.'_showonlyunread'} = 0;
+ $discinfo{$symb.'_showonlyunmark'} = 0;
}
+ if ($ENV{'form.onlyunread'}) { $discinfo{$symb.'_showonlyunread'} = 1; }
+ if ($ENV{'form.onlyunmark'}) { $discinfo{$symb.'_showonlyunmark'} = 1; }
+# ----------------------------------------------------- Mark new posts not NEW
+ if ($ENV{'form.markread'}) { $discinfo{$symb.'_lastread'} = time; }
+ &Apache::lonnet::put('nohist_'.$ENV{'request.course.id'}.'_discuss',
+ \%discinfo,$ENV{'user.domain'},$ENV{'user.name'});
my $previous=$ENV{'form.previous'};
if ($ENV{'form.markondisp'}) { $previous=undef; }
&redirect_back($r,$feedurl,&mt('Changed display status').'
',
'0','0','',$previous);
return OK;
- } elsif ($ENV{'form.markread'}) {
-# ----------------------------------------------------- Mark new posts not NEW
- &Apache::loncommon::content_type($r,'text/html');
- $r->send_http_header;
- my ($symb,$feedurl)=&get_feedurl_and_clean_symb($ENV{'form.markread'});
- &Apache::lonnet::logthis("\n last read w symb ".$symb);
- my %discinfo;
- $discinfo{$symb.'_lastread'} = time;
- &Apache::lonnet::put('nohist_'.$ENV{'request.course.id'}.'_discuss',
- \%discinfo,$ENV{'user.domain'},$ENV{'user.name'});
- &redirect_back($r,$feedurl,&mt('Changed reading status').'
',
- '0','0');
- return OK;
} elsif (($ENV{'form.hide'}) || ($ENV{'form.unhide'})) {
# ----------------------------------------------------------------- Hide/unhide
- &Apache::loncommon::content_type($r,'text/html');
- $r->send_http_header;
-
my $entry=$ENV{'form.hide'}?$ENV{'form.hide'}:$ENV{'form.unhide'};
my ($symb,$idx)=split(/\:\:\:/,$entry);
($symb,my $feedurl)=&get_feedurl_and_clean_symb($symb);
@@ -3017,43 +2968,37 @@ ENDREDIR
&redirect_back($r,$feedurl,&mt('Changed discussion status').'
',
'0','0','',$ENV{'form.previous'});
- } elsif (($ENV{'form.threadedon'}) || ($ENV{'form.threadedoff'})) {
- &Apache::loncommon::content_type($r,'text/html');
- $r->send_http_header;
- my $symb;
- if ($ENV{'form.threadedon'}) {
- $symb=$ENV{'form.threadedon'};
+ return OK;
+ } elsif ($ENV{'form.cmd'}=~/^(threadedoff|threadedon)$/) {
+ my ($symb,$feedurl)=&get_feedurl_and_clean_symb($ENV{'form.symb'});
+ if ($ENV{'form.cmd'} eq 'threadedon') {
&Apache::lonnet::put('environment',{'threadeddiscussion' => 'on'});
&Apache::lonnet::appenv('environment.threadeddiscussion' => 'on');
} else {
- $symb=$ENV{'form.threadedoff'};
&Apache::lonnet::del('environment',['threadeddiscussion']);
&Apache::lonnet::delenv('environment\.threadeddiscussion');
}
- my ($symb,$feedurl)=&get_feedurl_and_clean_symb($symb);
&redirect_back($r,$feedurl,&mt('Changed discussion view mode').'
',
'0','0','',$ENV{'form.previous'});
+ return OK;
} elsif ($ENV{'form.deldisc'}) {
# --------------------------------------------------------------- Hide for good
- &Apache::loncommon::content_type($r,'text/html');
- $r->send_http_header;
-
my ($symb,$idx)=split(/\:\:\:/,$ENV{'form.deldisc'});
($symb,my $feedurl)=&get_feedurl_and_clean_symb($symb);
my %contrib=&Apache::lonnet::restore($symb,$ENV{'request.course.id'},
$ENV{'course.'.$ENV{'request.course.id'}.'.domain'},
$ENV{'course.'.$ENV{'request.course.id'}.'.num'});
- my %newhash=('deleted' => $contrib{'deleted'}.".$idx.");
- &Apache::lonnet::store(\%newhash,$symb,$ENV{'request.course.id'},
- $ENV{'course.'.$ENV{'request.course.id'}.'.domain'},
- $ENV{'course.'.$ENV{'request.course.id'}.'.num'});
- &redirect_back($r,$feedurl,&mt('Changed discussion status').'
',
- '0','0','',$ENV{'form.previous'});
+ my %newhash=('deleted' => $contrib{'deleted'}.".$idx.");
+ &Apache::lonnet::store(\%newhash,$symb,$ENV{'request.course.id'},
+ $ENV{'course.'.$ENV{'request.course.id'}.'.domain'},
+ $ENV{'course.'.$ENV{'request.course.id'}.'.num'});
+ &redirect_back($r,$feedurl,&mt('Changed discussion status').'
',
+ '0','0','',$ENV{'form.previous'});
+ return OK;
} elsif ($ENV{'form.preview'}) {
# -------------------------------------------------------- User wants a preview
- &Apache::loncommon::content_type($r,'text/html');
- $r->send_http_header;
&show_preview($r);
+ return OK;
} elsif ($ENV{'form.attach'}) {
# -------------------------------------------------------- Work on attachments
&Apache::loncommon::content_type($r,'text/html');
@@ -3079,12 +3024,7 @@ ENDREDIR
}
&modify_attachments($r,\@currnewattach,\@currdelold,$symb,$idx,
$attachmenturls);
- } elsif ($ENV{'form.chgreads'}) {
- &Apache::loncommon::content_type($r,'text/html');
- $r->send_http_header;
- my ($map,$ind,$url)=&Apache::lonnet::decode_symb($ENV{'form.chgreads'});
- &redirect_back($r,&Apache::lonnet::clutter($url),
- &mt('Changed read status').'
','0','0');
+ return OK;
} elsif ($ENV{'form.export'}) {
&Apache::loncommon::content_type($r,'text/html');
$r->send_http_header;
@@ -3144,9 +3084,6 @@ ENDREDIR
return OK;
}
# Go ahead with feedback, no ambiguous reference
- &Apache::loncommon::content_type($r,'text/html');
- $r->send_http_header;
-
unless (
(
($feedurl=~m:^/res:) && ($feedurl!~m:^/res/adm:)
@@ -3156,11 +3093,15 @@ ENDREDIR
||
($ENV{'request.course.id'} && ($symb=~/^bulletin\_\_\_/))
) {
+ &Apache::loncommon::content_type($r,'text/html');
+ $r->send_http_header;
# Unable to give feedback
&no_redirect_back($r,$feedurl);
}
# --------------------------------------------------- Print login screen header
unless ($ENV{'form.sendit'}) {
+ &Apache::loncommon::content_type($r,'text/html');
+ $r->send_http_header;
my $options=&screen_header($feedurl);
if ($options) {
&mail_screen($r,$feedurl,$options);