Diff for /loncom/interface/domainprefs.pm between versions 1.160.6.63 and 1.160.6.65

version 1.160.6.63, 2015/05/12 00:20:42 version 1.160.6.65, 2015/06/15 20:18:35
Line 2891  sub print_coursedefaults { Line 2891  sub print_coursedefaults {
         uselcmath            => 'Math preview uses LON-CAPA previewer (javascript) in place of DragMath (Java)',          uselcmath            => 'Math preview uses LON-CAPA previewer (javascript) in place of DragMath (Java)',
         usejsme              => 'Molecule editor uses JSME (HTML5) in place of JME (Java)',          usejsme              => 'Molecule editor uses JSME (HTML5) in place of JME (Java)',
         postsubmit           => 'Disable submit button/keypress following student submission',          postsubmit           => 'Disable submit button/keypress following student submission',
           canclone             => "People who may clone a course (besides course's owner and coordinators)",
     );      );
     my %staticdefaults = (      my %staticdefaults = (
                            anonsurvey_threshold => 10,                             anonsurvey_threshold => 10,
Line 2901  sub print_coursedefaults { Line 2902  sub print_coursedefaults {
         %defaultchecked = (          %defaultchecked = (
                             'uselcmath'       => 'on',                              'uselcmath'       => 'on',
                             'usejsme'         => 'on',                              'usejsme'         => 'on',
                               'canclone'        => 'none',
                           );                            );
         @toggles = ('uselcmath','usejsme');          @toggles = ('uselcmath','usejsme');
         ($datatable,$itemcount) = &radiobutton_prefs($settings,\@toggles,\%defaultchecked,          ($datatable,$itemcount) = &radiobutton_prefs($settings,\@toggles,\%defaultchecked,
                                                      \%choices,$itemcount);                                                       \%choices,$itemcount);
           $css_class = $itemcount%2?' class="LC_odd_row"':'';
           $datatable .=
               '<tr'.$css_class.'><td valign="top">'.
               '<span class="LC_nobreak">'.$choices{'canclone'}.
               '</span></td><td class="LC_left_item">';
           my $currcanclone = 'none';
           my $onclick;
           my @cloneoptions = ('none','domain');
           my %clonetitles = (
                                none     => 'No additional course requesters',
                                domain   => "Any course requester in course's domain",
                                instcode => 'Course requests for official courses ...',
                             );
           my (%codedefaults,@code_order,@posscodes);
           if (&Apache::lonnet::auto_instcode_defaults($dom,\%codedefaults,
                                                       \@code_order) eq 'ok') {
               if (@code_order > 0) {
                   push(@cloneoptions,'instcode');
                   $onclick = ' onclick="toggleDisplay(this.form,'."'cloneinstcode'".');"';
               }
           }
           if (ref($settings) eq 'HASH') {
               if ($settings->{'canclone'}) {
                   if (ref($settings->{'canclone'}) eq 'HASH') {
                       if (ref($settings->{'canclone'}{'instcode'}) eq 'ARRAY') {
                           if (@code_order > 0) {
                               $currcanclone = 'instcode';
                               @posscodes = @{$settings->{'canclone'}{'instcode'}};
                           }
                       }
                   } elsif ($settings->{'canclone'} eq 'domain') {
                       $currcanclone = $settings->{'canclone'};
                   }
               }
           }
           foreach my $option (@cloneoptions) {
               my ($checked,$additional);
               if ($currcanclone eq $option) {
                   $checked = ' checked="checked"';
               }
               if ($option eq 'instcode') {
                   if (@code_order) {
                       my $show = 'none';
                       if ($checked) {
                           $show = 'block';
                       }
                       $additional = '<div id="cloneinstcode" style="display:'.$show.'" />'.
                                     &mt('Institutional codes for new and cloned course have identical:').
                                     '<br />';
                       foreach my $item (@code_order) {
                           my $codechk;
                           if ($checked) {
                               if (grep(/^\Q$item\E$/,@posscodes)) {
                                   $codechk = ' checked="checked"';
                               }
                           }
                           $additional .= '<label>'.
                                          '<input type="checkbox" name="clonecode" value="'.$item.'"'.$codechk.' />'.
                                          $item.'</label>';
                       }
                       $additional .= ('&nbsp;'x2).'('.&mt('check as many as needed').')</div>';
                   }
               }
               $datatable .=
                   '<span class="LC_nobreak"><label><input type="radio" name="canclone"'.$checked.
                   ' value="'.$option.'"'.$onclick.' />'.$clonetitles{$option}.
                   '</label>&nbsp;'.$additional.'</span><br />';
           }
           $datatable .= '</td>'.
                         '</tr>';
           $itemcount ++;
     } else {      } else {
         $css_class = $itemcount%2 ? ' class="LC_odd_row"' : '';          $css_class = $itemcount%2 ? ' class="LC_odd_row"' : '';
         my ($currdefresponder,%defcredits,%curruploadquota,%deftimeout);          my ($currdefresponder,%defcredits,%curruploadquota,%deftimeout);
Line 7322  sub modify_quotas { Line 7395  sub modify_quotas {
                         if (@{$confhash{'validation'}{$item}} > 0) {                          if (@{$confhash{'validation'}{$item}} > 0) {
                             @{$confhash{'validation'}{$item}} = sort(@{$confhash{'validation'}{$item}});                              @{$confhash{'validation'}{$item}} = sort(@{$confhash{'validation'}{$item}});
                         }                          }
                         if (ref($domconfig{'requestcourses'}{'validation'}) eq 'HASH') {                          if (ref($domconfig{'requestcourses'}) eq 'HASH') {
                             if (ref($domconfig{'requestcourses'}{'validation'}{$item}) eq 'ARRAY') {                              if (ref($domconfig{'requestcourses'}{'validation'}) eq 'HASH') {
                                 @changed = &Apache::loncommon::compare_arrays($confhash{'validation'}{$item},                                  if (ref($domconfig{'requestcourses'}{'validation'}{$item}) eq 'ARRAY') {
                                                                               $domconfig{'requestcourses'}{'validation'}{$item});                                      @changed = &Apache::loncommon::compare_arrays($confhash{'validation'}{$item},
                                                                                     $domconfig{'requestcourses'}{'validation'}{$item});
                                   } else {
                                       @changed = @{$confhash{'validation'}{$item}};
                                   }
                             } else {                              } else {
                                 @changed = @{$confhash{'validation'}{$item}};                                  @changed = @{$confhash{'validation'}{$item}};
                             }                              }
Line 7346  sub modify_quotas { Line 7423  sub modify_quotas {
                                 $env{'form.requestcourses_validation_'.$item} =~ s/[\n\r\f]+/\s/gs;                                  $env{'form.requestcourses_validation_'.$item} =~ s/[\n\r\f]+/\s/gs;
                             }                              }
                         }                          }
                         if (ref($domconfig{'requestcourses'}{'validation'}) eq 'HASH') {                          if (ref($domconfig{'requestcourses'}) eq 'HASH') {
                             if ($domconfig{'requestcourses'}{'validation'}{$item} ne $confhash{'validation'}{$item}) {                              if (ref($domconfig{'requestcourses'}{'validation'}) eq 'HASH') {
                                 $changes{'validation'}{$item} = $confhash{'validation'}{$item};                                  if ($domconfig{'requestcourses'}{'validation'}{$item} ne $confhash{'validation'}{$item}) {
                                       $changes{'validation'}{$item} = $confhash{'validation'}{$item};
                                   }
                               } else {
                                   if ($confhash{'validation'}{$item} ne '') {
                                       $changes{'validation'}{$item} = $confhash{'validation'}{$item};
                                   }
                             }                              }
                         } else {                          } else {
                             if ($confhash{'validation'}{$item} ne '') {                              if ($confhash{'validation'}{$item} ne '') {
Line 7366  sub modify_quotas { Line 7449  sub modify_quotas {
                 }                  }
             }              }
             if (ref($confhash{'validation'}) eq 'HASH') {              if (ref($confhash{'validation'}) eq 'HASH') {
                 if (ref($domconfig{'requestcourses'}{'validation'}) eq 'HASH') {                  if (ref($domconfig{'requestcourses'}) eq 'HASH') {
                     if ($domconfig{'requestcourses'}{'validation'}{'dc'}) {                      if (ref($domconfig{'requestcourses'}{'validation'}) eq 'HASH') {
                         unless ($confhash{'validation'}{'dc'} eq $domconfig{'requestcourses'}{'validation'}{'dc'}) {                          if ($domconfig{'requestcourses'}{'validation'}{'dc'}) {
                             if ($confhash{'validation'}{'dc'} eq '') {                              unless ($confhash{'validation'}{'dc'} eq $domconfig{'requestcourses'}{'validation'}{'dc'}) {
                                 $changes{'validation'}{'dc'} = &mt('None');                                  if ($confhash{'validation'}{'dc'} eq '') {
                             } else {                                      $changes{'validation'}{'dc'} = &mt('None');
                                 $changes{'validation'}{'dc'} = $confhash{'validation'}{'dc'};                                  } else {
                                       $changes{'validation'}{'dc'} = $confhash{'validation'}{'dc'};
                                   }
                             }                              }
                           } elsif ($confhash{'validation'}{'dc'} ne '') {
                               $changes{'validation'}{'dc'} = $confhash{'validation'}{'dc'};
                         }                          }
                     } elsif ($confhash{'validation'}{'dc'} ne '') {                      } elsif ($confhash{'validation'}{'dc'} ne '') {
                         $changes{'validation'}{'dc'} = $confhash{'validation'}{'dc'};                          $changes{'validation'}{'dc'} = $confhash{'validation'}{'dc'};
Line 7381  sub modify_quotas { Line 7468  sub modify_quotas {
                 } elsif ($confhash{'validation'}{'dc'} ne '') {                  } elsif ($confhash{'validation'}{'dc'} ne '') {
                     $changes{'validation'}{'dc'} = $confhash{'validation'}{'dc'};                      $changes{'validation'}{'dc'} = $confhash{'validation'}{'dc'};
                 }                  }
             } elsif (ref($domconfig{'requestcourses'}{'validation'}) eq 'HASH') {              } else {
                 if ($domconfig{'requestcourses'}{'validation'}{'dc'}) {                  if (ref($domconfig{'requestcourses'}) eq 'HASH') {
                     $changes{'validation'}{'dc'} = &mt('None');                      if (ref($domconfig{'requestcourses'}{'validation'}) eq 'HASH') {
                           if ($domconfig{'requestcourses'}{'validation'}{'dc'}) {
                               $changes{'validation'}{'dc'} = &mt('None');
                           }
                       }
                 }                  }
             }              }
         }          }
Line 10297  sub modify_coursedefaults { Line 10388  sub modify_coursedefaults {
                 }                  }
             }              }
         }          }
           my $currclone = $domconfig{'coursedefaults'}{'canclone'};
           my @currclonecode;
           if (ref($currclone) eq 'HASH') {
               if (ref($currclone->{'instcode'}) eq 'ARRAY') {
                   @currclonecode = @{$currclone->{'instcode'}};
               }
           }
           my $newclone;
           if ($env{'form.canclone'} =~ /^(none|domain|instcode)$/) {
               $newclone = $env{'form.canclone'};
           }
           if ($newclone eq 'instcode') {
               my @newcodes = &Apache::loncommon::get_env_multiple('form.clonecode');
               my (%codedefaults,@code_order,@clonecode);
               &Apache::lonnet::auto_instcode_defaults($dom,\%codedefaults,
                                                       \@code_order);
               foreach my $item (@code_order) {
                   if (grep(/^\Q$item\E$/,@newcodes)) {
                       push(@clonecode,$item);
                   }
               }
               if (@clonecode) {
                   $defaultshash{'coursedefaults'}{'canclone'} = { $newclone => \@clonecode };
                   my @diffs = &Apache::loncommon::compare_arrays(\@currclonecode,\@clonecode);
                   if (@diffs) {
                       $changes{'canclone'} = 1;
                   }
               } else {
                   $newclone eq '';
               }
           } elsif ($newclone ne '') {
               $defaultshash{'coursedefaults'}{'canclone'} = $newclone;
           }
           if ($newclone ne $currclone) {
               $changes{'canclone'} = 1;
           }
         my %credits;          my %credits;
         foreach my $type (@types) {          foreach my $type (@types) {
             unless ($type eq 'community') {              unless ($type eq 'community') {
Line 10381  sub modify_coursedefaults { Line 10507  sub modify_coursedefaults {
         if (keys(%changes) > 0) {          if (keys(%changes) > 0) {
             my %domdefaults = &Apache::lonnet::get_domain_defaults($dom,1);              my %domdefaults = &Apache::lonnet::get_domain_defaults($dom,1);
             if (($changes{'uploadquota'}) || ($changes{'postsubmit'}) ||              if (($changes{'uploadquota'}) || ($changes{'postsubmit'}) ||
                 ($changes{'coursecredits'}) || ($changes{'uselcmath'}) || ($changes{'usejsme'})) {                  ($changes{'coursecredits'}) || ($changes{'uselcmath'}) || ($changes{'usejsme'}) ||
                   ($changes{'canclone'})) {
                 foreach my $item ('uselcmath','usejsme') {                  foreach my $item ('uselcmath','usejsme') {
                     if ($changes{$item}) {                      if ($changes{$item}) {
                         $domdefaults{$item}=$defaultshash{'coursedefaults'}{$item};                          $domdefaults{$item}=$defaultshash{'coursedefaults'}{$item};
Line 10413  sub modify_coursedefaults { Line 10540  sub modify_coursedefaults {
                         }                          }
                     }                      }
                 }                  }
                   if ($changes{'canclone'}) {
                       if (ref($defaultshash{'coursedefaults'}{'canclone'}) eq 'HASH') {
                           if (ref($defaultshash{'coursedefaults'}{'canclone'}{'instcode'}) eq 'ARRAY') {
                               my @clonecodes = @{$defaultshash{'coursedefaults'}{'canclone'}{'instcode'}};
                               if (@clonecodes) {
                                   $domdefaults{'canclone'} = join('+',@clonecodes);
                               }
                           }
                       } else {
                           $domdefaults{'canclone'}=$defaultshash{'coursedefaults'}{'canclone'};
                       }
                   }
                 my $cachetime = 24*60*60;                  my $cachetime = 24*60*60;
                 &Apache::lonnet::do_cache_new('domdefaults',$dom,\%domdefaults,$cachetime);                  &Apache::lonnet::do_cache_new('domdefaults',$dom,\%domdefaults,$cachetime);
                 if (ref($lastactref) eq 'HASH') {                  if (ref($lastactref) eq 'HASH') {
Line 10501  sub modify_coursedefaults { Line 10640  sub modify_coursedefaults {
                     } else {                      } else {
                         $resulttext .= '<li>'.&mt('Student credits not in use for courses in this domain').'</li>';                          $resulttext .= '<li>'.&mt('Student credits not in use for courses in this domain').'</li>';
                     }                      }
                   } elsif ($item eq 'canclone') {
                       if (ref($defaultshash{'coursedefaults'}{'canclone'}) eq 'HASH') {
                           if (ref($defaultshash{'coursedefaults'}{'canclone'}{'instcode'}) eq 'ARRAY') {
                               my $clonecodes = join(' '.&mt('and').' ',@{$defaultshash{'coursedefaults'}{'canclone'}{'instcode'}});
                               $resulttext .= '<li>'.&mt('By default, official courses can be cloned from existing courses with the same: [_1]','<b>'.$clonecodes.'</b>').'</li>';
                           }
                       } elsif ($defaultshash{'coursedefaults'}{'canclone'} eq 'domain') {
                           $resulttext .= '<li>'.&mt('By default, a course requester can clone any course from his/her domain.').'</li>';
                       } else {
                           $resulttext .= '<li>'.&mt('By default, only course owner and coordinators may clone a course.').'</li>';
                       }
                 }                  }
             }              }
             $resulttext .= '</ul>';              $resulttext .= '</ul>';
Line 12010  function toggleDisplay(domForm,caller) { Line 12160  function toggleDisplay(domForm,caller) {
     if (document.getElementById(caller)) {      if (document.getElementById(caller)) {
         var divitem = document.getElementById(caller);          var divitem = document.getElementById(caller);
         var optionsElement = domForm.coursecredits;          var optionsElement = domForm.coursecredits;
           var checkval = 1;
           var dispval = 'block';
         if (caller == 'emailoptions') {          if (caller == 'emailoptions') {
             optionsElement = domForm.cancreate_email;               optionsElement = domForm.cancreate_email; 
         }          }
         if (caller == 'studentsubmission') {          if (caller == 'studentsubmission') {
             optionsElement = domForm.postsubmit;              optionsElement = domForm.postsubmit;
         }          }
           if (caller == 'cloneinstcode') {
               optionsElement = domForm.canclone;
               checkval = 'instcode';
           }
         if (optionsElement.length) {          if (optionsElement.length) {
             var currval;              var currval;
             for (var i=0; i<optionsElement.length; i++) {              for (var i=0; i<optionsElement.length; i++) {
Line 12023  function toggleDisplay(domForm,caller) { Line 12179  function toggleDisplay(domForm,caller) {
                    currval = optionsElement[i].value;                     currval = optionsElement[i].value;
                 }                  }
             }              }
             if (currval == 1) {              if (currval == checkval) {
                 divitem.style.display = 'block';                  divitem.style.display = dispval;
             } else {              } else {
                 divitem.style.display = 'none';                  divitem.style.display = 'none';
             }              }

Removed from v.1.160.6.63  
changed lines
  Added in v.1.160.6.65


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>
500 Internal Server Error

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator at root@localhost to inform them of the time this error occurred, and the actions you performed just before this error.

More information about this error may be available in the server error log.