--- loncom/interface/lonmeta.pm 2004/04/13 15:41:19 1.65
+++ loncom/interface/lonmeta.pm 2004/04/14 21:22:44 1.71
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Metadata display handler
#
-# $Id: lonmeta.pm,v 1.65 2004/04/13 15:41:19 matthew Exp $
+# $Id: lonmeta.pm,v 1.71 2004/04/14 21:22:44 matthew Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -40,9 +40,6 @@ use Apache::lonlocal;
use Apache::lonmysql;
use Apache::lonmsg;
-# MySQL table columns
-
-my @columns;
# Fetch and evaluate dynamic metadata
sub dynamicmeta {
@@ -60,6 +57,15 @@ sub dynamicmeta {
#
# Deal with 'count' separately
$Data{'count'} = &access_count($url,$aauthor,$adomain);
+ #
+ # Debugging code I will probably need later
+ if (0) {
+ &Apache::lonnet::logthis('Dynamic Metadata');
+ while(my($k,$v)=each(%Data)){
+ &Apache::lonnet::logthis(' "'.$k.'"=>"'.$v.'"');
+ }
+ &Apache::lonnet::logthis('-------------------');
+ }
return %Data;
}
@@ -108,21 +114,21 @@ sub evalgraph {
return '';
}
my $val=int($value*10.+0.5)-10;
- my $output='
';
+ my $output='';
if ($val>=20) {
- $output.='  | ';
+ $output.='  | ';
} else {
- $output.=' | '.
- ' | ';
+ $output.=' | '.
+ ' | ';
}
$output.=' | ';
if ($val>20) {
- $output.=' | '.
- ' | ';
+ $output.=' | '.
+ ' | ';
} else {
- $output.='  | ';
+ $output.='  | ';
}
- $output.=' ('.$value.') |
';
+ $output.=' ('.sprintf("%5.2f",$value).') |
';
return $output;
}
@@ -134,27 +140,18 @@ sub diffgraph {
my $val=int(40.0*$value+0.5);
my @colors=('#FF9933','#EEAA33','#DDBB33','#CCCC33',
'#BBDD33','#CCCC33','#DDBB33','#EEAA33');
- my $output='';
+ my $output='';
for (my $i=0;$i<8;$i++) {
if ($val>$i*5) {
- $output.=' | ';
+ $output.=' | ';
} else {
- $output.=' | ';
+ $output.=' | ';
}
}
- $output.=' ('.$value.') |
';
+ $output.=' ('.sprintf("%3.2f",$value).') |
';
return $output;
}
-# Turn MySQL row into hash
-sub metadata_col_to_hash {
- my @cols=@_;
- my %hash=();
- for (my $i=0; $i<=$#columns; $i++) {
- $hash{$columns[$i]}=$cols[$i];
- }
- return %hash;
-}
# The field names
sub fieldnames {
@@ -255,9 +252,11 @@ sub prettyprint {
($type eq 'comefrom_list') ||
($type eq 'sequsage_list')) {
return join('
',map {
- my $url=&Apache::lonnet::clutter($_);
- ''.&Apache::lonnet::gettitle($url).''.
- &Apache::lonhtmlcommon::crumbs($url,'preview','',undef,'+0');
+ my $url = &Apache::lonnet::clutter($_);
+ $_ = ''.&Apache::lonnet::gettitle($url).' '.
+ ''.
+ ''.$url.''.
+ ''
} split(/\s*\,\s*/,$value));
}
# Evaluations
@@ -391,114 +390,150 @@ sub prettyinput {
sub handler {
my $r=shift;
#
+ my $uri=$r->uri;
+ #
+ # Check to see if this server is overloaded
my $loaderror=&Apache::lonnet::overloaderror($r);
- if ($loaderror) { return $loaderror; }
+ if ($loaderror) {
+ return $loaderror;
+ }
#
- my $uri=$r->uri;
+ # Check to see if original resource server is overloaded
+ my ($resdomain,$resuser)=
+ (&Apache::lonnet::declutter($uri)=~/^(\w+)\/(\w+)\//);
+ $loaderror=&Apache::lonnet::overloaderror
+ ($r,&Apache::lonnet::homeserver($resuser,$resdomain));
+ if ($loaderror) {
+ return $loaderror;
+ }
#
- # Looking for all bombs?
- if ($uri=~/\/adm\/bombs\/(.*)$/) {
- # Set document type
- $uri=&Apache::lonnet::declutter($1);
- &Apache::loncommon::content_type($r,'text/html');
- $r->send_http_header;
- #
- return OK if $r->header_only;
+ # Set document type
+ &Apache::loncommon::content_type($r,'text/html');
+ $r->send_http_header;
+ return OK if $r->header_only;
+ #
+ $r->print(''.
+ 'Catalog Information'.
+ '');
+ if ($uri=~m:/adm/bombs/(.*)$:) {
$r->print(&Apache::loncommon::bodytag('Error Messages'));
- $r->print(''.&Apache::lonnet::clutter($uri).'
');
- my ($domain,$author)=($uri=~/^(\w+)\/(\w+)\//);
- if (&Apache::loncacc::constructaccess('/~'.$author.'/',$domain)) {
- my %brokenurls=&Apache::lonmsg::all_url_author_res_msg($author,
- $domain);
- foreach (sort keys %brokenurls) {
- if ($_=~/^\Q$uri\E/) {
- $r->print(&Apache::lonhtmlcommon::crumbs
- (&Apache::lonnet::clutter($_)).
- &Apache::lonmsg::retrieve_author_res_msg($_).
- '
');
- }
+ # Looking for all bombs?
+ &report_bombs($r,$uri);
+ } elsif ($uri=~/^\/\~/) {
+ # Construction space
+ $r->print(&Apache::loncommon::bodytag
+ ('Edit Catalog Information','','','',$resdomain));
+ &present_editable_metadata($r,$uri);
+ } else {
+ $r->print(&Apache::loncommon::bodytag
+ ('Catalog Information','','','',$resdomain));
+ &present_uneditable_metadata($r,$uri);
+ }
+ $r->print('