--- loncom/interface/lonhelper.pm 2005/01/20 20:20:35 1.94 +++ 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.94 2005/01/20 20:20:35 albertel Exp $ +# $Id: lonhelper.pm,v 1.95 2005/01/21 22:59:54 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -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