--- loncom/interface/lonfeedback.pm 2012/06/17 15:30:37 1.357 +++ loncom/interface/lonfeedback.pm 2015/06/09 21:22:56 1.370 @@ -1,7 +1,7 @@ # The LearningOnline Network # Feedback # -# $Id: lonfeedback.pm,v 1.357 2012/06/17 15:30:37 raeburn Exp $ +# $Id: lonfeedback.pm,v 1.370 2015/06/09 21:22:56 damieng Exp $ # # Copyright Michigan State University Board of Trustees # @@ -336,12 +336,15 @@ sub list_discussion { 'aner' => 'An error occurred opening the manifest file.', 'difo' => 'Discussion for', 'aerr' => 'An error occurred opening the export file for posting', + 'discussions' => 'DISCUSSIONS' + ); + my %js_lt = &Apache::lonlocal::texthash( 'aysu' => 'Are you sure you want to delete this post?', 'dpwn' => 'Deleted posts will no longer be visible to you and other students', 'bwco' => 'but will continue to be visible to your instructor', 'depo' => 'Deleted posts will no longer be visible to you or anyone else.', - 'discussions' => 'DISCUSSIONS' ); + &js_escape(\%js_lt); my $currdisp = $lt{'allposts'}; my $currmark = $lt{'onmark'}; @@ -447,12 +450,12 @@ imscp_v1p1.xsd http://www.imsglobal.org/ prevparm = "&previous="+previous } if (caller == 'studentdelete') { - if (confirm("$lt{'aysu'}\\n$lt{'dpwn'},\\n$lt{'bwco'}")) { + if (confirm("$js_lt{'aysu'}\\n$js_lt{'dpwn'},\\n$js_lt{'bwco'}")) { document.location.href = "/adm/feedback?hide="+symbparm+prevparm+groupparm } } else { if (caller == 'seeiddelete') { - if (confirm("$lt{'aysu'}\\n$lt{'depo'}")) { + if (confirm("$js_lt{'aysu'}\\n$js_lt{'depo'}")) { document.location.href = "/adm/feedback?deldisc="+symbparm+prevparm+groupparm } } @@ -468,18 +471,18 @@ imscp_v1p1.xsd http://www.imsglobal.org/ my $numhidden = keys(%notshown); if ($numhidden > 0) { my $colspan = $maxdepth+1; - $discussion.="\n".''. - ''; + my $href = '/adm/feedback?allposts=1&symb='.$escsymb; if ($newpostsflag) { - $discussion .= '&previous='.$prevread; + $href .= '&previous='.$prevread; } - $discussion .= &group_args($group); - $discussion .= '">'.&mt('Show all posts').' '.&mt('to display').' '. - $numhidden.' '; + $href .= &group_args($group); if ($showunmark) { - $discussion .= &mt('posts previously marked read'); + $discussion .= &mt('[_1]Show all posts[_2] to display [quant,_3,post] previously marked read', + '','',$numhidden); } else { - $discussion .= &mt('previously viewed posts'); + $discussion .= &mt('[_1]Show all posts[_2] to display [quant,_3,post] previously viewed', + '','',$numhidden); } $discussion .= '
'; } @@ -562,7 +565,7 @@ imscp_v1p1.xsd http://www.imsglobal.org/ my $postingfile; my $postingfilename = $tempexport.'/'.$postfilename; if ($postingfile = Apache::File->new('>'.$postingfilename)) { - print $postingfile 'Discussion Post'. + print $postingfile ''.&mt('Discussion Post').''. $imsitems{$alldiscussion{$post}}{'title'}.' '. $imsitems{$alldiscussion{$post}}{'sender'}. $imsitems{$alldiscussion{$post}}{'timestamp'}.'

'. @@ -702,13 +705,17 @@ END open(OUTPUT, "zip -r $imszip * 2> /dev/null |"); close(OUTPUT); chdir $cwd; - $discussion .= &mt('Download the zip file from [_1]Discussion Posting Archive','').'
'; + $discussion .= &mt('Download the zip file from [_1]Discussion Posting Archive[_2]', + '','').'
'; if ($copyresult) { - $discussion .= &mt('The following errors occurred during export').' -
'.$copyresult; + $discussion .= ''. + &mt('The following errors occurred during export:'). + '
'.$copyresult; } } } else { - $discussion .= '
'.&mt('Unfortunately you will not be able to retrieve an archive of the discussion posts at this time, because there was a problem creating a manifest file.').'
'; + $discussion .= '

'. + &mt('Unfortunately you will not be able to retrieve an archive of the discussion posts at this time, because there was a problem creating a manifest file.').'

'; } return $discussion; } @@ -1056,6 +1063,7 @@ sub build_posting_display { &filter_regexp($rolefilter,$sectionpick,$statusfilter); $rolematch = $roleregexp.':'.$secregexp.':'.$statusregexp; } + my %votestyle; if ($seeid || $canvote) { # We need to go through this twice, first to get the likes/dislikes, then to actually build the display for (my $id=1;$id<=$contrib{'version'};$id++) { @@ -1101,6 +1109,29 @@ sub build_posting_display { $twoplus=$ave+2.*$stddev; $oneminus=$ave-$stddev; $twominus=$ave-2.*$stddev; + if ($#theselikes>1) { + foreach my $class ('twoplus','oneplus','zero','oneminus','twominus') { + my $fontstyle = $env{'course.'.$env{'request.course.id'}.'.discussion_post_fonts_'.$class}; + if ($fontstyle ne '') { + my ($size,$weight,$style,$other) = split(/,/,$fontstyle); + if ($size ne '') { + $votestyle{$class} .= 'font-size: '.$size.';'; + } + if ($weight ne '') { + $votestyle{$class} .= 'font-weight: '.$weight.';'; + } + if ($style ne '') { + $votestyle{$class} .= 'font-style: '.$style.';'; + } + if ($other ne '') { + $votestyle{$class} .= $other; + } + if ($votestyle{$class} ne '') { + $votestyle{$class} = 'style="'.$votestyle{$class}.'"'; + } + } + } + } } # # This is now the real loop. Go through all entries, pick up what we need @@ -1436,24 +1467,26 @@ sub build_posting_display { $$discussionitems[$idx].='  '.$ctlink; } my $thislikes=$likes{$symb.':'.$idx.':likes'}; - my $likesize="100"; + my $likestyle; if ($seeid || $canvote) { # Figure out size based on likes + my $class = 'zero'; my $thislikes=$likes{$symb.':'.$idx.':likes'}; if ($thislikes>$twoplus) { - $likesize="200"; + $class = 'twoplus'; } elsif ($thislikes>$oneplus) { - $likesize="150"; + $class = 'oneplus'; } if ($thislikes<$twominus) { - $likesize="50"; + $class = 'twominus'; } elsif ($thislikes<$oneminus) { - $likesize="75"; + $class = 'oneminus'; } + $likestyle = $votestyle{$class}; } # Actually glue in the message itself $$discussionitems[$idx].= '
'. - "
". + "
". $message. '
'; if ($canvote) { @@ -1470,6 +1503,7 @@ sub build_posting_display { } else { $novote = &mt('No voting for hidden posts.'); } + &html_escape(\$novote); $$discussionitems[$idx].= ''. ''.$novote.' '. @@ -1870,6 +1904,7 @@ END my $latexHelp=&Apache::loncommon::helpLatexCheatsheet(undef,undef,1,($env{'form.modal'}?'popup':0)); my $send=&mt('Send'); my $alert = &mt('Please select a feedback type.'); + &js_escape(\$alert); my $js= < //