--- loncom/interface/lonmeta.pm	2001/12/24 23:01:31	1.12
+++ loncom/interface/lonmeta.pm	2002/09/16 21:01:41	1.20
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # Metadata display handler
 #
-# $Id: lonmeta.pm,v 1.12 2001/12/24 23:01:31 www Exp $
+# $Id: lonmeta.pm,v 1.20 2002/09/16 21:01:41 www Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -29,7 +29,7 @@
 #
 # 05/29/00,05/30,10/11 Gerd Kortemeyer)
 #
-# 10/19,10/21,10/23,11/27,08/09/01,12/22,12/24 Gerd Kortemeyer
+# 10/19,10/21,10/23,11/27,08/09/01,12/22,12/24,12/25 Gerd Kortemeyer
 
 package Apache::lonmeta;
 
@@ -44,11 +44,11 @@ sub dynamicmeta {
     my $url=&Apache::lonnet::declutter(shift);
     $url=~s/\.meta$//;
     my ($adomain,$aauthor)=($url=~/^(\w+)\/(\w+)\//);
-    my $regexp=&Apache::lonnet::escape($url);
+    my $regexp=$url;
     $regexp=~s/(\W)/\\$1/g;
     $regexp='___'.$regexp.'___';
-    my %evaldata=&Apache::lonnet::dump
-                                     ('resevaldata',$adomain,$aauthor,$regexp);
+    my %evaldata=&Apache::lonnet::dump('nohist_resevaldata',$adomain,
+				       $aauthor,$regexp);
     my %sum;
     my %cnt;
     my %listitems=('count'        => 'add',
@@ -100,6 +100,7 @@ sub dynamicmeta {
 
 sub evalgraph {
     my $value=shift;
+    unless ($value) { return ''; }
     my $val=int($value*10.+0.5)-10;
     my $output='<table border=0 cellpadding=0 cellspacing=0><tr>';
     if ($val>=20) {
@@ -121,9 +122,10 @@ sub evalgraph {
 
 sub diffgraph {
     my $value=shift;
+    unless ($value) { return ''; }
     my $val=int(40.0*$value+0.5);
-    my @colors=('#FF3333','#EEBB33','#BBEE33','#33FF33',
-                '#33FF33','#BBEE33','#EEBB33','#FF3333');
+    my @colors=('#FF9933','#EEAA33','#DDBB33','#CCCC33',
+                '#BBDD33','#CCCC33','#DDBB33','#EEAA33');
     my $output='<table border=0 cellpadding=0 cellspacing=0><tr>';
     for (my $i=0;$i<8;$i++) {
 	if ($val>$i*5) {
@@ -140,6 +142,21 @@ sub diffgraph {
 
 sub handler {
   my $r=shift;
+
+    my $loaderror=&Apache::lonnet::overloaderror($r);
+    if ($loaderror) { return $loaderror; }
+
+
+    my $uri=$r->uri;
+
+    my ($resdomain,$resuser)=
+           (&Apache::lonnet::declutter($uri)=~/^(\w+)\/(\w+)\//);
+
+    $loaderror=
+       &Apache::lonnet::overloaderror($r,
+         &Apache::lonnet::homeserver($resuser,$resdomain));
+    if ($loaderror) { return $loaderror; }
+
   my %content=();
 
 # ----------------------------------------------------------- Set document type
@@ -150,18 +167,15 @@ sub handler {
   return OK if $r->header_only;
 
 # ------------------------------------------------------------------- Read file
-
-  my $uri=$r->uri;
-  map {
+  foreach (split(/\,/,&Apache::lonnet::metadata($uri,'keys'))) {
       $content{$_}=&Apache::lonnet::metadata($uri,$_);
-  } split(/\,/,&Apache::lonnet::metadata($uri,'keys'));
-
+  }
 # ------------------------------------------------------------------ Hide stuff
 
   unless ($ENV{'user.adv'}) {
-      map {
+      foreach ('keywords','notes','abstract','subject') {
           $content{$_}='<i>- not displayed -</i>';
-      } ('keywords','notes','abstract','subject');
+      }
   }
 
 # --------------------------------------------------------------- Render Output
@@ -172,10 +186,11 @@ my $language=&Apache::loncommon::languag
 my $mime=&Apache::loncommon::filedescription($content{'mime'}); 
 my $disuri=&Apache::lonnet::declutter($uri);
   $disuri=~s/\.meta$//;
+my $bodytag=&Apache::loncommon::bodytag
+            ('Catalog Information','','','',$resdomain);
   $r->print(<<ENDHEAD);
 <html><head><title>Catalog Information</title></head>
-<body bgcolor="#FFFFFF">
-<h1>Catalog Information</h1>
+$bodytag
 <h2>$content{'title'}</h2>
 <h3><tt>$disuri</tt></h3>
 <table cellspacing=2 border=0>
@@ -217,7 +232,9 @@ ENDHEAD
   delete($content{'copyright'});
   if ($ENV{'user.adv'}) {
 # ------------------------------------------------------------ Dynamic Metadata
-   $r->print('<h3>Dynamic Metadata (updated periodically)</h3>');
+   $r->print(
+   '<h3>Dynamic Metadata (updated periodically)</h3>Processing ...<br>');
+   $r->rflush();
     my %items=(
  'count'      => 'Network-wide number of accesses (hits)',
  'course'     => 'Network-wide number of courses using resource',
@@ -276,12 +293,12 @@ $dynmeta{$_}."&nbsp;</td></tr>\n");
       my $display=&Apache::lonnet::metadata($uri,$name.'.display');
       unless ($display) { $display=$name; };
       my $otherinfo='';
-      map {
+      foreach ('name','part','type','default') {
           if (defined(&Apache::lonnet::metadata($uri,$name.'.'.$_))) {
              $otherinfo.=' '.$_.'='.
 		 &Apache::lonnet::metadata($uri,$name.'.'.$_).'; ';
           }
-      } ('name','part','type','default'); 
+      }
       $r->print('<b>'.$display.':</b> '.$content{$name});
       if ($otherinfo) {
          $r->print(' ('.$otherinfo.')');