Diff for /loncom/publisher/testbankimport.pm between versions 1.5 and 1.6

version 1.5, 2004/08/05 21:08:24 version 1.6, 2005/04/07 06:56:27
Line 40  use File::Basename(); Line 40  use File::Basename();
 # ---------------------------------------------------------------- Display Control  # ---------------------------------------------------------------- Display Control
 sub display_control {  sub display_control {
 # figure out what page we're on and where we're heading.  # figure out what page we're on and where we're heading.
     my $page = $ENV{'form.page'};      my $page = $env{'form.page'};
     my $command = $ENV{'form.go'};      my $command = $env{'form.go'};
     my $current_page = &calculate_page($page,$command);      my $current_page = &calculate_page($page,$command);
     return $current_page;      return $current_page;
 }  }
Line 86  function setElements() { Line 86  function setElements() {
     var iter = 0      var iter = 0
     var selParam = 0      var selParam = 0
 END_SCRIPT  END_SCRIPT
     if (exists($ENV{'form.blocks'}) ) {      if (exists($env{'form.blocks'}) ) {
         $$jsref .= qq|          $$jsref .= qq|
     document.forms.display.blocks.value = $ENV{'form.blocks'}\n|;      document.forms.display.blocks.value = $env{'form.blocks'}\n|;
     } elsif (exists($ENV{'form.qnumformat'}) ) {      } elsif (exists($env{'form.qnumformat'}) ) {
         $$jsref .= <<"TO_HERE";          $$jsref .= <<"TO_HERE";
     for (iter=0; iter<document.forms.display.qnumformat.length; iter++) {      for (iter=0; iter<document.forms.display.qnumformat.length; iter++) {
         if(document.forms.display.qnumformat.options[iter].value == "$ENV{'form.qnumformat'}") {          if(document.forms.display.qnumformat.options[iter].value == "$env{'form.qnumformat'}") {
             selParam = iter              selParam = iter
         }          }
     }      }
Line 108  TO_HERE Line 108  TO_HERE
 sub jscript_two {  sub jscript_two {
     my ($jsref,$qcount) = @_;      my ($jsref,$qcount) = @_;
     my $blocks = 0;      my $blocks = 0;
     if ( exists( $ENV{'form.blocks'}) ) {      if ( exists( $env{'form.blocks'}) ) {
         $blocks = $ENV{'form.blocks'};          $blocks = $env{'form.blocks'};
     }      }
     $$jsref = <<"END_SCRIPT";      $$jsref = <<"END_SCRIPT";
 function verify() {  function verify() {
Line 308  END_SCRIPT Line 308  END_SCRIPT
     for (my $x=0; $x<$blocks; $x++) {      for (my $x=0; $x<$blocks; $x++) {
         foreach my $name (@names) {          foreach my $name (@names) {
             my $parname = $name.$x;              my $parname = $name.$x;
             my $value = $ENV{"form.$parname"};              my $value = $env{"form.$parname"};
             if ($value ne "") {              if ($value ne "") {
                 if (($name eq "start_")  || ($name eq "end_")) {                  if (($name eq "start_")  || ($name eq "end_")) {
                     $$jsref .= qq|                      $$jsref .= qq|
Line 345  TO_HERE Line 345  TO_HERE
 sub jscript_three {  sub jscript_three {
     my ($fullpath,$jsref) = @_;      my ($fullpath,$jsref) = @_;
     my $source = '';      my $source = '';
     if (exists($ENV{'form.go'}) ) {      if (exists($env{'form.go'}) ) {
         $source = $ENV{'form.go'};          $source = $env{'form.go'};
     }      }
     $$jsref = <<"END_OF_ONE";      $$jsref = <<"END_OF_ONE";
 function verify() {  function verify() {
Line 398  function setElements() { Line 398  function setElements() {
     var iter = 0      var iter = 0
     var selParam = 0      var selParam = 0
         |;          |;
         foreach my $item (keys %ENV) {          foreach my $item (keys %env) {
             if ($item =~ m/^form\.(\w+)$/) {              if ($item =~ m/^form\.(\w+)$/) {
                 my $name = $1;                   my $name = $1; 
                 my $value = $ENV{"form.$name"};                  my $value = $env{"form.$name"};
                 unless ($value eq "") {                  unless ($value eq "") {
                     if ($name eq "newdir") {                      if ($name eq "newdir") {
                      $$jsref .= qq(    document.forms.dataForm.$name.value = "$value"\n);                       $$jsref .= qq(    document.forms.dataForm.$name.value = "$value"\n);
Line 654  Please indicate the number of blocks of Line 654  Please indicate the number of blocks of
   
 sub display_two {  sub display_two {
     my ($r,$uname,$fn,$page,$textref,$qcount) = @_;      my ($r,$uname,$fn,$page,$textref,$qcount) = @_;
     my $blocks = $ENV{'form.blocks'};      my $blocks = $env{'form.blocks'};
     my $qnumformat = $ENV{'form.qnumformat'};      my $qnumformat = $env{'form.qnumformat'};
     my @types = ("MC","MA","TF","Ess","FIB","Ord");      my @types = ("MC","MA","TF","Ess","FIB","Ord");
     my %typenames = (      my %typenames = (
              MC => "Multiple Choice",               MC => "Multiple Choice",
Line 867  END_OF_FUNC Line 867  END_OF_FUNC
 # ---------------------------------------------------------------- Display Three  # ---------------------------------------------------------------- Display Three
 sub display_three {   sub display_three { 
     my ($r,$uname,$fn,$page,$textref,$qcount) = @_;      my ($r,$uname,$fn,$page,$textref,$qcount) = @_;
     my $qnumformat = $ENV{'form.qnumformat'};      my $qnumformat = $env{'form.qnumformat'};
     my $filename = $ENV{'form.filename'};      my $filename = $env{'form.filename'};
     my $source = $ENV{'form.go'};      my $source = $env{'form.go'};
     my $blocks = $ENV{'form.blocks'};      my $blocks = $env{'form.blocks'};
     my @items = ();      my @items = ();
     my @bgcolors = ('#ffffff','#eeeeee');      my @bgcolors = ('#ffffff','#eeeeee');
     my @types = ("MC","MA","TF","Ess","FIB","Ord");      my @types = ("MC","MA","TF","Ess","FIB","Ord");
Line 885  sub display_three { Line 885  sub display_three {
     my %multparts = ();      my %multparts = ();
     my $numitems = 0;      my $numitems = 0;
     for (my $i=0; $i<$blocks; $i++) {      for (my $i=0; $i<$blocks; $i++) {
         if (($ENV{"form.start_$i"} ne '') && ($ENV{"form.end_$i"} ne '')) {          if (($env{"form.start_$i"} ne '') && ($env{"form.end_$i"} ne '')) {
             $start[$i] = $ENV{"form.start_$i"};              $start[$i] = $env{"form.start_$i"};
             $end[$i] = $ENV{"form.end_$i"};              $end[$i] = $env{"form.end_$i"};
             $nums[$i] = $end[$i]-$start[$i] +1;              $nums[$i] = $end[$i]-$start[$i] +1;
             $qtype[$i] = $ENV{"form.qtype_$i"};              $qtype[$i] = $env{"form.qtype_$i"};
             if (($qtype[$i] eq "MC") || ($qtype[$i] eq "MA") || ($qtype[$i] eq "Ord")) {              if (($qtype[$i] eq "MC") || ($qtype[$i] eq "MA") || ($qtype[$i] eq "Ord")) {
                 $foilformats[$i] = $ENV{"form.foilformat_$i"};                  $foilformats[$i] = $env{"form.foilformat_$i"};
             } else {              } else {
                 $foilformats[$i] = '';                  $foilformats[$i] = '';
             }               } 
             if (($qtype[$i] eq "MA") || ($qtype[$i] eq "FIB") || ($qtype[$i] eq "TF") || ($qtype[$i] eq "Ord")) {              if (($qtype[$i] eq "MA") || ($qtype[$i] eq "FIB") || ($qtype[$i] eq "TF") || ($qtype[$i] eq "Ord")) {
                 $ansrtypes[$i] = $ENV{"form.ansr_$i"};                  $ansrtypes[$i] = $env{"form.ansr_$i"};
             } else {              } else {
                 $ansrtypes[$i] = '';                  $ansrtypes[$i] = '';
             }                }  
Line 1094  Please choose a destination LON-CAPA dir Line 1094  Please choose a destination LON-CAPA dir
 # ---------------------------------------------------------------- Final Display  # ---------------------------------------------------------------- Final Display
 sub final_display {  sub final_display {
     my ($r,$uname,$fn,$page,$textref) = @_;      my ($r,$uname,$fn,$page,$textref) = @_;
     my $qnumformat = $ENV{'form.qnumformat'};      my $qnumformat = $env{'form.qnumformat'};
     my $blocks = $ENV{'form.blocks'};      my $blocks = $env{'form.blocks'};
     my $newdir = $ENV{'form.newdir'};      my $newdir = $env{'form.newdir'};
     my $linkdir = $newdir;      my $linkdir = $newdir;
     if ($linkdir =~ m#^/home/$uname/public_html/(.+)$#) {      if ($linkdir =~ m#^/home/$uname/public_html/(.+)$#) {
         $linkdir = '/priv/'.$uname.'/'.$1;          $linkdir = '/priv/'.$uname.'/'.$1;
Line 1113  sub final_display { Line 1113  sub final_display {
     my %multparts = ();      my %multparts = ();
     my $numitems = 0;      my $numitems = 0;
     for (my $i=0; $i<$blocks; $i++) {      for (my $i=0; $i<$blocks; $i++) {
         $start[$i] = $ENV{"form.start_$i"};          $start[$i] = $env{"form.start_$i"};
         $end[$i] = $ENV{"form.end_$i"};          $end[$i] = $env{"form.end_$i"};
         if (($end[$i] - $start[$i]) >= 0) {          if (($end[$i] - $start[$i]) >= 0) {
             $nums[$i] = $end[$i] - $start[$i]+1;              $nums[$i] = $end[$i] - $start[$i]+1;
         } else {          } else {
             $nums[$i] = 0;              $nums[$i] = 0;
         }          }
         $qtype[$i] = $ENV{"form.qtype_$i"};          $qtype[$i] = $env{"form.qtype_$i"};
         if (($qtype[$i] eq "MC") || ($qtype[$i] eq "MA") || ($qtype[$i] eq "Ord")) {          if (($qtype[$i] eq "MC") || ($qtype[$i] eq "MA") || ($qtype[$i] eq "Ord")) {
             $foilformats[$i] = $ENV{"form.foilformat_$i"};              $foilformats[$i] = $env{"form.foilformat_$i"};
         } else {          } else {
             $foilformats[$i] = '';              $foilformats[$i] = '';
         }          }
         if (($qtype[$i] eq "MA") || ($qtype[$i] eq "FIB") || ($qtype[$i] eq "TF") || ($qtype[$i] eq "Ord")) {          if (($qtype[$i] eq "MA") || ($qtype[$i] eq "FIB") || ($qtype[$i] eq "TF") || ($qtype[$i] eq "Ord")) {
             $ansrtypes[$i] = $ENV{"form.ansr_$i"};              $ansrtypes[$i] = $env{"form.ansr_$i"};
         }          }
         $numitems += $nums[$i];          $numitems += $nums[$i];
     }      }
Line 1705  sub handler { Line 1705  sub handler {
 #  #
 # phase two: re-attach user  # phase two: re-attach user
 #  #
     if ($ENV{'form.uploaduname'}) {      if ($env{'form.uploaduname'}) {
         $ENV{'form.filename'}='/priv/'.$ENV{'form.uploaduname'}.'/'.          $env{'form.filename'}='/priv/'.$env{'form.uploaduname'}.'/'.
             $ENV{'form.filename'};              $env{'form.filename'};
     }      }
     ($uname,$udom)=      ($uname,$udom)=
         &Apache::loncacc::constructaccess($ENV{'form.filename'},          &Apache::loncacc::constructaccess($env{'form.filename'},
                                           $r->dir_config('lonDefDomain'));                                            $r->dir_config('lonDefDomain'));
     unless (($uname) && ($udom)) {      unless (($uname) && ($udom)) {
         $r->log_reason($uname.' at '.$udom.          $r->log_reason($uname.' at '.$udom.
                        ' trying to publish file '.$ENV{'form.filename'}.                         ' trying to publish file '.$env{'form.filename'}.
                        ' - not authorized',                         ' - not authorized',
                        $r->filename);                         $r->filename);
         return HTTP_NOT_ACCEPTABLE;          return HTTP_NOT_ACCEPTABLE;
Line 1722  sub handler { Line 1722  sub handler {
                                                                                                                                                             
     my $fn;      my $fn;
     my $badfile = 0;      my $badfile = 0;
     if ($ENV{'form.filename'}) {      if ($env{'form.filename'}) {
         $fn=$ENV{'form.filename'};          $fn=$env{'form.filename'};
         $fn=~s/^http\:\/\/[^\/]+\///;          $fn=~s/^http\:\/\/[^\/]+\///;
         $fn=~s/^\///;          $fn=~s/^\///;
         $fn=~s/(\~|priv\/)(\w+)//;          $fn=~s/(\~|priv\/)(\w+)//;
         $fn=~s/\/+/\//g;          $fn=~s/\/+/\//g;
     } else {      } else {
         $r->log_reason($ENV{'user.name'}.' at '.$ENV{'user.domain'}.          $r->log_reason($env{'user.name'}.' at '.$env{'user.domain'}.
                        ' unspecified filename for upload', $r->filename);                         ' unspecified filename for upload', $r->filename);
         return HTTP_NOT_FOUND;          return HTTP_NOT_FOUND;
     }      }
Line 1743  sub handler { Line 1743  sub handler {
   
     my @text = ();      my @text = ();
     my $loadentries = '';      my $loadentries = '';
     if ($ENV{'form.phase'} eq 'three') {          if ($env{'form.phase'} eq 'three') {    
         if (-e "$dirpath$fn") {          if (-e "$dirpath$fn") {
             open(TESTBANK,"<$dirpath$fn");              open(TESTBANK,"<$dirpath$fn");
             @text = <TESTBANK>;              @text = <TESTBANK>;
Line 1757  sub handler { Line 1757  sub handler {
     &Apache::loncommon::content_type($r,'text/html');      &Apache::loncommon::content_type($r,'text/html');
     $r->send_http_header;      $r->send_http_header;
   
     if ($ENV{'form.phase'} eq 'three') {      if ($env{'form.phase'} eq 'three') {
         $current_page = &display_control();          $current_page = &display_control();
         my @PAGES = ('Welcome','Blocks','Format','Target','Confirmation');          my @PAGES = ('Welcome','Blocks','Format','Target','Confirmation');
         $page_name = $PAGES[$current_page];          $page_name = $PAGES[$current_page];
Line 1766  sub handler { Line 1766  sub handler {
             $loadentries = 'onLoad= "setElements()"';              $loadentries = 'onLoad= "setElements()"';
             &jscript_one(\$javascript);              &jscript_one(\$javascript);
         } elsif ($page_name eq 'Format') {           } elsif ($page_name eq 'Format') { 
             $qcount = question_count($ENV{'form.qnumformat'},\@text);              $qcount = question_count($env{'form.qnumformat'},\@text);
      &jscript_two(\$javascript,$qcount);       &jscript_two(\$javascript,$qcount);
          } elsif ($page_name eq 'Target') {           } elsif ($page_name eq 'Target') {
              if ($ENV{'form.go'} eq "PreviousPage") {               if ($env{'form.go'} eq "PreviousPage") {
                  $loadentries =  'onLoad = "setElements()"';                   $loadentries =  'onLoad = "setElements()"';
       }        }
      &jscript_three($fullpath,\$javascript);       &jscript_three($fullpath,\$javascript);
Line 1782  sub handler { Line 1782  sub handler {
                                                                                                                                                                       
     $r->print(&Apache::loncommon::bodytag('Upload testbank questions to Construction Space',undef,$loadentries));      $r->print(&Apache::loncommon::bodytag('Upload testbank questions to Construction Space',undef,$loadentries));
                                                                                                                                                                       
     if (($uname ne $ENV{'user.name'}) || ($udom ne $ENV{'user.domain'})) {      if (($uname ne $env{'user.name'}) || ($udom ne $env{'user.domain'})) {
         $r->print('<h3><font color=red>'.&mt('Co-Author').': '.$uname.          $r->print('<h3><font color=red>'.&mt('Co-Author').': '.$uname.
                   &mt(' at ').$udom.'</font></h3>');                    &mt(' at ').$udom.'</font></h3>');
     }      }
   
     if ($ENV{'form.phase'} eq 'three') {      if ($env{'form.phase'} eq 'three') {
         if ($badfile) {          if ($badfile) {
             &file_error($r,$uname,$fn,$current_page);              &file_error($r,$uname,$fn,$current_page);
         } else {                  } else {        
Line 1797  sub handler { Line 1797  sub handler {
             &display_three ($r,$uname,$fn,$current_page,\@text,$qcount) if $page_name eq 'Target';              &display_three ($r,$uname,$fn,$current_page,\@text,$qcount) if $page_name eq 'Target';
             &final_display ($r,$uname,$fn,$current_page,\@text) if $page_name eq 'Confirmation';              &final_display ($r,$uname,$fn,$current_page,\@text) if $page_name eq 'Confirmation';
         }          }
     } elsif ($ENV{'form.phase'} eq 'two') {      } elsif ($env{'form.phase'} eq 'two') {
         my $flag = &Apache::lonupload::phasetwo($r,$fn,$uname,$udom,'testbank');          my $flag = &Apache::lonupload::phasetwo($r,$fn,$uname,$udom,'testbank');
         if ($flag eq 'ok') {          if ($flag eq 'ok') {
             my $current_page = 0;              my $current_page = 0;

Removed from v.1.5  
changed lines
  Added in v.1.6


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