--- loncom/interface/lonhelper.pm 2005/01/16 08:20:38 1.93
+++ loncom/interface/lonhelper.pm 2005/01/21 22:59:54 1.95
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# .helper XML handler to implement the LON-CAPA helper
#
-# $Id: lonhelper.pm,v 1.93 2005/01/16 08:20:38 albertel Exp $
+# $Id: lonhelper.pm,v 1.95 2005/01/21 22:59:54 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -1165,7 +1165,7 @@ sub start_choice {
$parser));
my $nextstate = $token->[2]{'nextstate'};
my $evalFlag = $token->[2]{'eval'};
- push @{$paramHash->{CHOICES}}, [$human, $computer, $nextstate,
+ push @{$paramHash->{CHOICES}}, [&mtn($human), $computer, $nextstate,
$evalFlag];
return '';
}
@@ -1281,7 +1281,7 @@ BUTTONS
$choiceLabel = &$choiceLabel($helper, $self);
}
$result .= "/>
".qq{
\n";
+ $choiceLabel. "\n";
}
$result .= "\n\n\n";
$result .= $buttons;
@@ -1715,7 +1715,9 @@ to false. The "suppressEmptySequences" a
suppressEmptySequences argument to the render routine, which will cause
folders that have all of their contained resources filtered out to also
be filtered out. The 'addstatus' attribute, if true, will add the icon
-and long status display columns to the display.
+and long status display columns to the display. The 'addparts'
+attribute will add in a part selector beside problems that have more
+than 1 part.
=head3 SUB-TAGS
@@ -1782,6 +1784,10 @@ sub start_resource {
$paramHash->{'suppressEmptySequences'} = $token->[2]{'suppressEmptySequences'};
$paramHash->{'toponly'} = $token->[2]{'toponly'};
$paramHash->{'addstatus'} = $token->[2]{'addstatus'};
+ $paramHash->{'addparts'} = $token->[2]{'addparts'};
+ if ($paramHash->{'addparts'}) {
+ $helper->declareVar($paramHash->{'variable'}.'_part');
+ }
$paramHash->{'closeallpages'} = $token->[2]{'closeallpages'};
return '';
}
@@ -1955,9 +1961,10 @@ BUTTONS
my $filterFunc = $self->{FILTER_FUNC};
my $choiceFunc = $self->{CHOICE_FUNC};
my $valueFunc = $self->{VALUE_FUNC};
- my $multichoice = $self->{'multichoice'};
+ my $multichoice = $self->{'multichoice'};
my $option_vars = $self->{OPTION_VARS};
my $option_texts = $self->{OPTION_TEXTS};
+ my $addparts = $self->{'addparts'};
my $headings_done = 0;
# Evaluate the map url as needed
@@ -2019,12 +2026,51 @@ BUTTONS
$checked = 1;
}
$col .= "value='" . $resource_name . "' />";
+
return $result.$col;
}
};
+ my $renderPartsFunc = sub {
+ my ($resource, $part, $params) = @_;
+ my $col= "
";
+ my $id=$resource->{ID};
+ my $resource_name =
+ &HTML::Entities::encode(&$valueFunc($resource),"<>&\"'");
+ if ($addparts && (scalar(@{$resource->parts}) > 1)) {
+ $col .= "";
+ }
+ $col .= "
";
+ };
+ $result.=(<
+ function updateRadio(form,name,value) {
+ var radiobutton=form[name];
+ for (var i=0; i
+;
+RADIO
$ENV{'form.condition'} = !$self->{'toponly'};
- my $cols = [$renderColFunc, Apache::lonnavmaps::resource()];
+ my $cols = [$renderColFunc];
+ if ($self->{'addparts'}) { push(@$cols, $renderPartsFunc); }
+ push(@$cols, Apache::lonnavmaps::resource());
if ($self->{'addstatus'}) {
push @$cols, (Apache::lonnavmaps::part_status_summary());
@@ -3217,7 +3263,7 @@ sub render {
my $resourceString;
my $symb;
my $paramlevel;
-
+
# Print the granularity, depending on the action
if ($vars->{GRANULARITY} eq 'whole_course') {
$resourceString .= '
'.&mt('for all resources in the course').'
';
@@ -3237,15 +3283,27 @@ sub render {
} else {
my $navmap = Apache::lonnavmaps::navmap->new();
my $res = $navmap->getById($vars->{RESOURCE_ID});
+ my $part = $vars->{RESOURCE_ID_part};
+ if ($part ne 'All Parts' && $part) { $parm_name=~s/^0/$part/; } else { $part=&mt('All Parts'); }
$symb = $res->symb();
my $title = $res->compTitle();
- $resourceString .= '
'.&mt('for the resource named [_1]',"$title").'
';
+ $resourceString .= '
'.&mt('for the resource named [_1] part [_2]',"$title","$part").'