Copyright/Distribution
-$content{'copyright'}
+# Main Handler
+sub handler {
+ my $r=shift;
+ &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},
+ ['currentpath']);
+ my $uri=$r->uri;
+ #
+ # Set document type
+ &Apache::loncommon::content_type($r,'text/html');
+ $r->send_http_header;
+ return OK if $r->header_only;
+ my ($resdomain,$resuser)=
+ (&Apache::lonnet::declutter($uri)=~/^(\w+)\/(\w+)\//);
+ if ($uri=~m:/adm/bombs/(.*)$:) {
+ $r->print(&Apache::loncommon::start_page('Error Messages'));
+ # Looking for all bombs?
+ &report_bombs($r,$uri);
+ } elsif ($uri=~m|^/editupload/[^/]+/[^/]+/portfolio/|) {
+ ($resdomain,$resuser)=
+ (&Apache::lonnet::declutter($uri)=~m|^(\w+)/(\w+)/portfolio|);
+ $r->print(&Apache::loncommon::start_page('Edit Portfolio File Catalog Information',
+ undef,
+ {'domain' => $resdomain,}));
+ if ($env{'form.store'}) {
+ &present_editable_metadata($r,$uri,'portfolio');
+ } else {
+ &pre_select_course($r,$uri);
+ }
+ } elsif ($uri=~m|^/editupload/[^/]+/[^/]+/groups/|) {
+ $r->print(&Apache::loncommon::start_page('Edit Group Portfolio File Catalog Information',
+ undef,
+ {'domain' => $resdomain,}));
+ &present_editable_metadata($r,$uri,'groups');
+ } elsif ($uri=~m|^/~|) {
+ # Construction space
+ $r->print(&Apache::loncommon::start_page('Edit Catalog nformation',
+ undef,
+ {'domain' => $resdomain,}));
+ &present_editable_metadata($r,$uri);
+ } else {
+ $r->print(&Apache::loncommon::start_page('Catalog Information',
+ undef,
+ {'domain' => $resdomain,}));
+ &present_uneditable_metadata($r,$uri);
+ }
+ $r->print(&Apache::loncommon::end_page());
+ return OK;
+}
+
+#####################################################
+#####################################################
+### ###
+### Report Bombs ###
+### ###
+#####################################################
+#####################################################
+sub report_bombs {
+ my ($r,$uri) = @_;
+ # Set document type
+ $uri =~ s:/adm/bombs/::;
+ $uri = &Apache::lonnet::declutter($uri);
+ $r->print(''.&Apache::lonnet::clutter($uri).' ');
+ my ($domain,$author)=($uri=~/^(\w+)\/(\w+)\//);
+ if (&Apache::loncacc::constructaccess('/~'.$author.'/',$domain)) {
+ if ($env{'form.clearbombs'}) {
+ &Apache::lonmsg::clear_author_res_msg($uri);
+ }
+ my $clear=&mt('Clear all Messages in Subdirectory');
+ $r->print(<
+
+
+ENDCLEAR
+ my %brokenurls =
+ &Apache::lonmsg::all_url_author_res_msg($author,$domain);
+ foreach (sort(keys(%brokenurls))) {
+ if ($_=~/^\Q$uri\E/) {
+ $r->print
+ (''.$_.' '.
+ &Apache::lonmsg::retrieve_author_res_msg($_).
+ ' ');
+ }
+ }
+ } else {
+ $r->print(&mt('Not authorized'));
+ }
+ return;
+}
+
+#####################################################
+#####################################################
+### ###
+### Uneditable Metadata Display ###
+### ###
+#####################################################
+#####################################################
+sub present_uneditable_metadata {
+ my ($r,$uri) = @_;
+ #
+ my $uploaded = ($uri =~ m|/uploaded/|);
+ my %content=();
+ # Read file
+ foreach (split(/\,/,&Apache::lonnet::metadata($uri,'keys'))) {
+ $content{$_}=&Apache::lonnet::metadata($uri,$_);
+ }
+ # Render Output
+ # displayed url
+ my ($thisversion)=($uri=~/\.(\d+)\.(\w+)\.meta$/);
+ $uri=~s/\.meta$//;
+ my $disuri=&Apache::lonnet::clutter_with_no_wrapper($uri);
+ # version
+ my $versiondisplay='';
+ if (!$uploaded) {
+ my $currentversion=&Apache::lonnet::getversion($disuri);
+ if ($thisversion) {
+ $versiondisplay=&mt('Version').': '.$thisversion.
+ ' ('.&mt('most recent version').': '.
+ ($currentversion>0 ?
+ $currentversion :
+ &mt('information not available')).')';
+ } else {
+ $versiondisplay='Version: '.$currentversion;
+ }
+ }
+ # crumbify displayed URL uri target prefix form size
+ $disuri=&Apache::lonhtmlcommon::crumbs($disuri,undef, undef, undef,'+1');
+ $disuri =~ s: ::g;
+ # obsolete
+ my $obsolete=$content{'obsolete'};
+ my $obsoletewarning='';
+ if (($obsolete) && ($env{'user.adv'})) {
+ $obsoletewarning=''.
+ &mt('This resource has been marked obsolete by the author(s)').
+ '
';
+ }
+ #
+ my %lt=&fieldnames();
+ my $table='';
+ my $title = $content{'title'};
+ if (! defined($title)) {
+ $title = 'Untitled Resource';
+ }
+ my @fields;
+ if ($uploaded) {
+ @fields = ('title','author','subject','keywords','notes','abstract',
+ 'lowestgradelevel','highestgradelevel','standards','mime',
+ 'owner');
+ } else {
+ @fields = ('title',
+ 'author',
+ 'subject',
+ 'keywords',
+ 'notes',
+ 'abstract',
+ 'lowestgradelevel',
+ 'highestgradelevel',
+ 'standards',
+ 'mime',
+ 'language',
+ 'creationdate',
+ 'lastrevisiondate',
+ 'owner',
+ 'copyright',
+ 'customdistributionfile',
+ 'sourceavail',
+ 'sourcerights',
+ 'obsolete',
+ 'obsoletereplacement');
+ }
+ foreach my $field (@fields) {
+ $table.=''.$lt{$field}.
+ ' '.
+ &prettyprint($field,$content{$field}).' ';
+ delete($content{$field});
+ }
+ #
+ $r->print(<$title
+
+$disuri
+$obsoletewarning
+$versiondisplay
+
+
ENDHEAD
- delete($content{'title'});
- delete($content{'author'});
- delete($content{'subject'});
- delete($content{'keywords'});
- delete($content{'notes'});
- delete($content{'abstract'});
- delete($content{'mime'});
- delete($content{'language'});
- delete($content{'creationdate'});
- delete($content{'lastrevisiondate'});
- delete($content{'owner'});
- delete($content{'copyright'});
- if ($ENV{'user.adv'}) {
-# ------------------------------------------------------------ Dynamic Metadata
- $r->print('Dynamic Metadata (updated periodically) ');
- my %items=(
- 'count' => 'Network-wide number of accesses (hits)',
- 'course' => 'Network-wide number of courses using resource',
- 'usage' => 'Number of resources using or importing resource',
- 'clear' => 'Material presented in clear way',
- 'depth' => 'Material covered with sufficient depth',
- 'helpful' => 'Material is helpful',
- 'correct' => 'Material appears to be correct',
- 'technical' => 'Resource is technically correct',
- 'avetries' => 'Average number of tries till solved',
- 'stdno' => 'Total number of students who have worked on this problem',
- 'difficulty' => 'Degree of difficulty');
- my %dynmeta=&dynamicmeta($uri);
- $r->print(
-'