[LON-CAPA-cvs] cvs: loncom /interface lonmeta.pm

raeburn lon-capa-cvs@mail.lon-capa.org
Fri, 23 Jun 2006 00:28:43 -0000


raeburn		Thu Jun 22 20:28:43 2006 EDT

  Modified files:              
    /loncom/interface	lonmeta.pm 
  Log:
  Store metadata for course group portfolio files in the correct place.
  
  
Index: loncom/interface/lonmeta.pm
diff -u loncom/interface/lonmeta.pm:1.158 loncom/interface/lonmeta.pm:1.159
--- loncom/interface/lonmeta.pm:1.158	Wed May 31 13:44:14 2006
+++ loncom/interface/lonmeta.pm	Thu Jun 22 20:28:43 2006
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # Metadata display handler
 #
-# $Id: lonmeta.pm,v 1.158 2006/05/31 17:44:14 www Exp $
+# $Id: lonmeta.pm,v 1.159 2006/06/23 00:28:43 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -1247,22 +1247,13 @@
 		     '<>&"').
 		     '</'.$tag.'>';
 	    }
-	    if ($fn =~ m|/portfolio/|) {
+	    if ($fn =~ m|^$Apache::lonnet::perlvar{'lonDocRoot'}/userfiles/portfolio/|) {
 		my ($path, $new_fn) = ($fn =~ m|/(portfolio.*)/([^/]*)$|);
-		$env{'form.'.$formname}=$file_content."\n";
-		$env{'form.'.$formname.'.filename'}=$new_fn;
-		my $result =&Apache::lonnet::userfileupload($formname,'',
-							    $path);
-		
-		if ($result =~ /(error|notfound)/) {
-		    $r->print('<p><font color="red">'.
-			      &mt('Could not write metadata').', '.
-			      &mt('FAIL').'</font></p>');
-		} else {
-		    $r->print('<p><font color="blue">'.&mt('Wrote Metadata').
-			      ' '.&Apache::lonlocal::locallocaltime(time).
-			      '</font></p>');
-		}
+                $r->print(&store_portfolio_metadata($formname,$file_content,$path,
+                                                    $new_fn));    
+            } elsif ($fn =~  m|^$Apache::lonnet::perlvar{'lonDocRoot'}/userfiles/groups/\w+/portfolio/|) {
+                my ($path, $new_fn) = ($fn =~ m|/(groups/\w+/portfolio.*)/([^/]*)$|);
+                $r->print(&store_portfolio_metadata($formname,$file_content,$path,$new_fn));
 	    } else {
 		if (!  ($mfh=Apache::File->new('>'.$fn))) {
 		    $r->print('<p><font color="red">'.
@@ -1282,6 +1273,9 @@
 
 	if ($file_type eq 'portfolio') {
 	    my ($port_path,$group) = &get_port_path_and_group($uri);
+            if ($group) {
+                $r->print('<input type="hidden" name="group" value="'.$group.'" />');
+            }
 	    $r->print('</form>
                <br /><br /><form method="POST" action="'.$port_path.'">'.
 		      '<input type="hidden" name="group" value="'.$group.'" />'.
@@ -1295,7 +1289,21 @@
     return;
 }
 
+sub store_portfolio_metadata {
+    my ($formname,$content,$path,$new_fn) = @_;
+    $env{'form.'.$formname}=$content."\n";
+    $env{'form.'.$formname.'.filename'}=$new_fn;
+    my $result =&Apache::lonnet::userfileupload($formname,'',$path);
+    if ($result =~ /(error|notfound)/) {
+        return '<p><font color="red">'.
+                  &mt('Could not write metadata').', '.
+                  &mt('FAIL').'</font></p>';
+    } else {
+        return '<p><font color="blue">'.&mt('Wrote Metadata').
+                  ' '.&Apache::lonlocal::locallocaltime(time).'</font></p>';
+    }
+}
+
 1;
 __END__
 
-