Diff for /loncom/imspackages/imsimport.pm between versions 1.44 and 1.45

version 1.44, 2013/09/23 17:35:05 version 1.45, 2013/09/30 17:42:12
Line 133  sub jscript_two { Line 133  sub jscript_two {
     $course_list = '"'.join('","',@crslist).'"';      $course_list = '"'.join('","',@crslist).'"';
     $$numcrs = @crslist;      $$numcrs = @crslist;
   
       my %lt = &Apache::lonlocal::texthash(
                     sel    => 'Please select',
                     impto  => 'Import topics only',
                     imptpa => 'Import topics + posts (with author)',
                     imptpn => 'Import topics + posts (no author)',
                     enrst  => 'Enroll students only',
                     enrall => 'Enroll all users',
                     notreq => 'Not required',
                     errao  => 'You must select one of the additional options when importing Discussion Boards.',
                     errtd  => 'You must select a target course when importing Discussion Boards.',
                     errap  => 'You must select one of the additional options when importing Enrollment.',
                     errte  => 'You must select a target course when importing enrollment information.',
                     errcc  => 'You must check at least one Content Type.',
          );
     return <<"END_OF_TWO";      return <<"END_OF_TWO";
   
 function checkCourse() {  function checkCourse() {
Line 181  function setCourse(step2Form,call) { Line 195  function setCourse(step2Form,call) {
     step2Form.targetcourse.length = 0      step2Form.targetcourse.length = 0
     if (call == 'add') {      if (call == 'add') {
         step2Form.targetcourse.length = 0          step2Form.targetcourse.length = 0
         step2Form.targetcourse.options[0] = new Option("Please Select","0",true,true)          step2Form.targetcourse.options[0] = new Option("$lt{'sel'}","0",true,true)
         for (var i=0; i<courseID_array.length; i++) {          for (var i=0; i<courseID_array.length; i++) {
             step2Form.targetcourse.options[i+1] = new Option(courseTitle_array[i],courseID_array[i],false,false)              step2Form.targetcourse.options[i+1] = new Option(courseTitle_array[i],courseID_array[i],false,false)
         }          }
Line 201  function setOptions(caller,itemnum) { Line 215  function setOptions(caller,itemnum) {
   opForm.elements[menu].length = 0    opForm.elements[menu].length = 0
   if (opForm.elements[itemnum*2].checked == true) {    if (opForm.elements[itemnum*2].checked == true) {
     if (caller == "board") {      if (caller == "board") {
       opForm.elements[menu].options[0] = new Option("Select","-1",true,true)        opForm.elements[menu].options[0] = new Option("$lt{'sel'}","-1",true,true)
       opForm.elements[menu].options[1] = new Option("Import topics only","topics",true,true)        opForm.elements[menu].options[1] = new Option("$lt{'impto'}","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("$lt{'imptpa'}","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("$lt{'imptpn'}","allanon",true,true)
     }      }
     else {       else { 
       if (caller == "users") {        if (caller == "users") {
         opForm.elements[menu].length = 0          opForm.elements[menu].length = 0
         opForm.elements[menu].options[0] = new Option("Select","-1",true,true)          opForm.elements[menu].options[0] = new Option("$lt{'sel'}","-1",true,true)
         opForm.elements[menu].options[1] = new Option("Enroll students only","students",true,true)          opForm.elements[menu].options[1] = new Option("$lt{'enrst'}","students",true,true)
         opForm.elements[menu].options[2] = new Option("Enroll all users","all",true,true)          opForm.elements[menu].options[2] = new Option("$lt{'enrall'}","all",true,true)
       }        }
     }      }
   }    }
   else {    else {
     opForm.elements[menu].options[0] = new Option("Not required","0",true,true)      opForm.elements[menu].options[0] = new Option("$lt{'notreq'}","0",true,true)
   }    }
   opForm.elements[menu].selectedIndex = 0    opForm.elements[menu].selectedIndex = 0
   if (numCrs > 0) {    if (numCrs > 0) {
Line 234  function verify(caller) { Line 248  function verify(caller) {
       totcheck ++        totcheck ++
       if (opForm.elements[2*i].name == "board") {         if (opForm.elements[2*i].name == "board") { 
         if (opForm.elements[2*i+1].selectedIndex == 0) {               if (opForm.elements[2*i+1].selectedIndex == 0) {     
           alert("You must select one of the additional options when importing Discussion Boards ")            alert("$lt{'errao'}")
           return false            return false
         }          }
         if (numCrs == 0) {          if (numCrs == 0) {
Line 243  function verify(caller) { Line 257  function verify(caller) {
         }          }
         else {          else {
           if (opForm.targetcourse.selectedIndex == 0) {            if (opForm.targetcourse.selectedIndex == 0) {
             alert("You must select a target course when importing Discussion Boards")              alert("$lt{'errtd'}")
             return false              return false
           }            }
         }          }
       }        }
       if (opForm.elements[2*i].name == "users") {        if (opForm.elements[2*i].name == "users") {
         if (opForm.elements[2*i+1].selectedIndex == 0) {               if (opForm.elements[2*i+1].selectedIndex == 0) {     
           alert("You must select one of the additional options when importing Enrollment")            alert("$lt{'errap'}")
           return false            return false
         }          }
         if (numCrs == 0) {          if (numCrs == 0) {
Line 259  function verify(caller) { Line 273  function verify(caller) {
         }          }
         else {          else {
           if (opForm.targetcourse.selectedIndex == 0) {            if (opForm.targetcourse.selectedIndex == 0) {
             alert("You must select a target course when importing enrollment information")              alert("$lt{'errte'}")
             return false              return false
           }            }
         }          }
Line 267  function verify(caller) { Line 281  function verify(caller) {
     }      }
   }    }
   if (totcheck == 0) {    if (totcheck == 0) {
     alert("You must check the Checkbox for at least one Content Type");      alert("$lt{'errcc'}");
     return false      return false
   }    }
   return true    return true
Line 290  sub display_one { Line 304  sub display_one {
               &Apache::lonhtmlcommon::topic_bar(1,&mt('Specify the Course Management system used to create the package')).                &Apache::lonhtmlcommon::topic_bar(1,&mt('Specify the Course Management system used to create the package')).
         &mt('Choose the CMS used to create your IMS content package.').'&nbsp;&nbsp;          &mt('Choose the CMS used to create your IMS content package.').'&nbsp;&nbsp;
         <select name="source">          <select name="source">
          <option value="-1" selected="selected">Please select</option>           <option value="-1" selected="selected">'.&mt('Please select').'</option>
          <option value="bb5">Blackboard 5</option>           <option value="bb5">Blackboard 5</option>
          <option value="bb6">Blackboard 6</option>           <option value="bb6">Blackboard 6</option>
          <option value="angel5">ANGEL 5.5</option>           <option value="angel5">ANGEL 5.5</option>
Line 298  sub display_one { Line 312  sub display_one {
          <option value="webctvista4">WebCT Vista 4</option>           <option value="webctvista4">WebCT Vista 4</option>
         </select><br />'."\n".          </select><br />'."\n".
         &Apache::lonhtmlcommon::topic_bar(2,&mt('Create a directory where you will unpack your IMS package'))."\n".          &Apache::lonhtmlcommon::topic_bar(2,&mt('Create a directory where you will unpack your IMS package'))."\n".
          &mt('Create a destination LON-CAPA directory in which to store the contents of the IMS package file.').'&nbsp;&nbsp;<input type="button" name="createdir" value="Create Directory" onclick="javascript:createWin()" /><input type="hidden" name="newdir" value="" /><br /><br />           &mt('Create a destination LON-CAPA directory in which to store the contents of the IMS package file.').'&nbsp;&nbsp;<input type="button" name="createdir" value="'.&mt('Create Directory').'" onclick="javascript:createWin()" /><input type="hidden" name="newdir" value="" /><br /><br />
           <input type="hidden" name="filename" value="'.$fn.'" />            <input type="hidden" name="filename" value="'.$fn.'" />
           <input type="hidden" name="phase" value="three" />            <input type="hidden" name="phase" value="three" />
           <input type="button" name="nextpage" value="'.&mt('Proceed').'" onclick="javascript:nextPage();" />&nbsp;&nbsp;&nbsp;&nbsp;            <input type="button" name="nextpage" value="'.&mt('Proceed').'" onclick="javascript:nextPage();" />&nbsp;&nbsp;&nbsp;&nbsp;
Line 465  sub display_two { Line 479  sub display_two {
             $r->print($lt{'unpa'});              $r->print($lt{'unpa'});
         }          }
     } else {      } else {
         $r->print($lt{'proc'});          $r->print(
               '<br />'.&Apache::loncommon::confirmwrapper(
                   &Apache::lonhtmlcommon::confirm_success($lt{'proc'},1)
                  .'<br />'.&mt('Error: [_1]',$unzip_result))
           );
     }      }
 }  }
   
Line 598  sub display_three { Line 616  sub display_three {
         
         &Apache::imsprocessor::build_structure($cms,'CSTR',$destdir,\%items,\%resinfo,\%resources,\@targets,\%hrefs,$udom,$uname,$dirpath,$timenow,$cdom,$crs,\@timestamp,\%total,\@boards,\@announcements,\@quizzes,\@surveys,\@pools,\%boardnum,\@pages,\@sequences,\@topurls,\@topnames,\@packages,\%includeditems,\%randompicks);          &Apache::imsprocessor::build_structure($cms,'CSTR',$destdir,\%items,\%resinfo,\%resources,\@targets,\%hrefs,$udom,$uname,$dirpath,$timenow,$cdom,$crs,\@timestamp,\%total,\@boards,\@announcements,\@quizzes,\@surveys,\@pools,\%boardnum,\@pages,\@sequences,\@topurls,\@topnames,\@packages,\%includeditems,\%randompicks);
   
         $r->print("<h3>IMS import completed</h3>");          my $message =
               &Apache::lonhtmlcommon::confirm_success(
                   &mt('IMS import completed'))
              .'<br />'.$lt{'yims'}.' ';
   
         if ($cms eq 'angel5') {          if ($cms eq 'angel5') {
             $r->print($lt{'yims'}.' '.&mt('A total of [quant,_1,sequence], [quant,_2,composite page], and [quant,_3,discussion board] have been created, and [quant,_4,file] copied.',$total{seq},$total{page},$total{board},$total{file})."\n");              $message .= &mt('A total of [quant,_1,sequence], [quant,_2,composite page], and [quant,_3,discussion board] have been created, and [quant,_4,file] copied.',$total{seq},$total{page},$total{board},$total{file})."\n";
         } else {          } else {
             $r->print($lt{'yims'}.' '.&mt('A total of [quant,_1,sequence], [quant,_2,composite page], [quant,_3,discussion board], [quant,_4,quiz,quizzes], [quant,_5,survey], and [quant,_6,problem] have been created, and [quant,_7,file] copied.',$total{seq},$total{page},$total{board},$total{quiz},$total{surv},$total{prob},$total{file})."\n");              $message .= &mt('A total of [quant,_1,sequence], [quant,_2,composite page], [quant,_3,discussion board], [quant,_4,quiz,quizzes], [quant,_5,survey], and [quant,_6,problem] have been created, and [quant,_7,file] copied.',$total{seq},$total{page},$total{board},$total{quiz},$total{surv},$total{prob},$total{file})."\n";
         }          }
         $r->print('<br /><br />'.$lt{'plsv'}.' '.$lt{'tseq'}.'<br /><br />'.$lt{'tfin'}.'<br /><br /><a href="/priv/'.$udom.'/'.$uname.'/'.$dirpath.'/">'.$lt{'disp'}.'</a>');          $r->print(
               '<br />'.&Apache::loncommon::confirmwrapper($message)
              .'<p>'.$lt{'plsv'}.' '.$lt{'tseq'}.'</p>'
              .'<p>'.$lt{'tfin'}.'</p>'
              .&Apache::lonhtmlcommon::actionbox(
                   ['<a href="/priv/'.$udom.'/'.$uname.'/'.$dirpath.'/">'.$lt{'disp'}.'</a>'])
           );
         my $londocroot = $r->dir_config('lonDocRoot');          my $londocroot = $r->dir_config('lonDocRoot');
         if ($destdir =~ m{^\Q$londocroot/priv/$udom/$uname/$dirpath\E}) {          if ($destdir =~ m{^\Q$londocroot/priv/$udom/$uname/$dirpath\E}) {
             system (" rm -r -f $destdir/temp");              system (" rm -r -f $destdir/temp");
         }          }
     } elsif ($manifest_result eq 'nomanifest') {      } elsif ($manifest_result eq 'nomanifest') {
         $r->print($lt{'proc'});          $r->print(
               '<br />'.&Apache::loncommon::confirmwrapper(
                   &Apache::lonhtmlcommon::confirm_success($lt{'proc'},1))
           );
     }      }
 }  }
   
Line 749  END_JS Line 779  END_JS
         my $flag = &Apache::lonupload::phasetwo($r,$fn,'imsimport');          my $flag = &Apache::lonupload::phasetwo($r,$fn,'imsimport');
         if ($flag eq 'ok') {          if ($flag eq 'ok') {
             &display_one($r,$fn,$fullpath,$formname_one);              &display_one($r,$fn,$fullpath,$formname_one);
           } else {
               $r->print(
                   '<br />'.&Apache::loncommon::confirmwrapper(
                       &Apache::lonhtmlcommon::confirm_success(
                           &mt('Error uploading IMS package'),1))
               );
         }          }
     } elsif ( ($env{'form.phase'} eq 'three') || ($env{'form.phase'} eq 'four') ) {      } elsif ( ($env{'form.phase'} eq 'three') || ($env{'form.phase'} eq 'four') ) {
         my $destdir = $env{'form.newdir'};          my $destdir = $env{'form.newdir'};

Removed from v.1.44  
changed lines
  Added in v.1.45


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