--- loncom/interface/lonparmset.pm 2006/10/07 20:02:16 1.339
+++ loncom/interface/lonparmset.pm 2006/11/29 15:38:22 1.348
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Handler to set parameters for assessments
#
-# $Id: lonparmset.pm,v 1.339 2006/10/07 20:02:16 banghart Exp $
+# $Id: lonparmset.pm,v 1.348 2006/11/29 15:38:22 www Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -2193,7 +2193,7 @@ sub crsenv {
' Tabloid [11x17 in], Executive [7 1/2x10 in], A2 [420x594 mm],'.
' A3 [297x420 mm], A4 [210x297 mm], A5 [148x210 mm], A6 [105x148 mm])',
'print_header_format'
- => 'Print header format; substitutions: %n student name %c course id %a assignment',
+ => 'Print header format; substitutions: %n student name %c course id %a assignment note, numbers after the % limit the field size',
'anonymous_quiz'
=> ''.&mt('Anonymous quiz/exam').'
'.
' ('.&mt('yes').' '.&mt('to avoid print students names').' )',
@@ -3189,6 +3189,7 @@ ENDMAINFORMHEAD
### Set portfolio metadata
sub output_row {
my ($r, $field_name, $field_text, $added_flag) = @_;
+ my $row_class;
my $output;
my $options=$env{'course.'.$env{'request.course.id'}.'.metadata.'.$field_name.'.options'};
my $values=$env{'course.'.$env{'request.course.id'}.'.metadata.'.$field_name.'.values'};
@@ -3197,9 +3198,11 @@ sub output_row {
$values = '';
}
if (!($options =~ /deleted/)) {
- $output.=''.$field_text.':';
- $output.='
';
-
+ $output = &Apache::loncommon::start_data_table_row();
+ $output .= '
'.$field_text.': | ';
+ # $output .= ''.$field_text.': | ';
+ $output .= ' | ';
+ $output .= &Apache::loncommon::end_data_table_row();
my @options= ( ['active', 'Show to student'],
['onlyone','Student may select only one choice'],
['stuadd', 'Student may type choices']);
@@ -3208,13 +3211,98 @@ sub output_row {
}
foreach my $opt (@options) {
my $checked = ($options =~ m/$opt->[0]/) ? ' checked="checked" ' : '' ;
- $output.=(' 'x5).' ';
+ $output .= &Apache::loncommon::end_data_table_row();
}
+
}
return ($output);
}
+sub order_meta_fields {
+ my ($r)=@_;
+ my $idx = 1;
+ my $dom = $env{'course.'.$env{'request.course.id'}.'.domain'};
+ my $crs = $env{'course.'.$env{'request.course.id'}.'.num'};
+ $r->print(&Apache::loncommon::start_page('Order Metadata Fields'));
+ &Apache::lonhtmlcommon::add_breadcrumb
+ ({href=>"/adm/parmset?action=setrestrictmeta",
+ text=>"Restrict Metadata"},
+ {text=>"Order Metadata"});
+ $r->print(&Apache::lonhtmlcommon::breadcrumbs('Order Metadata'));
+ if ($env{'form.storeorder'}) {
+ my $newpos = $env{'form.newpos'} - 1;
+ my $currentpos = $env{'form.currentpos'} - 1;
+ my @neworder = ();
+ my @oldorder = split /,/,$env{'course.'.$env{'request.course.id'}.'.metadata.addedorder'};
+ my $i;
+ if ($newpos > $currentpos) {
+ # moving stuff up
+ for ($i=0;$i<$currentpos;$i++) {
+ $neworder[$i]=$oldorder[$i];
+ }
+ for ($i=$currentpos;$i<$newpos;$i++) {
+ $neworder[$i]=$oldorder[$i+1];
+ }
+ $neworder[$newpos]=$oldorder[$currentpos];
+ for ($i=$newpos+1;$i<=$#oldorder;$i++) {
+ $neworder[$i]=$oldorder[$i];
+ }
+ } else {
+ # moving stuff down
+ for ($i=0;$i<$newpos;$i++) {
+ $neworder[$i]=$oldorder[$i];
+ }
+ $neworder[$newpos]=$oldorder[$currentpos];
+ for ($i=$newpos+1;$i<$currentpos+1;$i++) {
+ $neworder[$i]=$oldorder[$i-1];
+ }
+ for ($i=$currentpos+1;$i<=$#oldorder;$i++) {
+ $neworder[$i]=$oldorder[$i];
+ }
+ }
+ my $ordered_fields = join ",", @neworder;
+ my $put_result = &Apache::lonnet::put('environment',
+ {'metadata.addedorder'=>$ordered_fields},$dom,$crs);
+ &Apache::lonnet::appenv('course.'.$env{'request.course.id'}.'.metadata.addedorder' => $ordered_fields);
+ }
+ my $fields = &get_added_meta_fieldnames();
+ my $ordered_fields;
+ my @fields_in_order = split /,/,$env{'course.'.$env{'request.course.id'}.'.metadata.addedorder'};
+ if (!@fields_in_order) {
+ # no order found, pick sorted order then create metadata.addedorder key.
+ foreach my $key (sort keys %$fields) {
+ push @fields_in_order, $key;
+ $ordered_fields = join ",", @fields_in_order;
+ }
+ my $put_result = &Apache::lonnet::put('environment',
+ {'metadata.addedorder'=>$ordered_fields},$dom,$crs);
+ }
+ $r->print('');
+ my $num_fields = scalar(@fields_in_order);
+ foreach my $key (@fields_in_order) {
+ $r->print('');
+ $r->print(' | ');
+ $r->print('');
+ $r->print('');
+ $r->print('');
+ $r->print($$fields{$key}.' |
');
+ $idx ++;
+ }
+ $r->print('
');
+ return 'ok';
+}
sub addmetafield {
my ($r)=@_;
$r->print(&Apache::loncommon::start_page('Add Metadata Field'));
@@ -3310,23 +3398,31 @@ sub setrestrictmeta {
my %metadata_fields = &Apache::lonmeta::fieldnames('portfolio');
# Now get possible added metadata fields
my $added_metadata_fields = &get_added_meta_fieldnames(\%metadata_fields);
+ my $row_alt = 1;
+ $output .= &Apache::loncommon::start_data_table();
foreach my $field (sort(keys(%metadata_fields))) {
if ($field ne 'courserestricted') {
+ $row_alt = $row_alt ? 0 : 1;
$output.= &output_row($r, $field, $metadata_fields{$field});
}
}
my $added_flag = 1;
foreach my $field (sort(keys(%$added_metadata_fields))) {
- $output.= &output_row($r, $field, $$added_metadata_fields{$field},$added_flag);
+ $row_alt = $row_alt ? 0 : 1;
+ $output.= &output_row($r, $field, $$added_metadata_fields{$field},$added_flag, $row_alt);
}
+ $output .= &Apache::loncommon::end_data_table();
$r->print(<
-
$output
-
+
-
+
+
ENDenv
$r->print(&Apache::loncommon::end_page());
@@ -3335,7 +3431,6 @@ ENDenv
##################################################
sub get_added_meta_fieldnames {
my %fields;
- my ($default_fields) = @_;
foreach my $key(%env) {
if ($key =~ m/\.metadata\.(.+)\.added$/) {
my $field_name = $1;
@@ -3611,13 +3706,7 @@ sub parm_change_log {
\%saveable_parameters);
&Apache::loncommon::restore_course_settings('parameter_log',
\%saveable_parameters);
- if (!$env{'form.show'}) { $env{'form.show'}=10; }
-
- my $countselect =
- &Apache::lonmeta::selectbox('show',$env{'form.show'},undef,
- (&mt('all'),10,20,50,100,1000,10000));
-
- $r->print(''.&mt('[_1] Records',$countselect).''.
+ $r->print(&Apache::loncommon::display_filter().
''.&Apache::lonhtmlcommon::checkbox('includetypes',$env{'form.includetypes'},'1').
' '.&mt('Include parameter types').''.
'');
@@ -3807,6 +3896,10 @@ sub handler {
&Apache::lonhtmlcommon::add_breadcrumb({href=>'/adm/parmset?action=addmetadata',
text=>"Add Metadata Field"});
&addmetafield($r);
+ } elsif ($env{'form.action'} eq 'ordermetadata' && $parm_permission) {
+ &Apache::lonhtmlcommon::add_breadcrumb({href=>'/adm/parmset?action=addmetadata',
+ text=>"Add Metadata Field"});
+ &order_meta_fields($r);
} elsif ($env{'form.action'} eq 'setrestrictmeta' && $parm_permission) {
&Apache::lonhtmlcommon::add_breadcrumb({href=>'/adm/parmset?action=setrestrictmeta',
text=>"Restrict Metadata"});