Diff for /rat/lonsequence.pm between versions 1.11 and 1.12

version 1.11, 2002/05/23 15:07:55 version 1.12, 2002/05/24 14:44:32
Line 46  use Apache::lonratedt; Line 46  use Apache::lonratedt;
 use Apache::lonratsrv;  use Apache::lonratsrv;
 use Apache::lonpageflip;  use Apache::lonpageflip;
   
 # ----------------------------------------------------------- Could not resolve  my %selhash;
   my $successtied;
 sub getlost {  
     my ($r,$errmsg)=@_;  
     $r->content_type('text/html');  
     $r->send_http_header;  
     $r->print(  
  '<head><title>Unknown Error</title></head><body bgcolor="#FFFFFF"><h1>'.  
  'LON-CAPA</h1>Could not handle sequence resource reference.<p>'.$errmsg.  
  '</body></html>');  
 }  
   
   
 # ----------------------------------------- Attempt to read from resource space  # ----------------------------------------- Attempt to read from resource space
   
Line 80  sub viewmap { Line 70  sub viewmap {
 <script>  <script>
   
 function select_group() {  function select_group() {
     window.location="/adm/groupsort?catalogmode=groupimport&mode=rat&acts="+document.forms.fileattr.acts.value;      window.location="/adm/groupsort?catalogmode=groupsec&mode=rat&acts="+document.forms.fileattr.acts.value;
 }  }
   
 function queue(val) {  function queue(val) {
Line 100  function queue(val) { Line 90  function queue(val) {
 ENDSCRIPT  ENDSCRIPT
     }      }
     $r->print('<body bgcolor="#FFFFFF">');      $r->print('<body bgcolor="#FFFFFF">');
   # ------------------ This is trying to select. Provide buttons and tie %selhash
     if ($ENV{'form.forceselect'}) { $r->print(<<ENDSELECT);      if ($ENV{'form.forceselect'}) { $r->print(<<ENDSELECT);
 <form name=fileattr><input type=hidden name=acts value=''>  <form name=fileattr><input type=hidden name=acts value=''>
 <input type="button" name="close" value='CLOSE' onClick="self.close()">  <input type="button" name="close" value='CLOSE' onClick="self.close()">
Line 107  ENDSCRIPT Line 98  ENDSCRIPT
 onClick="javascript:select_group()">  onClick="javascript:select_group()">
 </form>     </form>   
 ENDSELECT  ENDSELECT
       my $diropendb = 
       "/home/httpd/perl/tmp/$ENV{'user.domain'}\_$ENV{'user.name'}_groupsec.db";
           if (tie(%selhash,'GDBM_File',$diropendb,&GDBM_WRCREAT,0640)) {
       if ($ENV{'form.launch'} eq '1') {
          &start_fresh_session();
       }
               $successtied=1;
   
   # - Evaluate actions from previous page (both cumulatively and chronologically)
           if ($ENV{'form.catalogmode'} eq 'groupimport') {
       my $acts=$ENV{'form.acts'};
       my @Acts=split(/b/,$acts);
       my %ahash;
       my %achash;
       my $ac=0;
       # some initial hashes for working with data
       foreach (@Acts) {
    my ($state,$ref)=split(/a/);
    $ahash{$ref}=$state;
    $achash{$ref}=$ac;
    $ac++;
       }
       # sorting through the actions and changing the tied database hash
       foreach (sort {$achash{$a}<=>$achash{$b}} (keys %ahash)) {
    my $key=$_;
    if ($ahash{$key} eq '1') {
       $selhash{'store_'.$selhash{'pre_'.$key.'_link'}}=
    $selhash{'pre_'.$key.'_title'};
       $selhash{'storectr_'.$selhash{'pre_'.$key.'_link'}}=
    $selhash{'storectr'}+0;
       $selhash{'storectr'}++;
    }
    if ($ahash{$key} eq '0') {
       if ($selhash{'store_'.$selhash{'pre_'.$key.'_link'}}) {
          delete $selhash{'store_'.$selhash{'pre_'.$key.'_link'}};
       }
    }
       }
       # deleting the previously cached listing
       foreach (keys %selhash) {
    if ($_ =~ /^pre_/ && $_ =~/link$/) {
       my $key = $_;
       $key =~ s/^pre_//;
       $key =~ s/_[^_]*$//;
       delete $selhash{'pre_'.$key.'_title'};
       delete $selhash{'pre_'.$key.'_link'};
    }
       }
    }
   # -
           }
     }      }
   # ----------------------------- successtied is now '1' if in working selectmode
     my $idx=0;      my $idx=0;
     foreach (&attemptread(&Apache::lonnet::filelocation('',$url))) {      foreach (&attemptread(&Apache::lonnet::filelocation('',$url))) {
  if (defined($_)) {   if (defined($_)) {
             $idx++;              $idx++;
             if ($ENV{'form.forceselect'}) {               if ($successtied) { 
  $r->print('<form name="form'.$idx.'">');   $r->print('<form name="form'.$idx.'">');
             }              }
     my ($title,$url)=split(/\:/,$_);      my ($title,$url)=split(/\:/,$_);
Line 121  ENDSELECT Line 164  ENDSELECT
             unless ($title) { $title=(split(/\//,$url))[-1] };              unless ($title) { $title=(split(/\//,$url))[-1] };
             unless ($title) { $title='<i>Empty</i>'; }              unless ($title) { $title='<i>Empty</i>'; }
             if ($url) {              if ($url) {
  if ($ENV{'form.forceselect'}) {   if ($successtied) {
       my $checked='';
              if ($selhash{'store_'.$url}) {
               $checked=" checked";
              }
              $selhash{"pre_${idx}_link"}=$url;
              $selhash{"pre_${idx}_title"}=$title;
   
     $r->print(<<ENDCHECKBOX);      $r->print(<<ENDCHECKBOX);
 <input type='checkbox' name='filelink'   <input type='checkbox' name='filelink' 
 value='$url' onClick='javascript:queue("form$idx")' >  value='$url' onClick='javascript:queue("form$idx")'$checked>
 <input type='hidden' name='title' value='$title'>  <input type='hidden' name='title' value='$title'>
 ENDCHECKBOX  ENDCHECKBOX
                 }                  }
Line 132  ENDCHECKBOX Line 182  ENDCHECKBOX
             }              }
             $r->print(&Apache::lonratsrv::qtescape($title));              $r->print(&Apache::lonratsrv::qtescape($title));
             if ($url) { $r->print('</a>'); }              if ($url) { $r->print('</a>'); }
             if ($ENV{'form.forceselect'}) {              if ($successtied) {
  $r->print('</form>');   $r->print('</form>');
             } else {              } else {
  $r->print('<br>');   $r->print('<br>');
Line 140  ENDCHECKBOX Line 190  ENDCHECKBOX
         }          }
     }      }
     $r->print('</body></html>');      $r->print('</body></html>');
       if ($successtied) {
    untie %selhash;
       }
 }  }
   
   # ----------------------------------------------------------- Clean out selhash
   sub start_fresh_session {
       foreach (keys %selhash) {
    if ($_ =~ /^pre_/) {
       delete $selhash{$_};
    }
    if ($_ =~ /^store/) {
       delete $selhash{$_};
    }
       }
   }
   
   
 # ================================================================ Main Handler  # ================================================================ Main Handler
   
 sub handler {  sub handler {
Line 154  sub handler { Line 220  sub handler {
    }     }
     
    &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},     &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},
                                           ['forceselect']);                                            ['forceselect','launch']);
   
    my %hash;     my %hash;
    my %bighash;     my %bighash;
    my $requrl=$r->uri;     my $requrl=$r->uri;
   
      $successtied=0;
 # ------------------------------------------------------------ Tie symb db file  # ------------------------------------------------------------ Tie symb db file
   my $disurl='';    my $disurl='';
   my $dismapid='';    my $dismapid='';

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


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