Diff for /loncom/interface/lonindexer.pm between versions 1.30 and 1.36

version 1.30, 2001/12/13 13:59:22 version 1.36, 2002/03/06 22:01:06
Line 41 Line 41
 # 8/28,10/15,11/28,11/29 Scott Harrison  # 8/28,10/15,11/28,11/29 Scott Harrison
 # 11/30 Matthew Hall  # 11/30 Matthew Hall
 # 12/11,12/13 Scott Harrison  # 12/11,12/13 Scott Harrison
   # YEAR=2002
   # 1/17 Scott Harrison
 #  #
 ###  ###
   
Line 78  my $extrafield; # default extra table ce Line 80  my $extrafield; # default extra table ce
 my $fnum; # file counter  my $fnum; # file counter
 my $dnum; # directory counter  my $dnum; # directory counter
   
 # ---------------------------------------------------------------------- BEGIN  
 sub BEGIN {  
 }  
   
 # ----------------------------- Handling routine called via Apache and mod_perl  # ----------------------------- Handling routine called via Apache and mod_perl
 sub handler {  sub handler {
     my $r = shift;      my $r = shift;
Line 108  sub handler { Line 106  sub handler {
     my $uri=$r->uri;      my $uri=$r->uri;
   
 # -------------------------------------- see if called from an interactive mode  # -------------------------------------- see if called from an interactive mode
     &get_unprocessed_cgi();      # Get the parameters from the query string
       &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},
        ['catalogmode','launch','acts','mode','form','element']);
       #-------------------------------------------------------------------
     my $closebutton='';      my $closebutton='';
     my $groupimportbutton='';      my $groupimportbutton='';
     my $colspan='';       my $colspan=''; 
Line 156  END Line 156  END
 onClick="javascript:select_group()">  onClick="javascript:select_group()">
 END  END
         }          }
    # Additions made by Matthew to make the browser a little easier to deal
    # with in the future.
    #
    # $mode (at this time) indicates if we are in edit mode.
    # $form is the name of the form that the URL is placed when the
    #       selection is made.
    # $element is the name of the element in $formname which receives
    #       the URL.
    &Apache::lonxml::debug('Checking mode, form, element');
    &setvalues(\%hash,'form_mode'   ,\%ENV,'form.mode'   );
    &setvalues(\%hash,'form_form'   ,\%ENV,'form.form'   );
    &setvalues(\%hash,'form_element',\%ENV,'form.element');
   
    my $mode = $ENV{'form.mode'};
    my ($form,$element);
    if ($mode eq 'edit') {
       $form    = $ENV{'form.form'};
       $element = $ENV{'form.element'};
    }
    &Apache::lonxml::debug("mode=$mode form=$form element=$element");
 # ------ set catalogmodefunctions to have extra needed javascript functionality  # ------ set catalogmodefunctions to have extra needed javascript functionality
  my $catalogmodefunctions='';   my $catalogmodefunctions='';
  if ($ENV{'form.catalogmode'} eq 'interactive' or   if ($ENV{'form.catalogmode'} eq 'interactive' or
     $ENV{'form.catalogmode'} eq 'groupimport') {      $ENV{'form.catalogmode'} eq 'groupimport') {
     $catalogmodefunctions=<<END;      # The if statement below sets us up to use the old version
       # by default (ie. if $mode is undefined).  This is the easy
       # way out.  Hopefully in the future I'll find a way to get 
       # the calls dealt with in a more comprehensive manner.
       if (!defined($mode) || $mode ne 'edit') {
    $catalogmodefunctions=<<"END";
 function select_data(title,url) {  function select_data(title,url) {
     changeTitle(title);      changeTitle(title);
     changeURL(url);      changeURL(url);
Line 171  function select_group() { Line 195  function select_group() {
     window.location="/adm/groupsort?catalogmode=groupimport&acts="+document.forms.fileattr.acts.value;      window.location="/adm/groupsort?catalogmode=groupimport&acts="+document.forms.fileattr.acts.value;
 }  }
 function changeTitle(val) {  function changeTitle(val) {
     if (opener.inf.document.forms.resinfo.elements.t) {      if (opener.inf) {
         opener.inf.document.forms.resinfo.elements.t.value=val;          if (opener.inf.document.forms.resinfo.elements.t) {
               opener.inf.document.forms.resinfo.elements.t.value=val;
           }
     }      }
 }  }
 function changeURL(val) {  function changeURL(val) {
     if (opener.inf.document.forms.resinfo.elements.u) {      if (opener.inf) {
  opener.inf.document.forms.resinfo.elements.u.value=val;          if (opener.inf.document.forms.resinfo.elements.u) {
       opener.inf.document.forms.resinfo.elements.u.value=val;
           }
       }
   }
   END
               } else { # we are in 'edit' mode
    $catalogmodefunctions=<<END;
   // mode = $mode
   function select_data(title,url) {
       changeURL(url);
       self.close();
   }
   
   function select_group() {
       window.location="/adm/groupsort?catalogmode=interactive&form=$form&element=$element&mode=edit&acts="+document.forms.fileattr.acts.value;
   }
   
   function changeURL(val) {
       if (window.opener.document) {
    window.opener.document.forms["$form"].elements["$element"].value=val;
       } else {
       alert("The file you selected is: "+val);
     }      }
 }  }
   
 END  END
                }
         }          }
  if ($ENV{'form.catalogmode'} eq 'groupimport') {   if ($ENV{'form.catalogmode'} eq 'groupimport') {
     $catalogmodefunctions.=<<END;      $catalogmodefunctions.=<<END;
Line 487  sub match_ext { Line 537  sub match_ext {
   if ($fnptr == 0 and $unpackline[3] ne "") {    if ($fnptr == 0 and $unpackline[3] ne "") {
     my $embstyle = &Apache::loncommon::fileembstyle($fext);      my $embstyle = &Apache::loncommon::fileembstyle($fext);
             push @trimlist,$line if (defined($embstyle) &&               push @trimlist,$line if (defined($embstyle) && 
      $embstyle ne 'hdn' );       ($embstyle ne 'hdn' or $fext eq 'meta'));
  } else {   } else {
     push @trimlist,$line;      push @trimlist,$line;
  }   }
Line 604  sub display_line { Line 654  sub display_line {
     $title = &Apache::lonnet::metadata($filelink,'title')      $title = &Apache::lonnet::metadata($filelink,'title')
  if ($metafile == 1);   if ($metafile == 1);
     $title=$listname unless $title;      $title=$listname unless $title;
     $r->print("<a href='javascript:select_data(\"",      my $titleesc=$title;
               $title,'","',$filelink,"\")'>");      $titleesc=~s/\'/\\'/; #' (clean up this spare quote
               $r->print("<a href=\"javascript:select_data(\'",
                         $titleesc,"','",$filelink,"')\">");
     $r->print("<img src='",$iconpath,"select.gif' border='0' /></a>".      $r->print("<img src='",$iconpath,"select.gif' border='0' /></a>".
       "\n");        "\n");
     $r->print("</td><td valign='bottom' nowrap bgcolor=$fileclr>");      $r->print("</td><td valign='bottom' nowrap bgcolor=$fileclr>");
Line 747  sub begin_form { Line 799  sub begin_form {
     $dnum++;      $dnum++;
 }  }
   
 # ----------- grab unprocessed CGI variables that may have been appended to URL  
 sub get_unprocessed_cgi {  
     foreach (split(/&/,$ENV{'QUERY_STRING'})) {  
        my ($name, $value) = split(/=/,$_);  
        $value =~ tr/+/ /;  
        $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg;  
        if ($name eq 'catalogmode' or $name eq 'launch' or $name eq 'acts') {  
            $ENV{'form.'.$name}=$value;  
        }  
     }  
 }  
   
 # --------- settings whenever the user causes the indexer window to be launched  # --------- settings whenever the user causes the indexer window to be launched
 sub start_fresh_session {  sub start_fresh_session {
     delete $hash{'mode_catalog'};      delete $hash{'mode_catalog'};
       delete $hash{'form_mode'};
       delete $hash{'form_form'};
       delete $hash{'form_element'};
     foreach (keys %hash) {      foreach (keys %hash) {
  if ($_ =~ /^pre_/) {   if ($_ =~ /^pre_/) {
     delete $hash{$_};      delete $hash{$_};
Line 772  sub start_fresh_session { Line 815  sub start_fresh_session {
     }      }
 }  }
   
   # ------------------------------------------------------------------- setvalues
   sub setvalues {
       # setvalues is used in registerurl to synchronize the database
       # hash and environment hashes
       my ($H1,$h1key,$H2,$h2key) =@_;
       #
       if (exists $H2->{$h2key}) {
    $H1->{$h1key} = $H2->{$h2key};
       } elsif (exists $H1->{$h1key}) {
    $H2->{$h2key} = $H1->{$h1key};
       } 
   }
   
 1;  1;
   
 =head1 NAME  =head1 NAME
Line 908  begin_form - prints the beginning of a f Line 964  begin_form - prints the beginning of a f
   
 =item *  =item *
   
 get_unprocessed_cgi - grab unprocessed CGI variables that may have been  
 appended to URL  
   
 =item *  
   
 start_fresh_session - settings whenever the user causes the indexer window  start_fresh_session - settings whenever the user causes the indexer window
 to be launched  to be launched
   

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


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