--- loncom/interface/lonhelper.pm 2004/12/07 11:25:53 1.89
+++ loncom/interface/lonhelper.pm 2005/01/20 20:20:35 1.94
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# .helper XML handler to implement the LON-CAPA helper
#
-# $Id: lonhelper.pm,v 1.89 2004/12/07 11:25:53 foxr Exp $
+# $Id: lonhelper.pm,v 1.94 2005/01/20 20:20:35 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;
@@ -1760,7 +1760,7 @@ BEGIN {
&Apache::lonhelper::register('Apache::lonhelper::resource',
('resource', 'filterfunc',
'choicefunc', 'valuefunc',
- 'mapurl'));
+ 'mapurl','option'));
}
sub new {
@@ -1865,6 +1865,42 @@ sub start_mapurl {
sub end_mapurl { return ''; }
+
+sub start_option {
+ my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;
+ if (!defined($paramHash->{OPTION_TEXTS})) {
+ $paramHash->{OPTION_TEXTS} = [ ];
+ $paramHash->{OPTION_VARS} = [ ];
+
+ }
+ # OPTION_TEXTS is a list of the text attribute
+ # values used to create column headings.
+ # OPTION_VARS is a list of the variable names, used to create the checkbox
+ # inputs.
+ # We're ok with empty elements. as place holders
+ # Although the 'variable' element should really exist.
+ #
+
+ my $option_texts = $paramHash->{OPTION_TEXTS};
+ my $option_vars = $paramHash->{OPTION_VARS};
+ push(@$option_texts, $token->[2]{'text'});
+ push(@$option_vars, $token->[2]{'variable'});
+
+ # Need to create and declare the option variables as well to make them
+ # persistent.
+ #
+ my $varname = $token->[2]{'variable'};
+ $helper->declareVar($varname);
+
+
+ return '';
+}
+
+sub end_option {
+ my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;
+ return '';
+}
+
# A note, in case I don't get to this before I leave.
# If someone complains about the "Back" button returning them
# to the previous folder state, instead of returning them to
@@ -1916,10 +1952,13 @@ BUTTONS
$result .= $buttons;
- my $filterFunc = $self->{FILTER_FUNC};
- my $choiceFunc = $self->{CHOICE_FUNC};
- my $valueFunc = $self->{VALUE_FUNC};
- my $multichoice = $self->{'multichoice'};
+ my $filterFunc = $self->{FILTER_FUNC};
+ my $choiceFunc = $self->{CHOICE_FUNC};
+ my $valueFunc = $self->{VALUE_FUNC};
+ my $multichoice = $self->{'multichoice'};
+ my $option_vars = $self->{OPTION_VARS};
+ my $option_texts = $self->{OPTION_TEXTS};
+ my $headings_done = 0;
# Evaluate the map url as needed
my $mapUrl;
@@ -1937,15 +1976,40 @@ BUTTONS
my $checked = 0;
my $renderColFunc = sub {
my ($resource, $part, $params) = @_;
+ my $result = "";
+
+ if(!$headings_done) {
+ if ($option_texts) {
+ foreach my $text (@$option_texts) {
+ $result .= "
$text
";
+ }
+ }
+ $result .= "
Select
";
+ $result .= "
"; # Close off the extra row and start a new one.
+ $headings_done = 1;
+ }
my $inputType;
if ($multichoice) { $inputType = 'checkbox'; }
else {$inputType = 'radio'; }
if (!&$choiceFunc($resource)) {
- return '
BUTTONS
}
@@ -2948,6 +3022,9 @@ will make a "Finish Helper" button that
which is useful for the Course Initialization helper so the users never see
the old values taking effect.
+If the parameter "restartCourse" is not true a 'Finish' Button will be
+presented that takes the user back to whatever was defined as
+
=cut
no strict;
@@ -3045,8 +3122,12 @@ sub render {
$result .= '';
}
+ my $actionURL = $self->{EXIT_PAGE};
+ my $targetURL = '';
+ my $finish=&mt('Finish');
if ($self->{'restartCourse'}) {
- my $targetURL = '/adm/menu';
+ my $actionURL = '/adm/roles';
+ $targetURL = '/adm/menu';
if ($ENV{'course.'.$ENV{'request.course.id'}.'.url'}=~/^uploaded/) {
$targetURL = '/adm/coursedocs';
} else {
@@ -3055,25 +3136,24 @@ sub render {
if ($ENV{'course.'.$ENV{'request.course.id'}.'.clonedfrom'}) {
$targetURL = '/adm/parmset?overview=1';
}
- my $previous = HTML::Entities::encode(&mt("<- Previous"), '<>&"');
- my $next = HTML::Entities::encode(&mt("Next ->"), '<>&"');
- $result .= "
\n" .
- "
";
+ my $finish=&mt('Finish Course Initialization');
}
+ my $previous = HTML::Entities::encode(&mt("<- Previous"), '<>&"');
+ my $next = HTML::Entities::encode(&mt("Next ->"), '<>&"');
+ $result .= "
\n" .
+ "
";
return $result;
}
sub overrideForm {
- my $self = shift;
- return $self->{'restartCourse'};
+ return 1;
}
1;