Diff for /loncom/interface/lonparmset.pm between versions 1.438 and 1.444

version 1.438, 2009/03/29 18:25:33 version 1.444, 2009/05/06 16:19:34
Line 1322  sub parmmenu { Line 1322  sub parmmenu {
 </script>  </script>
 ENDSCRIPT  ENDSCRIPT
     $r->print();      $r->print();
       $r->print('<tr>');
       $r->print('<td style="width:350px;border:1pt solid;font-weight:bold;color:#000000;background-color:#ccccff;vertical-align:top;">');
       $r->print('<blockquote>'.&mt('Select Parameters to View').'</blockquote>');
       $r->print('</td>');                  
       $r->print('<td style="width:700px; border:1pt solid;padding-left:10px"><blockquote>'); 
     $r->print("\n".'<table id="LC_parm_overview_parm_menu"><tr>');      $r->print("\n".'<table id="LC_parm_overview_parm_menu"><tr>');
     my $cnt=0;      my $cnt=0;
     foreach $tempkey (&keysindisplayorder($allparms,$keyorder)) {      foreach $tempkey (&keysindisplayorder($allparms,$keyorder)) {
Line 1379  ENDSCRIPT Line 1384  ENDSCRIPT
              .'</td>'               .'</td>'
              .'</tr></table>'               .'</tr></table>'
     );      );
       $r->print('</blockquote></td></tr>');
 }  }
   
 sub partmenu {  sub partmenu {
     my ($r,$allparts,$psprt)=@_;      my ($r,$allparts,$psprt)=@_;
       $r->print('<tr>');
       $r->print('<td style="width:350px;border:1pt solid;font-weight:bold;color:#000000;background-color:#ccccff;vertical-align:top;">');
       $r->print('<blockquote>'. &mt('Select Parts to View').'</blockquote>');
       $r->print('</td>');                  
       $r->print('<td style="width:700px; border:1pt solid;padding-left:10px"><blockquote>'); 
     $r->print('<select multiple="multiple" name="psprt" size="8">');      $r->print('<select multiple="multiple" name="psprt" size="8">');
     $r->print('<option value="all"');      $r->print('<option value="all"');
     $r->print(' selected="selected"') unless (@{$psprt});      $r->print(' selected="selected"') unless (@{$psprt});
Line 1401  sub partmenu { Line 1412  sub partmenu {
  }   }
     }      }
     $r->print('</select>');      $r->print('</select>');
        $r->print('</blockquote></td></tr>');
 }  }
   
 sub usermenu {  sub usermenu {
Line 1417  sub usermenu { Line 1429  sub usermenu {
   
     my $g_s_header='';      my $g_s_header='';
     my $g_s_footer='';      my $g_s_footer='';
       
     if (%sectionhash) {      if (%sectionhash) {
         $sections=&mt('Section:').' <select name="csec"';          $sections=&mt('Section:').' <select name="csec"';
         if (%grouphash && $parmlev ne 'full') {          if (%grouphash && $parmlev ne 'full') {
Line 1483  function group_or_section(caller) { Line 1495  function group_or_section(caller) {
         $groups.='</select>';          $groups.='</select>';
     }      }
   
     if (%sectionhash || %grouphash) {      if (%sectionhash || %grouphash) {   
         $g_s_header='<fieldset><legend>'.&mt('Group/Section').'</legend><div>';          $r->print('<tr>');
         $g_s_footer='</div></fieldset>';          $r->print('<td style="width:350px;border:1pt solid;font-weight:bold;color:#000000;background-color:#ccccff;vertical-align:top;">');
     }          $r->print('<blockquote>'.&mt('Group/Section').'</blockquote>');
           $r->print('</td>');                  
     $r->print('<b>'          $r->print('<td style="width:700px; border:1pt solid;padding-left:10px"><blockquote>');
              .$g_s_header          $r->print($sections.$groups);
              .$sections          $r->print('</blockquote></td></tr>'); 
              .$groups      }
              .$g_s_footer      $r->print('<tr>');
              .'<fieldset><legend>'.&mt('User').'</legend><div>'      $r->print('<td style="width:350px;border:1pt solid;font-weight:bold;color:#000000;background-color:#ccccff;vertical-align:top;">');
              .&mt('For User [_1] or Student/Employee ID [_2] at Domain [_3]'      $r->print('<blockquote>'. &mt('User').'</blockquote>');
       $r->print('</td>');                  
       $r->print('<td style="width:700px; border:1pt solid;padding-left:10px"><blockquote>');
                
       $r->print(&mt('For User [_1] or Student/Employee ID [_2] at Domain [_3]'
                  ,'<input type="text" value="'.$uname.'" size="12" name="uname" />'                   ,'<input type="text" value="'.$uname.'" size="12" name="uname" />'
                  ,'<input type="text" value="'.$id.'" size="12" name="id" /> '                   ,'<input type="text" value="'.$id.'" size="12" name="id" /> '
                  ,$chooseopt)                   ,$chooseopt));        
              .'</div></fieldset>'     
              .'</b>'     $r->print('</blockquote></td></tr>'); 
     );  
 }  }
   
 sub displaymenu {  sub displaymenu {
     my ($r,$allparms,$allparts,$pscat,$psprt,$keyorder)=@_;      my ($r,$allparms,$allparts,$pscat,$psprt,$keyorder)=@_;
     $r->print('<table border="1"><tr><th>'.&mt('Select Parameters to View').'</th><th>'.      $r->print('<div class="LC_ContentBoxSpecial">');
      &mt('Select Parts to View').'</th></tr><tr><td>');        $r->print('<h2 class="LC_hcell">Step 2</h2>');
       $r->print('<blockquote>');
       $r->print('<table border="0" style="border-style:solid;border-collapse:seperate;text-align:left;margin-left:auto;margin-right:auto;border-spacing:0pt;">');
   
       #$r->print('<table border="1"><tr><th>'.&mt('Select Parameters to View').'</th><th>'. &mt('Select Parts to View').'</th></tr><tr><td>');  
     &parmmenu($r,$allparms,$pscat,$keyorder);      &parmmenu($r,$allparms,$pscat,$keyorder);
     $r->print('</td><td valign="top" align="center">');     
     &partmenu($r,$allparts,$psprt);      &partmenu($r,$allparts,$psprt);
     $r->print('</td></tr></table>');      $r->print('</table></blockquote></div>');
 }  }
   
 sub mapmenu {  sub mapmenu {##
     my ($r,$allmaps,$pschp,$maptitles)=@_;      my ($r,$allmaps,$pschp,$maptitles)=@_; 
     $r->print('<b>'.&mt('Select Enclosing Map or Folder').'</b> ');      $r->print('<tr>');
       $r->print('<td style="width:350px;border:1pt solid;font-weight:bold;color:#000000;background-color:#ccccff;vertical-align:top;">');
       $r->print('<blockquote>'.&mt('Select Enclosing Map or Folder').'</blockquote>');
       $r->print('</td>');                  
       $r->print('<td style="width:700px; border:1pt solid;padding-left:10px"><blockquote>'); 
     $r->print('<select name="pschp">');      $r->print('<select name="pschp">');
     $r->print('<option value="all">'.&mt('All Maps or Folders').'</option>');      $r->print('<option value="all">'.&mt('All Maps or Folders').'</option>');
     foreach (sort {$$allmaps{$a} cmp $$allmaps{$b}} keys %{$allmaps}) {      foreach (sort {$$allmaps{$a} cmp $$allmaps{$b}} keys %{$allmaps}) {
Line 1524  sub mapmenu { Line 1547  sub mapmenu {
  $r->print('>'.$$maptitles{$_}.($$allmaps{$_}!~/^uploaded/?' ['.$$allmaps{$_}.']':'').'</option>');   $r->print('>'.$$maptitles{$_}.($$allmaps{$_}!~/^uploaded/?' ['.$$allmaps{$_}.']':'').'</option>');
     }      }
     $r->print("</select>");      $r->print("</select>");
       $r->print('</blockquote></td></tr>');
 }  }
   
 sub levelmenu {  sub levelmenu {
     my ($r,$alllevs,$parmlev)=@_;      my ($r,$alllevs,$parmlev)=@_;    
     $r->print('<b>'.&mt('Select Parameter Level').      $r->print('<tr>');
       &Apache::loncommon::help_open_topic('Course_Parameter_Levels').'</b> ');      $r->print('<td style="width:350px;border:1pt solid;font-weight:bold;color:#000000;background-color:#ccccff;vertical-align:top;">');
       $r->print('<blockquote>'.&mt('Select Parameter Level').&Apache::loncommon::help_open_topic('Course_Parameter_Levels').'</blockquote>');
       $r->print('</td>');                  
       $r->print('<td style="width:700px; border:1pt solid;padding-left:10px"><blockquote>'); 
     $r->print('<select name="parmlev">');      $r->print('<select name="parmlev">');
     foreach (reverse sort keys %{$alllevs}) {      foreach (reverse sort keys %{$alllevs}) {
  $r->print('<option value="'.$$alllevs{$_}.'"');   $r->print('<option value="'.$$alllevs{$_}.'"');
Line 1539  sub levelmenu { Line 1566  sub levelmenu {
  $r->print('>'.&mt($_).'</option>');   $r->print('>'.&mt($_).'</option>');
     }      }
     $r->print("</select>");      $r->print("</select>");
       $r->print('</blockquote></td></tr>');
 }  }
   
   
Line 1861  sub assessparms { Line 1889  sub assessparms {
   '" name="recent_'.$_.'" />');    '" name="recent_'.$_.'" />');
     }      }
                                                   
     if (!$pssymb) {      if (!$pssymb) {
         $r->print('<table border="1"><tr><td>');          $r->print('<div class="LC_ContentBoxSpecial">');
           $r->print('<h2 class="LC_hcell">Step 1</h2>');
           $r->print('<blockquote>');
           $r->print('<table border="0" style="border-style:solid;border-collapse:seperate;text-align:left;margin-left:auto;margin-right:auto;border-spacing:0pt;">');
         &levelmenu($r,\%alllevs,$parmlev);          &levelmenu($r,\%alllevs,$parmlev);
         $r->print('</td>');         
  if ($parmlev ne 'general') {   if ($parmlev ne 'general') {
             $r->print('<td>');             
     &mapmenu($r,\%allmaps,$pschp,\%maptitles);      &mapmenu($r,\%allmaps,$pschp,\%maptitles);
     $r->print('</td>');      
  }   }
         $r->print('</tr></table>');          $r->print('</table>');
           $r->print('</blockquote>');
           $r->print('</div>');
  &displaymenu($r,\%allparms,\%allparts,\@pscat,\@psprt,\%keyorder);   &displaymenu($r,\%allparms,\%allparts,\@pscat,\@psprt,\%keyorder);
     } else {      } else {
         my ($map,$id,$resource)=&Apache::lonnet::decode_symb($pssymb);          my ($map,$id,$resource)=&Apache::lonnet::decode_symb($pssymb);
Line 1880  sub assessparms { Line 1913  sub assessparms {
   '<br /><label><b>'.&mt('Show all parts').': <input type="checkbox" name="psprt" value="all"'.    '<br /><label><b>'.&mt('Show all parts').': <input type="checkbox" name="psprt" value="all"'.
   ($env{'form.psprt'}?' checked="checked"':'').' /></b></label><br />');    ($env{'form.psprt'}?' checked="checked"':'').' /></b></label><br />');
     }      }
       $r->print('<div class="LC_ContentBoxSpecial">');
       $r->print('<h2 class="LC_hcell">Step 3</h2>');
       $r->print('<blockquote>');
       $r->print('<table border="0" style="border-style:solid;border-collapse:seperate;text-align:left;margin-left:auto;margin-right:auto;border-spacing:0pt;">');
     &usermenu($r,$uname,$id,$udom,$csec,$cgroup,$parmlev,\@usersgroups);          &usermenu($r,$uname,$id,$udom,$csec,$cgroup,$parmlev,\@usersgroups);    
       $r->print('</table>');
       $r->print('</blockquote>');
       $r->print('</div>');
   
     $r->print('<p>'.$message.'</p>');      $r->print('<p>'.$message.'</p>');
   
Line 2498  sub crsenv { Line 2538  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  # ------------------------- Re-init course environment entries for this session
   
     &Apache::lonnet::coursedescription($env{'request.course.id'},      &Apache::lonnet::coursedescription($env{'request.course.id'},
Line 2512  sub crsenv { Line 2549  sub crsenv {
     my $SelectStyleFile=&mt('Select Style File');      my $SelectStyleFile=&mt('Select Style File');
     my $SelectSpreadsheetFile=&mt('Select Spreadsheet File');      my $SelectSpreadsheetFile=&mt('Select Spreadsheet File');
     my $output='';      my $output='';
       my $output_SB = ''; # will be replaced by "$output" when all changes are done
     my $can_categorize;      my $can_categorize;
       my %lt=&Apache::lonlocal::texthash(
                  'par'   => 'Parameter',
                  'val'   => 'Value',
                  'set'   => 'Set?',
                  'sav'   => 'Save',
              );
     if (! exists($values{'con_lost'})) {      if (! exists($values{'con_lost'})) {
         my %descriptions=          my %descriptions=
     ('url'            => '<b>'.&mt('Top Level Map').'</b><br />'.      ('url'            => '<b>'.&mt('Top Level Map').'</b><br />'.
Line 2521  sub crsenv { Line 2565  sub crsenv {
                                  &mt('Select Map').'</a><br /><span class="LC_warning"> '.                                   &mt('Select Map').'</a><br /><span class="LC_warning"> '.
                                  &mt('Modification may make assessment data inaccessible!').                                   &mt('Modification may make assessment data inaccessible!').
                                  '</span>',                                   '</span>',
              'description'    => '<b>'.&mt('Course Description').'</b>',               'description'    => '<b>'.&mt('Course Title').'</b>',
              'courseid'       => '<b>'.&mt('Course ID or number').               'courseid'       => '<b>'.&mt('Course ID or number').
                                  '</b><br />'.                                   '</b><br />'.
                                  '('.&mt('internal, optional').')',                                   '('.&mt('internal, optional').')',
Line 2662  sub crsenv { Line 2706  sub crsenv {
                  => '<b>'.&mt('Replacement titles for standard course roles').'</b><br />'.                   => '<b>'.&mt('Replacement titles for standard course roles').'</b><br />'.
                     '('.&mt('To replace the standard title for a course role, enter the title you wish to use, otherwise leave blank.').')',                      '('.&mt('To replace the standard title for a course role, enter the title you wish to use, otherwise leave blank.').')',
              );               );
         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');  # Begin: New Version with Parameter Categories
         }  
         if ($can_categorize) {      sub parameter_row {
             push(@Display_Order,'categories');          # Create parameter row for course environment screen
         }  
         push (@Display_Order,('grading',          my ($parameter, $description) = @_;
                              'externalsyllabus',  
                              'default_xml_style','pageseparators',          # Start Parameter Row
                              'question.email','question.email.text','comment.email',          my $output = &Apache::loncommon::start_data_table_row();
                              'comment.email.text','policy.email','policy.email.text',  
                              'student_classlist_view',          # Column 1/3: Descriptive text of current parameter
                              'student_classlist_opt_in',          $output .= '<td>'.$description.'</td>';
                              'student_classlist_portfiles',  
                              'plc.roles.denied','plc.users.denied',          # Column 2/3: Input field (Sometimes special field(s), depending on parameter)
                              'pch.roles.denied','pch.users.denied',  
                              'allow_limited_html_in_feedback',          # onchange is javascript to automatically check the 'Set' button.
                              'allow_discussion_post_editing',          my $onchange = 'onFocus="javascript:window.document.forms'
                              'languages',                        ."['envform'].elements['".$parameter."_setparmval']"
                              'timezone',                        .'.checked=true;"';
                              '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);  
                 }  
             }  
  }  
   
         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().  
  '<td>'.$description.'</td>';  
             if ($parameter =~ /^default_enrollment_(start|end)_date$/) {              if ($parameter =~ /^default_enrollment_(start|end)_date$/) {
                 $output .= '<td>'.                  $output .= '<td>'.
                     &Apache::lonhtmlcommon::date_setter('envform',                      &Apache::lonhtmlcommon::date_setter('envform',
Line 2786  sub crsenv { Line 2788  sub crsenv {
                            $values{'categories'}.'" />'.                             $values{'categories'}.'" />'.
                            '<input type="textbox" name="categories_display" value="'.                             '<input type="textbox" name="categories_display" value="'.
                            $catdisplay.'" readonly="readonly" size="40" /></td>';                             $catdisplay.'" readonly="readonly" size="40" /></td>';
             } else {              } else { # Display default textbox in all other cases
                 $output .= '<td>'.                  $output .= '<td>'
                     &Apache::lonhtmlcommon::textbox($parameter.'_value',                            .&Apache::lonhtmlcommon::textbox($parameter.'_value',
                                                     $values{$parameter},                                                             $values{$parameter},
                                                     40,$onchange).'</td>';                                                             40,
             }                                                             $onchange)
             unless ($parameter eq 'rolenames') {                            .'</td>';
                 $output .= '<td>'.              }
                            &Apache::lonhtmlcommon::checkbox($parameter.'_setparmval').  
                            '</td>';          # Column 3/3: Check Box (in most cases)
             }          unless ($parameter eq 'rolenames') {
             $output .= &Apache::loncommon::end_data_table_row()."\n";              $output .= '<td>'
  }                        .&Apache::lonhtmlcommon::checkbox($parameter.'_setparmval')
         my $onchange = 'onFocus="javascript:window.document.forms'.                        .'</td>';
             '[\'envform\'].elements[\'newp_setparmval\']'.          }
             '.checked=true;"';  
  $output.=&Apache::loncommon::start_data_table_row().          # End Parameter Row
     '<td><i>'.&mt('Create New Environment Variable').'</i><br />'.          $output .= &Apache::loncommon::end_data_table_row();
     '<input type="text" size="40" name="newp_name" '.  
                 $onchange.' /></td><td>'.          return $output;
             '<input type="text" size="40" name="newp_value" '.      } # End sub parameter_row
                 $onchange.' /></td><td>'.  
     '<input type="checkbox" name="newp_setparmval" /></td>'.  
     &Apache::loncommon::end_data_table_row()."\n";      # 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(      if ($can_categorize) {
     'par'   => 'Parameter',          push(@can_cats,'categories');
     'val'   => 'Value',      }
     'set'   => 'Set?',      $parm_cat_parms{'cat_can'} = [@can_cats];
     'sav'   => 'Save'  
        );      # Add custom parameters to custom parameter category
       my @custom_cats;
     my $Parameter=&mt('Parameter');      foreach my $parameter (sort(keys(%values))) {
     my $Value=&mt('Value');          unless (($parameter =~ m/^internal\./)||($parameter =~ m/^metadata\./) ||
     my $Set=&mt('Set');                  ($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 .= '<a name="parmlist" />'
                .'<div class="LC_ContentBoxSpecial">'
                .'<h2 class="LC_hcell">'.&mt('Course Parameter Overview').'</h2>'
                .'<ul>';
   foreach my $catkey (@Display_Order) {
       if (!@{$parm_cat_parms{$catkey}}) { next; } # Only display non-empty categories 
       $output_SB .= '<li>'
                    .'<a href="#parmlist_'.$catkey.'">'
                    .$parm_cat_names{$catkey}
                    .'</a>'
                    .'</li>';
   }
   $output_SB .= '</ul>'
               .'</div>';
   
   
   my $buttons='<div align="right">'
              .'<input type="submit" name="crsenv" value="'.&mt('Save All').'" />'
              .'<br /><a href="#parmlist">'.&mt('Back to Course Parameter Overview').'</a>'
              .'</div>';
   
   # Display all Parameters grouped by categories
   $output_SB .= '<h2>'.&mt('Course Parameters').'</h2>';
   
   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()
                    .'<td colspan="3">'
                    .'<a name="parmlist_'.$catkey.'" />'
                    .'<h3>'.$parm_cat_names{$catkey}.'</h3>'
                    .'</td>'
                    .&Apache::loncommon::end_data_table_empty_row
                    .&Apache::loncommon::start_data_table_header_row()
                    .'<th>'.$lt{'par'}.'</th><th>'.$lt{'val'}.'</th><th>'.$lt{'set'}.'</th>'
                    .&Apache::loncommon::end_data_table_header_row();
   
       foreach my $parameter (@{$parm_cat_parms{$catkey}}) {
           my $description = $descriptions{$parameter};
           $output_SB .= &parameter_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()
                      .'<td>'
                      .'<i>'.&mt('Create New Environment Variable').'</i><br />'
                      .'<input type="text" size="40" name="newp_name" '.$onchange.' />'
                      .'</td><td>'
                      .'<input type="text" size="40" name="newp_value" '.$onchange.' />'
                      .'</td><td>'
                      .'<input type="checkbox" name="newp_setparmval" /></td>'
                      .&Apache::loncommon::end_data_table_row();
       }
       # Add buttons row at end of each category
       $output_SB .= &Apache::loncommon::start_data_table_empty_row()
                    .'<td colspan="3">'
                    .$buttons
                    .'</td>'
                    .&Apache::loncommon::end_data_table_empty_row;
   
       $output_SB .= &Apache::loncommon::end_data_table()
                   . '<br />';
   }
   
   # End: New Version with Parameter Categories
   # ----------------------------------------------------------------
   
   
       }
   
     my ($jscript,$categorize_js);      my ($jscript,$categorize_js);
     my $browse_js = &Apache::loncommon::browser_and_searcher_javascript('parmset');      my $browse_js = &Apache::loncommon::browser_and_searcher_javascript('parmset');
     if ($can_categorize) {      if ($can_categorize) {
Line 2843  ENDSCRIPT Line 3033  ENDSCRIPT
        $jscript);         $jscript);
     my $end_page =       my $end_page = 
  &Apache::loncommon::end_page();   &Apache::loncommon::end_page();
     my $end_table=&Apache::loncommon::end_data_table();  
     $r->print(<<ENDENV);      $r->print(<<ENDENV);
 $start_page  $start_page
 $breadcrumbs  $breadcrumbs
 <form method="post" action="/adm/parmset?action=crsenv" name="envform">  <form method="post" action="/adm/parmset?action=crsenv" name="envform">
 $setoutput  $setoutput
 <div><input type="submit" name="crsenv" value="$lt{'sav'}" /></div>  $output_SB
 $start_table  
 $start_header_row  
 <th>$lt{'par'}</th><th>$lt{'val'}</th><th>$lt{'set'}</th>  
 $end_header_row  
 $output  
 $end_table  
 <input type="submit" name="crsenv" value="$lt{'sav'}" />  
 </form>  </form>
 $end_page  $end_page
 ENDENV  ENDENV
Line 4433  ENDINPUTDATE Line 4615  ENDINPUTDATE
  } elsif ($defkeytype{$tempkey} eq 'string_yesno') {   } elsif ($defkeytype{$tempkey} eq 'string_yesno') {
             my $yeschecked='';              my $yeschecked='';
             my $nochecked='';              my $nochecked='';
             if (&rulescache($tempkey.'_value') eq 'yes') { $yeschecked='checked="checked"'; }              if (&rulescache($tempkey.'_value') eq 'yes') { $yeschecked=' checked="checked"'; }
             if (&rulescache($tempkey.'_value') eq 'no') { $nochecked='checked="checked"'; }              if (&rulescache($tempkey.'_value') eq 'no') { $nochecked=' checked="checked"'; }
   
     $r->print(<<ENDYESNO);      $r->print(<<ENDYESNO);
 <label><input type="radio" name="$tempkey\_value" value="yes" $yeschecked /> $lt{'yes'}</label><br />  <label><input type="radio" name="$tempkey\_value" value="yes"$yeschecked /> $lt{'yes'}</label><br />
 <label><input type="radio" name="$tempkey\_value" value="no" $nochecked /> $lt{'no'}</label>  <label><input type="radio" name="$tempkey\_value" value="no"$nochecked /> $lt{'no'}</label>
 ENDYESNO  ENDYESNO
         } else {          } else {
     $r->print('<input type="text" size="20" name="'.$tempkey.'_value" value="'.&rulescache($tempkey.'_value').'" />');      $r->print('<input type="text" size="20" name="'.$tempkey.'_value" value="'.&rulescache($tempkey.'_value').'" />');
Line 4800  sub handler { Line 4982  sub handler {
     text=>"Parameter Manager",      text=>"Parameter Manager",
     faq=>10,      faq=>10,
     bug=>'Instructor Interface',      bug=>'Instructor Interface',
                                             help => 'Parameter_Manager'});                                              help =>
                                               'Parameter_Manager,Course_Environment,Parameter_Helper,Parameter_Overview,Table_Mode'});
   
 # ----------------------------------------------------- Needs to be in a course  # ----------------------------------------------------- Needs to be in a course
     my $parm_permission =      my $parm_permission =

Removed from v.1.438  
changed lines
  Added in v.1.444


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>