Diff for /loncom/interface/londocs.pm between versions 1.23 and 1.28

version 1.23, 2002/09/13 20:01:04 version 1.28, 2002/10/16 18:48:12
Line 29 Line 29
 package Apache::londocs;  package Apache::londocs;
   
 use strict;  use strict;
 use Apache::Constants qw(:common);  use Apache::Constants qw(:common :http);
 use Apache::lonnet;  use Apache::lonnet;
 use Apache::loncommon;  use Apache::loncommon;
 use Apache::lonratedt;  use Apache::lonratedt;
 use Apache::lonratsrv;  use Apache::lonratsrv;
 use Apache::lonxml;  use Apache::lonxml;
   use GDBM_File;
   
 my $iconpath;  my $iconpath;
   
   my %hash;
   
   my $hashtied;
   
 # Mapread read maps into lonratedt::global arrays   # Mapread read maps into lonratedt::global arrays 
 # @order and @resources, determines status  # @order and @resources, determines status
 # sets @order - pointer to resources in right order  # sets @order - pointer to resources in right order
Line 218  END Line 223  END
     return $line;      return $line;
 }  }
   
   # ---------------------------------------------------------------- tie the hash
   
   sub tiehash {
       $hashtied=0;
       if ($ENV{'request.course.fn'}) {
           if (tie(%hash,'GDBM_File',$ENV{'request.course.fn'}.".db",
               &GDBM_READER(),0640)) {
                   $hashtied=1;
           }
       }    
   }
   
   sub untiehash {
       if ($hashtied) { untie %hash; }
       $hashtied=0;
   }
   
 # ================================================================ Main Handler  # ================================================================ Main Handler
 sub handler {  sub handler {
     my $r = shift;      my $r = shift;
Line 225  sub handler { Line 247  sub handler {
     $r->send_http_header;      $r->send_http_header;
     return OK if $r->header_only;      return OK if $r->header_only;
   
     
     if ($ENV{'form.verify'}) {
    
      my $loaderror=&Apache::lonnet::overloaderror($r);
      if ($loaderror) { return $loaderror; }
   
      $r->print('<html><head><title>Verify Content</title></head>'.
                 &Apache::loncommon::bodytag('Verify Course Documents'));
      $hashtied=0;
      my %alreadyseen=();
      &tiehash();
      foreach (keys %hash) {
          if (($_=~/^src\_(.+)$/) && (!$alreadyseen{$hash{$_}})) {
              $alreadyseen{$hash{$_}}=1;
              my $resid=$1;
              $r->rflush();
      if ($hash{$_}) {
                  my $fn=$hash{$_};
                  $r->print('<br /><a href="'.$fn.'" target="cat">'.
    ($hash{'title_'.$resid}?$hash{'title_'.$resid}:$fn).'</a> ');
           if ($fn=~/^\/res\//) {
      my $result=&Apache::lonnet::repcopy(
                                 &Apache::lonnet::filelocation('',$fn));
                      if ($result==OK) {
                          $r->print('<font color="green">ok</font>');
                          $r->rflush();
          my $dependencies=
                             &Apache::lonnet::metadata($hash{$_},'dependencies');
                          $r->print('Dependencies: '.$dependencies.'<br />');
                      } elsif ($result==HTTP_SERVICE_UNAVAILABLE) {
                          $r->print(
                            '<font color="red"><b>connection down</b></font>');
                      } elsif ($result==HTTP_NOT_FOUND) {
                          $r->print('<font color="red"><b>not found</b></font>');
                      } else {
                          $r->print(
                                '<font color="red"><b>access denied</b></font>');
                      }
                  }
              }
          }
      }
      &untiehash();
     } elsif ($ENV{'form.versions'}) {
       $r->print('<html><head><title>Check Versions</title></head>'.
                 &Apache::loncommon::bodytag('Check Course Document Versions'));
      $hashtied=0;
      &tiehash();
   
      &untiehash();
     } else {
 # is this a standard course?  # is this a standard course?
   
     my $standard=($ENV{'request.course.uri'}=~/^\/uploaded\//);      my $standard=($ENV{'request.course.uri'}=~/^\/uploaded\//);
Line 327  ENDNEWSCRIPT Line 400  ENDNEWSCRIPT
   $r->print('</head>'.    $r->print('</head>'.
             &Apache::loncommon::bodytag('Course Documents','',$events));              &Apache::loncommon::bodytag('Course Documents','',$events));
   unless ($showdoc) {    unless ($showdoc) {
       if ($allowed) {
          $r->print(<<ENDCOURSEVERIFY);
   <form action="/adm/coursedocs" method="post" name="courseverify">
   <input type="submit" name="verify" value="Verify Content" />
   <input type="submit" name="versions" value="Check Resource Versions" />
   </form>
   ENDCOURSEVERIFY
       }
 # --------------------------------------------------------- Standard documents  # --------------------------------------------------------- Standard documents
       $r->print('<table>');
     if (($standard) && ($allowed) && (!$forcesupplement)) {      if (($standard) && ($allowed) && (!$forcesupplement)) {
        $r->print('<h2>Main Course Documents</h2>');         $r->print('<tr><td bgcolor="#FFFFBB"><h2>Main Course Documents</h2>');
        my $folder=$ENV{'form.folder'};         my $folder=$ENV{'form.folder'};
        unless ($folder=~/^default/) { $folder='default'; }         unless ($folder=~/^default/) { $folder='default'; }
        &editor($r,$coursenum,$coursedom,$folder,$allowed);         &editor($r,$coursenum,$coursedom,$folder,$allowed);
Line 417  value="$plainname=/adm/$udom/$uname/abou Line 499  value="$plainname=/adm/$udom/$uname/abou
 </td></tr>  </td></tr>
 </table>  </table>
 ENDFORM  ENDFORM
        $r->print('<hr />');         $r->print('</td></tr>');
     }      }
 # ----------------------------------------------------- Supplemental documents  # ----------------------------------------------------- Supplemental documents
     if (!$forcestandard) {      if (!$forcestandard) {
        $r->print('<h2>Supplemental Course Documents</h2>');         $r->print(
     '<tr><td bgcolor="#BBFFFF"><h2>Supplemental Course Documents</h2>');
        my $folder=$ENV{'form.folder'};         my $folder=$ENV{'form.folder'};
        unless ($folder=~/supplemental/) { $folder='supplemental'; }         unless ($folder=~/supplemental/) { $folder='supplemental'; }
        &editor($r,$coursenum,$coursedom,$folder,$allowed);         &editor($r,$coursenum,$coursedom,$folder,$allowed);
Line 489  value="$plainname=/adm/$udom/$uname/abou Line 572  value="$plainname=/adm/$udom/$uname/abou
 <input name="newaboutme" type="submit" value="My Personal Info" />  <input name="newaboutme" type="submit" value="My Personal Info" />
 </form>  </form>
 </td></tr>  </td></tr>
 </table>  </table></td></tr>
 ENDSUPFORM  ENDSUPFORM
        }         }
     }      }
     if ($allowed) {      if ($allowed) {
  $r->print('<form name="extimport"><input type="hidden" name="title"><input type="hidden" name="url"><input type="hidden" name="useform"></form>');   $r->print('<form name="extimport"><input type="hidden" name="title"><input type="hidden" name="url"><input type="hidden" name="useform"></form>');
     }      }
       $r->print('</table>');
   } else {    } else {
 # -------------------------------------------------------- This is showdoc mode  # -------------------------------------------------------- This is showdoc mode
       $r->print("<h1>Uploaded Document</h1><p>It is recommended that you use an up-to-date virus scanner before handling this file.</p><p><table>".        $r->print("<h1>Uploaded Document</h1><p>It is recommended that you use an up-to-date virus scanner before handling this file.</p><p><table>".
          &entryline(0,"Click to download or use your browser's Save Link function",$showdoc).'</table></p>');           &entryline(0,"Click to download or use your browser's Save Link function",$showdoc).'</table></p>');
   }    }
   $r->print('</body></html>');   }
   return OK;   $r->print('</body></html>');
    return OK;
 }   } 
   
 1;  1;

Removed from v.1.23  
changed lines
  Added in v.1.28


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