Diff for /loncom/imspackages/imsimportdocs.pm between versions 1.29 and 1.30

version 1.29, 2009/11/20 18:25:34 version 1.30, 2012/10/31 12:54:17
Line 33  use Apache::londocs; Line 33  use Apache::londocs;
 use Apache::loncommon;  use Apache::loncommon;
 use Apache::lonlocal;  use Apache::lonlocal;
 use Apache::imsprocessor;  use Apache::imsprocessor;
 use LONCAPA::Configuration;  
 use LONCAPA::map();  use LONCAPA::map();
 use lib '/home/httpd/lib/perl/';  use lib '/home/httpd/lib/perl/';
 use LONCAPA;  use LONCAPA;
Line 41  use LONCAPA; Line 40  use LONCAPA;
 use strict;  use strict;
   
 sub jscript_one {  sub jscript_one {
     my $javascript = shift;      my %lt = &Apache::lonlocal::texthash(
     $$javascript = qq#                 se => 'Select',
 function verify() {                 to => 'Import topics only',
  if ((document.forms.pickcms.uploadname.value == '')  || (!document.forms.pickcms.uploadname.value)) {                 tp => 'Import topics + posts (with author)',
    alert("You must provide the name of the IMS package to be imported")                 tn => 'Import topics + posts (no author)',
    return false                 es => 'Enroll students only',
  }                 ea => 'Enroll all users',
  if (document.forms.pickcms.source.selectedIndex == 0) {                 nr => 'Not required',
    alert("You must choose the Course Management System from which the IMS package was exported");                 id => 'You must select one of the additional options when importing Disussion Boards',
    return false                 ie => 'You must select one of the additional options when importing Enrollment',
  }                 ct => 'You must check at least one Content Type', 
  return true      );
 }      return <<"ENDJS";
   
 function nextPage() {  
  if (verify()) {  
    document.forms.pickcms.submit()  
  }  
 }  
 #;  
    
 }  
   
 sub jscript_two {  
     my $javascript = shift;  
     $$javascript = qq#  
 function setOptions(caller,itemnum) {  function setOptions(caller,itemnum) {
   var opForm = document.forms.pickoptions    var opForm = document.forms.pickoptions
   var menu = 1 + itemnum*2    var menu = 1 + itemnum*2
   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{'se'}","-1",true,true)
       opForm.elements[menu].options[1] = new Option("Import topics only","topics",true,true)        opForm.elements[menu].options[1] = new Option("$lt{'to'}","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{'tp'}","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{'tn'}","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{'se'}","-1",true,true)
         opForm.elements[menu].options[1] = new Option("Enroll students only","students",true,true)          opForm.elements[menu].options[1] = new Option("$lt{'es'}","students",true,true)
         opForm.elements[menu].options[2] = new Option("Enroll all users","all",true,true)          opForm.elements[menu].options[2] = new Option("$lt{'ea'}","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{'nr'}","0",true,true)
   }    }
   opForm.elements[menu].selectedIndex = 0    opForm.elements[menu].selectedIndex = 0
 }  }
Line 101  function verify(caller) { Line 87  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{'id'}")
           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{'ie'}")
           return false            return false
         }          }
       }        }
     }      }
   }    }
   if (totcheck == 0) {    if (totcheck == 0) {
     alert("You must check the Checkbox for at least one Content Type");      alert("$lt{'ct'}");
     return false      return false
   }    }
   return true    return true
Line 125  function nextPage(caller) { Line 111  function nextPage(caller) {
    document.forms.pickoptions.submit()     document.forms.pickoptions.submit()
  }   }
 }  }
 #;  
   ENDJS
   
 }  }
   
 sub jscript_three {  sub jscript_two {
     my $javascript = shift;      return <<"ENDJS";
     $$javascript = qq|  
 function init(tf) {  function init(tf) {
     setTimeout("self.close()",3000)      setTimeout("self.close()",3000)
     tf.submit();         tf.submit();   
 }  }
     |;   
   ENDJS
 }  }
   
 sub handler {  sub handler {
     my $r = shift;      my $r = shift;
     my $javascript = '';  
     &Apache::loncommon::content_type($r,'text/html');      &Apache::loncommon::content_type($r,'text/html');
     $r->send_http_header;      $r->send_http_header;
     return OK if $r->header_only;      return OK if $r->header_only;
Line 177  sub handler { Line 164  sub handler {
         return OK;          return OK;
     }      }
   
     &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},      my $javascript;
        ['phase']);      if ($env{'form.phase'} eq 'one') {
           $javascript = &jscript_one();
     if ($env{'form.phase'} eq 'one') {      
         &jscript_one(\$javascript);  
     } elsif ($env{'form.phase'} eq 'two') {      } elsif ($env{'form.phase'} eq 'two') {
         &jscript_two(\$javascript);          $javascript = &jscript_two();
     } elsif ($env{'form.phase'} eq 'three') {  
         &jscript_three(\$javascript);  
     }      }
   
     $javascript =       $javascript = 
Line 200  sub handler { Line 183  sub handler {
     $r->print($start_page);      $r->print($start_page);
   
     if ($env{'form.phase'} eq 'one') {      if ($env{'form.phase'} eq 'one') {
         &display_one($r);                 &display_one($r,$coursenum,\@areas,\%areaname,%cmsmap);
     } elsif ($env{'form.phase'} eq 'two') {      } elsif ($env{'form.phase'} eq 'two') {
         &display_two($r,$coursenum,\@areas,\%areaname,%cmsmap);          &display_two($r,$coursenum,$coursedom,$uname,$udom,\@areas,%cmsmap);
     } elsif ($env{'form.phase'} eq 'three') {  
         &display_three($r,$coursenum,$coursedom,$uname,$udom,\@areas,%cmsmap);  
     }         }   
     $r->print(&Apache::loncommon::end_page());      $r->print(&Apache::loncommon::end_page());
     return OK;      return OK;
 }   
   
   
 sub display_one {  
     my ($r) = @_;  
     &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},['folder']);  
   
     $r->print(  
         '<form action="/adm/imsimportdocs" method="post"'  
        .' enctype="multipart/form-data" name="pickcms">'  
     );  
   
     # Step 1  
     $r->print(  
        &Apache::lonhtmlcommon::topic_bar(  
             1,&mt('Specify the Course Management system used to create the package'))  
        .&mt('Please choose the CMS used to create your IMS content package:').' '  
        .'<select name="source">'  
        .'<option value="-1" selected="selected">'.&mt('Please select').'</option>'  
        .'<option value="bb5">Blackboard 5</option>'  
        .'<option value="bb6">Blackboard 6</option>'  
        .'<option value="angel5">ANGEL 5.5</option>'  
        .'<option value="webctce4">WebCT 4 Campus Edition</option>'  
        .'</select>'  
     );  
   
     # Step 2  
     $r->print(  
        &Apache::lonhtmlcommon::topic_bar(  
            2,&mt('Locate the IMS content package you wish to upload'))  
       .'<input type="hidden" name="folder" value="'.$env{'form.folder'}.'" />'  
       .'<input type="hidden" name="phase" value="two" />'  
       .&mt('File:')  
       .' <input type="file" name="uploadname" size="40" />'  
     );  
   
     # Buttons  
     $r->print(  
        '<hr />'  
       .'<p>'  
       .'<input type="button" name="exitpage" value="'.&mt('Cancel').'"'  
       .' onclick="javascript:self.close()" />'  
       .' '  
       .'<input type="button" name="nextpage" value="'.&mt('Upload IMS package').'"'  
       .' onclick="javascript:nextPage()" />'  
       .'</p>'  
     );  
   
     $r->print('</form>');  
 }  }
   
   sub display_one {
 sub display_two {  
     my ($r,$crs,$areasref,$areaname,%cmsmap) = @_;      my ($r,$crs,$areasref,$areaname,%cmsmap) = @_;
     &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);
Line 345  sub display_two { Line 275  sub display_two {
     }      }
   
   
     # Start output: Step 3 and step 4      # Start output: Step 1 and step 2
   
     $r->print(      $r->print(
         '<form name="pickoptions" method="post" action="">'          '<form name="pickoptions" method="post" action="">'
        .&Apache::lonhtmlcommon::topic_bar(         .&Apache::lonhtmlcommon::topic_bar(
             3,&mt('Choose which content types you wish to import'))              1,&mt('Choose which content types you wish to import'))
        .'<p>'         .'<p>'
        .&mt('Check the checkboxes for all areas you wish to import from the IMS package:')         .&mt('Check the checkboxes for all areas you wish to import from the IMS package:')
        .'</p>'         .'</p>'
Line 420  sub display_two { Line 350  sub display_two {
   
     $r->print(      $r->print(
         &Apache::lonhtmlcommon::topic_bar(          &Apache::lonhtmlcommon::topic_bar(
             4,&mt('Choose display options for listing of contents of top level of package'))              2,&mt('Choose display options for listing of contents of top level of package'))
        .'<p>'         .'<p>'
        .&mt('Select a display option for the package content:')         .&mt('Select a display option for the package content:')
        .'</p>'         .'</p>'
Line 443  sub display_two { Line 373  sub display_two {
         '<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="two" />'
     );      );
     $r->print(      $r->print(
         '<hr />'          '<hr />'
Line 459  sub display_two { Line 389  sub display_two {
    $r->print('</form>');     $r->print('</form>');
 }  }
   
   sub display_two {
 sub display_three {  
     my ($r,$crs,$cdom,$uname,$udom,$areas,%cmsmap) = @_;      my ($r,$crs,$cdom,$uname,$udom,$areas,%cmsmap) = @_;
     my $folder = $env{'form.folder'};      my $folder = $env{'form.folder'};
     my $cms = $env{'form.source'};      my $cms = $env{'form.source'};

Removed from v.1.29  
changed lines
  Added in v.1.30


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