# The LearningOnline Network # Feedback # # $Id: lonfeedback.pm,v 1.58 2003/09/15 21:50:49 albertel Exp $ # # Copyright Michigan State University Board of Trustees # # This file is part of the LearningOnline Network with CAPA (LON-CAPA). # # LON-CAPA is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # LON-CAPA is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with LON-CAPA; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # /home/httpd/html/adm/gpl.txt # # http://www.lon-capa.org/ # # (Internal Server Error Handler # # (Login Screen # 5/21/99,5/22,5/25,5/26,5/31,6/2,6/10,7/12,7/14, # 1/14/00,5/29,5/30,6/1,6/29,7/1,11/9 Gerd Kortemeyer) # # 3/1/1 Gerd Kortemeyer) # # 3/1,2/3,2/5,2/6,2/8 Gerd Kortemeyer # 2/9 Guy Albertelli # 2/10 Gerd Kortemeyer # 2/13 Guy Albertelli # 7/25 Gerd Kortemeyer # 7/26 Guy Albertelli # 7/26,8/10,10/1,11/5,11/6,12/27,12/29 Gerd Kortemeyer # YEAR=2002 # 1/1,1/16 Gerd Kortemeyer # package Apache::lonfeedback; use strict; use Apache::Constants qw(:common); use Apache::lonmsg(); use Apache::loncommon(); use Apache::lontexconvert(); sub list_discussion { my ($mode,$status,$symb)=@_; my $discussiononly=0; if ($mode eq 'board') { $discussiononly=1; } unless ($ENV{'request.course.id'}) { return ''; } my $crs='/'.$ENV{'request.course.id'}; if ($ENV{'request.course.sec'}) { $crs.='_'.$ENV{'request.course.sec'}; } $crs=~s/\_/\//g; unless ($symb) { $symb=&Apache::lonnet::symbread(); } unless ($symb) { return ''; } my $seeid=&Apache::lonnet::allowed('rin',$crs); my $viewgrades=&Apache::lonnet::allowed('vgr',$crs); my $discussion=''; my %contrib=&Apache::lonnet::restore($symb,$ENV{'request.course.id'}, $ENV{'course.'.$ENV{'request.course.id'}.'.domain'}, $ENV{'course.'.$ENV{'request.course.id'}.'.num'}); if ($contrib{'version'}) { unless ($discussiononly) { $discussion.= '
Attachment: '.$fname.'.'.$ft.''; } if ($message) { if ($hidden) { $message=''.$message.''; } my $screenname=&Apache::loncommon::screenname( $contrib{$idx.':sendername'}, $contrib{$idx.':senderdomain'}); my $plainname=&Apache::loncommon::nickname( $contrib{$idx.':sendername'}, $contrib{$idx.':senderdomain'}); my $sender='Anonymous'; if ((!$contrib{$idx.':anonymous'}) || ($seeid)) { $sender=&Apache::loncommon::aboutmewrapper( $plainname, $contrib{$idx.':sendername'}, $contrib{$idx.':senderdomain'}).' ('. $contrib{$idx.':sendername'}.' at '. $contrib{$idx.':senderdomain'}.')'; if ($contrib{$idx.':anonymous'}) { $sender.=' [anonymous] '. $screenname; } if ($seeid) { if ($hidden) { $sender.=' Make Visible'; } else { $sender.=' Hide'; } $sender.=' Delete'; } } else { if ($screenname) { $sender=''.$screenname.''; } } my $vgrlink; if ($viewgrades) { $vgrlink=&Apache::loncommon::submlink('Submissions', $contrib{$idx.':sendername'},$contrib{$idx.':senderdomain'},$symb); } $discussion.='
'.$sender.' '.$vgrlink.' ('. localtime($contrib{$idx.':timestamp'}). '):
'.$message. ''; } } } unless ($discussiononly) { $discussion.=''; } } if ($discussiononly) { $discussion.=(<
Attachment (128 KB max size):
ENDDISCUSS $discussion.=&generate_preview_button(); } return $discussion; } sub mail_screen { my ($r,$feedurl,$options) = @_; my $bodytag=&Apache::loncommon::bodytag('Resource Feedback and Discussion', '','onLoad="window.focus();"'); my $title=&Apache::lonnet::gettitle($feedurl); if (!$title) { $title = $feedurl; } my $latexHelp = Apache::loncommon::helpLatexCheatsheet(); $r->print(<