--- loncom/interface/lonhelper.pm 2003/05/07 18:13:13 1.20 +++ 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.20 2003/05/07 18:13:13 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 = < SCRIPT $buttons = <   +BUTTONS + + if ($helper->{VARS}->{'construction'}) { + $buttons .= < +
  BUTTONS + } } # Get the list of files in this directory. @@ -1881,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]; @@ -1893,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 .= '" . - "{'multichoice'} && $choices == 0) {