Diff for /loncom/homework/lonhomework.pm between versions 1.344.2.7 and 1.344.2.8.4.2

version 1.344.2.7, 2016/09/18 21:37:25 version 1.344.2.8.4.2, 2017/09/15 12:36:54
Line 1370  sub newproblem { Line 1370  sub newproblem {
         &renderpage($request,$dest);          &renderpage($request,$dest);
         return;          return;
     }      }
       my $errormsg;
     if ($env{'form.template'}) {      if ($env{'form.template'}) {
  my $file = $env{'form.template'};          my $file;
  my $dest = &Apache::lonnet::filelocation("",$request->uri);          my ($extension) = ($env{'form.template'} =~ /\.(\w+)$/);
  &File::Copy::copy($file,$dest);          if ($extension) {
  &renderpage($request,$dest);              my @files = &get_template_list($extension);
  return;              foreach my $poss (@files) {
                   if (ref($poss) eq 'ARRAY') {
                       if ($env{'form.template'} eq $poss->[0]) {
                           $file = $env{'form.template'};
                           last;
                       }
                   }
               }
               if ($file) {
                   my $dest = &Apache::lonnet::filelocation("",$request->uri);
                   &File::Copy::copy($file,$dest);
                   &renderpage($request,$dest);
                   return;
               } else {
                   $errormsg = '<p class="LC_error">'.&mt('Invalid template file.').'</p>';
               }
           } else {
               $errormsg = '<p class="LC_error">'.&mt('Invalid template file; template needs to be a .problem, .library, or .task file.').'</p>';
           }
     }      }
   
     my ($extension) = ($request->uri =~ m/\.(\w+)$/);      my ($extension) = ($request->uri =~ m/\.(\w+)$/);
Line 1392  sub newproblem { Line 1411  sub newproblem {
     } else {      } else {
  my $url=&HTML::Entities::encode($request->uri,'<>&"');   my $url=&HTML::Entities::encode($request->uri,'<>&"');
  my $dest = &Apache::lonnet::filelocation("",$request->uri);   my $dest = &Apache::lonnet::filelocation("",$request->uri);
  my $errormsg;  
  my $instructions;   my $instructions;
         my $brcrum = [{'href' => &Apache::loncommon::authorspace($request->uri),          my $brcrum = [{'href' => &Apache::loncommon::authorspace($request->uri),
                        'text' => 'Authoring Space'},                         'text' => 'Authoring Space'},
Line 1442  sub update_construct_style { Line 1460  sub update_construct_style {
     }      }
 }  }
   
   #
   # Sets interval for current user so time left will be zero, either for the entire folder
   # containing the current resource, or just the resource, depending on value of first item
   # in interval array retrieved from EXT("resource.0.interval");
   #
   sub zero_timer {
       my ($symb) = @_;
       my ($hastimeleft,$first_access,$now);
       my @interval=&Apache::lonnet::EXT("resource.0.interval");
       if (@interval > 1) {
           if ($interval[1] eq 'course') {
               return;
           } else {
               my $now = time;
               my $first_access=&Apache::lonnet::get_first_access($interval[1],$symb);
               if ($first_access > 0) {
                   if ($first_access+$interval[0] > $now) {
                       my $done_time = $now - $first_access;
                       my $snum = 1;
                       if ($interval[1] eq 'map') {
                           $snum = 2;
                       }
                       my $result =
                           &Apache::lonparmset::storeparm_by_symb_inner($symb,'0_interval',
                                                                        $snum,$done_time,
                                                                        'date_interval',
                                                                        $env{'user.name'},
                                                                        $env{'user.domain'});
                       return $result;
                   }
               }
           }
       }
       return;
   }
   
 sub handler {  sub handler {
     #my $t0 = [&gettimeofday()];      #my $t0 = [&gettimeofday()];
Line 1498  sub handler { Line 1551  sub handler {
     &newproblem($request);      &newproblem($request);
  }   }
     } else {      } else {
           # Set the event timer to zero if the "done button" was clicked.  The button is
           # part of the LCdoneButton form created in lonmenu.pm
           if ($symb && $env{'form.LC_interval_done'} eq 'true') {
               &zero_timer($symb);
               undef($env{'form.LC_interval_done'});
           }
  # just render the page normally outside of construction space   # just render the page normally outside of construction space
  &Apache::lonxml::debug("not construct");   &Apache::lonxml::debug("not construct");
  &renderpage($request,$file);   &renderpage($request,$file);
Line 1645  sub default_xml_tag { Line 1704  sub default_xml_tag {
   
 sub helpmenu_datastructure {  sub helpmenu_datastructure {
   
     my $width = 500;      # filename, title, width, height
     my $height = 600;  
   
     my $helpers = [      my $helpers = [
                     ['Problem_LON-CAPA_Functions', &mt('Script Functions')],                      ['Problem_LON-CAPA_Functions.hlp', &mt('Script Functions'), 800, 600],
                     ['Greek_Symbols', &mt('Greek Symbols')],                      ['Greek_Symbols.hlp', &mt('Greek Symbols'), 500, 600],
                     ['Other_Symbols', &mt('Other Symbols')],                      ['Other_Symbols.hlp', &mt('Other Symbols'), 500, 600],
                     ['Authoring_Output_Tags', &mt('Output Tags')],                      ['Authoring_Output_Tags.hlp', &mt('Output Tags'), 800, 600],
                     ['Authoring_Multilingual_Problems', &mt('Languages')],                      ['Authoring_Multilingual_Problems.hlp', &mt('Languages'), 800, 600],
                    ];                     ];
   
     my $help_structure = [];      my $help_structure = [];
Line 1661  sub helpmenu_datastructure { Line 1718  sub helpmenu_datastructure {
     foreach my $count (0..(scalar(@{$helpers})-1)) {      foreach my $count (0..(scalar(@{$helpers})-1)) {
         my $filename = $helpers->[$count]->[0];          my $filename = $helpers->[$count]->[0];
         my $title = $helpers->[$count]->[1];          my $title = $helpers->[$count]->[1];
         my $href = &HTML::Entities::encode("javascript:openMyModal('/adm/help/$filename.hlp',$width,$height,'yes');");          my $width = $helpers->[$count]->[2];
           my $height = $helpers->[$count]->[3];
           if ($width eq '') {
               $width = 500;
           }
           if ($height eq '') {
               $height = 600;
           }
           my $href = &HTML::Entities::encode("javascript:openMyModal('/adm/help/$filename',$width,$height,'yes');");
         push @{$help_structure}, [$href, $title, undef];          push @{$help_structure}, [$href, $title, undef];
     }      }
   

Removed from v.1.344.2.7  
changed lines
  Added in v.1.344.2.8.4.2


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.