[prev in list] [next in list] [prev in thread] [next in thread]
List: lon-capa-cvs
Subject: [LON-CAPA-cvs] cvs: loncom /interface lonfeedback.pm lonmsg.pm lonmsgdisplay.pm lonnavmaps.pm /xml
From: raeburn <lon-capa-cvs () mail ! lon-capa ! org>
Date: 2006-12-24 22:13:22
Message-ID: cvsraeburn1166998402 () cvsserver
[Download RAW message or body]
This is a MIME encoded message
raeburn Sun Dec 24 17:13:22 2006 EDT
Modified files:
/loncom/interface lonnavmaps.pm lonmsg.pm lonmsgdisplay.pm
lonfeedback.pm
/loncom/xml lonxml.pm
Log:
Include symb in msgid when sending feedback about a resource.
Include an error bit in msgid (1 if message is a "bomb" caused by an error when \
rendering a problem.
Include symb and resource title in messsage (<symb> and <resource_title> tags) when \
feedback is about a resource.
Navigate Contents page now checks for unread feedback or errors using symb instead \
of just resource url.
Navigate Contents page checks for resource context based on symb in msgid instead \
of in [url] included in message subject. Backwards compatibility with old-style \
messages retained.
Subject for feedback messages about resources appends message title instead of url \
inside [].
Title on feedback page now avoids leaking unencrypted file name in cases where no \
title was assigned to a resource with hidden url.
When displaying feedback messages about a resource in a course, "Refers to" link \
displayed when viewer has corresponding course role selected includes symb in the \
link. Link text is now resource title.
"Refers to" link points to unencrypted resource url if feedback message is viewed \
under role other than original course, only if user has bre privilege for the \
resource, otherwise "Refers to" link is not displayed.
lonfeedback -- Some replacement of decode_symb() and &clutter() and &dewrapper() \
with &get_feedurl_and_clean_symb() for replies and edits of discussion posts.
lonfeedback -- More work on in ensuring hidden urls are encrypted or unencrypted as \
required.
["raeburn-20061224171322.txt" (text/plain)]
Index: loncom/interface/lonnavmaps.pm
diff -u loncom/interface/lonnavmaps.pm:1.394 loncom/interface/lonnavmaps.pm:1.395
--- loncom/interface/lonnavmaps.pm:1.394 Wed Dec 20 18:25:13 2006
+++ loncom/interface/lonnavmaps.pm Sun Dec 24 17:13:19 2006
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Navigate Maps Handler
#
-# $Id: lonnavmaps.pm,v 1.394 2006/12/20 23:25:13 raeburn Exp $
+# $Id: lonnavmaps.pm,v 1.395 2006/12/24 22:13:19 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -1914,22 +1914,32 @@
foreach my $msgid (@keys) {
if ((!$emailstatus{$msgid}) || ($emailstatus{$msgid} eq 'new')) {
- my $plain=
- &LONCAPA::unescape(&LONCAPA::unescape($msgid));
- if ($plain=~/ \[([^\]]+)\]\:/) {
- my $url=$1;
- if ($plain=~/\:Error \[/) {
- $error{$url}.=','.$msgid;
- } else {
- $feedback{$url}.=','.$msgid;
- }
- }
+ my ($sendtime,$shortsubj,$fromname,$fromdomain,$status,$fromcid,
+ $symb,$error) = &Apache::lonmsg::unpackmsgid($msgid);
+ if (defined($symb)) {
+ if (defined($error) && $error == 1) {
+ $error{$symb}.=','.$msgid;
+ } else {
+ $feedback{$symb}.=','.$msgid;
+ }
+ } else {
+ my $plain=
+ &LONCAPA::unescape(&LONCAPA::unescape($msgid));
+ if ($plain=~/ \[([^\]]+)\]\:/) {
+ my $url=$1;
+ if ($plain=~/\:Error \[/) {
+ $error{$url}.=','.$msgid;
+ } else {
+ $feedback{$url}.=','.$msgid;
+ }
+ }
+ }
}
}
- #url's of resources that have feedbacks
+ #symbs of resources that have feedbacks (will be urls pre-2.3)
$self->{FEEDBACK} = \%feedback;
- #or errors
+ #or errors (will be urls pre 2.3)
$self->{ERROR_MSG} = \%error;
$self->{DISCUSSION_TIME} = \%discussiontime;
$self->{EMAIL_STATUS} = \%emailstatus;
@@ -2116,23 +2126,48 @@
sub getFeedback {
my $self = shift;
my $symb = shift;
+ my $source = shift;
$self->generate_email_discuss_status();
if (!defined($self->{FEEDBACK})) { return ""; }
- return $self->{FEEDBACK}->{$symb};
+ my $feedback;
+ if ($self->{FEEDBACK}->{$symb}) {
+ $feedback = $self->{FEEDBACK}->{$symb};
+ if ($self->{FEEDBACK}->{$source}) {
+ $feedback .= ','.$self->{FEEDBACK}->{$source};
+ }
+ } else {
+ if ($self->{FEEDBACK}->{$source}) {
+ $feedback = $self->{FEEDBACK}->{$source};
+ }
+ }
+ return $feedback;
}
# Private method: Get the errors for that resource (by source).
sub getErrors {
my $self = shift;
+ my $symb = shift;
my $src = shift;
$self->generate_email_discuss_status();
if (!defined($self->{ERROR_MSG})) { return ""; }
- return $self->{ERROR_MSG}->{$src};
+
+ my $errors;
+ if ($self->{ERROR_MSG}->{$symb}) {
+ $errors = $self->{ERROR_MSG}->{$symb};
+ if ($self->{ERROR_MSG}->{$src}) {
+ $errors .= ','.$self->{ERROR_MSG}->{$src};
+ }
+ } else {
+ if ($self->{ERROR_MSG}->{$src}) {
+ $errors = $self->{ERROR_MSG}->{$src};
+ }
+ }
+ return $errors;
}
=pod
@@ -3883,15 +3918,17 @@
sub getFeedback {
my $self = shift;
my $source = $self->src();
+ my $symb = $self->symb();
if ($source =~ /^\/res\//) { $source = substr $source, 5; }
- return $self->{NAV_MAP}->getFeedback($source);
+ return $self->{NAV_MAP}->getFeedback($symb,$source);
}
sub getErrors {
my $self = shift;
my $source = $self->src();
+ my $symb = $self->symb();
if ($source =~ /^\/res\//) { $source = substr $source, 5; }
- return $self->{NAV_MAP}->getErrors($source);
+ return $self->{NAV_MAP}->getErrors($symb,$source);
}
=pod
Index: loncom/interface/lonmsg.pm
diff -u loncom/interface/lonmsg.pm:1.190 loncom/interface/lonmsg.pm:1.191
--- loncom/interface/lonmsg.pm:1.190 Tue Dec 12 20:45:15 2006
+++ loncom/interface/lonmsg.pm Sun Dec 24 17:13:19 2006
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Routines for messaging
#
-# $Id: lonmsg.pm,v 1.190 2006/12/13 01:45:15 raeburn Exp $
+# $Id: lonmsg.pm,v 1.191 2006/12/24 22:13:19 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -47,7 +47,7 @@
sub packagemsg {
my ($subject,$message,$citation,$baseurl,$attachmenturl,
- $recuser,$recdomain,$msgid,$type,$crsmsgid)=@_;
+ $recuser,$recdomain,$msgid,$type,$crsmsgid,$symb,$error)=@_;
$message =&HTML::Entities::encode($message,'<>&"');
$citation=&HTML::Entities::encode($citation,'<>&"');
$subject =&HTML::Entities::encode($subject,'<>&"');
@@ -78,7 +78,7 @@
my $msgcount = &get_uniq();
unless(defined($msgid)) {
$msgid = &buildmsgid($now,$subject,$env{'user.name'},$env{'user.domain'},
- $msgcount,$course_context,$$);
+ $msgcount,$course_context,$symb,$error,$$);
}
my $result = '<sendername>'.$env{'user.name'}.'</sendername>'.
'<senderdomain>'.$env{'user.domain'}.'</senderdomain>'.
@@ -134,7 +134,18 @@
if (defined($attachmenturl)) {
$result.= '<attachmenturl>'.$attachmenturl.'</attachmenturl>';
}
- return $msgid,$result;
+ if (defined($symb)) {
+ $result.= '<symb>'.$symb.'</symb>';
+ if (defined($course_context)) {
+ if ($course_context eq $env{'request.course.id'}) {
+ my $resource_title = &Apache::lonnet::gettitle($symb);
+ if (defined($resource_title)) {
+ $result .= \
'<resource_title>'.$resource_title.'</resource_title>'; + }
+ }
+ }
+ }
+ return ($msgid,$result);
}
# ================================================== Unpack message into a hash
@@ -178,17 +189,17 @@
# ======================================================= Get info out of msgid
sub buildmsgid {
- my ($now,$subject,$uname,$udom,$msgcount,$course_context,$pid) = @_;
+ my ($now,$subject,$uname,$udom,$msgcount,$course_context,$symb,$error,$pid) = \
@_; $subject=&escape($subject);
return(&escape($now.':'.$subject.':'.$uname.':'.
- $udom.':'.$msgcount.':'.$course_context.':'.$pid));
+ $udom.':'.$msgcount.':'.$course_context.':'.$pid.':'.$symb.':'.$error));
}
sub unpackmsgid {
my ($msgid,$folder,$skipstatus,$status_cache)=@_;
$msgid=&unescape($msgid);
my ($sendtime,$shortsubj,$fromname,$fromdomain,$count,$fromcid,
- $processid)=split(/\:/,&unescape($msgid));
+ $processid,$symb,$error) = split(/\:/,&unescape($msgid));
$shortsubj = &unescape($shortsubj);
$shortsubj = &HTML::Entities::decode($shortsubj);
if (!defined($processid)) { $fromcid = ''; }
@@ -203,7 +214,7 @@
if ($status{$msgid}=~/^error\:/) { $status{$msgid}=''; }
unless ($status{$msgid}) { $status{$msgid}='new'; }
}
- return ($sendtime,$shortsubj,$fromname,$fromdomain,$status{$msgid},$fromcid);
+ return ($sendtime,$shortsubj,$fromname,$fromdomain,$status{$msgid},$fromcid,$symb,$error);
}
@@ -495,7 +506,8 @@
sub user_normal_msg_raw {
my ($user,$domain,$subject,$message,$citation,$baseurl,$attachmenturl,
- $toperm,$currid,$newid,$sentmessage,$crsmsgid)=@_;
+ $toperm,$currid,$newid,$sentmessage,$crsmsgid,$symb,$restitle,
+ $error)=@_;
# Check if allowed missing
my ($status,$packed_message);
my $msgid='undefined';
@@ -506,7 +518,7 @@
($msgid,$packed_message)=
&packagemsg($subject,$message,$citation,$baseurl,
$attachmenturl,$user,$domain,$currid,
- undef,$crsmsgid);
+ undef,$crsmsgid,$symb,$error);
# Store in user folder
$status=&Apache::lonnet::critical(
@@ -525,7 +537,7 @@
'/'.$env{'request.course.sec'})))) {
(undef,my $packed_message_no_citation) =
&packagemsg($subject,$message,undef,$baseurl,$attachmenturl,
- $user,$domain,$currid,undef,$crsmsgid);
+ $user,$domain,$currid,undef,$crsmsgid,$symb,$error);
$status .= &store_sent_mail($msgid,$packed_message_no_citation);
}
} else {
@@ -560,15 +572,15 @@
=pod
-=item * B<user_normal_msg($user, $domain, $subject, $message,
- $citation, $baseurl, $attachmenturl)>: Sends a message to the
- $user at $domain, with subject $subject and message $message.
+=item * B<user_normal_msg($user, $domain, $subject, $message, $citation,
+ $baseurl, $attachmenturl, $toperm, $sentmessage, $symb, $restitle, $error)>:
+ Sends a message to the $user at $domain, with subject $subject and message \
$message.
=cut
sub user_normal_msg {
my ($user,$domain,$subject,$message,$citation,$baseurl,$attachmenturl,
- $toperm,$sentmessage)=@_;
+ $toperm,$sentmessage,$symb,$restitle,$error)=@_;
my $status='';
my %userenv = &Apache::lonnet::get('environment',['msgforward'],
$domain,$user);
@@ -579,12 +591,12 @@
$status.=
&user_normal_msg_raw($forwuser,$forwdomain,$subject,$message,
$citation,$baseurl,$attachmenturl,$toperm,
- undef,undef,$sentmessage).' ';
+ undef,undef,$sentmessage,undef,$symb,$restitle,$error).' ';
}
- } else {
+ } else {
$status=&user_normal_msg_raw($user,$domain,$subject,$message,
$citation,$baseurl,$attachmenturl,$toperm,
- undef,undef,$sentmessage);
+ undef,undef,$sentmessage,undef,$symb,$restitle,$error);
}
return $status;
}
Index: loncom/interface/lonmsgdisplay.pm
diff -u loncom/interface/lonmsgdisplay.pm:1.58 loncom/interface/lonmsgdisplay.pm:1.59
--- loncom/interface/lonmsgdisplay.pm:1.58 Sat Dec 23 13:27:28 2006
+++ loncom/interface/lonmsgdisplay.pm Sun Dec 24 17:13:19 2006
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Routines for messaging display
#
-# $Id: lonmsgdisplay.pm,v 1.58 2006/12/23 18:27:28 raeburn Exp $
+# $Id: lonmsgdisplay.pm,v 1.59 2006/12/24 22:13:19 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -774,7 +774,6 @@
my ($blocked,$startblock,$endblock,$numblocked,$folder,$msgstatus) = @_;
my $suffix=&Apache::lonmsg::foldersuffix($folder);
my @messages = &Apache::lonnet::getkeys('nohist_email'.$suffix);
-
#unpack the varibles and repack into temp for sorting
my @temp;
my %descriptions;
@@ -789,7 +788,7 @@
foreach my $msgid (@messages) {
my $esc_msgid=&escape($msgid);
- my ($sendtime,$shortsubj,$fromname,$fromdomain,$status,$fromcid)=
+ my ($sendtime,$shortsubj,$fromname,$fromdomain,$status,$fromcid,$processid,$symb,$error) \
= &Apache::lonmsg::unpackmsgid($esc_msgid,$folder,undef,
\%status_cache);
next if ($msgstatus ne '' && $msgstatus ne $status);
@@ -1950,7 +1949,9 @@
&build_block_table($r,$startblock,$endblock,\%setters);
return;
}
- &statuschange($msgid,'read',$folder);
+ if ($msgstatus eq '') {
+ &statuschange($msgid,'read',$folder);
+ }
my %message=&Apache::lonnet::get('nohist_email'.$suffix,[$msgid]);
my %content=&Apache::lonmsg::unpackagemsg($message{$msgid});
@@ -1989,9 +1990,14 @@
'"><b>'.&mt('Next').'</b></a></td>');
}
$r->print('</tr></table>');
+ my $symb;
+ if (defined($content{'symb'})) {
+ $symb = $content{'symb'};
+ } elsif (defined($content{'baseurl'})) {
+ $symb=&Apache::lonnet::symbread($content{'baseurl'});
+ }
if ($env{'user.adv'}) {
$r->print('<table border="2" width="100%"><tr \
bgcolor="#FFAAAA"><td>'.&mt('Currently available actions (will open extra \
window)').':</td>');
- my $symb=&Apache::lonnet::symbread($content{'baseurl'});
if (&Apache::lonnet::allowed('vgr',$env{'request.course.id'})) {
$r->print('<td><b>'.&Apache::loncommon::track_student_link(&mt('View recent \
activity'),$content{'sendername'},$content{'senderdomain'},'check').'</b></td>'); }
@@ -2013,6 +2019,17 @@
' ('.$content{'recuser'}[$i].' at '.$content{'recdomain'}[$i].') ';
}
$tolist = join(', ',@recipients);
+ my ($restitle,$baseurl,$refers_to);
+ if (defined($content{'resource_title'})) {
+ $restitle = $content{'resource_title'};
+ } else {
+ if (defined($content{'baseurl'})) {
+ $restitle = &Apache::lonnet::gettitle($content{'baseurl'});
+ }
+ }
+ if (defined($content{'baseurl'})) {
+ $baseurl = &Apache::lonenc::check_encrypt($content{'baseurl'});
+ }
$r->print('<br /><b>'.&mt('Subject').':</b> '.$content{'subject'}.
($folder ne 'sent'?'<br /><b>'.&mt('From').':</b> '.
&Apache::loncommon::aboutmewrapper(
@@ -2023,13 +2040,46 @@
$tolist).
($content{'courseid'}?'<br /><b>'.&mt($crstype).':</b> \
'.$courseinfo{'description'}.
($content{'coursesec'}?' ('.&mt('Section').': \
'.$content{'coursesec'}.')':''):'').
- '<br /><b>'.&mt('Time').':</b> '.$content{'time'}.
- ($content{'baseurl'}?'<br /><b>'.&mt('Refers to').':</b> <a \
href="'.$content{'baseurl'}.'">'.
- $content{'baseurl'}.' \
('.&Apache::lonnet::gettitle($content{'baseurl'}).')</a>':'').
- '<p><pre>'.
+ '<br /><b>'.&mt('Time').':</b> '.$content{'time'});
+ if ($baseurl) {
+ if (defined($content{'courseid'}) && defined($env{'request.course.id'})) {
+ if ($content{'courseid'} eq $env{'request.course.id'}) {
+ my $symblink;
+ if ($symb) {
+ &Apache::lonenc::check_decrypt(\$symb);
+ $symblink = '?symb='.$symb;
+ }
+ &Apache::lonenc::check_decrypt(\$baseurl);
+ $r->print('<br /><b>'.&mt('Refers to').':</b> <a \
href="'.$baseurl.$symblink.'">'.$restitle.'</a>'); + $refers_to = 1;
+ }
+ }
+ if (!$refers_to) {
+ if ($baseurl =~ m-^/enc/-) {
+ if (defined($content{'courseid'})) {
+ my $unencurl =
+ &Apache::lonenc::unencrypted($baseurl,
+ $content{'courseid'});
+ if (defined($unencurl)) {
+ if (&Apache::lonnet::allowed('bre',$unencurl)) {
+ $r->print('<br /><b>'.&mt('Refers to').
+ ':</b> <a \
href="'.$unencurl.'">'.$restitle.'</a>'); + }
+ }
+ }
+ } else {
+ if (&Apache::lonnet::allowed('bre',$baseurl)) {
+ $r->print('<br /><b>'.&mt('Refers to').
+ ':</b> <a href="'.$baseurl.
+ '">'.$restitle.'</a>');
+ }
+ }
+ }
+ }
+ $r->print('<p><pre>'.
&Apache::lontexconvert::msgtexconverted($content{'message'},1).
'</pre><hr />'.&displayresource(%content).'</p>');
- return;
+ return;
}
# =========================================================== Show the citation
@@ -2042,7 +2092,12 @@
#
if (($env{'request.course.id'} eq $content{'courseid'})
&& (&Apache::lonnet::allowed('vgr',$content{'courseid'}))) {
- my $symb=&Apache::lonnet::symbread($content{'baseurl'});
+ my $symb;
+ if (defined($content{'symb'})) {
+ $symb = $content{'symb'};
+ } else {
+ $symb=&Apache::lonnet::symbread($content{'baseurl'});
+ }
# Could not get a symb, give up
unless ($symb) { return $content{'citation'}; }
# Have a symb, can render
Index: loncom/interface/lonfeedback.pm
diff -u loncom/interface/lonfeedback.pm:1.236 loncom/interface/lonfeedback.pm:1.237
--- loncom/interface/lonfeedback.pm:1.236 Mon Dec 11 13:50:40 2006
+++ loncom/interface/lonfeedback.pm Sun Dec 24 17:13:19 2006
@@ -1,7 +1,7 @@
# The LearningOnline Network
# Feedback
#
-# $Id: lonfeedback.pm,v 1.236 2006/12/11 18:50:40 raeburn Exp $
+# $Id: lonfeedback.pm,v 1.237 2006/12/24 22:13:19 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -1468,7 +1468,7 @@
}
sub mail_screen {
- my ($r,$feedurl,$options) = @_;
+ my ($r,$feedurl,$options,$symb) = @_;
if (exists($env{'form.origpage'})) {
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},['subject','commen \
t','currnewattach','addnewattach','deloldattach','delnewattach','timestamp','idx','anondiscuss','discuss','blog','group','ref']);
}
@@ -1479,9 +1479,8 @@
'title' => 'Title',
'reta' => 'Retained attachments',
'atta' => 'Attachment (128 KB max size)',
- );
- my $title=&Apache::lonnet::gettitle($feedurl);
- if (!$title) { $title = $feedurl; }
+ );
+ my $restitle = &get_resource_title($symb,$feedurl);
my $quote='';
my $subject = '';
my $comment = '';
@@ -1669,7 +1668,7 @@
$r->print(<<END);
$start_page
-<h2><tt>$title</tt></h2>
+<h2><tt>$restitle</tt></h2>
<form action="/adm/feedback" method="post" name="mailform"
enctype="multipart/form-data">
$prevtag
@@ -2641,7 +2640,7 @@
}
sub assemble_email {
- my ($feedurl,$message,$prevattempts,$usersaw,$useranswer)=@_;
+ my ($message,$prevattempts,$usersaw,$useranswer)=@_;
my %lt = &Apache::lonlocal::texthash(
'prev' => 'Previous attempts of student (if applicable)',
'orig' => 'Original screen output (if applicable)',
@@ -2719,6 +2718,7 @@
sub decide_receiver {
my ($feedurl,$author,$question,$course,$policy,$defaultflag) = @_;
+ &Apache::lonenc::check_decrypt(\$feedurl);
my $typestyle='';
my %to=();
if ($env{'form.discuss'} eq 'author' ||$author) {
@@ -2767,17 +2767,17 @@
}
sub send_msg {
- my ($title,$feedurl,$email,$citations,$attachmenturl,%to)=@_;
+ my ($title,$feedurl,$email,$citations,$attachmenturl,$symb,%to)=@_;
my $status='';
my $sendsomething=0;
+ my $restitle = &get_resource_title($symb,$feedurl);
if ($title=~/^Error/) { $title=&mt('Feedback').': '.$title; }
unless ($title=~/\w/) { $title=&mt('Feedback'); }
foreach my $key (keys(%to)) {
if ($key) {
- my $declutter=&Apache::lonnet::declutter($feedurl);
unless (&Apache::lonmsg::user_normal_msg(split(/\:/,$key),
- $title.' ['.$declutter.']',$email,$citations,$feedurl,
- $attachmenturl)=~/ok/) {
+ $title.' ['.$restitle.']',$email,$citations,$feedurl,
+ $attachmenturl,undef,undef,$symb,$restitle)=~/ok/) {
$status.='<br />'.&mt('Error sending message to').' '.$key.'<br />';
} else {
$sendsomething++;
@@ -3725,12 +3725,8 @@
my $symb;
if ($env{'form.replydisc'}) {
$symb=(split(/\:\:\:/,$env{'form.replydisc'}))[0];
- my ($map,$id,$url)=&Apache::lonnet::decode_symb($symb);
- $feedurl=&Apache::lonnet::clutter($url);
} elsif ($env{'form.editdisc'}) {
$symb=(split(/\:\:\:/,$env{'form.editdisc'}))[0];
- my ($map,$id,$url)=&Apache::lonnet::decode_symb($symb);
- $feedurl=&Apache::lonnet::clutter($url);
} elsif ($env{'form.origpage'}) {
$symb="";
} else {
@@ -3738,18 +3734,18 @@
}
unless ($symb) {
$symb=$env{'form.symb'};
- if ($symb) {
- my ($map,$id,$url)=&Apache::lonnet::decode_symb($symb);
- $feedurl=&Apache::lonnet::clutter($url);
- }
}
- &Apache::lonenc::check_decrypt(\$symb);
+ if (defined($symb)) {
+ ($symb,$feedurl)=&get_feedurl_and_clean_symb($symb);
+ } else {
+ # backward compatibility (bulletin boards used to be 'wrapped')
+ &Apache::lonenc::check_decrypt(\$feedurl);
+ &dewrapper(\$feedurl);
+ }
my $goahead=1;
if ($feedurl=~/\.(problem|exam|quiz|assess|survey|form|task)$/) {
unless ($symb) { $goahead=0; }
}
- # backward compatibility (bulletin boards used to be 'wrapped')
- &dewrapper(\$feedurl);
if (!$goahead) {
# Ambiguous Problem Resource
$r->internal_redirect('/adm/ambiguous');
@@ -3787,7 +3783,7 @@
}
my $options=&screen_header($feedurl,$symb);
if ($options) {
- &mail_screen($r,$feedurl,$options);
+ &mail_screen($r,$feedurl,$options,$symb);
} else {
&fail_redirect($r,$feedurl);
}
@@ -3800,13 +3796,16 @@
$env{'request.course.id'});
# Get output from resource
+ &Apache::lonenc::check_encrypt(\$feedurl);
my $usersaw=&resource_output($feedurl);
# Get resource answer (need to allow student to view grades for this to work)
&Apache::lonnet::appenv(('allowed.vgr'=>'F'));
- my $useranswer=&Apache::loncommon::get_student_answers(
- $symb,$env{'user.name'},$env{'user.domain'},
- $env{'request.course.id'});
+ my $usersymmb = &Apache::lonenc::check_encrypt($symb);
+ my $useranswer=
+ &Apache::loncommon::get_student_answers(
+ $usersymb),$env{'user.name'},$env{'user.domain'},
+ $env{'request.course.id'});
&Apache::lonnet::delenv('allowed.vgr');
# Get attachments, if any, and not too large
my $attachmenturl='';
@@ -3836,7 +3835,7 @@
my $message=&clear_out_html($env{'form.comment'});
# Assemble email
- my ($email,$citations)=&assemble_email($feedurl,$message,$prevattempts,
+ my ($email,$citations)=&assemble_email($message,$prevattempts,
$usersaw,$useranswer);
# Who gets this?
@@ -3846,7 +3845,7 @@
my ($status,$numsent)=&send_msg(&clear_out_html($env{'form.subject'},
undef,1),
$feedurl,$email,$citations,
- $attachmenturl,%to);
+ $attachmenturl,$symb,%to);
# Discussion? Store that.
my $numpost=0;
@@ -3989,5 +3988,32 @@
return $extra_args;
}
+sub get_resource_title {
+ my ($symb,$feedurl) = @_;
+ my ($restitle,$plainurl);
+ if (defined($symb)) {
+ my $plain_symb = &Apache::lonenc::check_decrypt($symb);
+ $restitle = &Apache::lonnet::gettitle($plain_symb);
+ }
+ if (defined($feedurl)) {
+ $plainurl = &Apache::lonenc::check_decrypt($feedurl);
+ }
+ if (!defined($restitle)) {
+ if (defined($feedurl)) {
+ $restitle = &Apache::lonnet::gettitle($plainurl);
+ }
+ }
+ if ($plainurl ne $feedurl) {
+ my ($plain_filename) = ($plainurl =~ m-/([^/]+)$-);
+ if ($plain_filename eq $restitle) {
+ $restitle = &mt('Untitled resource');
+ }
+ }
+ if ($restitle eq '') {
+ $restitle = &mt('Untitled resource');
+ }
+ return $restitle;
+}
+
1;
__END__
Index: loncom/xml/lonxml.pm
diff -u loncom/xml/lonxml.pm:1.433 loncom/xml/lonxml.pm:1.434
--- loncom/xml/lonxml.pm:1.433 Wed Dec 20 17:51:27 2006
+++ loncom/xml/lonxml.pm Sun Dec 24 17:13:20 2006
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# XML Parser Module
#
-# $Id: lonxml.pm,v 1.433 2006/12/20 22:51:27 albertel Exp $
+# $Id: lonxml.pm,v 1.434 2006/12/24 22:13:20 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -1582,8 +1582,11 @@
$cdom,$cnum);
my $now=time;
if ($now-$lastnotified{$key}>86400) {
+ my $title = &Apache::lonnet::gettitle($symb);
+ my $sentmessage;
&Apache::lonmsg::user_normal_msg($user,$domain,
- "Error [$declutter]",$msg);
+ "Error [$title]",$msg,'','','','',
+ \$sentmessage,$symb,$title,1);
&Apache::lonnet::put('nohist_xmlerrornotifications',
{$key => $now},
$cdom,$cnum);
_______________________________________________
LON-CAPA-cvs mailing list
LON-CAPA-cvs@mail.lon-capa.org
http://mail.lon-capa.org/mailman/listinfo/lon-capa-cvs
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic