[LON-CAPA-cvs] cvs: loncom /interface/statistics lonstathelpers.pm
matthew
lon-capa-cvs@mail.lon-capa.org
Thu, 23 Sep 2004 15:31:41 -0000
matthew Thu Sep 23 11:31:41 2004 EDT
Modified files:
/loncom/interface/statistics lonstathelpers.pm
Log:
MultipleProblemSelector now has 'select' and 'unselect' for each sequence.
Index: loncom/interface/statistics/lonstathelpers.pm
diff -u loncom/interface/statistics/lonstathelpers.pm:1.24 loncom/interface/statistics/lonstathelpers.pm:1.25
--- loncom/interface/statistics/lonstathelpers.pm:1.24 Thu Sep 23 10:35:25 2004
+++ loncom/interface/statistics/lonstathelpers.pm Thu Sep 23 11:31:40 2004
@@ -1,6 +1,6 @@
# The LearningOnline Network with CAPA
#
-# $Id: lonstathelpers.pm,v 1.24 2004/09/23 14:35:25 matthew Exp $
+# $Id: lonstathelpers.pm,v 1.25 2004/09/23 15:31:40 matthew Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -205,12 +205,20 @@
my $selected = {map { ($_,1) } (&get_selected_symbs($inputname))};
# Header
$Str .= <<"END";
-<script>
- function checkall(value) {
+<script language="JavaScript" type="text/javascript">
+ function checkall(value,seqid) {
for (i=0; i<document.forms.$formname.elements.length; i++) {
ele = document.forms.$formname.elements[i];
if (ele.name == '$inputname') {
- document.forms.$formname.elements[i].checked=value;
+ if (seqid != null) {
+ itemid = document.forms.$formname.elements[i].id;
+ thing = itemid.split(':');
+ if (thing[0] == seqid) {
+ document.forms.$formname.elements[i].checked=value;
+ }
+ } else {
+ document.forms.$formname.elements[i].checked=value;
+ }
}
}
}
@@ -223,9 +231,11 @@
$Str .= $/.'<table>'.$/;
my $iterator = $navmap->getIterator(undef, undef, undef, 1);
my $sequence_string;
+ my $seq_id = 0;
my @Accumulator = (&new_accumulator($ENV{'course.'.$cid.'.description'},
'',
'',
+ $seq_id++,
$inputname));
my @Sequence_Data;
while (my $curRes = $iterator->next()) {
@@ -242,6 +252,7 @@
push(@Accumulator,&new_accumulator($curRes->compTitle,
$curRes->src,
$curRes->symb,
+ $seq_id++,
$inputname));
} elsif ($curRes->is_problem) {
if (@Accumulator && $Accumulator[-1] ne '') {
@@ -255,7 +266,11 @@
#my $seq = pop(@Sequence_Data);
next if (! defined($seq) || ref($seq) ne 'HASH');
$Str.= '<tr><td colspan="2">'.
- '<b>'.$seq->{'title'}.'</b>'.
+ '<b>'.$seq->{'title'}.'</b>'.(' 'x2).
+ '<a href="javascript:checkall(true,'.$seq->{'id'}.')">'.
+ &mt('Select').'</a>'.(' 'x2).
+ '<a href="javascript:checkall(false,'.$seq->{'id'}.')">'.
+ &mt('Unselect').'</a>'.(' 'x2).
'</td></tr>'.$/;
$Str.= $seq->{'html'};
}
@@ -274,8 +289,9 @@
}
sub new_accumulator {
- my ($title,$src,$symb,$inputname) = @_;
+ my ($title,$src,$symb,$seq_id,$inputname) = @_;
my $target;
+ my $item_id=0;
return
sub {
if (@_) {
@@ -285,6 +301,7 @@
if ($checked) {
$target .= 'checked ';
}
+ $target .= 'id="'.$seq_id.':'.$item_id++.'" ';
$target.=
'value="'.&Apache::lonnet::escape($res->symb).'" />'.
' '.$res->compTitle.'</label></td>'.
@@ -294,6 +311,7 @@
return { title => $title,
symb => $symb,
src => $src,
+ id => $seq_id,
html => $target, };
}
return undef;