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

version 1.190, 2006/12/05 02:55:53 version 1.193, 2007/01/02 19:38:17
Line 235  sub fieldnames { Line 235  sub fieldnames {
          'lowestgradelevel' => 'Lowest Grade Level',           'lowestgradelevel' => 'Lowest Grade Level',
          'highestgradelevel' => 'Highest Grade Level');           'highestgradelevel' => 'Highest Grade Level');
           
     if (! defined($file_type) || $file_type ne 'portfolio') {      if ( !defined($file_type) || ($file_type ne 'portfolio' && $file_type ne 'groups') ) {
         %fields =           %fields = 
         (%fields,          (%fields,
          'domain' => 'Domain',           'domain' => 'Domain',
Line 1252  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]',                  if ($file_type eq 'portfolio') {
       $r->print(&mt('Associated with course [_1]',
         '<strong><a href="'.$uri.'?changecourse=true">'.          '<strong><a href="'.$uri.'?changecourse=true">'.
         $env{$Apache::lonpublisher::metadatafields{'courserestricted'}.          $env{$Apache::lonpublisher::metadatafields{'courserestricted'}.
         ".description"}.          ".description"}.
       '</a></strong>').'<br />');        '</a></strong>').'<br />');
                   } else {
                       $r->print(&mt('Associated with course [_1]',
                           '<strong>'.
     $env{$Apache::lonpublisher::metadatafields{'courserestricted'}.
                           ".description"}.'</strong>').'<br />');
                   }
     } else {      } else {
  $r->print('<a href="'.$uri.'?changecourse=true">This resource is not associated with a course.</a><br />');   $r->print('<a href="'.$uri.'?changecourse=true">This resource is not associated with a course.</a><br />');
     }      }
Line 1342  ENDEDIT Line 1349  ENDEDIT
     ($path, $new_fn) = ($fn =~ m|/(portfolio.*)/([^/]*)$|);      ($path, $new_fn) = ($fn =~ m|/(portfolio.*)/([^/]*)$|);
         }          }
                 $r->print(&store_portfolio_metadata($formname,$file_content,$path,                  $r->print(&store_portfolio_metadata($formname,$file_content,$path,
                                                     $new_fn));                                                      $new_fn,$uri));
             } else {              } else {
  if (! ($mfh=Apache::File->new('>'.$fn))) {   if (! ($mfh=Apache::File->new('>'.$fn))) {
     $r->print('<p><font color="red">'.      $r->print('<p><font color="red">'.
Line 1350  ENDEDIT Line 1357  ENDEDIT
       &mt('FAIL').'</font></p>');        &mt('FAIL').'</font></p>');
  } else {   } else {
     print $mfh ($file_content);      print $mfh ($file_content);
                       close($mfh);
                       &update_metadata_table($uri);
     $r->print('<p><font color="blue">'.&mt('Wrote Metadata').      $r->print('<p><font color="blue">'.&mt('Wrote Metadata').
       ' '.&Apache::lonlocal::locallocaltime(time).        ' '.&Apache::lonlocal::locallocaltime(time).
       '</font></p>');        '</font></p>');
Line 1359  ENDEDIT Line 1368  ENDEDIT
  $r->print($output.'<br /><input type="submit" name="store" value="'.   $r->print($output.'<br /><input type="submit" name="store" value="'.
                   &mt('Store Catalog Information').'" />');                    &mt('Store Catalog Information').'" />');
   
  if ($file_type eq 'portfolio') {   if ($file_type eq 'portfolio' || $file_type eq 'groups') {
     my ($port_path,$group) = &get_port_path_and_group($uri);      my ($port_path,$group) = &get_port_path_and_group($uri);
             if ($group) {              if ($group ne '') {
                 $r->print('<input type="hidden" name="group" value="'.$group.'" />');                  $r->print('<input type="hidden" name="group" value="'.$group.'" />');
             }              }
             $r->print('<input type="hidden" name="currentpath" value="'.$env{'form.currentpath'}.'" />');              $r->print('<input type="hidden" name="currentpath" value="'.$env{'form.currentpath'}.'" />');
     $r->print('</form><br /><br /><form method="post" action="'.$port_path.'">');      $r->print('</form><br /><br /><form method="post" action="'.$port_path.'">');
     if ($group) {      if ($group ne '') {
         $r->print('<input type="hidden" name="group" value="'.$group.'" />');          $r->print('<input type="hidden" name="group" value="'.$group.'" />');
     }              }
     $r->print('<input type="hidden" name="currentpath" value="'.$path.'" />'.      $r->print('<input type="hidden" name="currentpath" value="'.$path.'" />'.
       '<input type="submit" name="cancel" value="'.&mt('Discard Edits and Return to Portfolio').'" />');        '<input type="submit" name="cancel" value="'.&mt('Discard Edits and Return to Portfolio').'" />');
  }   }
Line 1380  ENDEDIT Line 1389  ENDEDIT
 }  }
   
 sub store_portfolio_metadata {  sub store_portfolio_metadata {
     my ($formname,$content,$path,$new_fn) = @_;      my ($formname,$content,$path,$new_fn,$uri) = @_;
     $env{'form.'.$formname}=$content."\n";      $env{'form.'.$formname}=$content."\n";
     $env{'form.'.$formname.'.filename'}=$new_fn;      $env{'form.'.$formname.'.filename'}=$new_fn;
     my $result =&Apache::lonnet::userfileupload($formname,'',$path);      my $result =&Apache::lonnet::userfileupload($formname,'',$path);
Line 1389  sub store_portfolio_metadata { Line 1398  sub store_portfolio_metadata {
                   &mt('Could not write metadata').', '.                    &mt('Could not write metadata').', '.
                   &mt('FAIL').'</font></p>';                    &mt('FAIL').'</font></p>';
     } else {      } else {
           &update_metadata_table($uri);
         return '<p><font color="blue">'.&mt('Wrote Metadata').          return '<p><font color="blue">'.&mt('Wrote Metadata').
                   ' '.&Apache::lonlocal::locallocaltime(time).'</font></p>';                    ' '.&Apache::lonlocal::locallocaltime(time).'</font></p>';
     }      }
 }  }
   
   sub update_metadata_table {
       my ($uri) = @_;
       my ($group,$file_name);
       my ($udom,$uname,$remainder) =
           ($uri=~m -^/+(?:uploaded|editupload)/+($match_domain)/+($match_name)/+(.*)$-);
   
       if ($remainder =~ /^groups\/(\w+)\/portfolio(\/.+)$/) {
           $group = $1;
           $file_name = $2;
       } elsif ($remainder =~ /^portfolio(\/.+)$/) {
           $file_name = $1;
       }
       $file_name =~ s/\.meta$//;
       my $current_permissions =
           &Apache::lonnet::get_portfile_permissions($udom,$uname);
       my %access_controls =
           &Apache::lonnet::get_access_controls($current_permissions,$group,
                                                $group.$file_name);
       my $access_hash = $access_controls{$file_name};
       my $available = 0;
       if (ref($access_hash) eq 'HASH') {
           foreach my $key (keys(%{$access_hash})) {
               my ($num,$scope,$end,$start) =
                   ($key =~ /^([^:]+):([a-z]+)_(\d*)_?(\d*)$/);
               if ($scope eq 'public' || $scope eq 'guest') {
                   $available = 1;
                   last;
               }
           }
       }
       if ($available) {
           my $result =
               &Apache::lonnet::update_portfolio_table($uname,$udom,
               $file_name,'portfolio_metadata',$group);
       }
   }
   
   
 1;  1;
 __END__  __END__
   

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


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