Diff for /loncom/imspackages/imsimportdocs.pm between versions 1.2 and 1.12

version 1.2, 2004/03/09 16:34:34 version 1.12, 2005/04/07 06:56:22
Line 1 Line 1
   # Copyright Michigan State University Board of Trustees
   #
   # This file is part of the LearningOnline Network with CAPA (LON-CAPA).
   #
   # LON-CAPA is free software; you can redistribute it and/or modify
   # it under the terms of the GNU General Public License as published by
   # the Free Software Foundation; either version 2 of the License, or
   # (at your option) any later version.
   #
   # LON-CAPA is distributed in the hope that it will be useful,
   # but WITHOUT ANY WARRANTY; without even the implied warranty of
   # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   # GNU General Public License for more details.
   #
   # You should have received a copy of the GNU General Public License
   # along with LON-CAPA; if not, write to the Free Software
   # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
   #
   # /home/httpd/html/adm/gpl.txt
   #
   # http://www.lon-capa.org/
   #
   
 package Apache::imsimportdocs;  package Apache::imsimportdocs;
   
 use Apache::Constants qw(:common :http :methods);  use Apache::Constants qw(:common :http :methods);
Line 44  function setOptions(caller,itemnum) { Line 67  function setOptions(caller,itemnum) {
     if (caller == "board") {      if (caller == "board") {
       opForm.elements[menu].options[0] = new Option("Select","-1",true,true)        opForm.elements[menu].options[0] = new Option("Select","-1",true,true)
       opForm.elements[menu].options[1] = new Option("Import topics only","topics",true,true)        opForm.elements[menu].options[1] = new Option("Import topics only","topics",true,true)
       opForm.elements[menu].options[2] = new Option("Import topics & posts (with author)","allpost",true,true)        opForm.elements[menu].options[2] = new Option("Import topics + posts (with author)","allpost",true,true)
       opForm.elements[menu].options[3] = new Option("Import topics & posts (no author)","allanon",true,true)        opForm.elements[menu].options[3] = new Option("Import topics + posts (no author)","allanon",true,true)
     }      }
     else {       else { 
       if (caller == "users") {        if (caller == "users") {
Line 114  sub handler { Line 137  sub handler {
     $r->send_http_header;      $r->send_http_header;
     return OK if $r->header_only;      return OK if $r->header_only;
   
     my @areas = ("doc","extlink","announce","staff","board","quiz","survey","pool","users");      my @areas = ();
     my %cmsmap = ();      my %cmsmap = ();
     %{$cmsmap{bb5}} = (      my %areaname = ();
                 announce => 'resource/x-bb-announcement',      &Apache::imsprocessor::ims_config(\@areas,\%cmsmap,\%areaname);
                 board => 'resource/x-bb-discussionboard',  
                 doc => 'resource/x-bb-document',  
                 extlink => 'resource/x-bb-externallink',  
                 pool => 'assessment/x-bb-pool',  
                 quiz => 'assessment/x-bb-quiz',  
                 staff => 'resource/x-bb-staffinfo',  
                 survey => 'assessment/x-bb-survey',  
                 users => 'course/x-bb-user',  
                 );  
    
     %{$cmsmap{angel}} =  (  
                 board => 'BOARD',  
                 extlink => 'LINK',  
                 msg => 'MESSAGE',  
                 quiz => 'QUIZ',  
                 survey => 'FORM',  
                 );  
   
     @{$cmsmap{angel}{doc}} = ('FILE','PAGE');  
   
 # get course data  # get course data
     my $coursenum=$ENV{'course.'.$ENV{'request.course.id'}.'.num'};      my $coursenum=$env{'course.'.$env{'request.course.id'}.'.num'};
     my $coursedom=$ENV{'course.'.$ENV{'request.course.id'}.'.domain'};      my $coursedom=$env{'course.'.$env{'request.course.id'}.'.domain'};
     my $coursehome=$ENV{'course.'.$ENV{'request.course.id'}.'.home'};      my $coursehome=$env{'course.'.$env{'request.course.id'}.'.home'};
   
 # get personal data  # get personal data
     
     my $uname=$ENV{'user.name'};      my $uname=$env{'user.name'};
     my $udom=$ENV{'user.domain'};      my $udom=$env{'user.domain'};
     my $plainname=&Apache::lonnet::escape(      my $plainname=&Apache::lonnet::escape(
                      &Apache::loncommon::plainname($uname,$udom));                       &Apache::loncommon::plainname($uname,$udom));
   
 # does this user have privileges to post, etc?  # does this user have privileges to post, etc?
     my $allowed=&Apache::lonnet::allowed('mdc',$ENV{'request.course.id'});      my $allowed=&Apache::lonnet::allowed('mdc',$env{'request.course.id'});
     unless ($allowed) {      unless ($allowed) {
         $r->print("<html><head><title>The LearningOnline Network with CAPA</title></head>");          $r->print("<html><head><title>The LearningOnline Network with CAPA</title></head>");
         $r->print(&Apache::loncommon::bodytag('Import IMS package'));            $r->print(&Apache::loncommon::bodytag('Import IMS package',undef,'',1));  
         $r->print('<h3>'.&mt('Modification of Course Contents Disallowed').'</h3>'.&mt('Your current role does not grant you the right to modify course content in this course.').'</body></html>');          $r->print('<h3>'.&mt('Modification of Course Contents Disallowed').'</h3>'.&mt('Your current role does not grant you the right to modify course content in this course.').'</body></html>');
         return OK;          return OK;
     }      }
Line 162  sub handler { Line 166  sub handler {
     &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},      &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},
        ['phase']);         ['phase']);
   
     if ($ENV{'form.phase'} eq 'one') {          if ($env{'form.phase'} eq 'one') {    
         &jscript_one(\$javascript);          &jscript_one(\$javascript);
     } elsif ($ENV{'form.phase'} eq 'two') {      } elsif ($env{'form.phase'} eq 'two') {
         &jscript_two(\$javascript);          &jscript_two(\$javascript);
     } elsif ($ENV{'form.phase'} eq 'three') {      } elsif ($env{'form.phase'} eq 'three') {
         &jscript_three(\$javascript);          &jscript_three(\$javascript);
     }      }
   
Line 183  $javascript Line 187  $javascript
 </head>  </head>
 ENDHEAD  ENDHEAD
 # -------------------------------------------------------------------- Body tag  # -------------------------------------------------------------------- Body tag
     $r->print(&Apache::loncommon::bodytag('Import IMS package'));      $r->print(&Apache::loncommon::bodytag('Import IMS package',undef,'',1));
     if ($ENV{'form.phase'} eq 'one') {      if ($env{'form.phase'} eq 'one') {
         &display_one($r);                 &display_one($r);       
     } elsif ($ENV{'form.phase'} eq 'two') {      } elsif ($env{'form.phase'} eq 'two') {
         &display_two($r,$coursenum,\@areas,%cmsmap);          &display_two($r,$coursenum,\@areas,\%areaname,%cmsmap);
     } elsif ($ENV{'form.phase'} eq 'three') {      } elsif ($env{'form.phase'} eq 'three') {
         &display_three($r,$coursenum,$coursedom,$coursehome,$uname,$udom,\@areas,%cmsmap);          &display_three($r,$coursenum,$coursedom,$coursehome,$uname,$udom,\@areas,%cmsmap);
     }         }   
     $r->print("</body><html>");      $r->print("</body><html>");
     return OK;      return OK;
 }   } 
   
 sub uploadzip {  
     my $tempdir = shift;  
     my $fname=$ENV{'form.uploadname.filename'};  
 # Replace Windows backslashes by forward slashes  
     $fname=~s/\\/\//g;  
 # Get rid of everything but the actual filename  
     $fname=~s/^.*\/([^\/]+)$/$1/;  
 # Replace spaces by underscores  
     $fname=~s/\s+/\_/g;  
 # Replace all other weird characters by nothing  
     $fname=~s/[^\w\.\-]//g;  
 # See if there is anything left  
     unless ($fname) { return 'error: no uploaded file'; }  
   
 # Save the file  
     chomp($ENV{'form.uploadname'});  
     open(my $fh,'>'.$tempdir.'/'.$fname);  
     print $fh $ENV{'form.uploadname'};  
     close($fh);  
     return $fname;     
 }  
   
 sub display_one {  sub display_one {
     my ($r) = @_;      my ($r) = @_;
Line 250  Please choose the CMS used to create you Line 233  Please choose the CMS used to create you
         <select name="source">          <select name="source">
          <option value='-1' selected="true">Please select           <option value='-1' selected="true">Please select
          <option value='bb5'>Blackboard 5           <option value='bb5'>Blackboard 5
            <option value='bb6'>Blackboard 6
          <option value='angel'>ANGEL           <option value='angel'>ANGEL
            <option value='webct4'>WebCT 4
         </select>          </select>
         </font>          </font>
        </td>         </td>
Line 274  Please choose the CMS used to create you Line 259  Please choose the CMS used to create you
       </tr>        </tr>
       <tr>        <tr>
        <td colspan='2'>&nbsp;         <td colspan='2'>&nbsp;
         <input type="hidden" name="folder" value="$ENV{'form.folder'}" />          <input type="hidden" name="folder" value="$env{'form.folder'}" />
         <input type="hidden" name="phase" value="two" />          <input type="hidden" name="phase" value="two" />
         <input type="file" name="uploadname" size="40" />          <input type="file" name="uploadname" size="40" />
        </td>         </td>
Line 313  ENDBLOCK Line 298  ENDBLOCK
   
   
 sub display_two {  sub display_two {
     my ($r,$crs,$areasref,%cmsmap) = @_;      my ($r,$crs,$areasref,$areaname,%cmsmap) = @_;
     &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},['folder','source']);      &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},['folder','source']);
     my $cms = $ENV{'form.source'};      my $cms = $env{'form.source'};
     my $timenow = time;      my $timenow = time;
     my $tempdir = &Apache::imsprocessor::create_tempdir('DOCS',$crs,$timenow);      my $tempdir = &Apache::imsprocessor::create_tempdir('DOCS',$crs,$timenow);
     my $fname = &uploadzip($tempdir);      my $fname = &Apache::imsprocessor::uploadzip('DOCS',$tempdir);
     my $unzip_result = '';      my $unzip_result = '';
     my $manifest_result = '';      my $manifest_result = '';
     unless ($tempdir eq '') {      unless ($tempdir eq '') {
         $unzip_result = &Apache::imsprocessor::expand_zip($tempdir,$fname);          $unzip_result = &Apache::imsprocessor::expand_zip($tempdir,$fname);
     }      }
     my %resources = ();      my %resources = ();
       my %includedres = ();
       my %includeditems = ();
     my %items = ();      my %items = ();
     my %hrefs = ();      my %hrefs = ();
     my %resinfo = ();      my %resinfo = ();
Line 346  sub display_two { Line 333  sub display_two {
                 users => 0,                  users => 0,
                 );                  );
   
     my %areaname = (  
                 announce => 'Announcements',  
                 board => 'Discussion Boards',  
                 doc => 'Documents, pages &amp; folders',  
                 extlink => 'Links to external sites',  
                 pool => 'Question pools',  
                 quiz => 'Quizzes',  
                 staff => 'Staff information',  
                 survey => 'Surveys',  
                 users => 'Enrollment',  
                 );  
            
     if ($unzip_result eq 'ok') {      if ($unzip_result eq 'ok') {
         $manifest_result = &Apache::imsprocessor::process_manifest($cms,$tempdir,\%resources,\%items,\%hrefs,\%resinfo);          $manifest_result = &Apache::imsprocessor::process_manifest($cms,$tempdir,\%resources,\%items,\%hrefs,\%resinfo,'choose',\%includedres,\%includeditems);
         if ($manifest_result eq 'ok') {          if ($manifest_result eq 'ok') {
             foreach my $res (sort keys %resources) {              foreach my $res (sort keys %resources) {
                 if ($cms eq 'bb5') {                  if ($cms eq 'bb5' || $cms eq 'bb6' || $cms eq 'webct4') {
                     foreach my $area (keys %{$cmsmap{$cms}}) {                      foreach my $area (keys %{$cmsmap{$cms}}) {
                         if ($resources{$res}{type} eq $cmsmap{$cms}{$area}) {                          if ($resources{$res}{type} eq $cmsmap{$cms}{$area}) {
                             $count{$area} ++;                              $count{$area} ++;
Line 425  ENDBLOCK Line 400  ENDBLOCK
                         $r->print(qq|onClick='javascript:setOptions("$area","$counter")'|);                          $r->print(qq|onClick='javascript:setOptions("$area","$counter")'|);
                     }                      }
                     $r->print("/></font></td>                      $r->print("/></font></td>
                 <td align='left'><font face='arial,helvetica,sans-serif'>&nbsp;&nbsp;$areaname{$area}&nbsp;&nbsp; - $count{$area} item(s)</font></td>");                  <td align='left'><font face='arial,helvetica,sans-serif'>&nbsp;&nbsp;$$areaname{$area}&nbsp;&nbsp; - $count{$area} item(s)</font></td>");
                     if ($area eq 'board') {                      if ($area eq 'board') {
                         $r->print("            <td align='left'><font face='arial,helvetica,sans-serif'>&nbsp;&nbsp;                          $r->print("            <td align='left'><font face='arial,helvetica,sans-serif'>&nbsp;&nbsp;
                  <select name='db_handling'>                   <select name='db_handling'>
Line 492  ENDBLOCK Line 467  ENDBLOCK
       </tr>        </tr>
       <tr>        <tr>
        <td colspan='2'>&nbsp;         <td colspan='2'>&nbsp;
           <input type="hidden" name="folder" value="$ENV{'form.folder'}" />            <input type="hidden" name="folder" value="$env{'form.folder'}" />
           <input type="hidden" name="source" value="$cms" />            <input type="hidden" name="source" value="$cms" />
           <input type="hidden" name="tempdir" value="$tempdir" />            <input type="hidden" name="tempdir" value="$tempdir" />
           <input type="hidden" name="phase" value="three" />            <input type="hidden" name="phase" value="three" />
Line 528  ENDDOCUMENT Line 503  ENDDOCUMENT
   
 sub display_three {  sub display_three {
     my ($r,$crs,$cdom,$chome,$uname,$udom,$areas,%cmsmap) = @_;      my ($r,$crs,$cdom,$chome,$uname,$udom,$areas,%cmsmap) = @_;
     my $folder = $ENV{'form.folder'};      my $folder = $env{'form.folder'};
     my $cms = $ENV{'form.source'};      my $cms = $env{'form.source'};
     my $tempdir = $ENV{'form.tempdir'};      my $tempdir = $env{'form.tempdir'};
     my $longcrs = '';      my $longcrs = '';
     if ($crs =~ m/^(\d)(\d)(\d)/) {      if ($crs =~ m/^(\d)(\d)(\d)/) {
         $longcrs = $1.'/'.$2.'/'.$3.'/'.$crs;          $longcrs = $1.'/'.$2.'/'.$3.'/'.$crs;
     }      }
     my %imports = ();      my %importareas = ();
       my %includedres = ();
       my %includeditems = ();
     my @targets = ();      my @targets = ();
     my %resources = ();      my %resources = ();
     my %items = ();      my %items = ();
Line 557  sub display_three { Line 534  sub display_three {
     my $timenow = time;      my $timenow = time;
   
     my $destdir = $Apache::lonnet::perlvar{'lonDocRoot'}.'/userfiles/'.$cdom.'/'.$crs.'/'.$timenow;      my $destdir = $Apache::lonnet::perlvar{'lonDocRoot'}.'/userfiles/'.$cdom.'/'.$crs.'/'.$timenow;
     my $dirname = $cdom.'/'.$crs.'/'.$timenow;  
     my $seqstem = "/uploaded/$cdom/$crs/$timenow";      my $seqstem = "/uploaded/$cdom/$crs/$timenow";
     my $db_handling = '';      my $db_handling = '';
     my $user_handling = '';      my $user_handling = '';
Line 565  sub display_three { Line 541  sub display_three {
     my $toplevel = '';      my $toplevel = '';
     my $foldername = '';      my $foldername = '';
     my %topitems = ();      my %topitems = ();
     if (defined($ENV{'form.toplevel'}) ) {      if (defined($env{'form.toplevel'}) ) {
         $toplevel = $ENV{'form.toplevel'};               $toplevel = $env{'form.toplevel'};     
     }      }
     if (defined($ENV{'form.foldername'}) ) {      if (defined($env{'form.foldername'}) ) {
         $foldername = $ENV{'form.foldername'};           $foldername = $env{'form.foldername'}; 
     }      }
    
     foreach my $area (@{$areas}) {      foreach my $area (@{$areas}) {
         if (defined($ENV{"form.$area"}) ) {                    if (defined($env{"form.$area"}) && ($env{'form.'.$area} ne '')) {
             if ($cms eq 'angel' && $area eq 'doc') {              if ($cms eq 'angel' && $area eq 'doc') {
                 foreach (@{$cmsmap{$cms}{$area}}) {                  foreach (@{$cmsmap{$cms}{$area}}) {
                     $imports{$_} = 1;                      $importareas{$_} = 1;
                 }                  }
             } else {              } else {
                 $imports{$cmsmap{$cms}{$area}} = 1;                  $importareas{$cmsmap{$cms}{$area}} = 1;
             }              }
             if ($area eq 'board') {              if ($area eq 'board') {
                 $db_handling = $ENV{'form.db_handling'};                  $db_handling = $env{'form.db_handling'};
             } elsif ($area eq 'users') {              } elsif ($area eq 'users') {
                 $user_handling = $ENV{'form.user_handling'};                  $user_handling = $env{'form.user_handling'};
               }
           }
       }
   
       my $manifest_result = &Apache::imsprocessor::process_manifest($cms,$tempdir,\%resources,\%items,\%hrefs,\%resinfo,'prepare',\%includedres,\%includeditems);
       if ($manifest_result eq 'ok') {
           foreach my $res (sort keys %resources) {
               if ($importareas{$resources{$res}{type}}) {
                   $includedres{$res} = 1;
             }              }
         }          }
           foreach my $itm (sort keys %items) {
               &Apache::imsprocessor::get_imports(\%includeditems,\%items,\%resources,\%importareas,$itm);
           }
       }
       foreach my $itm (sort keys %includeditems) {
           &Apache::imsprocessor::get_parents(\%includeditems,\%items,$itm);
     }      }
      
     my $manifest_result = &Apache::imsprocessor::process_manifest($cms,$tempdir,\%resources,\%items,\%hrefs,\%resinfo);      $manifest_result = &Apache::imsprocessor::process_manifest($cms,$tempdir,\%resources,\%items,\%hrefs,\%resinfo,'build',\%includedres,\%includeditems);
     if ($manifest_result eq 'ok') {      if ($manifest_result eq 'ok') {
         &Apache::imsprocessor::target_resources(\%resources,\%imports,\@targets);  
         my $copy_result = &Apache::imsprocessor::copy_resources('DOCS',$cms,\%hrefs,$tempdir,\@targets,\%urls,$crs,$cdom,$chome,$destdir,$timenow);          my @path = ($cdom,$crs,$timenow);
           my $fullpath = $Apache::lonnet::perlvar{'lonDocRoot'}.'/userfiles';
           foreach my $item (@path) {
               $fullpath .= '/'.$item;
               if (!-e "$fullpath") {
                   mkdir("$fullpath",0770);
               }
           }
           my @namedirs = ("resfiles","sequences","pages","problems");
           foreach my $name (@namedirs) {
               if (!-e "$fullpath/$name") {
                   mkdir("$fullpath/$name",0770);
               }
           }
           &Apache::imsprocessor::target_resources(\%resources,\%importareas,\@targets);
   
         my @boards = ();          my @boards = ();
         my @announcements = ();          my @announcements = ();
         my @quizzes = ();          my @quizzes = ();
         my @surveys = ();          my @surveys = ();
           my @pools = ();
         my @groups = ();          my @groups = ();
         my %messages = ();          my %messages = ();
         my @timestamp = ();          my @timestamp = ();
         my %boardnum = ();          my %boardnum = ();
         my @topurls = ();          my @topurls = ();
         my @topnames = ();          my @topnames = ();
           my @packages = ();
   
         &Apache::imsprocessor::process_resinfo($cms,$tempdir,$destdir,\%items,\%resources,\@boards,\@announcements,\@quizzes,\@surveys,\@groups,\%messages,\@timestamp,\%boardnum,\%resinfo,$udom,$uname,$cdom,$crs,$db_handling,$user_handling,\%total,$dirname,$seqstem,\@resrcfiles);          &Apache::imsprocessor::process_resinfo($cms,'DOCS',$tempdir,$destdir,\%items,\%resources,\@targets,\@boards,\@announcements,\@quizzes,\@surveys,\@pools,\@groups,\%messages,\@timestamp,\%boardnum,\%resinfo,$udom,$uname,$cdom,$crs,$db_handling,$user_handling,\%total,$seqstem,$seqstem,\@resrcfiles,\@packages,\%hrefs,\@pages,\@sequences);
   
           my $copy_result = &Apache::imsprocessor::copy_resources('DOCS',$cms,\%hrefs,$tempdir,\@targets,\%urls,$crs,$cdom,$chome,$destdir,$timenow,\%importareas);
   
           &Apache::imsprocessor::build_structure($cms,'DOCS',$destdir,\%items,\%resinfo,\%resources,\@targets,\%hrefs,$udom,$uname,'',$timenow,$cdom,$crs,\@timestamp,\%total,\@boards,\@announcements,\@quizzes,\@surveys,\@pools,\%boardnum,\@pages,\@sequences,\@topurls,\@topnames,\@packages,\%includeditems);
   
         &Apache::imsprocessor::build_structure($cms,'DOCS',$destdir,\%resinfo,\%items,\%resources,\%hrefs,$udom,$uname,'',$timenow,$cdom,$crs,\@timestamp,\%total,\@boards,\@announcements,\@quizzes,\@surveys,\%boardnum,\@pages,\@sequences,\@topurls,\@topnames);  
    
         foreach my $item (@pages) {          foreach my $item (@pages) {
             my $path = $timenow.'/pages/';              my $filename = $timenow.'/pages/'.$item;
             &copy_items($item,$path,$cdom,$chome,$crs);              my $fetchresult= &Apache::lonnet::process_coursefile('propagate',$crs,$cdom,$chome,$filename,'');
         }          }
         foreach my $item (@sequences) {          foreach my $item (@sequences) {
             unless ($item eq 'Top.sequence' && $toplevel eq 'oldfolder') {              unless ($item eq 'Top.sequence' && $toplevel eq 'oldfolder') {
                 my $path = $timenow.'/sequences/';                  my $filename = $timenow.'/sequences/'.$item;
                 &copy_items($item,$path,$cdom,$chome,$crs);                  my $fetchresult= &Apache::lonnet::process_coursefile('propagate',$crs,$cdom,$chome,$filename,'');
             }              }
         }          }
         foreach my $item (@resrcfiles) {          foreach my $item (@resrcfiles) {
             my $path = $timenow.'/resfiles/';              my $filename = $timenow.'/resfiles/'.$item;
             &copy_items($item,$path,$cdom,$chome,$crs);              my $fetchresult= &Apache::lonnet::process_coursefile('propagate',$crs,$cdom,$chome,$filename,'');
         }          }
   
         my @imports = ();          my @imports = ();
Line 633  sub display_three { Line 642  sub display_three {
             }              }
         } elsif ($toplevel eq 'newfolder') {          } elsif ($toplevel eq 'newfolder') {
             my $url = &Apache::lonnet::unescape("/uploaded/$cdom/$crs/$timenow/sequences/Top.sequence");              my $url = &Apache::lonnet::unescape("/uploaded/$cdom/$crs/$timenow/sequences/Top.sequence");
             my $name = &Apache::lonnet::unescape("$ENV{'form.foldername'}");              my $name = &Apache::lonnet::unescape("$env{'form.foldername'}");
             push @imports, $name, $url;              push @imports, $name, $url;
         }          }
         my $errtext='';          my $errtext='';
Line 643  sub display_three { Line 652  sub display_three {
             $Apache::lonratedt::order[0]=1;              $Apache::lonratedt::order[0]=1;
             $Apache::lonratedt::resources[1]='';              $Apache::lonratedt::resources[1]='';
         }          }
         my ($errtext,$fatal)=&Apache::londocs::group_import($crs, $cdom, $folder,@imports);          my ($errtext,$fatal)=&Apache::londocs::group_import($crs,$cdom,$folder,'sequence','imsimport',@imports);
         if ($fatal) {          if ($fatal) {
             print STDERR "Fatal error during group_import\n";              print STDERR "Fatal error during group_import\n";
         }          }
     }      }
       if ($tempdir =~ m/^\/home\/httpd\/perl\/tmp\/$crs\/\d{10}/) {
           system("rm -r -f $tempdir");
       }
     $r->print(<<ENDBLOCK);      $r->print(<<ENDBLOCK);
   <table border='0' bgcolor='#F6F6F6'' cellspacing='0' cellpadding ='0' width='100%'>    <table border='0' bgcolor='#F6F6F6'' cellspacing='0' cellpadding ='0' width='100%'>
    <tr>     <tr>
Line 676  ENDBLOCK Line 688  ENDBLOCK
            <input type="hidden" name="orgurl" value="/adm/coursedocs" />             <input type="hidden" name="orgurl" value="/adm/coursedocs" />
            <input type="hidden" name="selectrole" value="1" />             <input type="hidden" name="selectrole" value="1" />
            <h3><font color="red">Changes will become active for your current session after             <h3><font color="red">Changes will become active for your current session after
            <input type="hidden" name="$ENV{'request.role'}" value="1" />             <input type="hidden" name="$env{'request.role'}" value="1" />
            <input type="button" value="|;             <input type="button" value="|;
     $initblock .= &mt('re-initializing course');      $initblock .= &mt('re-initializing course');
     $initblock .= qq|" onClick="javascript:init(this.form)"/>|;      $initblock .= qq|" onClick="javascript:init(this.form)"/>|;
     $initblock .= &mt('or the next time you log in.');      $initblock .= ', '.&mt('or the next time you log in.');
     $initblock .= qq|</font></h3></form>|;        $initblock .= qq|</font></h3></form>|;  
     $r->print($initblock);      $r->print($initblock);
     $r->print(<<ENDBLOCKTWO);      $r->print(<<ENDBLOCKTWO);
Line 691  ENDBLOCK Line 703  ENDBLOCK
 ENDBLOCKTWO  ENDBLOCKTWO
 }  }
   
 sub copy_items {  
     my ($filename,$fpath,$cdom,$chome,$crs) = @_;      
     my $fetchresult= &Apache::lonnet::reply('fetchuserfile:'.$cdom.'/'.$crs.'/'.$filename.':'.$fpath,$chome);  
 }  
   
 1;  1;
 __END__  __END__

Removed from v.1.2  
changed lines
  Added in v.1.12


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