--- loncom/interface/lonnavmaps.pm 2005/04/15 21:08:37 1.324
+++ loncom/interface/lonnavmaps.pm 2005/06/20 19:47:47 1.330
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Navigate Maps Handler
#
-# $Id: lonnavmaps.pm,v 1.324 2005/04/15 21:08:37 albertel Exp $
+# $Id: lonnavmaps.pm,v 1.330 2005/06/20 19:47:47 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -1039,7 +1039,7 @@ sub render_resource {
my $location=&Apache::loncommon::lonhttpdurl("/adm/lonIcons");
# If this is a new branch, label it so
if ($params->{'isNewBranch'}) {
- $newBranchText = "
";
+ $newBranchText = "
";
}
# links to open and close the folder
@@ -1051,16 +1051,16 @@ sub render_resource {
my $linkclose = "";
# Default icon: unknown page
- my $icon = "
";
+ my $icon = "
";
if ($resource->is_problem()) {
if ($part eq '0' || $params->{'condensed'}) {
- $icon ='
';
+ $icon ='
';
} else {
$icon = $params->{'indentString'};
}
} else {
- $icon = "
";
+ $icon = "
";
}
# Display the correct map icon to open or shut map
@@ -1075,7 +1075,8 @@ sub render_resource {
if (!$params->{'resource_no_folder_link'}) {
$icon = "navmap.$folderType." . ($nowOpen ? 'closed' : 'open') . '.gif';
- $icon = "
";
+ $icon = "
";
$linkopen = "{'queryString'} . '&filter=';
@@ -1093,7 +1094,8 @@ sub render_resource {
# Don't allow users to manipulate folder
$icon = "navmap.$folderType." . ($nowOpen ? 'closed' : 'open') .
'.nomanip.gif';
- $icon = "
";
+ $icon = "
";
$linkopen = "";
$linkclose = "";
@@ -1650,7 +1652,7 @@ END
$args->{'condensed'} = 0;
my $location=
&Apache::loncommon::lonhttpdurl("/adm/lonIcons/whitespace1.gif");
- $args->{'indentString'} = setDefault($args->{'indentString'}, "
");
+ $args->{'indentString'} = setDefault($args->{'indentString'}, "
");
$args->{'displayedHereMarker'} = 0;
# If we're suppressing empty sequences, look for them here. Use DFS for speed,
@@ -2112,50 +2114,34 @@ sub generate_course_user_opt {
my $uname=$env{'user.name'};
my $udom=$env{'user.domain'};
- my $uhome=$env{'user.home'};
my $cid=$env{'request.course.id'};
- my $chome=$env{'course.'.$cid.'.home'};
- my ($cdom,$cnum)=split(/\_/,$cid);
+ my $cdom=$env{'course.'.$cid.'.domain'};
+ my $cnum=$env{'course.'.$cid.'.num'};
- my $userprefix=$uname.'_'.$udom.'_';
-
- my %courserdatas; my %useropt; my %courseopt; my %userrdatas;
- unless ($uhome eq 'no_host') {
# ------------------------------------------------- Get coursedata (if present)
- my $reply=&Apache::lonnet::reply('dump:'.$cdom.':'.$cnum.
- ':resourcedata',$chome);
- # Check for network failure
- if ( $reply =~ /no.such.host/i || $reply =~ /con_lost/i) {
+ my $courseopt=&Apache::lonnet::get_courseresdata($cnum,$cdom);
+ # Check for network failure
+ if (!ref($courseopt)) {
+ if ( $courseopt =~ /no.such.host/i || $courseopt =~ /con_lost/i) {
$self->{NETWORK_FAILURE} = 1;
- } elsif ($reply!~/^error\:/) {
- $courserdatas{$cid}=$reply;
- $courserdatas{$cid.'.last_cache'}=time;
- }
- foreach (split(/\&/,$courserdatas{$cid})) {
- my ($name,$value)=split(/\=/,$_);
- $courseopt{$userprefix.&Apache::lonnet::unescape($name)}=
- &Apache::lonnet::unescape($value);
}
+ undef($courseopt);
+ }
+
# --------------------------------------------------- Get userdata (if present)
- my $reply=&Apache::lonnet::reply('dump:'.$udom.':'.$uname.':resourcedata',$uhome);
- if ($reply!~/^error\:/) {
- $userrdatas{$uname.'___'.$udom}=$reply;
- $userrdatas{$uname.'___'.$udom.'.last_cache'}=time;
- }
- # check to see if network failed
- elsif ( $reply=~/no.such.host/i || $reply=~/con.*lost/i )
- {
+
+ my $useropt=&Apache::lonnet::get_userresdata($uname,$udom);
+ # Check for network failure
+ if (!ref($useropt)) {
+ if ( $useropt =~ /no.such.host/i || $useropt =~ /con_lost/i) {
$self->{NETWORK_FAILURE} = 1;
}
- foreach (split(/\&/,$userrdatas{$uname.'___'.$udom})) {
- my ($name,$value)=split(/\=/,$_);
- $useropt{$userprefix.&Apache::lonnet::unescape($name)}=
- &Apache::lonnet::unescape($value);
- }
- $self->{COURSE_OPT} = \%courseopt;
- $self->{USER_OPT} = \%useropt;
+ undef($useropt);
}
+ $self->{COURSE_OPT} = $courseopt;
+ $self->{USER_OPT} = $useropt;
+
$self->{COURSE_USER_OPT_GENERATED} = 1;
return;
@@ -2167,7 +2153,8 @@ sub generate_email_discuss_status {
if ($self->{EMAIL_DISCUSS_GENERATED}) { return; }
my $cid=$env{'request.course.id'};
- my ($cdom,$cnum)=split(/\_/,$cid);
+ my $cdom=$env{'course.'.$cid.'.domain'};
+ my $cnum=$env{'course.'.$cid.'.num'};
my %emailstatus = &Apache::lonnet::dump('email_status');
my $logoutTime = $emailstatus{'logout'};
@@ -2187,13 +2174,10 @@ sub generate_email_discuss_status {
my %feedback=();
my %error=();
- my $keys = &Apache::lonnet::reply('keys:'.
- $env{'user.domain'}.':'.
- $env{'user.name'}.':nohist_email',
- $env{'user.home'});
+ my @keys = &Apache::lonnet::getkeys('nohist_email',$env{'user.domain'},
+ $env{'user.name'});
- foreach my $msgid (split(/\&/, $keys)) {
- $msgid=&Apache::lonnet::unescape($msgid);
+ foreach my $msgid (@keys) {
if ((!$emailstatus{$msgid}) || ($emailstatus{$msgid} eq 'new')) {
my $plain=
&Apache::lonnet::unescape(&Apache::lonnet::unescape($msgid));
@@ -2457,7 +2441,7 @@ sub parmval_real {
my $symbparm=$symb.'.'.$what;
my $mapparm=$mapname.'___(all).'.$what;
- my $usercourseprefix=$uname.'_'.$udom.'_'.$cid;
+ my $usercourseprefix=$cid;
my $seclevel= $usercourseprefix.'.['.$csec.'].'.$what;
my $seclevelr=$usercourseprefix.'.['.$csec.'].'.$symbparm;
@@ -3518,6 +3502,15 @@ sub shown_symb {
if ($self->encrypted()) {return &Apache::lonenc::encrypted($self->symb());}
return $self->symb();
}
+sub id {
+ my $self=shift;
+ return $self->{ID};
+}
+sub enclosing_map_src {
+ my $self=shift;
+ (my $first, my $second) = $self->{ID} =~ /(\d+).(\d+)/;
+ return $self->navHash('map_id_'.$first);
+}
sub symb {
my $self=shift;
(my $first, my $second) = $self->{ID} =~ /(\d+).(\d+)/;
@@ -4509,7 +4502,8 @@ sub status {
my $suppressFeedback = $self->problemstatus($part) eq 'no';
# If there's an answer date and we're past it, don't
# suppress the feedback; student should know
- if ($self->answerdate($part) && $self->answerdate($part) < time()) {
+ if ($self->duedate($part) && $self->duedate($part) < time() &&
+ $self->answerdate($part) && $self->answerdate($part) < time()) {
$suppressFeedback = 0;
}