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

version 1.438, 2009/03/29 18:25:33 version 1.439, 2009/03/30 15:57:26
Line 2512  sub crsenv { Line 2512  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 2662  sub crsenv { Line 2669  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) {  # The following code is kept to have access to the old version of display order
             push(@Display_Order,'hidefromcat');  
         }  #        my @Display_Order = ('url','description','courseid','cloners');
         if ($can_categorize) {  #        (my $can_toggle_cat,$can_categorize) = &can_modify_catsettings($dom);
             push(@Display_Order,'categories');  #        if ($can_toggle_cat) {
         }  #            push(@Display_Order,'hidefromcat');
         push (@Display_Order,('grading',  #        }
                              'externalsyllabus',  #        if ($can_categorize) {
                              'default_xml_style','pageseparators',  #            push(@Display_Order,'categories');
                              'question.email','question.email.text','comment.email',  #        }
                              'comment.email.text','policy.email','policy.email.text',  #        push (@Display_Order,('grading',
                              'student_classlist_view',  #                             'externalsyllabus',
                              'student_classlist_opt_in',  #                             'default_xml_style','pageseparators',
                              'student_classlist_portfiles',  #                             'question.email','question.email.text','comment.email',
                              'plc.roles.denied','plc.users.denied',  #                             'comment.email.text','policy.email','policy.email.text',
                              'pch.roles.denied','pch.users.denied',  #                             'student_classlist_view',
                              'allow_limited_html_in_feedback',  #                             'student_classlist_opt_in',
                              'allow_discussion_post_editing',  #                             'student_classlist_portfiles',
                              'languages',  #                             'plc.roles.denied','plc.users.denied',
                              'timezone',  #                             'pch.roles.denied','pch.users.denied',
                              'datelocale',  #                             'allow_limited_html_in_feedback',
                              'rolenames',  #                             'allow_discussion_post_editing',
      'nothideprivileged',  #                             'languages',
                              'rndseed',  #                             'timezone',
                              'receiptalg',  #                             'datelocale',
                              'problem_stream_switch',  #                             'rolenames',
      'suppress_tries',  #     'nothideprivileged',
                              'suppress_embed_prompt',  #                             'rndseed',
                              'default_paper_size',  #                             'receiptalg',
      'print_header_format',  #                             'problem_stream_switch',
                              'disable_receipt_display',  #     'suppress_tries',
                              'spreadsheet_default_classcalc',  #                             'suppress_embed_prompt',
                              'spreadsheet_default_studentcalc',  #                             'default_paper_size',
                              'spreadsheet_default_assesscalc',   #     'print_header_format',
                              'hideemptyrows',  #                             'disable_receipt_display',
                              'default_enrollment_start_date',  #                             'spreadsheet_default_classcalc',
                              'default_enrollment_end_date',  #                             'spreadsheet_default_studentcalc',
      'tthoptions',  #                             'spreadsheet_default_assesscalc', 
      'texengine',  #                             'hideemptyrows',
      'disablesigfigs',  #                             'default_enrollment_start_date',
      'disableexampointprint',  #                             'default_enrollment_end_date',
      'task_messages','task_grading'));  #     'tthoptions',
  foreach my $parameter (sort(keys(%values))) {  #     'texengine',
             unless (($parameter =~ m/^internal\./)||($parameter =~ m/^metadata\./) ||  #     'disablesigfigs',
                     ($parameter =~ m/^selfenroll_/) || ($parameter =~ /_selfenroll$/)  #     'disableexampointprint',
                     || ($parameter eq 'type') ||   #     'task_messages','task_grading'));
                     ($parameter =~ m/^(cc|in|ta|ep|ad|st)\.plaintext$/)) {  # foreach my $parameter (sort(keys(%values))) {
                 if (! $descriptions{$parameter}) {  #            unless (($parameter =~ m/^internal\./)||($parameter =~ m/^metadata\./) ||
                     $descriptions{$parameter}=$parameter;  #                    ($parameter =~ m/^selfenroll_/) || ($parameter =~ /_selfenroll$/)
                     push(@Display_Order,$parameter);  #                    || ($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>';  # ----------------------------------------------------------------
   # Begin: New Version with Parameter Categories
   
       sub parameter_row {
       # Create parameter line for course environment screen
           my ($parameter, $description) = @_;
           my $output = '';
   
           # Column 1/3: Descritive text of current parameter
           $output = &Apache::loncommon::start_data_table_row()
                    .'<td>'.$description.'</td>';
   
           # 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']"
                         .'.checked=true;"';
             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 2810  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)
                             .'</td>';
   # -------------------------------
             }              }
             unless ($parameter eq 'rolenames') {  
                 $output .= '<td>'.          # Column 3/3: Check Box (in most cases)
                            &Apache::lonhtmlcommon::checkbox($parameter.'_setparmval').          unless ($parameter eq 'rolenames') {
                            '</td>';              $output .= '<td>'
                         .&Apache::lonhtmlcommon::checkbox($parameter.'_setparmval')
                         .'</td>';
           }
           $output .= &Apache::loncommon::end_data_table_row();
   
           return $output;
       }
   
   
   
   
       # 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',
       );
   
       # Link Parameter Categories with Parameters
       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');
       }
       if ($can_categorize) {
           push(@can_cats,'categories');
       }
       $parm_cat_parms{'cat_can'} = [@can_cats];
   
       # Add custom parameters to parameter categories hash
       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);
             }              }
             $output .= &Apache::loncommon::end_data_table_row()."\n";          }
  }      }
       $parm_cat_parms{'cat_custom'} = [@custom_cats];
   
   
   # Old output structure:
   
   #$start_table
   #$start_header_row
   #<th>$lt{'par'}</th><th>$lt{'val'}</th><th>$lt{'set'}</th>
   #$end_header_row
   #$output
   #$end_table
   
   
   # Display Parameter List Overview
   # Provide hyperlinks to detailed parameter settings
   $output_SB .= '<a name="parmlist" />'
                .'<h2>'.&mt('Course Parameter Overview').'</h2>'
                .'<div class="LC_ContentBox">'
                .'<ul>';
   foreach my $catkey (keys(%parm_cat_names)) {
       $output_SB .= '<li>'
                    .'<a href="#parmlist_'.$catkey.'">'
                    .$parm_cat_names{$catkey}
                    .'</a>'
                    .'</li>';
   }
   $output_SB .= '</ul>'
               .'</div>';
   
   
   # Display Parameter Details
   my $buttons='<div align="right">'
              .'<input type="submit" name="crsenv" value="'.&mt('Save All').'" />'
              .'<br /><a href="#parmlist">'.&mt('Back to Parameter List').'</a>'
              .'</div>';
   
   $output_SB .= '<h2>'.&mt('Course Parameters').'</h2>';
   
   foreach my $catkey (keys(%parm_cat_names)) {
       $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);
       }
       $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 />';
   }
   
   $output_SB .= '</div>';
   
   # 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().
   # '<td>'.$description.'</td>';
   #
   #
   #
   ## -------------------------------
   #            if ($parameter =~ /^default_enrollment_(start|end)_date$/) {
   #                $output .= '<td>'.
   #                    &Apache::lonhtmlcommon::date_setter('envform',
   #                                                        $parameter.'_value',
   #                                                        $values{$parameter},
   #                                                        $onchange).
   #                                                        '</td>';
   #            } elsif ($parameter eq 'timezone') {
   #                my $includeempty = 1;
   #                my $timezone = &Apache::lonlocal::gettimezone();
   #                $output .= '<td>'.
   #                    &Apache::loncommon::select_timezone($parameter.'_value',
   #                                                        $timezone,
   #                                                        $onchange,$includeempty).'</td>';
   #            } elsif ($parameter eq 'datelocale') {
   #                my $includeempty = 1;
   #                my $locale_obj = &Apache::lonlocal::getdatelocale();
   #                my $currdatelocale;
   #                if (ref($locale_obj)) {
   #                    $currdatelocale = $locale_obj->id();
   #                }
   #                $output .= '<td>'.
   #                    &Apache::loncommon::select_datelocale($parameter.'_value',
   #                                                          $currdatelocale,
   #                                                          $onchange,$includeempty).'</td>';
   #            } elsif ($parameter eq 'rolenames') {
   #                $output.= '<td><table>';
   #                foreach my $role ('cc','in','ta','ep','ad','st') {
   #                    my $onchange = 'onFocus="javascript:window.document.forms'.
   #                                   "['envform'].elements['".
   #                                   $parameter.'_'.$role."_setparmval']".
   #                                   '.checked=true;"';
   #                    $output.= '<tr><td>'.&Apache::lonnet::plaintext($role,$crstype,undef,1).
   #                              '</td><td>'.
   #                              &Apache::lonhtmlcommon::textbox($parameter.'_'.$role.'_value',
   #                                                    $values{$role.'.plaintext'},
   #                                                    15,$onchange).
   #                              '</td></tr>';
   #                }
   #                $output .= '</table></td><td><table>';
   #                foreach my $role ('cc','in','ta','ep','ad','st') {
   #                    $output .= '<tr><td>'.&Apache::lonhtmlcommon::checkbox($parameter.'_'.$role.'_setparmval').
   #                              '</td></tr>';
   #                }
   #                $output .= '</table></td>';
   #            } 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 .= '<td>'.
   #                           '<input type="hidden" name="categories_value" value="'.
   #                           $values{'categories'}.'" />'.
   #                           '<input type="textbox" name="categories_display" value="'.
   #                           $catdisplay.'" readonly="readonly" size="40" /></td>';
   #            } else {
   #                $output .= '<td>'.
   #                    &Apache::lonhtmlcommon::textbox($parameter.'_value',
   #                                                    $values{$parameter},
   #                                                    40,$onchange).'</td>';
   #            }
   # -------------------------------
   
   
   #            unless ($parameter eq 'rolenames') {
   #                $output .= '<td>'.
   #                           &Apache::lonhtmlcommon::checkbox($parameter.'_setparmval').
   #                           '</td>';
   #            }
   #            $output .= &Apache::loncommon::end_data_table_row()."\n";
   # }
         my $onchange = 'onFocus="javascript:window.document.forms'.          my $onchange = 'onFocus="javascript:window.document.forms'.
             '[\'envform\'].elements[\'newp_setparmval\']'.              '[\'envform\'].elements[\'newp_setparmval\']'.
             '.checked=true;"';              '.checked=true;"';
Line 2811  sub crsenv { Line 3110  sub crsenv {
     '<input type="checkbox" name="newp_setparmval" /></td>'.      '<input type="checkbox" name="newp_setparmval" /></td>'.
     &Apache::loncommon::end_data_table_row()."\n";      &Apache::loncommon::end_data_table_row()."\n";
     }      }
     my %lt=&Apache::lonlocal::texthash(  
     'par'   => 'Parameter',  
     'val'   => 'Value',  
     'set'   => 'Set?',  
     'sav'   => 'Save'  
        );  
   
     my $Parameter=&mt('Parameter');      my $Parameter=&mt('Parameter');
     my $Value=&mt('Value');      my $Value=&mt('Value');
Line 2849  $start_page Line 3142  $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
   $output_SB
   <hr class="LC_edit_problem_divide" />
 <div><input type="submit" name="crsenv" value="$lt{'sav'}" /></div>  <div><input type="submit" name="crsenv" value="$lt{'sav'}" /></div>
 $start_table  $start_table
 $start_header_row  $start_header_row

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


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