--- loncom/interface/lonparmset.pm 2009/03/31 14:08:20 1.440 +++ loncom/interface/lonparmset.pm 2009/05/05 16:53:25 1.443 @@ -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.443 2009/05/05 16:53:25 neumanie Exp $ # # Copyright Michigan State University Board of Trustees # @@ -1322,6 +1322,11 @@ sub parmmenu { ENDSCRIPT $r->print(); + $r->print(''); + $r->print(''); + $r->print('
'.&mt('Select Parameters to View').'
'); + $r->print(''); + $r->print('
'); $r->print("\n".''); my $cnt=0; foreach $tempkey (&keysindisplayorder($allparms,$keyorder)) { @@ -1379,10 +1384,16 @@ ENDSCRIPT .'' .'
' ); + $r->print('
'); } sub partmenu { my ($r,$allparts,$psprt)=@_; + $r->print(''); + $r->print(''); + $r->print('
'. &mt('Select Parts to View').'
'); + $r->print(''); + $r->print('
'); $r->print(''); + $r->print('
'); } sub usermenu { @@ -1417,7 +1429,7 @@ sub usermenu { my $g_s_header=''; my $g_s_footer=''; - + if (%sectionhash) { $sections=&mt('Section:').' ' ,' ' - ,$chooseopt) - .'' - .'' - ); + ,$chooseopt)); + + $r->print(''); } sub displaymenu { my ($r,$allparms,$allparts,$pscat,$psprt,$keyorder)=@_; - $r->print('
'.&mt('Select Parameters to View').''. - &mt('Select Parts to View').'
'); + $r->print('
'); + $r->print('

Step 2

'); + $r->print('
'); + $r->print(''); + + #$r->print('
'.&mt('Select Parameters to View').''. &mt('Select Parts to View').'
'); &parmmenu($r,$allparms,$pscat,$keyorder); - $r->print(''); + &partmenu($r,$allparts,$psprt); - $r->print('
'); + $r->print('
'); } -sub mapmenu { - my ($r,$allmaps,$pschp,$maptitles)=@_; - $r->print(''.&mt('Select Enclosing Map or Folder').' '); +sub mapmenu {## + my ($r,$allmaps,$pschp,$maptitles)=@_; + $r->print(''); + $r->print(''); + $r->print('
'.&mt('Select Enclosing Map or Folder').'
'); + $r->print(''); + $r->print('
'); $r->print('"); + $r->print('
'); } sub levelmenu { - my ($r,$alllevs,$parmlev)=@_; - $r->print(''.&mt('Select Parameter Level'). - &Apache::loncommon::help_open_topic('Course_Parameter_Levels').' '); + my ($r,$alllevs,$parmlev)=@_; + $r->print(''); + $r->print(''); + $r->print('
'.&mt('Select Parameter Level').&Apache::loncommon::help_open_topic('Course_Parameter_Levels').'
'); + $r->print(''); + $r->print('
'); $r->print('"); + $r->print('
'); } @@ -1861,16 +1889,21 @@ sub assessparms { '" name="recent_'.$_.'" />'); } - if (!$pssymb) { - $r->print('
'); + if (!$pssymb) { + $r->print('
'); + $r->print('

Step 1

'); + $r->print('
'); + $r->print(''); &levelmenu($r,\%alllevs,$parmlev); - $r->print(''); + if ($parmlev ne 'general') { - $r->print(''); + } - $r->print('
'); + &mapmenu($r,\%allmaps,$pschp,\%maptitles); - $r->print('
'); + $r->print('
'); + $r->print(''); + $r->print(''); &displaymenu($r,\%allparms,\%allparts,\@pscat,\@psprt,\%keyorder); } else { my ($map,$id,$resource)=&Apache::lonnet::decode_symb($pssymb); @@ -1880,7 +1913,14 @@ sub assessparms { '

'); } + $r->print('
'); + $r->print('

Step 3

'); + $r->print('
'); + $r->print(''); &usermenu($r,$uname,$id,$udom,$csec,$cgroup,$parmlev,\@usersgroups); + $r->print('
'); + $r->print('
'); + $r->print('
'); $r->print('

'.$message.'

'); @@ -2498,9 +2538,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 +2708,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 +2795,6 @@ sub crsenv { 40, $onchange) .''; -# ------------------------------- } # Column 3/3: Check Box (in most cases) @@ -2826,12 +2803,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 +2825,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 +2919,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 +2935,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='
' .'' - .'
'.&mt('Back to Parameter List').'' + .'
'.&mt('Back to Course Parameter Overview').'' .'
'; +# 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 +2978,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.= ''; -# } -# $output .= '
'.&Apache::lonnet::plaintext($role,$crstype,undef,1). -# ''. -# &Apache::lonhtmlcommon::textbox($parameter.'_'.$role.'_value', -# $values{$role.'.plaintext'}, -# 15,$onchange). -# '
'; -# foreach my $role ('cc','in','ta','ep','ad','st') { -# $output .= ''; -# } -# $output .= '
'.&Apache::lonhtmlcommon::checkbox($parameter.'_'.$role.'_setparmval'). -# '
'; -# } 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 +3033,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 @@ -5095,7 +4982,8 @@ sub handler { text=>"Parameter Manager", faq=>10, bug=>'Instructor Interface', - help => 'Parameter_Manager'}); + help => + 'Parameter_Manager,Course_Environment,Parameter_Helper,Parameter_Overview,Table_Mode'}); # ----------------------------------------------------- Needs to be in a course my $parm_permission =