'."\n";
#
@@ -275,47 +279,97 @@ my @OutputOptions =
({ name => 'HTML, with links',
value => 'html, with links',
description => 'Output HTML with each symbol linked to the problem '.
- 'which generated it.'},
+ 'which generated it.',
+ mode => 'html',
+ show => 'all',
+ show_links => 'yes',
+ },
{ name => 'HTML, without links',
value => 'html, without links',
description => 'Output HTML. By not including links, the size of the'.
' web page is greatly reduced. If your browser crashes on the '.
- 'full display, try this.'},
+ 'full display, try this.',
+ mode => 'html',
+ show => 'all',
+ show_links => 'no',
+ },
{ name => 'HTML, scores only',
value => 'html, scores only',
description => 'Output HTML, only showing the total number of correct'.
' problems (or problem parts) and not the maximum possible for '.
- 'each student'},
+ 'each student',
+ mode => 'html',
+ show => 'scores',
+ show_links => 'no',
+ },
{ name => 'HTML, totals',
value => 'html, totals',
description => 'Output HTML, but only the summary statistics for each'.
- ' sequence selected.'},
+ ' sequence selected.',
+ mode => 'html',
+ show => 'totals',
+ show_links => 'no',
+ },
{ name => 'Excel, scores only',
value => 'excel, scores only',
description => 'Output an Excel file (compatable with Excel 95), '.
'with a single column for each sequence showing the students '.
- 'score.'},
-# { name => 'Excel, everything',
-# value => 'excel, everything',
-# description => 'Output an Excel file (compatable with Excel 95), '.
-# 'with a seperate worksheet for each sequence you have selected '.
-# 'the data for each problem part '.
-# '(number of tries, status, points awarded) '.
-# 'will be listed.'},
+ 'score.',
+ mode => 'excel',
+ show => 'scores',
+ show_links => 'no',
+ },
{ name => 'Excel, totals',
value => 'excel, totals',
description => 'Output an Excel file (compatable with Excel 95), '.
'with two columns for each sequence, the students score on the '.
- 'sequence and the students maximum possible on the sequence'},
+ 'sequence and the students maximum possible on the sequence',
+ mode => 'excel',
+ show => 'totals',
+ show_links => 'no',
+ },
+ { name => 'multi-sheet Excel',
+ value => 'multi-sheet excel',
+ description => 'Output an Excel file (compatable with Excel 95), '.
+ 'with a seperate worksheet for each sequence you have selected '.
+ 'the data for each problem part '.
+ '(number of tries, status, points awarded) will be listed.',
+ mode => 'multi-sheet excel',
+ show => 'totals',
+ show_links => 'no',
+ },
+ { name => 'multi-sheet Excel, by section',
+ value => 'multi-sheet excel, by section',
+ description => 'Output an Excel file (compatable with Excel 95), '.
+ 'with a seperate worksheet for each sequence you have selected '.
+ 'the data for each problem part '.
+ '(number of tries, status, points awarded) will be listed. '.
+ 'There will be one Excel workbook for each section selected.',
+ mode => 'multi-sheet excel',
+ show => 'by section',
+ show_links => 'no',
+ },
{ name => 'CSV, everything',
value => 'csv, everything',
- description => ''},
+ description => '',
+ mode => 'csv',
+ show => 'all',
+ show_links => 'no',
+ },
{ name => 'CSV, scores only',
value => 'csv, scores only',
- description => ''},
+ description => '',
+ mode => 'csv',
+ show => 'scores',
+ show_links => 'no',
+ },
{ name => 'CSV, totals',
value => 'csv, totals',
- description => ''},
+ description => '',
+ mode => 'csv',
+ show => 'totals',
+ show_links => 'no',
+ },
);
sub OutputDescriptions {
@@ -348,25 +402,13 @@ sub CreateAndParseOutputSelector {
$show_links = 'no';
$output_mode = 'html';
$show = 'all';
- my ($mode,$restriction) = split(',',$selected);
- $restriction =~ s/^\s*//;
- if ($mode =~ /^(html|excel|csv)$/) {
- $output_mode = $mode;
- } else {
- $output_mode = 'html';
- }
- if ($restriction eq 'with links') {
- $show_links = 'yes';
- } else {
- $show_links = 'no';
- }
- if ($restriction eq 'totals') {
- $show = 'totals';
- } elsif ($restriction eq 'scores only') {
- $show = 'scores';
- } else {
- $show = 'everything';
+ foreach my $option (@OutputOptions) {
+ next if ($option->{'value'} ne $selected);
+ $output_mode = $option->{'mode'};
+ $show = $option->{'show'};
+ $show_links = $option->{'show_links'};
}
+
#
# Build the form element
$Str = qq/