Diff for /loncom/interface/lonmeta.pm between versions 1.185 and 1.190

version 1.185, 2006/10/23 21:09:21 version 1.190, 2006/12/05 02:55:53
Line 39  use Apache::lonpublisher; Line 39  use Apache::lonpublisher;
 use Apache::lonlocal;  use Apache::lonlocal;
 use Apache::lonmysql;  use Apache::lonmysql;
 use Apache::lonmsg;  use Apache::lonmsg;
 use lib '/home/httpd/lib/perl/';  use LONCAPA qw(:DEFAULT :match);
 use LONCAPA;  
   
   
 ############################################################  ############################################################
Line 63  use LONCAPA; Line 62  use LONCAPA;
 ############################################################  ############################################################
 sub get_dynamic_metadata_from_sql {  sub get_dynamic_metadata_from_sql {
     my ($url) = shift();      my ($url) = shift();
     my ($authordom,$author)=($url=~m:^/res/(\w+)/(\w+)/:);      my ($authordom,$author)=($url=~m{^/res/($match_domain)/($match_username)/});
     if (! defined($authordom)) {      if (! defined($authordom)) {
         $authordom = shift();          $authordom = shift();
     }      }
Line 112  sub get_dynamic_metadata_from_sql { Line 111  sub get_dynamic_metadata_from_sql {
 sub dynamicmeta {  sub dynamicmeta {
     my $url=&Apache::lonnet::declutter(shift);      my $url=&Apache::lonnet::declutter(shift);
     $url=~s/\.meta$//;      $url=~s/\.meta$//;
     my ($adomain,$aauthor)=($url=~/^(\w+)\/(\w+)\//);      my ($adomain,$aauthor)=($url=~/^($match_domain)\/($match_username)\//);
     my $regexp=$url;      my $regexp=$url;
     $regexp=~s/(\W)/\\$1/g;      $regexp=~s/(\W)/\\$1/g;
     $regexp='___'.$regexp.'___';      $regexp='___'.$regexp.'___';
Line 449  sub prettyprint { Line 448  sub prettyprint {
  ($type eq 'owner') ||   ($type eq 'owner') ||
  ($type eq 'modifyinguser') ||   ($type eq 'modifyinguser') ||
  ($type eq 'authorspace')) {   ($type eq 'authorspace')) {
  $value=~s/(\w+)(\:|\@)(\w+)/&authordisplay($1,$3)/gse;   $value=~s/($match_username)(\:|\@)($match_domain)/&authordisplay($1,$3)/gse;
  return $value;   return $value;
     }      }
     # Gradelevel      # Gradelevel
Line 724  sub prettyinput { Line 723  sub prettyinput {
 sub handler {  sub handler {
     my $r=shift;      my $r=shift;
     &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},      &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},
          ['currentpath']);           ['currentpath','changecourse']);
     my $uri=$r->uri;      my $uri=$r->uri;
     #      #
     # Set document type      # Set document type
Line 732  sub handler { Line 731  sub handler {
     $r->send_http_header;      $r->send_http_header;
     return OK if $r->header_only;      return OK if $r->header_only;
     my ($resdomain,$resuser)=      my ($resdomain,$resuser)=
         (&Apache::lonnet::declutter($uri)=~/^(\w+)\/(\w+)\//);          (&Apache::lonnet::declutter($uri)=~/^($match_domain)\/($match_username)\//);
     if ($uri=~m:/adm/bombs/(.*)$:) {      if ($uri=~m:/adm/bombs/(.*)$:) {
         $r->print(&Apache::loncommon::start_page('Error Messages'));          $r->print(&Apache::loncommon::start_page('Error Messages'));
         # Looking for all bombs?          # Looking for all bombs?
         &report_bombs($r,$uri);          &report_bombs($r,$uri);
     } elsif ($uri=~m|^/editupload/[^/]+/[^/]+/portfolio/|) {      } elsif ($uri=~m|^/editupload/[^/]+/[^/]+/portfolio/|) {
     ($resdomain,$resuser)=      ($resdomain,$resuser)=
  (&Apache::lonnet::declutter($uri)=~m|^(\w+)/(\w+)/portfolio|);   (&Apache::lonnet::declutter($uri)=~m|^($match_domain)/($match_name)/portfolio|);
         $r->print(&Apache::loncommon::start_page('Edit Portfolio File Catalog Information',          $r->print(&Apache::loncommon::start_page('Edit Portfolio File Catalog Information',
  undef,   undef,
  {'domain' => $resdomain,}));   {'domain' => $resdomain,}));
         if ($env{'form.store'}) {          if ($env{'form.store'}) {
             &present_editable_metadata($r,$uri,'portfolio');              &present_editable_metadata($r,$uri,'portfolio');
         } else {          } else {
             &pre_select_course($r,$uri);              my $fn=&Apache::lonnet::filelocation('',$uri);
               %Apache::lonpublisher::metadatafields=();
               %Apache::lonpublisher::metadatakeys=();
               my $result=&Apache::lonnet::getfile($fn);
               &Apache::lonpublisher::metaeval($result);
               &Apache::lonnet::logthis("restricted is: ".$Apache::lonpublisher::metadatafields{'courserestricted'});
               if ((!$Apache::lonpublisher::metadatafields{'courserestricted'}) ||
                   ($env{'form.changecourse'} eq 'true')) {
                   &pre_select_course($r,$uri);
               } else {
                   &present_editable_metadata($r,$uri,'portfolio');
               }
         }          }
     } elsif ($uri=~m|^/editupload/[^/]+/[^/]+/groups/|) {      } elsif ($uri=~m|^/editupload/[^/]+/[^/]+/groups/|) {
         $r->print(&Apache::loncommon::start_page('Edit Group Portfolio File Catalog Information',          $r->print(&Apache::loncommon::start_page('Edit Group Portfolio File Catalog Information',
Line 782  sub report_bombs { Line 792  sub report_bombs {
     $uri =~ s:/adm/bombs/::;      $uri =~ s:/adm/bombs/::;
     $uri = &Apache::lonnet::declutter($uri);      $uri = &Apache::lonnet::declutter($uri);
     $r->print('<h1>'.&Apache::lonnet::clutter($uri).'</h1>');      $r->print('<h1>'.&Apache::lonnet::clutter($uri).'</h1>');
     my ($domain,$author)=($uri=~/^(\w+)\/(\w+)\//);      my ($domain,$author)=($uri=~/^($match_domain)\/($match_username)\//);
     if (&Apache::loncacc::constructaccess('/~'.$author.'/',$domain)) {      if (&Apache::loncacc::constructaccess('/~'.$author.'/',$domain)) {
  if ($env{'form.clearbombs'}) {   if ($env{'form.clearbombs'}) {
     &Apache::lonmsg::clear_author_res_msg($uri);      &Apache::lonmsg::clear_author_res_msg($uri);
Line 1049  sub print_dynamic_metadata { Line 1059  sub print_dynamic_metadata {
     } else {      } else {
         $r->print('<h4>'.&mt('No Evaluation Data is available for this resource.').'</h4>');          $r->print('<h4>'.&mt('No Evaluation Data is available for this resource.').'</h4>');
     }      }
     $uri=~/^\/res\/(\w+)\/(\w+)\//;       $uri=~/^\/res\/($match_domain)\/($match_username)\//; 
     if ((($env{'user.domain'} eq $1) && ($env{'user.name'} eq $2))      if ((($env{'user.domain'} eq $1) && ($env{'user.name'} eq $2))
         || ($env{'user.role.ca./'.$1.'/'.$2})) {          || ($env{'user.role.ca./'.$1.'/'.$2})) {
         if (exists($dynmeta{'comments'})) {          if (exists($dynmeta{'comments'})) {
Line 1242  ENDEDIT Line 1252  ENDEDIT
     }      }
   
     if ($Apache::lonpublisher::metadatafields{'courserestricted'} ne 'none') {      if ($Apache::lonpublisher::metadatafields{'courserestricted'} ne 'none') {
  $r->print(&mt('Associated with course [_1]','<strong>'.$env{$Apache::lonpublisher::metadatafields{'courserestricted'}.".description"}.   $r->print(&mt('Associated with course [_1]',
       '</strong>').'<br />');          '<strong><a href="'.$uri.'?changecourse=true">'.
           $env{$Apache::lonpublisher::metadatafields{'courserestricted'}.
           ".description"}.
         '</a></strong>').'<br />');
     } else {      } else {
  $r->print("This resource is not associated with a course.<br />");   $r->print('<a href="'.$uri.'?changecourse=true">This resource is not associated with a course.</a><br />');
     }      }
  }   }
  if (@added_order) {   if (@added_order) {
Line 1259  ENDEDIT Line 1272  ENDEDIT
                 $lt{$field_name} = $$added_metadata_fields{$field_name};                  $lt{$field_name} = $$added_metadata_fields{$field_name};
             }              }
         }          }
           $output .= &Apache::loncommon::start_data_table();
           my $row_alt = 1;
         foreach my $field_name (@fields) {          foreach my $field_name (@fields) {
             if (defined($env{'form.new_'.$field_name})) {              if (defined($env{'form.new_'.$field_name})) {
                 $Apache::lonpublisher::metadatafields{$field_name}=                  $Apache::lonpublisher::metadatafields{$field_name}=
Line 1270  ENDEDIT Line 1285  ENDEDIT
                 if ((($env{$Apache::lonpublisher::metadatafields{'courserestricted'}.'.metadata.'.$field_name.'.options'} =~ m/active/) ||                  if ((($env{$Apache::lonpublisher::metadatafields{'courserestricted'}.'.metadata.'.$field_name.'.options'} =~ m/active/) ||
                     ($field_name eq 'courserestricted'))&&                      ($field_name eq 'courserestricted'))&&
                     (!($env{$Apache::lonpublisher::metadatafields{'courserestricted'}.'.metadata.'.$field_name.'.options'} =~ m/deleted/))){                      (!($env{$Apache::lonpublisher::metadatafields{'courserestricted'}.'.metadata.'.$field_name.'.options'} =~ m/deleted/))){
                     $output.=("\n".'<p>'.$lt{$field_name}.': '.                      
                       $output .= "\n".&Apache::loncommon::start_data_table_row();
                       $output .= ('<td><span class="LC_metadata">'.$lt{$field_name}.':</span></td><td> '.
                               &prettyinput($field_name,                                &prettyinput($field_name,
    $Apache::lonpublisher::metadatafields{$field_name},     $Apache::lonpublisher::metadatafields{$field_name},
                     'new_'.$field_name,'defaultmeta',                      'new_'.$field_name,'defaultmeta',
                     undef,undef,undef,undef,                      undef,undef,undef,undef,
                     $Apache::lonpublisher::metadatafields{'courserestricted'}).'</p>'."\n");                      $Apache::lonpublisher::metadatafields{'courserestricted'}).'</td>');
                       $output .= &Apache::loncommon::end_data_table_row();
                  }                   }
             } else {              } else {
   
                     $output.=('<p>'.$lt{$field_name}.': '.                      $output.=(&Apache::loncommon::start_data_table_row().'<td><span class="LC_metadata">'.$lt{$field_name}.':</span></td><td> '.
       &prettyinput($field_name,        &prettyinput($field_name,
    $Apache::lonpublisher::metadatafields{$field_name},     $Apache::lonpublisher::metadatafields{$field_name},
    'new_'.$field_name,'defaultmeta').'</p>');     'new_'.$field_name,'defaultmeta').'</td>'.&Apache::loncommon::end_data_table_row());
                                 
             }              }
         }          }
           $output .= &Apache::loncommon::end_data_table();
  if ($env{'form.store'}) {   if ($env{'form.store'}) {
     my $mfh;      my $mfh;
     my $formname='store';       my $formname='store'; 
Line 1317  ENDEDIT Line 1336  ENDEDIT
     }      }
     if ($fn =~ m|^$Apache::lonnet::perlvar{'lonDocRoot'}/userfiles|) {      if ($fn =~ m|^$Apache::lonnet::perlvar{'lonDocRoot'}/userfiles|) {
         my ($path, $new_fn);          my ($path, $new_fn);
         if ($fn =~ m|\w+/groups/\w+/portfolio/|) {          if ($fn =~ m|$match_name/groups/\w+/portfolio/|) {
                     ($path, $new_fn) = ($fn =~ m|/(groups/\w+/portfolio.*)/([^/]*)$|);                      ($path, $new_fn) = ($fn =~ m|/(groups/\w+/portfolio.*)/([^/]*)$|);
         } else {          } else {
     ($path, $new_fn) = ($fn =~ m|/(portfolio.*)/([^/]*)$|);      ($path, $new_fn) = ($fn =~ m|/(portfolio.*)/([^/]*)$|);

Removed from v.1.185  
changed lines
  Added in v.1.190


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