--- loncom/interface/lonparmset.pm 2009/03/31 14:08:20 1.440
+++ loncom/interface/lonparmset.pm 2009/03/31 17:04:15 1.441
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Handler to set parameters for assessments
#
-# $Id: lonparmset.pm,v 1.440 2009/03/31 14:08:20 bisitz Exp $
+# $Id: lonparmset.pm,v 1.441 2009/03/31 17:04:15 bisitz Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -2498,9 +2498,6 @@ sub crsenv {
}
}
- my $start_table =&Apache::loncommon::start_data_table();
- my $start_header_row=&Apache::loncommon::start_data_table_header_row();
- my $end_header_row =&Apache::loncommon::end_data_table_header_row();
# ------------------------- Re-init course environment entries for this session
&Apache::lonnet::coursedescription($env{'request.course.id'},
@@ -2671,81 +2668,22 @@ sub crsenv {
);
-# The following code is kept to have access to the old version of display order
-
-# my @Display_Order = ('url','description','courseid','cloners');
-# (my $can_toggle_cat,$can_categorize) = &can_modify_catsettings($dom);
-# if ($can_toggle_cat) {
-# push(@Display_Order,'hidefromcat');
-# }
-# if ($can_categorize) {
-# push(@Display_Order,'categories');
-# }
-# push (@Display_Order,('grading',
-# 'externalsyllabus',
-# 'default_xml_style','pageseparators',
-# 'question.email','question.email.text','comment.email',
-# 'comment.email.text','policy.email','policy.email.text',
-# 'student_classlist_view',
-# 'student_classlist_opt_in',
-# 'student_classlist_portfiles',
-# 'plc.roles.denied','plc.users.denied',
-# 'pch.roles.denied','pch.users.denied',
-# 'allow_limited_html_in_feedback',
-# 'allow_discussion_post_editing',
-# 'languages',
-# 'timezone',
-# 'datelocale',
-# 'rolenames',
-# 'nothideprivileged',
-# 'rndseed',
-# 'receiptalg',
-# 'problem_stream_switch',
-# 'suppress_tries',
-# 'suppress_embed_prompt',
-# 'default_paper_size',
-# 'print_header_format',
-# 'disable_receipt_display',
-# 'spreadsheet_default_classcalc',
-# 'spreadsheet_default_studentcalc',
-# 'spreadsheet_default_assesscalc',
-# 'hideemptyrows',
-# 'default_enrollment_start_date',
-# 'default_enrollment_end_date',
-# 'tthoptions',
-# 'texengine',
-# 'disablesigfigs',
-# 'disableexampointprint',
-# 'task_messages','task_grading'));
-# foreach my $parameter (sort(keys(%values))) {
-# unless (($parameter =~ m/^internal\./)||($parameter =~ m/^metadata\./) ||
-# ($parameter =~ m/^selfenroll_/) || ($parameter =~ /_selfenroll$/)
-# || ($parameter eq 'type') ||
-# ($parameter =~ m/^(cc|in|ta|ep|ad|st)\.plaintext$/)) {
-# if (! $descriptions{$parameter}) {
-# $descriptions{$parameter}=$parameter;
-# push(@Display_Order,$parameter);
-# }
-# }
-# }
-
-
-
-
# ----------------------------------------------------------------
# Begin: New Version with Parameter Categories
sub parameter_row {
- # Create parameter line for course environment screen
+ # Create parameter row for course environment screen
+
my ($parameter, $description) = @_;
- my $output = '';
- # Column 1/3: Descritive text of current parameter
- $output = &Apache::loncommon::start_data_table_row()
- .'
'.$description.' ';
+ # Start Parameter Row
+ my $output = &Apache::loncommon::start_data_table_row();
+
+ # Column 1/3: Descriptive text of current parameter
+ $output .= ''.$description.' ';
# Column 2/3: Input field (Sometimes special field(s), depending on parameter)
-# -------------------------------
+
# onchange is javascript to automatically check the 'Set' button.
my $onchange = 'onFocus="javascript:window.document.forms'
."['envform'].elements['".$parameter."_setparmval']"
@@ -2817,7 +2755,6 @@ sub crsenv {
40,
$onchange)
.'';
-# -------------------------------
}
# Column 3/3: Check Box (in most cases)
@@ -2826,12 +2763,12 @@ sub crsenv {
.&Apache::lonhtmlcommon::checkbox($parameter.'_setparmval')
.'';
}
+
+ # End Parameter Row
$output .= &Apache::loncommon::end_data_table_row();
return $output;
- }
-
-
+ } # End sub parameter_row
# Parameter Category Names
@@ -2848,7 +2785,22 @@ sub crsenv {
'cat_custom' => 'Parameter Category Custom',
);
+ # Display Order of Parameter Categories
+ my @Display_Order = (
+ 'cat_0',
+ 'cat_1',
+ 'cat_2',
+ 'cat_3',
+ 'cat_4',
+ 'cat_5',
+ 'cat_6',
+ 'cat_7',
+ 'cat_can',
+ 'cat_custom',
+ );
+
# Link Parameter Categories with Parameters
+ # Order of parameters is display order
my %parm_cat_parms = (
'cat_0' => [
'url',
@@ -2927,7 +2879,7 @@ sub crsenv {
}
$parm_cat_parms{'cat_can'} = [@can_cats];
- # Add custom parameters to parameter categories hash
+ # Add custom parameters to custom parameter category
my @custom_cats;
foreach my $parameter (sort(keys(%values))) {
unless (($parameter =~ m/^internal\./)||($parameter =~ m/^metadata\./) ||
@@ -2943,23 +2895,14 @@ sub crsenv {
$parm_cat_parms{'cat_custom'} = [@custom_cats];
-# Old output structure:
-
-#$start_table
-#$start_header_row
-#$lt{'par'} $lt{'val'} $lt{'set'}
-#$end_header_row
-#$output
-#$end_table
-
-
-# Display Parameter List Overview
+# Display Course Parameter Overview
# Provide hyperlinks to detailed parameter settings
$output_SB .= ' '
- .''.&mt('Course Parameter Overview').' '
- .''
+ .'
'
+ .'
'.&mt('Course Parameter Overview').' '
.'
'
.'
';
-# Display Parameter Details
my $buttons='
';
+# Display all Parameters grouped by categories
$output_SB .= '
'.&mt('Course Parameters').' ';
-foreach my $catkey (keys(%parm_cat_names)) {
+foreach my $catkey (@Display_Order) {
+ if (!@{$parm_cat_parms{$catkey}}) { next; } # Only display non-empty categories
$output_SB .= &Apache::loncommon::start_data_table();
$output_SB .= &Apache::loncommon::start_data_table_empty_row()
.'
'
@@ -2994,126 +2938,39 @@ foreach my $catkey (keys(%parm_cat_names
my $description = $descriptions{$parameter};
$output_SB .= ¶meter_row($parameter, $description);
}
+ # Add special row to custom category
+ # Offer possibilty to create a new environment variable
+ if ($catkey eq 'cat_custom') {
+ my $onchange = 'onFocus="javascript:window.document.forms'
+ .'[\'envform\'].elements[\'newp_setparmval\']'
+ .'.checked=true;"';
+ $output_SB .= &Apache::loncommon::start_data_table_row()
+ .' '
+ .''.&mt('Create New Environment Variable').' '
+ .' '
+ .' '
+ .' '
+ .' '
+ .' '
+ .&Apache::loncommon::end_data_table_row();
+ }
+ # Add buttons row at end of each category
$output_SB .= &Apache::loncommon::start_data_table_empty_row()
.'
'
.$buttons
.' '
.&Apache::loncommon::end_data_table_empty_row;
+
$output_SB .= &Apache::loncommon::end_data_table()
. '
';
}
-$output_SB .= '
';
-
# End: New Version with Parameter Categories
# ----------------------------------------------------------------
-# # Display Parameter table
-# foreach my $parameter (@Display_Order) {
-# my $description = $descriptions{$parameter};
-# # onchange is javascript to automatically check the 'Set' button.
-# my $onchange = 'onFocus="javascript:window.document.forms'.
-# "['envform'].elements['".$parameter."_setparmval']".
-# '.checked=true;"';
-# $output .= &Apache::loncommon::start_data_table_row().
-# ''.$description.' ';
-#
-#
-#
-## -------------------------------
-# if ($parameter =~ /^default_enrollment_(start|end)_date$/) {
-# $output .= ''.
-# &Apache::lonhtmlcommon::date_setter('envform',
-# $parameter.'_value',
-# $values{$parameter},
-# $onchange).
-# ' ';
-# } elsif ($parameter eq 'timezone') {
-# my $includeempty = 1;
-# my $timezone = &Apache::lonlocal::gettimezone();
-# $output .= ''.
-# &Apache::loncommon::select_timezone($parameter.'_value',
-# $timezone,
-# $onchange,$includeempty).' ';
-# } elsif ($parameter eq 'datelocale') {
-# my $includeempty = 1;
-# my $locale_obj = &Apache::lonlocal::getdatelocale();
-# my $currdatelocale;
-# if (ref($locale_obj)) {
-# $currdatelocale = $locale_obj->id();
-# }
-# $output .= ''.
-# &Apache::loncommon::select_datelocale($parameter.'_value',
-# $currdatelocale,
-# $onchange,$includeempty).' ';
-# } elsif ($parameter eq 'rolenames') {
-# $output.= '';
-# foreach my $role ('cc','in','ta','ep','ad','st') {
-# my $onchange = 'onFocus="javascript:window.document.forms'.
-# "['envform'].elements['".
-# $parameter.'_'.$role."_setparmval']".
-# '.checked=true;"';
-# $output.= ''.&Apache::lonnet::plaintext($role,$crstype,undef,1).
-# ' '.
-# &Apache::lonhtmlcommon::textbox($parameter.'_'.$role.'_value',
-# $values{$role.'.plaintext'},
-# 15,$onchange).
-# ' ';
-# }
-# $output .= '
';
-# foreach my $role ('cc','in','ta','ep','ad','st') {
-# $output .= ''.&Apache::lonhtmlcommon::checkbox($parameter.'_'.$role.'_setparmval').
-# ' ';
-# }
-# $output .= '
';
-# } elsif ($parameter eq 'categories') {
-# my $catdisplay;
-# if ($values{'categories'} ne '') {
-# my @curritems = split(/\&/,$values{'categories'});
-# foreach my $item (@curritems) {
-# my ($name,$parent,$pos) = split(/:/,$item);
-# $catdisplay .= &unescape($name).'&';
-# }
-# $catdisplay =~ s/\&$//;
-# }
-# $output .= ''.
-# ' '.
-# ' ';
-# } else {
-# $output .= ''.
-# &Apache::lonhtmlcommon::textbox($parameter.'_value',
-# $values{$parameter},
-# 40,$onchange).' ';
-# }
-# -------------------------------
-
-
-# unless ($parameter eq 'rolenames') {
-# $output .= ''.
-# &Apache::lonhtmlcommon::checkbox($parameter.'_setparmval').
-# ' ';
-# }
-# $output .= &Apache::loncommon::end_data_table_row()."\n";
-# }
- my $onchange = 'onFocus="javascript:window.document.forms'.
- '[\'envform\'].elements[\'newp_setparmval\']'.
- '.checked=true;"';
- $output.=&Apache::loncommon::start_data_table_row().
- ''.&mt('Create New Environment Variable').' '.
- ''.
- ' '.
- ' '.
- &Apache::loncommon::end_data_table_row()."\n";
- }
-
- my $Parameter=&mt('Parameter');
- my $Value=&mt('Value');
- my $Set=&mt('Set');
+ }
+
my ($jscript,$categorize_js);
my $browse_js = &Apache::loncommon::browser_and_searcher_javascript('parmset');
if ($can_categorize) {
@@ -3136,22 +2993,12 @@ ENDSCRIPT
$jscript);
my $end_page =
&Apache::loncommon::end_page();
- my $end_table=&Apache::loncommon::end_data_table();
$r->print(<
$setoutput
$output_SB
-
-
-$start_table
-$start_header_row
-$lt{'par'} $lt{'val'} $lt{'set'}
-$end_header_row
-$output
-$end_table
-
$end_page
ENDENV