--- loncom/interface/statistics/lonstathelpers.pm 2010/08/04 01:56:07 1.63 +++ loncom/interface/statistics/lonstathelpers.pm 2011/03/12 02:58:49 1.65 @@ -1,6 +1,6 @@ # The LearningOnline Network with CAPA # -# $Id: lonstathelpers.pm,v 1.63 2010/08/04 01:56:07 raeburn Exp $ +# $Id: lonstathelpers.pm,v 1.65 2011/03/12 02:58:49 www Exp $ # # Copyright Michigan State University Board of Trustees # @@ -135,9 +135,20 @@ Skips 'survey' problems. #################################################### #################################################### sub problem_selector { - my ($AcceptedResponseTypes,$sequence_addendum,$symbmode) = @_; + my ($AcceptedResponseTypes,$sequence_addendum,$symbmode,$all,$prefix,$smallbox,$onclick) = @_; +# all: also make sequences selectable +# prefix: prefix for all form names +# smallbox: use smaller box +# onclick: javascript to execute when clicked my $Str; - $Str = &Apache::loncommon::start_data_table(); + my $jsadd=''; + if ($onclick) { + $jsadd="onClick='$onclick'"; + } + $Str = &Apache::loncommon::start_scrollbox(($smallbox?'520px':'620px'), + ($smallbox?'500px':'600px'), + ($smallbox?'50px':'300px')). + &Apache::loncommon::start_data_table(); my $rb_count =0; my ($navmap,@sequences) = &Apache::lonstatistics::selected_sequences_with_assessments('all'); @@ -166,10 +177,12 @@ sub problem_selector { } $seq_str .= &Apache::loncommon::start_data_table_row(). ($symbmode? - '<td><input type="radio" id="'.$rb_count.'" name="symb" value="'.&HTML::Entities::encode($res->symb,'<>&"').'" '.$checked.' /></td>' + '<td><input type="radio" id="'.$prefix.$rb_count.'" name="'.$prefix.'symb" value="'.&HTML::Entities::encode($res->symb,'<>&"').'" '.$checked.' '. + $jsadd. + ' /></td>' :qq{<td><input type="radio" id="$rb_count" name="problemchoice" value="$value"$checked /></td>}). - '<td><label for="'.$rb_count.'">'.$resptype.'</label></td>'. - '<td><label for="'.$rb_count.'">'.$title.'</label>'; + '<td><label for="'.$prefix.$rb_count.'">'.$resptype.'</label></td>'. + '<td><label for="'.$prefix.$rb_count.'">'.$title.'</label>'; if (scalar(@response_ids) > 1) { $seq_str .= &mt('response').' '.$respid; } @@ -184,7 +197,9 @@ sub problem_selector { } if ($seq_str ne '') { $Str .= &Apache::loncommon::start_data_table_header_row(). - '<th colspan="3">'.$seq->compTitle.'</th>'. + '<th colspan="3">'. + ($all?'<input type="radio" id="'.$prefix.'s'.$rb_count.'" name="'.$prefix.'symb" value="'.&HTML::Entities::encode($seq->symb,'<>&').'" '.$jsadd.' />':''). + $seq->compTitle.'</th>'. &Apache::loncommon::end_data_table_header_row()."\n".$seq_str; if (defined($sequence_addendum)) { $Str .= &Apache::loncommon::start_data_table_header_row(). @@ -193,8 +208,9 @@ sub problem_selector { &Apache::loncommon::end_data_table_header_row()."\n"; } } + } - $Str .= &Apache::loncommon::end_data_table()."\n"; + $Str .= &Apache::loncommon::end_data_table().&Apache::loncommon::end_scrollbox()."\n"; return $Str; }