--- loncom/interface/lonfeedback.pm 2007/01/05 06:47:22 1.240
+++ loncom/interface/lonfeedback.pm 2008/11/18 19:14:22 1.256
@@ -1,7 +1,7 @@
# The LearningOnline Network
# Feedback
#
-# $Id: lonfeedback.pm,v 1.240 2007/01/05 06:47:22 raeburn Exp $
+# $Id: lonfeedback.pm,v 1.256 2008/11/18 19:14:22 jms Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -27,6 +27,133 @@
#
###
+=pod
+
+=head1 NAME
+
+Apache::lonfeedback.pm
+
+=head1 SYNOPSIS
+
+Handles feedback from students to instructors and system administrators.
+
+Provides a screenshot of the current resource, as well as previous attempts if the resource was a homework.
+
+Used by lonmsg.pm.
+
+This is part of the LearningOnline Network with CAPA project
+described at http://www.lon-capa.org.
+
+=head1 OVERVIEW
+
+None
+
+=head1 SUBROUTINES
+
+=over
+
+=item discussion_open()
+
+=item discussion_visible()
+
+=item list_discussion()
+
+=item send_feedback_link()
+
+=item send_message_link()
+
+=item action_links_bar()
+
+=item postingform_display()
+
+=item build_posting_display
+
+=item filter_regexp()
+
+=item get_post_contents()
+
+=item replicate_attachments()
+
+=item mail_screen()
+
+=item print_display_options()
+
+=item print_sortfilter_options()
+
+=item print_showposters()
+
+=item get_post_versions()
+
+=item get_post_attachments()
+
+=item fail_redirect()
+
+=item redirect_back()
+
+=item no_redirect_back()
+
+=item screen_header()
+
+=item resource_output()
+
+=item clear_out_html()
+
+=item assemble_email()
+
+=item feedback_available()
+
+=item send_msg()
+
+=item adddiscuss()
+
+=item get_discussion_info()
+
+=item show_preview()
+
+=item newline_to_br()
+
+=item generate_preview_button()
+
+=item modify_attachments()
+
+=item process_attachments()
+
+=item generate_attachments_button()
+
+=item extract_attachments()
+
+=item construct_attachmenturl()
+
+=item add_blog_checkbox()
+
+=item has_discussion()
+
+=item sort_filter_names()
+
+=item handler()
+
+=item blocked_reply_or_edit()
+
+=item wrap_symb()
+
+=item dewrapper()
+
+=item get_feedurl()
+
+=item get_feedurl_and_clean_symb()
+
+=item editing_allowed()
+
+=item check_group_priv()
+
+=item group_args()
+
+=item get_resource_title()
+
+=back
+
+=cut
+
package Apache::lonfeedback;
use strict;
@@ -91,7 +218,7 @@ sub list_discussion {
if (not &discussion_visible($status)) {
if ($mode ne 'board') {
&Apache::lonenc::check_encrypt(\$ressymb);
- return &send_message_link($ressymb);
+ return '
'.&send_message_link($ressymb);
}
}
if ($group ne '' && $mode eq 'board') {
@@ -637,7 +764,7 @@ END
}
}
if ($dischash{$toggkey}) {
- my $storebutton = &mt('Store read/unread changes');
+ my $storebutton = &mt('Save read/unread changes');
$discussion.='
'.
''."\n".
' | ';
+ $discussion.=' ';
if (&discussion_open($status) &&
&Apache::lonnet::allowed('pch',
$env{'request.course.id'}.
($env{'request.course.sec'}?'/'.$env{'request.course.sec'}:''))) {
if ($outputtarget ne 'tex') {
- $discussion.= &send_feedback_link($ressymb,$target).
- ' ';
+ $discussion.= &send_feedback_link($ressymb,$target);
}
}
if ($outputtarget ne 'tex') {
$discussion.= &send_message_link($ressymb);
}
- $discussion.=' |
';
+ $discussion.='';
}
return $discussion;
}
@@ -763,7 +889,7 @@ sub send_feedback_link {
sub send_message_link {
my ($ressymb) = @_;
- my $output = ''.
+ my $output = ''.
' ['.$$anonhash{$key}.'] '.
$screenname;
}
-
+ if ($see_anonymous) {
+ $sender.=&Apache::loncommon::student_image_tag($contrib{$idx.':senderdomain'},$contrib{$idx.':sendername'});
+ }
# Set up for sorting by domain, then username
unless (defined($$usernamesort{$contrib{$idx.':senderdomain'}})) {
%{$$usernamesort{$contrib{$idx.':senderdomain'}}} = ();
@@ -1236,7 +1367,7 @@ sub build_posting_display {
$$newitem{$idx} = 1;
$$discussionitems[$idx] .= '
- NEW | ';
+
'.&mt('NEW').' | ';
} else {
$$newitem{$idx} = 0;
$$discussionitems[$idx] .= '
@@ -1468,7 +1599,7 @@ sub replicate_attachments {
}
sub mail_screen {
- my ($r,$feedurl,$options,$caller_symb) = @_;
+ my ($r,$feedurl,$options,$caller_symb,$attachmaxtext) = @_;
if (exists($env{'form.origpage'})) {
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},['subject','comment','currnewattach','addnewattach','deloldattach','delnewattach','timestamp','idx','anondiscuss','discuss','blog','group','ref']);
}
@@ -1478,7 +1609,7 @@ sub mail_screen {
'myqu' => 'My question/comment/feedback:',
'title' => 'Title',
'reta' => 'Retained attachments',
- 'atta' => 'Attachment (128 KB max size)',
+ 'atta' => 'Attachment',
);
my $restitle = &get_resource_title($caller_symb,$feedurl);
my $quote='';
@@ -1717,7 +1848,7 @@ END
}
} else {
$r->print(<
+$lt{'atta'} $attachmaxtext:
END
}
@@ -1798,7 +1929,7 @@ sub print_display_options {
'unread' => 'New posts only',
'unmark' => 'Posts not marked read',
'ondisp' => 'Once displayed',
- 'onmark' => 'Once marked not NEW ',
+ 'onmark' => 'Once marked not NEW',
'toggon' => 'Shown',
'toggoff' => 'Not shown',
'disa' => 'Posts displayed?',
@@ -1956,6 +2087,7 @@ END
$lt{$disctogg} |
|
END
+ my $save = &mt('Save Changes');
$r->print(&Apache::loncommon::end_data_table_row());
$r->print(&Apache::loncommon::end_data_table());
$r->print(<
-
+
END
if (exists($env{'form.group'})) {
$r->print('');
@@ -2055,7 +2187,7 @@ sub print_sortfilter_options {
'spgr' => 'Specific groups',
'psub' => 'Pick specific users (by name)',
'shal' => 'Show a list of current posters',
- 'stor' => 'Store changes',
+ 'stor' => 'Save changes',
);
my %sort_types = ();
@@ -2386,7 +2518,7 @@ ENDFAILREDIR
}
sub redirect_back {
- my ($r,$feedurl,$typestyle,$sendsomething,$sendposts,$blog,$status,$previous,$sort,$rolefilter,$statusfilter,$sectionpick,$grouppick,$numpicks,$group) = @_;
+ my ($r,$feedurl,$typestyle,$sendsomething,$sendposts,$blog,$status,$previous,$sort,$rolefilter,$statusfilter,$sectionpick,$grouppick,$numpicks,$group,$toolarge) = @_;
my $sorttag = '';
my $roletag = '';
my $statustag = '';
@@ -2500,6 +2632,7 @@ $start_page
$typestyle
Sent $sendsomething message(s), and $sendposts post(s).
$blog
+$toolarge
$status