version 1.325, 2012/01/06 19:18:11
|
version 1.330, 2012/01/09 19:56:28
|
Line 759 END
|
Line 759 END
|
|
|
|
|
sub discussion_link { |
sub discussion_link { |
my ($ressymb,$linktext,$cmd,$item,$flag,$prev,$adds)=@_; |
my ($ressymb,$linktext,$cmd,$item,$flag,$prev,$adds,$title)=@_; |
my $link='/adm/feedback?inhibitmenu=yes&modal=yes&'.$cmd.'='.&escape($ressymb).':::'.$item; |
my $link='/adm/feedback?inhibitmenu=yes&modal=yes&'.$cmd.'='.&escape($ressymb).':::'.$item; |
if ($flag) { $link .= '&previous='.$prev; } |
if ($flag) { $link .= '&previous='.$prev; } |
if ($adds) { $link .= $adds; } |
if ($adds) { $link .= $adds; } |
Line 769 sub discussion_link {
|
Line 769 sub discussion_link {
|
$width=300; |
$width=300; |
$height=200; |
$height=200; |
} |
} |
return &Apache::loncommon::modal_link($link,$linktext,$width,$height); |
return &Apache::loncommon::modal_link($link,$linktext,$width,$height,undef,undef,$title); |
} |
} |
|
|
|
|
Line 787 sub send_feedback_link {
|
Line 787 sub send_feedback_link {
|
sub send_message_link { |
sub send_message_link { |
my ($ressymb) = @_; |
my ($ressymb) = @_; |
my $output = '<span class="LC_message_link">'. |
my $output = '<span class="LC_message_link">'. |
' <a href="/adm/feedback?sendmessageonly=1&symb='. |
&discussion_link($ressymb, |
&escape($ressymb).'"><img alt="" class="LC_noBorder" src="'. |
'<img alt="" class="LC_noBorder" src="'. |
&Apache::loncommon::lonhttpdurl('/res/adm/pages/feedback.png'). |
&Apache::loncommon::lonhttpdurl('/res/adm/pages/feedback.png'). |
'" border="0" /><span class="LC_menubuttons_inline_text">'.&mt('Send Feedback').'</span></a></span>'; |
'" border="0" /><span class="LC_menubuttons_inline_text">'.&mt('Send Feedback').'</span>', |
|
'sendmessageonly'). |
|
'</span>'; |
return $output; |
return $output; |
} |
} |
|
|
Line 827 sub action_links_bar {
|
Line 829 sub action_links_bar {
|
$discussion .= '&previous='.$prevread; |
$discussion .= '&previous='.$prevread; |
} |
} |
$discussion .= &group_args($group); |
$discussion .= &group_args($group); |
$discussion .= '">'.&mt('Export').'</a></td>'; |
$discussion .= '">'.&mt('Export').'</a>'; |
|
if (&Apache::lonnet::allowed('rin',$env{'request.course.id'})) { |
|
$discussion .= ' '; |
|
$discussion .='<a href="/adm/feedback?undeleteall='.$escsymb; |
|
if ($newpostsflag) { |
|
$discussion .= '&previous='.$prevread; |
|
} |
|
$discussion .= &group_args($group); |
|
$discussion .= '">'.&mt('Undelete all deleted entries').'</a>'; |
|
} |
|
$discussion.='</td>'; |
if ($newpostsflag) { |
if ($newpostsflag) { |
if (!$markondisp) { |
if (!$markondisp) { |
$discussion .='<td class="LC_disc_action_right"><a href="/adm/preferences?action=changediscussions'; |
$discussion .='<td class="LC_disc_action_right"><a href="/adm/preferences?action=changediscussions'; |
Line 876 sub postingform_display {
|
Line 888 sub postingform_display {
|
<input type="submit" name="anondiscuss" value="$lt{'poan'}" /> <input type="hidden" name="symb" value="$ressymb" /> |
<input type="submit" name="anondiscuss" value="$lt{'poan'}" /> <input type="hidden" name="symb" value="$ressymb" /> |
<input type="hidden" name="sendit" value="true" /> |
<input type="hidden" name="sendit" value="true" /> |
<input type="hidden" name="timestamp" value="$now" /> |
<input type="hidden" name="timestamp" value="$now" /> |
<br /><a name="newpost"></a> |
<a name="newpost"></a> |
<font size="1">$lt{'note'}</font><br /> |
<font size="1">$lt{'note'}</font><br /> |
<b>$lt{'title'}:</b> <input type="text" name="subject" value="$subject" size="30" /><br /><br /> |
<b>$lt{'title'}:</b> <input type="text" name="subject" value="$subject" size="30" /><br /> |
<textarea name="comment" cols="80" rows="14" id="comment" $textareaclass>$comment</textarea> |
<textarea name="comment" cols="80" rows="14" id="comment" $textareaclass>$comment</textarea> |
ENDDISCUSS |
ENDDISCUSS |
if ($env{'form.origpage'}) { |
if ($env{'form.origpage'}) { |
Line 1002 sub build_posting_display {
|
Line 1014 sub build_posting_display {
|
$stddev=sqrt($sumsq/$num); |
$stddev=sqrt($sumsq/$num); |
} |
} |
# Now we know the average likes $ave and the standard deviation $stddev |
# Now we know the average likes $ave and the standard deviation $stddev |
# &Apache::lonnet::logthis(join(',',@theselikes)." Ave $ave StdDev $stddev"); |
# Get the boundaries for markup |
|
my $oneplus=$ave+$stddev; |
|
my $twoplus=$ave+2.*$stddev; |
|
my $oneminus=$ave-$stddev; |
|
my $twominus=$ave-2.*$stddev; |
|
# &Apache::lonnet::logthis(join(',',@theselikes)." Ave $ave StdDev $stddev $twominus $oneminus $oneplus $twoplus"); |
# |
# |
# This is now the real loop. Go through all entries, pick up what we need |
# This is now the real loop. Go through all entries, pick up what we need |
# |
# |
Line 1140 sub build_posting_display {
|
Line 1157 sub build_posting_display {
|
} |
} |
if ($outputtarget ne 'tex') { |
if ($outputtarget ne 'tex') { |
unless ($likes{$symb.':'.$idx.':likers'}=~/\,\Q$thisuser\E\,/) { |
unless ($likes{$symb.':'.$idx.':likers'}=~/\,\Q$thisuser\E\,/) { |
$sender.=' '.&discussion_link($symb,&mt('Like'),'like',$idx,$$newpostsflag,$prevread,&group_args($group)); |
$sender.=' '.&discussion_link($symb,'<img border="0" src="/res/adm/pages/thumbsup.png" alt="'.&mt('Like').'" />','like',$idx,$$newpostsflag,$prevread,&group_args($group),&mt("Like")); |
} |
} |
unless ($likes{$symb.':'.$idx.':unlikers'}=~/\,\Q$thisuser\E\,/) { |
unless ($likes{$symb.':'.$idx.':unlikers'}=~/\,\Q$thisuser\E\,/) { |
$sender.=' '.&discussion_link($symb,&mt('Unlike'),'unlike',$idx,$$newpostsflag,$prevread,&group_args($group)); |
$sender.=' '.&discussion_link($symb,'<img border="0" src="/res/adm/pages/thumbsdown.png" alt="'.&mt('Unlike').'" />',,'unlike',$idx,$$newpostsflag,$prevread,&group_args($group),&mt("Unlike")); |
} |
} |
my $thislikes=$likes{$symb.':'.$idx.':likes'}; |
my $thislikes=$likes{$symb.':'.$idx.':likes'}; |
if ($thislikes>0) { |
if ($thislikes>0) { |
Line 1333 sub build_posting_display {
|
Line 1350 sub build_posting_display {
|
if ($$dischash{$toggkey}) { |
if ($$dischash{$toggkey}) { |
$$discussionitems[$idx].=' '.$ctlink; |
$$discussionitems[$idx].=' '.$ctlink; |
} |
} |
|
# Figure out size based on likes |
|
my $thislikes=$likes{$symb.':'.$idx.':likes'}; |
|
my $likesize="100"; |
|
if ($thislikes>$twoplus) { |
|
$likesize="200"; |
|
} elsif ($thislikes>$oneplus) { |
|
$likesize="150"; |
|
} |
|
if ($thislikes<$twominus) { |
|
$likesize="50"; |
|
} elsif ($thislikes<$oneminus) { |
|
$likesize="75"; |
|
} |
$$discussionitems[$idx].= '<br /><blockquote>'. |
$$discussionitems[$idx].= '<br /><blockquote>'. |
$message.'</blockquote>'; |
"<div style='font-size:$likesize%'>". |
|
$message. |
|
'</div></blockquote>'; |
if ($contrib{$idx.':history'}) { |
if ($contrib{$idx.':history'}) { |
my @postversions = (); |
my @postversions = (); |
$$discussionitems[$idx] .= &mt('This post has been edited by the author.'); |
$$discussionitems[$idx] .= &mt('This post has been edited by the author.'); |
Line 2693 sub screen_header {
|
Line 2725 sub screen_header {
|
unless (($env{'form.replydisc'}) || ($env{'form.editdisc'})) { |
unless (($env{'form.replydisc'}) || ($env{'form.editdisc'})) { |
if (($feedurl=~/^\/res\//) && ($feedurl!~/^\/res\/adm/) && ($env{'user.adv'})) { |
if (($feedurl=~/^\/res\//) && ($feedurl!~/^\/res\/adm/) && ($env{'user.adv'})) { |
$msgoptions= |
$msgoptions= |
'<p><label><input type="radio" name="discuss" value="author" /> '. |
'<label><input type="radio" name="discuss" value="author" /> '. |
&mt('Feedback to resource author').'</label></p>'; |
&mt('Feedback to resource author').'</label><br />'; |
} |
} |
my %optionhash=(); |
my %optionhash=(); |
foreach my $type ('question','comment','policy') { |
foreach my $type ('question','comment','policy') { |
Line 2702 sub screen_header {
|
Line 2734 sub screen_header {
|
} |
} |
if (&feedback_available(1)) { |
if (&feedback_available(1)) { |
$msgoptions.= |
$msgoptions.= |
'<p><label><input type="radio" name="discuss" value="question" /> '. |
'<label><input type="radio" name="discuss" value="question" /> '. |
($optionhash{'question'}?$optionhash{'question'}:&mt('Question about resource content')).'</label></p>'; |
($optionhash{'question'}?$optionhash{'question'}:&mt('Question about resource content')).'</label><br />'; |
} |
} |
if (&feedback_available(0,1)) { |
if (&feedback_available(0,1)) { |
$msgoptions.= |
$msgoptions.= |
'<p><label><input type="radio" name="discuss" value="course" /> '. |
'<label><input type="radio" name="discuss" value="course" /> '. |
($optionhash{'comment'}?$optionhash{'comment'}:$crscontent). |
($optionhash{'comment'}?$optionhash{'comment'}:$crscontent). |
'</label></p>'; |
'</label><br />'; |
} |
} |
if (&feedback_available(0,0,1)) { |
if (&feedback_available(0,0,1)) { |
$msgoptions.= |
$msgoptions.= |
'<p><label><input type="radio" name="discuss" value="policy" /> '. |
'<label><input type="radio" name="discuss" value="policy" /> '. |
($optionhash{'policy'}?$optionhash{'policy'}:$crspolicy). |
($optionhash{'policy'}?$optionhash{'policy'}:$crspolicy). |
'</label></p>'; |
'</label><br />'; |
} |
} |
} |
} |
if (($env{'request.course.id'}) && (!$env{'form.sendmessageonly'})) { |
if (($env{'request.course.id'}) && (!$env{'form.sendmessageonly'})) { |
Line 3622 sub handler {
|
Line 3654 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'}, |
['like','unlike','modal','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','groupick','posterlist','userpick','attach','origpage','currnewattach','deloldattach','keepold','allversions','export','sendmessageonly','group','ref']); |
['like','unlike','modal','hide','unhide','deldisc','undeleteall','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','groupick','posterlist','userpick','attach','origpage','currnewattach','deloldattach','keepold','allversions','export','sendmessageonly','group','ref']); |
my $group = $env{'form.group'}; |
my $group = $env{'form.group'}; |
my %attachmax = ( |
my %attachmax = ( |
text => &mt('(128 KB max size)'), |
text => &mt('(128 KB max size)'), |
Line 4055 ENDREDIR
|
Line 4087 ENDREDIR
|
&Apache::loncommon::end_page(); |
&Apache::loncommon::end_page(); |
$r->print($start_page.$discussion.$end_page); |
$r->print($start_page.$discussion.$end_page); |
return OK; |
return OK; |
|
|
|
} elsif ($env{'form.undeleteall'}) { |
|
&Apache::loncommon::content_type($r,'text/html'); |
|
$r->send_http_header; |
|
my ($symb,$feedurl) = &get_feedurl_and_clean_symb($env{'form.undeleteall'}); |
|
$r->print(&Apache::loncommon::start_page('Undelete all deleted discussion entries')); |
|
if (&Apache::lonnet::allowed('rin',$env{'request.course.id'})) { |
|
if (&Apache::lonnet::store({'deleted' => ''},$symb,$env{'request.course.id'}, |
|
$env{'course.'.$env{'request.course.id'}.'.domain'}, |
|
$env{'course.'.$env{'request.course.id'}.'.num'}) eq 'ok') { |
|
$r->print(&Apache::lonhtmlcommon::confirm_success(&mt("Undeleted all entries"))); |
|
} else { |
|
$r->print(&Apache::lonhtmlcommon::confirm_success(&mt("Failed to undelete entries"),1)); |
|
} |
|
$r->print("<br /><a href='$feedurl'>".&mt("Return and reload")."</a>"); |
|
} |
|
$r->print(&Apache::loncommon::end_page()); |
|
return OK; |
} else { |
} else { |
# ------------------------------------------------------------- Normal feedback |
# ------------------------------------------------------------- Normal feedback |
my $feedurl=$env{'form.postdata'}; |
my $feedurl=$env{'form.postdata'}; |
Line 4070 ENDREDIR
|
Line 4120 ENDREDIR
|
$symb=(split(/\:\:\:/,$env{'form.editdisc'}))[0]; |
$symb=(split(/\:\:\:/,$env{'form.editdisc'}))[0]; |
} elsif ($env{'form.origpage'}) { |
} elsif ($env{'form.origpage'}) { |
$symb=""; |
$symb=""; |
|
} elsif ($env{'form.sendmessageonly'}) { |
|
$symb=(split(/\:\:\:/,$env{'form.sendmessageonly'}))[0]; |
} else { |
} else { |
$symb=&Apache::lonnet::symbread($feedurl); |
$symb=&Apache::lonnet::symbread($feedurl); |
} |
} |