version 1.307, 2011/12/10 22:54:34
|
version 1.318, 2012/01/04 18:23:38
|
Line 296 sub list_discussion {
|
Line 296 sub list_discussion {
|
my $copyresult; |
my $copyresult; |
|
|
my $function = &Apache::loncommon::get_users_function(); |
my $function = &Apache::loncommon::get_users_function(); |
my $color = &Apache::loncommon::designparm($function.'.tabbg', |
|
$env{'user.domain'}); |
|
my %lt = &Apache::lonlocal::texthash( |
my %lt = &Apache::lonlocal::texthash( |
'cuse' => 'Current discussion settings', |
'cuse' => 'My settings for this discussion', |
'allposts' => 'All posts', |
'allposts' => 'All posts', |
'unread' => 'New posts only', |
'unread' => 'New posts only', |
'unmark' => 'Unread only', |
'unmark' => 'Unread only', |
Line 441 imscp_v1p1.xsd http://www.imsglobal.org/
|
Line 439 imscp_v1p1.xsd http://www.imsglobal.org/
|
} |
} |
|); |
|); |
$discussion.='<form name="readchoices" method="post" action="/adm/feedback?chgreads='.$ressymb.'" >'. |
$discussion.='<form name="readchoices" method="post" action="/adm/feedback?chgreads='.$ressymb.'" >'. |
"\n".'<table class="LC_discussion">'; |
"\n".'<table width="100%" class="LC_discussion">'; |
$discussion .= &action_links_bar($colspan,$ressymb,$visible, |
$discussion .= &action_links_bar($colspan,$ressymb,$visible, |
$newpostsflag,$group, |
$newpostsflag,$group, |
$prevread,$markondisp); |
$prevread,$markondisp); |
Line 504 imscp_v1p1.xsd http://www.imsglobal.org/
|
Line 502 imscp_v1p1.xsd http://www.imsglobal.org/
|
my $thisdepth=$depth[$alldiscussion{$post}]; |
my $thisdepth=$depth[$alldiscussion{$post}]; |
if ($outputtarget ne 'tex' && $outputtarget ne 'export') { |
if ($outputtarget ne 'tex' && $outputtarget ne 'export') { |
for (1..$thisdepth) { |
for (1..$thisdepth) { |
$discussion.='<td> </td>'; |
$discussion.='<td> </td>'; |
} |
} |
} |
} |
my $colspan=$maxdepth-$thisdepth+1; |
my $colspan=$maxdepth-$thisdepth+1; |
Line 562 imscp_v1p1.xsd http://www.imsglobal.org/
|
Line 560 imscp_v1p1.xsd http://www.imsglobal.org/
|
unless ($outputtarget eq 'tex' || $outputtarget eq 'export') { |
unless ($outputtarget eq 'tex' || $outputtarget eq 'export') { |
my $colspan=$maxdepth+1; |
my $colspan=$maxdepth+1; |
$discussion .= <<END; |
$discussion .= <<END; |
<tr bgcolor="#FFFFFF"> |
<tr> |
<td colspan="$colspan" class="LC_disc_action_links_bar"> |
<td colspan="$colspan"> |
<table class="LC_disc_action_table"> |
<table width="100%"> |
<tr> |
<tr> |
<td align="left"> |
<td class="LC_disc_action_left"> |
<table border="0" cellpadding="0" cellspacing="4"> |
<font size="-1"><b>$lt{'cuse'}</b>: |
<tr> |
|
<td> |
|
<font size="-1"><b>$lt{'cuse'}</b>:</font></td> |
|
<td> </td> |
|
<td><font size="-1"> |
|
END |
END |
if ($newpostsflag) { |
if ($newpostsflag) { |
$discussion .= |
$discussion .= |
Line 589 END
|
Line 582 END
|
} |
} |
} |
} |
$discussion .= <<END; |
$discussion .= <<END; |
</font></td> |
<b><a href="$chglink">$lt{'chgt'}</a></b></font> |
<td> </td> |
|
<td align="left"> |
|
<font size="-1"><b><a href="$chglink">$lt{'chgt'}</a>?</b></font> |
|
</td> |
|
</tr> |
|
</table> |
|
</td> |
</td> |
END |
END |
if ($sortposts) { |
if ($sortposts) { |
Line 604 END
|
Line 591 END
|
my %status_types = (); |
my %status_types = (); |
&sort_filter_names(\%sort_types,\%role_types,\%status_types,$crstype); |
&sort_filter_names(\%sort_types,\%role_types,\%status_types,$crstype); |
|
|
$discussion .= '<td><font size="-1"><b>'.&mt('Sorted by').'</b>: '.$sort_types{$sortposts}.'<br />'; |
$discussion .= '<td class="LC_disc_action_right"><font size="-1"><b>'.&mt('Sorted by').'</b>: '.$sort_types{$sortposts}.'<br />'; |
if (defined($env{'form.totposters'})) { |
if (defined($env{'form.totposters'})) { |
$discussion .= &mt('Posts by').':'; |
$discussion .= &mt('Posts by').':'; |
if ($totposters > 0) { |
if ($totposters > 0) { |
Line 639 END
|
Line 626 END
|
if ($filterchoice) { |
if ($filterchoice) { |
$discussion .= '<b>'.&mt('Filters').'</b>: '.$filterchoice; |
$discussion .= '<b>'.&mt('Filters').'</b>: '.$filterchoice; |
} |
} |
$discussion .= '</font></td>'; |
|
} |
} |
|
$discussion .= '</font></td>'; |
|
|
} |
} |
if ($dischash{$toggkey}) { |
if ($dischash{$toggkey}) { |
my $storebutton = &mt('Save read/unread changes'); |
my $storebutton = &mt('Save read/unread changes'); |
Line 659 END
|
Line 647 END
|
$discussion .= &action_links_bar($colspan,$ressymb,$visible, |
$discussion .= &action_links_bar($colspan,$ressymb,$visible, |
$newpostsflag,$group, |
$newpostsflag,$group, |
$prevread,$markondisp); |
$prevread,$markondisp); |
$discussion .= " |
$discussion .= "</table></form>\n"; |
</table> |
|
<br /><br /></form>\n"; |
|
} |
} |
if ($outputtarget eq 'export') { |
if ($outputtarget eq 'export') { |
if ($manifestok) { |
if ($manifestok) { |
Line 777 sub discussion_link {
|
Line 763 sub discussion_link {
|
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; } |
return &Apache::loncommon::modal_link($link,$linktext,600,400); |
return &Apache::loncommon::modal_link($link,$linktext,600,600); |
} |
} |
|
|
|
|
Line 804 sub send_message_link {
|
Line 790 sub send_message_link {
|
|
|
sub action_links_bar { |
sub action_links_bar { |
my ($colspan,$ressymb,$visible,$newpostsflag,$group,$prevread,$markondisp) = @_; |
my ($colspan,$ressymb,$visible,$newpostsflag,$group,$prevread,$markondisp) = @_; |
my $discussion = '<tr><td class="LC_disc_action_links_bar" colspan="'.$colspan.'">'. |
my $discussion = '<tr><td colspan="'.$colspan.'">'. |
'<table width="100%" class="LC_disc_action_table"><tr>'. |
'<table width="100%"><tr>'. |
'<td class="LC_disc_action_left">'; |
'<td class="LC_disc_action_left">'; |
my $escsymb=&escape($ressymb); |
my $escsymb=&escape($ressymb); |
if ($visible) { |
if ($visible) { |
Line 820 sub action_links_bar {
|
Line 806 sub action_links_bar {
|
$discussion .= '&previous='.$prevread; |
$discussion .= '&previous='.$prevread; |
} |
} |
$discussion .= &group_args($group); |
$discussion .= &group_args($group); |
$discussion .='">'.&mt('Chronological View').'</a> |
$discussion .='">'.&mt('Chronological View').'</a> '; |
<a href="/adm/feedback?cmd=sortfilter&symb='.$escsymb; |
|
|
my $otherviewurl='/adm/feedback?cmd=sortfilter&symb='.$escsymb.'&inhibitmenu=yes&modal=yes'; |
if ($newpostsflag) { |
if ($newpostsflag) { |
$discussion .= '&previous='.$prevread; |
$otherviewurl .= '&previous='.$prevread; |
} |
} |
$discussion .= &group_args($group); |
$otherviewurl .= &group_args($group); |
$discussion .='">'.&mt('Sorting/Filtering options').'</a>'.(' ' x2); |
$discussion .= &Apache::loncommon::modal_link($otherviewurl,&mt('Other Views ...'),800,340); |
|
$discussion .= '<br />'; |
} |
} |
$discussion .='<a href="/adm/feedback?export='.$escsymb; |
$discussion .='<a href="/adm/feedback?export='.$escsymb; |
if ($newpostsflag) { |
if ($newpostsflag) { |
$discussion .= '&previous='.$prevread; |
$discussion .= '&previous='.$prevread; |
} |
} |
$discussion .= &group_args($group); |
$discussion .= &group_args($group); |
$discussion .= '">'.&mt('Export').'?</a> </td>'; |
$discussion .= '">'.&mt('Export').'</a></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'; |
$discussion .= &group_args($group); |
$discussion .= &group_args($group); |
$discussion .= '">'. |
$discussion .= '">'. |
&mt('Preferences on what is marked as NEW'). |
&mt('My general preferences on what is marked as NEW'). |
'</a><br /><a href="/adm/feedback?markread=1&symb='.$escsymb; |
'</a><br /><a href="/adm/feedback?markread=1&symb='.$escsymb; |
$discussion .= &group_args($group); |
$discussion .= &group_args($group); |
$discussion .= '">'.&mt('Mark NEW posts no longer new').'</a></td>'; |
$discussion .= '">'.&mt('Mark NEW posts no longer new').'</a></td>'; |
Line 1104 sub build_posting_display {
|
Line 1092 sub build_posting_display {
|
if ($outputtarget ne 'tex') { |
if ($outputtarget ne 'tex') { |
if (&editing_allowed($escsymb.':::'.$idx,$group)) { |
if (&editing_allowed($escsymb.':::'.$idx,$group)) { |
if (($env{'user.domain'} eq $contrib{$idx.':senderdomain'}) && ($env{'user.name'} eq $contrib{$idx.':sendername'})) { |
if (($env{'user.domain'} eq $contrib{$idx.':senderdomain'}) && ($env{'user.name'} eq $contrib{$idx.':sendername'})) { |
$sender.=' <a href="/adm/feedback?editdisc='. |
$sender.=' '. |
$escsymb.':::'.$idx; |
&discussion_link($symb,&mt('Edit'),'editdisc',$idx,$$newpostsflag,$prevread,&group_args($group)); |
if ($$newpostsflag) { |
|
$sender .= '&previous='.$prevread; |
|
} |
|
$sender .= &group_args($group); |
|
$sender .= '">'.&mt('Edit').'</a>'; |
|
|
|
unless ($seeid) { |
unless ($seeid) { |
my $grpargs = &group_args($group); |
my $grpargs = &group_args($group); |
$sender.=" <a href=\"javascript:verifydelete('studentdelete','$escsymb','$idx','$$newpostsflag','$prevread','$grpargs')"; |
$sender.=" <a href=\"javascript:verifydelete('studentdelete','$escsymb','$idx','$$newpostsflag','$prevread','$grpargs')"; |
Line 1122 sub build_posting_display {
|
Line 1104 sub build_posting_display {
|
if ($seeid) { |
if ($seeid) { |
if ($hiddens{$idx}) { |
if ($hiddens{$idx}) { |
unless ($studenthidden) { |
unless ($studenthidden) { |
$sender.=' <a href="/adm/feedback?unhide='. |
$sender.=' '. |
$escsymb.':::'.$idx; |
&discussion_link($symb,&mt('Make Visible'),'unhide',$idx,$$newpostsflag,$prevread,&group_args($group)); |
if ($$newpostsflag) { |
|
$sender .= '&previous='.$prevread; |
|
} |
|
$sender .= '">'.&mt('Make Visible').'</a>'; |
|
} |
} |
} else { |
} else { |
$sender.=' <a href="/adm/feedback?hide='. |
$sender.=' '. |
$escsymb.':::'.$idx; |
&discussion_link($symb,&mt('Hide'),'hide',$idx,$$newpostsflag,$prevread,&group_args($group)); |
if ($$newpostsflag) { |
|
$sender .= '&previous='.$prevread; |
|
} |
|
$sender .= &group_args($group); |
|
$sender .= '">'.&mt('Hide').'</a>'; |
|
} |
} |
my $grpargs = &group_args($group); |
my $grpargs = &group_args($group); |
$sender.= |
$sender.= |
Line 1289 sub build_posting_display {
|
Line 1262 sub build_posting_display {
|
unless ($$notshown{$idx} == 1) { |
unless ($$notshown{$idx} == 1) { |
if ($prevread > 0 && $prevread <= $posttime) { |
if ($prevread > 0 && $prevread <= $posttime) { |
$$newitem{$idx} = 1; |
$$newitem{$idx} = 1; |
$$discussionitems[$idx] .= ' |
$$discussionitems[$idx] .= '<font color="#FF0000"><b>'.&mt('NEW').' </b></font>'; |
<table border="0" width="100%"> |
|
<tr><td align="left"><font color="#FF0000"><b>'.&mt('NEW').' </b></font></td>'; |
|
} else { |
} else { |
$$newitem{$idx} = 0; |
$$newitem{$idx} = 0; |
$$discussionitems[$idx] .= ' |
|
<table border="0" width="100%"> |
|
<tr><td align="left"> </td>'; |
|
} |
} |
$$discussionitems[$idx] .= '<td align="left"> '. |
$$discussionitems[$idx] .= '<b>'.$subject.'</b> '. |
'<b>'.$subject.'</b> '. |
|
$sender.' '.$vgrlink.' ('. |
$sender.' '.$vgrlink.' ('. |
&Apache::lonlocal::locallocaltime($posttime).')</td>'; |
&Apache::lonlocal::locallocaltime($posttime).')'; |
if ($$dischash{$toggkey}) { |
if ($$dischash{$toggkey}) { |
$$discussionitems[$idx].='<td align="right"> '. |
$$discussionitems[$idx].=' '.$ctlink; |
$ctlink.'</td>'; |
|
} |
} |
$$discussionitems[$idx].= '</tr></table><blockquote>'. |
$$discussionitems[$idx].= '<br /><blockquote>'. |
$message.'</blockquote>'; |
$message.'</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.'); |
if ($seeid) { |
if ($seeid) { |
$$discussionitems[$idx] .= ' <a href="/adm/feedback?allversions='.$escsymb.':::'.$idx; |
$$discussionitems[$idx] .= ' '. |
$$discussionitems[$idx] .= &group_args($group); |
&discussion_link($symb,&mt('Display all versions'),'allversions',$idx,$$newpostsflag,$prevread,&group_args($group)); |
$$discussionitems[$idx] .= '">'.&mt('Display all versions').'</a>'; |
|
} |
} |
$$discussionitems[$idx].='<br/>'.&mt('Earlier version(s) were posted on: '); |
$$discussionitems[$idx].='<br/>'.&mt('Earlier version(s) were posted on: '); |
if ($contrib{$idx.':history'} =~ m/:/) { |
if ($contrib{$idx.':history'} =~ m/:/) { |
Line 1670 END
|
Line 1635 END
|
$comment = &unescape($env{'form.comment'}); |
$comment = &unescape($env{'form.comment'}); |
&process_attachments(\@currnewattach,\@currdelold,\@keepold); |
&process_attachments(\@currnewattach,\@currdelold,\@keepold); |
} |
} |
my $latexHelp=&Apache::loncommon::helpLatexCheatsheet(undef,undef,1); |
my $latexHelp=&Apache::loncommon::helpLatexCheatsheet(undef,undef,1,($env{'form.modal'}?'popup':0)); |
my $send=&mt('Send'); |
my $send=&mt('Send'); |
my $alert = &mt('Please select a feedback type.'); |
my $alert = &mt('Please select a feedback type.'); |
my $js= <<END; |
my $js= <<END; |
Line 1740 END
|
Line 1705 END
|
} |
} |
$quote='<blockquote>'.&Apache::lontexconvert::msgtexconverted($quote).'</blockquote>'; |
$quote='<blockquote>'.&Apache::lontexconvert::msgtexconverted($quote).'</blockquote>'; |
} |
} |
|
my $header=''; |
|
unless ($env{'form.modal'}) { |
|
$header="<h2><tt>$restitle</tt></h2>"; |
|
} |
$r->print(<<END); |
$r->print(<<END); |
$start_page |
$start_page |
<h2><tt>$restitle</tt></h2> |
$header |
<form action="/adm/feedback" method="post" name="mailform" |
<form action="/adm/feedback" method="post" name="mailform" |
enctype="multipart/form-data"> |
enctype="multipart/form-data"> |
$prevtag |
$prevtag |
Line 1761 END
|
Line 1729 END
|
END |
END |
} |
} |
$r->print(<<END); |
$r->print(<<END); |
$options<hr /> |
$options |
$quote |
$quote |
<p>$lt{'myqu'} |
<p>$lt{'myqu'} |
$textareaheader |
$textareaheader |
Line 2196 END
|
Line 2164 END
|
$start_page |
$start_page |
<form name="modifyshown" method="post" action="/adm/feedback"> |
<form name="modifyshown" method="post" action="/adm/feedback"> |
<b>$lt{'diso'}</b><br/> $lt{'prca'} |
<b>$lt{'diso'}</b><br/> $lt{'prca'} |
<br /><br /> |
<br /> |
<table border="0"> |
<table border="0"> |
<tr> |
<tr> |
<th>$lt{'soor'}</th> |
<th>$lt{'soor'}</th> |
Line 2261 $start_page
|
Line 2229 $start_page
|
</tr> |
</tr> |
</table> |
</table> |
<br /> |
<br /> |
<br /> |
<input type="hidden" name="inhibitmenu" value="$env{'form.inhibitmenu'}" /> |
|
<input type="hidden" name="modal" value="$env{'form.modal'}" /> |
<input type="hidden" name="previous" value="$previous" /> |
<input type="hidden" name="previous" value="$previous" /> |
<input type="hidden" name="applysort" value="$symb" /> |
<input type="hidden" name="applysort" value="$symb" /> |
<input type="button" name="sub" value="$lt{'stor'}" onclick="verifyFilter()" /> |
<input type="button" name="sub" value="$lt{'stor'}" onclick="verifyFilter()" /> |
Line 2386 END
|
Line 2355 END
|
$r->print(<<END); |
$r->print(<<END); |
<br /> |
<br /> |
<input type="hidden" name="sortposts" value="$sortposts" /> |
<input type="hidden" name="sortposts" value="$sortposts" /> |
|
<input type="hidden" name="modal" value="$env{'form.modal'}" /> |
<input type="hidden" name="userpick" value="$symb" /> |
<input type="hidden" name="userpick" value="$symb" /> |
<input type="button" name="store" value="Display posts" onclick="javascript:document.pickpostersform.submit()" /> |
<input type="button" name="store" value="Display posts" onclick="javascript:document.pickpostersform.submit()" /> |
</form> |
</form> |
Line 2708 sub screen_header {
|
Line 2678 sub screen_header {
|
} |
} |
} |
} |
if ($msgoptions) { |
if ($msgoptions) { |
$msgoptions='<h2><img src="'.&Apache::loncommon::lonhttpdurl('/res/adm/pages/feedback.png').'" />' |
$msgoptions='<tr><th><img src="'.&Apache::loncommon::lonhttpdurl('/res/adm/pages/feedback.png').'" />' |
.' '.&mt('Send Feedback').'</h2><p>'.&Apache::lonhtmlcommon::coursepreflink(&mt('Feedback Settings'),'feedback').'</p>' |
.'<br />'.&mt('Send Feedback').'<br />'.&Apache::lonhtmlcommon::coursepreflink(&mt('Feedback Settings'),'feedback').'</th>'. |
.$msgoptions; |
'<td>'.$msgoptions.'</td></tr>'; |
} |
} |
if ($discussoptions) { |
if ($discussoptions) { |
$discussoptions='<h2><img src="'.&Apache::loncommon::lonhttpdurl('/adm/lonMisc/chat.gif').'" alt="" />' |
$discussoptions='<tr><th><img src="'.&Apache::loncommon::lonhttpdurl('/adm/lonMisc/chat.gif').'" alt="" />' |
.' '.&mt('Discussion Contributions').'</h2><p>'.&Apache::lonhtmlcommon::coursepreflink(&mt('Discussion Settings'),'discussion').'</p>' |
.'<br />'.&mt('Discussion Contributions').'<br />'.&Apache::lonhtmlcommon::coursepreflink(&mt('Discussion Settings'),'discussion').'</th>'. |
.$discussoptions; |
'<td>'.$discussoptions.'</td></tr>'; |
} |
} |
return $msgoptions.$discussoptions; |
return &Apache::loncommon::start_data_table().$msgoptions.$discussoptions.&Apache::loncommon::end_data_table(); |
} |
} |
|
|
sub resource_output { |
sub resource_output { |
Line 2817 sub send_msg {
|
Line 2787 sub send_msg {
|
} |
} |
} |
} |
|
|
|
# Records of number of postings, etc, are kept under the "symb" called "_feedback" |
|
# There are two entries within the framework of a course: |
|
# - the URLs for which feedback was provided |
|
# - the total number of contributions |
my %record=&Apache::lonnet::restore('_feedback'); |
my %record=&Apache::lonnet::restore('_feedback'); |
my ($temp)=keys(%record); |
my ($temp)=keys(%record); |
unless ($temp=~/^error\:/) { |
unless ($temp=~/^error\:/) { |
Line 2832 sub send_msg {
|
Line 2805 sub send_msg {
|
return ($status,$sendsomething); |
return ($status,$sendsomething); |
} |
} |
|
|
|
# Routine to get the complete discussion records |
|
|
|
sub getdiscrecords { |
|
my ($uname,$udom,$course)=@_; |
|
unless ($uname) { $uname=$env{'user.name'}; } |
|
unless ($udom) { $udom=$env{'user.domain'}; } |
|
unless ($course) { $course=$env{'request.course.id'}; } |
|
my %record=&Apache::lonnet::restore('_feedback',$course,$udom,$uname); |
|
return %record; |
|
} |
|
|
sub adddiscuss { |
sub adddiscuss { |
my ($symb,$email,$anon,$attachmenturl,$subject,$group)=@_; |
my ($symb,$email,$anon,$attachmenturl,$subject,$group)=@_; |
my $status=''; |
my $status=''; |