--- loncom/interface/lonparmset.pm 2008/12/12 17:06:05 1.419 +++ loncom/interface/lonparmset.pm 2009/05/08 22:47:01 1.445 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Handler to set parameters for assessments # -# $Id: lonparmset.pm,v 1.419 2008/12/12 17:06:05 bisitz Exp $ +# $Id: lonparmset.pm,v 1.445 2009/05/08 22:47:01 neumanie Exp $ # # Copyright Michigan State University Board of Trustees # @@ -848,12 +848,13 @@ sub plink { my ($hour,$min,$sec,$val)=&preset_defaults($parmname); unless (defined($winvalue)) { $winvalue=$val; } my $valout = &valout($value,$type,1); + my $unencmarker = $marker; foreach my $item (\$type, \$dis, \$winvalue, \$marker, \$return, \$call, \$hour, \$min, \$sec) { $$item = &HTML::Entities::encode($$item,'"<>&'); $$item =~ s/\'/\\\'/g; } - return '
'.
+ return '
| ' .$$part{$which}.' | '); - } else { + } else { $parm=~s|\[.*\]\s||g; } my $automatic=&rulescache(($which=~/\_([^\_]+)$/)[0].'_triggers'); if ($automatic) { $parm.=''.$parm.' | '); + $r->print(''.$parm.' | '); my $thismarker=$which; $thismarker=~s/^parameter\_//; @@ -1075,12 +1076,20 @@ sub print_td { my ($r,$which,$defbg,$result,$outpar,$mprefix,$value,$typeoutpar,$display)=@_; $r->print(''); - if ($which<11 || $which > 12) { - $r->print(&plink($$typeoutpar[$which], - $$display{$value},$$outpar[$which], - $mprefix."$which",'parmform.pres','psub')); + my $nolink = 0; + if ($which == 11 || $which == 12) { + $nolink = 1; + } elsif ($mprefix =~ /availablestudent\&$/) { + if ($which > 3) { + $nolink = 1; + } + } + if ($nolink) { + $r->print(&valout($$outpar[$which],$$typeoutpar[$which])); } else { - $r->print(&valout($$outpar[$which],$$typeoutpar[$which])); + $r->print(&plink($$typeoutpar[$which], + $$display{$value},$$outpar[$which], + $mprefix."$which",'parmform.pres','psub')); } $r->print(' | '."\n"); } @@ -1181,9 +1190,15 @@ sub extractResourceInformation { # my $name=&Apache::lonnet::metadata($srcf,$key.'.name'); if (!exists($$allparms{$name}) || $$allparms{$name} =~ m/^\s*$/ ) { - my $display= &Apache::lonnet::metadata($srcf,$key.'.display'); - my $parmdis = $display; - $parmdis =~ s/\s*\[Part.*$//g; + my ($display,$parmdis); + $display = &standard_parameter_names($name); + if ($display eq '') { + $display= &Apache::lonnet::metadata($srcf,$key.'.display'); + $parmdis = $display; + $parmdis =~ s/\s*\[Part.*$//g; + } else { + $parmdis = $display; + } $$allparms{$name}=$parmdis; if (ref($defkeytype)) { $$defkeytype{$name}= @@ -1306,18 +1321,19 @@ sub parmmenu { ENDSCRIPT - $r->print(); - $r->print("\n
'); + $r->print(' />'.($$allparms{$tempkey}=~/\S/ ? $$allparms{$tempkey} + : $tempkey) + .''); $cnt++; if ($cnt==3) { $r->print(" | ||||||||||||||||||||||||||||||||||||||||||||||
'
.'';
+ $r->print(&Apache::lonhtmlcommon::row_title(&mt('Group/Section')));
+ $r->print($sections.$groups);
}
-
- $r->print(''
- .$g_s_header
- .$sections
- .$groups
- .$g_s_footer
- .''
- .''
- );
+ ,$chooseopt));
}
sub displaymenu {
my ($r,$allparms,$allparts,$pscat,$psprt,$keyorder)=@_;
- $r->print('
| ';
+ } elsif ($parameter eq 'rolenames') {
+ $output.= '
|
| ';
} elsif ($parameter eq 'categories') {
my $catdisplay;
if ($values{'categories'} ne '') {
@@ -2665,39 +2761,229 @@ sub crsenv {
$values{'categories'}.'" />'.
'';
- } else {
- $output .= ''. - &Apache::lonhtmlcommon::textbox($parameter.'_value', - $values{$parameter}, - 40,$onchange).' | '; - } - $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"; + } else { # Display default textbox in all other cases + $output .= '' + .&Apache::lonhtmlcommon::textbox($parameter.'_value', + $values{$parameter}, + 40, + $onchange) + .' | '; + } + + # Column 3/3: Check Box (in most cases) + unless ($parameter eq 'rolenames') { + $output .= '' + .&Apache::lonhtmlcommon::checkbox($parameter.'_setparmval') + .' | '; + } + + # End Parameter Row + $output .= &Apache::loncommon::end_data_table_row(); + + return $output; + } # End sub parameter_row + + + # Parameter Category Names + my %parm_cat_names = &Apache::lonlocal::texthash ( + 'cat_0' => 'Parameter Category Zero', + 'cat_1' => 'Parameter Category One', + 'cat_2' => 'Parameter Category Two', + 'cat_3' => 'Parameter Category Three', + 'cat_4' => 'Parameter Category Four', + 'cat_5' => 'Parameter Category Five', + 'cat_6' => 'Parameter Category Six', + 'cat_7' => 'Parameter Category Seven', + 'cat_can' => 'Parameter Category Can', + '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', + 'description', + 'courseid', + 'cloners' + ], + 'cat_1' => [ + 'grading', + 'externalsyllabus', + 'default_xml_style', + 'pageseparators' + ], + 'cat_2' => [ + 'question.email', + 'question.email.text', + 'comment.email', + 'comment.email.text', + 'policy.email', + 'policy.email.text', + ], + 'cat_3' => [ + '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', + ], + 'cat_4' => [ + 'languages', + 'timezone', + 'datelocale', + 'rolenames', + 'nothideprivileged', + 'rndseed', + 'receiptalg', + 'problem_stream_switch', + 'suppress_tries', + 'suppress_embed_prompt', + 'default_paper_size', + 'print_header_format', + 'disable_receipt_display', + ], + 'cat_5' => [ + 'spreadsheet_default_classcalc', + 'spreadsheet_default_studentcalc', + 'spreadsheet_default_assesscalc', + 'hideemptyrows', + ], + 'cat_6' => [ + 'default_enrollment_start_date', + 'default_enrollment_end_date', + ], + 'cat_7' => [ + 'tthoptions', + 'texengine', + 'disablesigfigs', + 'disableexampointprint', + 'task_messages', + 'task_grading', + ], + ); + + # Add special parameters depending on special context to parameter categories hash + my @can_cats; + (my $can_toggle_cat,$can_categorize) = &can_modify_catsettings($dom); + if ($can_toggle_cat) { + push(@can_cats,'hidefromcat'); } - my %lt=&Apache::lonlocal::texthash( - 'par' => 'Parameter', - 'val' => 'Value', - 'set' => 'Set?', - 'sav' => 'Save' - ); - - my $Parameter=&mt('Parameter'); - my $Value=&mt('Value'); - my $Set=&mt('Set'); + if ($can_categorize) { + push(@can_cats,'categories'); + } + $parm_cat_parms{'cat_can'} = [@can_cats]; + + # Add custom parameters to custom parameter category + my @custom_cats; + 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(@custom_cats,$parameter); + } + } + } + $parm_cat_parms{'cat_custom'} = [@custom_cats]; + + +# Display Course Parameter Overview +# Provide hyperlinks to detailed parameter settings +$output_SB .= '' + .''
+ .''
+ .''.$parm_cat_names{$catkey}.'' + .' | '
+ .&Apache::loncommon::end_data_table_empty_row
+ .&Apache::loncommon::start_data_table_header_row()
+ .''.$lt{'par'}.' | '.$lt{'val'}.' | '.$lt{'set'}.' | ' + .&Apache::loncommon::end_data_table_header_row(); + + foreach my $parameter (@{$parm_cat_parms{$catkey}}) { + 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() + . '$lt{'par'} | $lt{'val'} | $lt{'set'} | -$end_header_row -$output -$end_table - +$output_SB $end_page ENDENV @@ -3103,7 +3381,7 @@ sub listdata { } if ($part ne $oldpart) { $r->print(&tableend(). - "\n".&mt('Part').": $part"); + "\n".''.&mt('Part').": $part"); $oldpart=$part; } # @@ -3138,7 +3416,7 @@ sub listdata { $r->print(&default_selector($thiskey,$$resourcedata{$thiskey})); } $r->print(''); + $thistype.'" />'); $r->print(''.&Apache::loncommon::end_data_table_row()); } } @@ -3325,21 +3603,32 @@ ENDOVER } # Menu to select levels, etc - $r->print('
---|
');
+ #$r->print('
');
+ $r->print(' ');
+
$r->print('');
-
+
# Build the list data hash from the specified parms
my $listdata;
@@ -3450,7 +3744,7 @@ ENDOVER
my $foundkeys=&listdata($r,$resourcedata,$resourcedata,$sortorder);
$r->print(&tableend().'' );
my $sortorder=$env{'form.sortorder'};
unless ($sortorder) { $sortorder='realmstudent'; }
&sortmenu($r,$sortorder);
-
+ $r->print(' '. - ($foundkeys?'':&mt('There are no parameters.')).' '. + ($foundkeys?'':&mt('There are no parameters.')).''. &Apache::loncommon::end_page()); } @@ -3882,20 +4176,20 @@ sub output_row { my $multiple_checked; my $single_checked; if ($options =~ m/onlyone/) { - $multiple_checked = ""; - $single_checked = " CHECKED "; + $multiple_checked = ''; + $single_checked = ' checked="checked"'; } else { - $multiple_checked = " CHECKED "; - $single_checked = ""; + $multiple_checked = ' checked="checked"'; + $single_checked = ''; } $output .= &Apache::loncommon::continue_data_table_row(); $output .= ' | '.(' ' x 10).' | '; $output .= &Apache::loncommon::end_data_table_row(); $output .= &Apache::loncommon::continue_data_table_row(); $output .= ''.(' ' x 10).' | '; $output .= &Apache::loncommon::end_data_table_row(); } @@ -4310,12 +4604,12 @@ ENDINPUTDATE } elsif ($defkeytype{$tempkey} eq 'string_yesno') { my $yeschecked=''; my $nochecked=''; - if (&rulescache($tempkey.'_value') eq 'yes') { $yeschecked='checked="checked"'; } - if (&rulescache($tempkey.'_value') eq 'no') { $nochecked='checked="checked"'; } + if (&rulescache($tempkey.'_value') eq 'yes') { $yeschecked=' checked="checked"'; } + if (&rulescache($tempkey.'_value') eq 'no') { $nochecked=' checked="checked"'; } $r->print(<