--- loncom/interface/lonhelper.pm 2003/05/07 18:22:43 1.21
+++ loncom/interface/lonhelper.pm 2003/05/08 19:17:31 1.24
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# .helper XML handler to implement the LON-CAPA helper
#
-# $Id: lonhelper.pm,v 1.21 2003/05/07 18:22:43 bowersj2 Exp $
+# $Id: lonhelper.pm,v 1.24 2003/05/08 19:17:31 sakharuk Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -949,7 +949,7 @@ sub start_choices {
}
# Need to initialize the choices list, so everything can assume it exists
- $paramHash->{'variable'} = $token->[2]{'variable'};
+ $paramHash->{'variable'} = $token->[2]{'variable'} if (!defined($paramHash->{'variable'}));
$helper->declareVar($paramHash->{'variable'});
$paramHash->{'multichoice'} = $token->[2]{'multichoice'};
$paramHash->{CHOICES} = [];
@@ -1835,6 +1835,10 @@ sub render {
my $filterFunc = $self->{FILTER_FUNC};
my $buttons = '';
+ my $type = 'radio';
+ if ($self->{'multichoice'}) {
+ $type = 'checkbox';
+ }
if ($self->{'multichoice'}) {
$result = <
-
-
+BUTTONS
+
+ if ($helper->{VARS}->{'construction'}) {
+ $buttons .= <
BUTTONS
+ }
}
# Get the list of files in this directory.
@@ -1892,10 +1901,6 @@ BUTTONS
# Keeps track if there are no choices, prints appropriate error
# if there are none.
my $choices = 0;
- my $type = 'radio';
- if ($self->{'multichoice'}) {
- $type = 'checkbox';
- }
# Print each legitimate file choice.
for my $file (@fileList) {
$file = (split(/&/, $file))[0];
@@ -1904,9 +1909,36 @@ BUTTONS
}
my $fileName = $subdir .'/'. $file;
if (&$filterFunc($file)) {
- (my $status, my $color) = @{fileState($subdir, $file)};
+ my $status;
+ my $color;
+ if ($helper->{VARS}->{'construction'}) {
+ ($status, $color) = @{fileState($subdir, $file)};
+ } else {
+ $status = '';
+ $color = '';
+ }
+
+ # Netscape 4 is stupid and there's nowhere to put the
+ # information on the input tag that the file is Published,
+ # Unpublished, etc. In *real* browsers we can just say
+ # "class='Published'" and check the className attribute of
+ # the input tag, but Netscape 4 is too stupid to understand
+ # that attribute, and un-comprehended attributes are not
+ # reflected into the object model. So instead, what I do
+ # is either have or don't have an "onclick" handler that
+ # does nothing, give Published files the onclick handler, and
+ # have the checker scripts check for that. Stupid and clumsy,
+ # and only gives us binary "yes/no" information (at least I
+ # couldn't figure out how to reach into the event handler's
+ # actual code to retreive a value), but it works well enough
+ # here.
+
+ my $onclick = '';
+ if ($status eq 'Published' && $helper->{VARS}->{'construction'}) {
+ $onclick = 'onclick="a=1" ';
+ }
$result .= '