--- loncom/interface/lonfeedback.pm 2012/03/17 04:02:28 1.349
+++ loncom/interface/lonfeedback.pm 2012/04/29 22:55:20 1.353
@@ -1,7 +1,7 @@
# The LearningOnline Network
# Feedback
#
-# $Id: lonfeedback.pm,v 1.349 2012/03/17 04:02:28 raeburn Exp $
+# $Id: lonfeedback.pm,v 1.353 2012/04/29 22:55:20 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -513,7 +513,9 @@ imscp_v1p1.xsd http://www.imsglobal.org/
my $currdepth = 0;
my $firstidx = $alldiscussion{$showposts[0]};
foreach my $post (@showposts) {
- unless (($sortposts eq 'thread') || (($sortposts eq '') && ($env{'environment.threadeddiscussion'})) || ($outputtarget eq 'export')) {
+ unless (($sortposts eq 'thread') ||
+ (($sortposts eq '') && (!$env{'environment.unthreadeddiscussion'})) ||
+ ($outputtarget eq 'export')) {
$alldiscussion{$post} = $post;
}
unless ( ($notshown{$alldiscussion{$post}} eq '1') || ($shown{$alldiscussion{$post}} == 0) ) {
@@ -1117,7 +1119,8 @@ sub build_posting_display {
my $origindex='0.';
my $numoldver=0;
if ($contrib{$idx.':replyto'}) {
- if ( (($env{'environment.threadeddiscussion'}) && ($sortposts eq '')) || ($sortposts eq 'thread') || ($outputtarget eq 'export')) {
+ if ( ((!$env{'environment.unthreadeddiscussion'}) && ($sortposts eq '')) ||
+ ($sortposts eq 'thread') || ($outputtarget eq 'export')) {
# this is a follow-up message
$original[$idx]=$original[$contrib{$idx.':replyto'}];
$$depth[$idx]=$$depth[$contrib{$idx.':replyto'}]+1;
@@ -1330,7 +1333,8 @@ sub build_posting_display {
}
if ($outputtarget eq 'export' || $message) {
my $thisindex=$idx;
- if ( (($env{'environment.threadeddiscussion'}) && ($sortposts eq '')) || ($sortposts eq 'thread') || ($outputtarget eq 'export')) {
+ if ( ((!$env{'environment.unthreadeddiscussion'}) && ($sortposts eq '')) ||
+ ($sortposts eq 'thread') || ($outputtarget eq 'export')) {
$thisindex=$origindex.substr('00'.$$replies[$$depth[$idx]],-2,2);
}
$$alldiscussion{$thisindex}=$idx;
@@ -1453,13 +1457,24 @@ sub build_posting_display {
$message.
'';
if ($canvote) {
+ my $ownpost;
+ if (($uname eq $env{'user.name'}) &&
+ ($udom eq $env{'user.domain'})) {
+ $ownpost = 1;
+ }
# Put in the like and unlike buttons
- if (($uname eq $env{'user.name'}) && ($udom eq $env{'user.domain'})) {
- my $novote = &mt('No voting for your own posts');
+ if ($ownpost || (($hiddens{$idx}) && ($seehidden))) {
+ my $novote;
+ if ($ownpost) {
+ $novote = &mt('No voting for your own posts.');
+ } else {
+ $novote = &mt('No voting for hidden posts.');
+ }
$$discussionitems[$idx].=
''.
'
'.
'
';
+
} else {
if ($userlikes{$idx}) {
$$discussionitems[$idx].='
';
@@ -1792,6 +1807,7 @@ END
$env{'course.'.$env{'request.course.id'}.'.domain'},
$env{'course.'.$env{'request.course.id'}.'.num'});
unless (($contrib{'hidden'}=~/\.$idx\./) || ($contrib{'deleted'}=~/\.$idx\./)) {
+ my $numoldver = 0;
if ($contrib{$idx.':history'}) {
if ($contrib{$idx.':history'} =~ /:/) {
my @oldversions = split(/:/,$contrib{$idx.':history'});
@@ -1800,36 +1816,25 @@ END
$numoldver = 1;
}
}
- if ($env{'form.replydisc'}) {
- if ($contrib{$idx.':history'}) {
- if ($contrib{$idx.':history'} =~ /:/) {
- my @oldversions = split(/:/,$contrib{$idx.':history'});
- $numoldver = @oldversions;
- } else {
- $numoldver = 1;
- }
+ if ($idx > 0) {
+ my (%msgversions,%subversions,$htmldecode);
+ $htmldecode = 0;
+ if ($env{'form.replydisc'}) {
+ $htmldecode = 1;
}
- if ($idx > 0) {
- my %msgversions = ();
- &get_post_versions(\%msgversions,$contrib{$idx.':message'},0,$numoldver);
+ &get_post_versions(\%msgversions,$contrib{$idx.':message'},0,$numoldver);
+ &get_post_versions(\%subversions,$contrib{$idx.':subject'},$htmldecode,
+ $numoldver);
+ $subject = $subversions{$numoldver};
+ if ($env{'form.replydisc'}) {
$quote = $msgversions{$numoldver};
- }
- if ($idx > 0) {
- my %subversions = ();
- &get_post_versions(\%subversions,$contrib{$idx.':subject'},1,$numoldver);
- $subject = &mt('Re: ').$subversions{$numoldver};
- }
- $subject = &HTML::Entities::encode($subject,'<>&"');
- } else {
- $attachmenturls = $contrib{$idx.':attachmenturl'};
- if ($idx > 0) {
- my %msgversions = ();
- &get_post_versions(\%msgversions,$contrib{$idx.':message'},0,$numoldver);
+ $subject = &HTML::Entities::encode(&mt('Re: ').$subject,'<>&"');
+ } else {
$comment = $msgversions{$numoldver};
- my %subversions = ();
- &get_post_versions(\%subversions,$contrib{$idx.':subject'},0,$numoldver);
- $subject = $subversions{$numoldver};
}
+ }
+ if ($env{'form.editdisc'}) {
+ $attachmenturls = $contrib{$idx.':attachmenturl'};
if (defined($contrib{$idx.':replyto'})) {
$parentmsg = $contrib{$idx.':replyto'};
}
@@ -4123,11 +4128,21 @@ ENDREDIR
if (&discussion_vote_available($status,$realsymb)) {
my %contrib=&Apache::lonnet::restore($symb,$env{'request.course.id'},
$cdom,$cnum);
+ my $ownpost;
if (($contrib{$idx.':sendername'} eq $env{'user.name'}) &&
($contrib{$idx.':senderdomain'} eq $env{'user.domain'})) {
- $result = &mt("Vote not registered. No voting for your own posts.");
+ $ownpost = 1;
+ }
+ if ($ownpost || $contrib{$idx.':hidden'} || $contrib{$idx.':deleted'}) {
+ $result = &mt('Vote not registered.').' ';
+ }
+ if ($ownpost) {
+ $result .= &mt('No voting for your own posts.');
+ } elsif ($contrib{$idx.':hidden'}) {
+ $result .= &mt('No voting for hidden posts.');
+ } elsif ($contrib{$idx.':deleted'}) {
+ $result .= &mt('No voting for deleted posts.');
} else {
-
#
# Likes and unlikes are in db-file "disclikes" of the course
# The prefix is the $symb to identify the resource discussion,
@@ -4248,12 +4263,16 @@ ENDREDIR
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') {
+ if ($env{'form.cmd'} eq 'threadedoff') {
+ &Apache::lonnet::put('environment',{'unthreadeddiscussion' => 'on'});
+ &Apache::lonnet::appenv({'environment.unthreadeddiscussion' => 'on'});
+ &Apache::lonnet::del('environment',['threadeddiscussion']);
+ &Apache::lonnet::delenv('environment.threadeddiscussion');
+ } else {
&Apache::lonnet::put('environment',{'threadeddiscussion' => 'on'});
&Apache::lonnet::appenv({'environment.threadeddiscussion' => 'on'});
- } else {
- &Apache::lonnet::del('environment',['threadeddiscussion']);
- &Apache::lonnet::delenv('environment.threadeddiscussion');
+ &Apache::lonnet::del('environment',['unthreadeddiscussion']);
+ &Apache::lonnet::delenv('environment.unthreadeddiscussion');
}
&redirect_back($r,$feedurl,&mt('Changed discussion view mode').'
',
'0','0','','',$env{'form.previous'},undef,undef,undef,
@@ -4765,7 +4784,9 @@ None
=item list_discussion()
-=item can_see_discussion()
+=item can_see_hidden()
+
+=item discussion_link()
=item send_feedback_link()