--- loncom/interface/loncommon.pm	2013/04/25 17:58:40	1.1124
+++ loncom/interface/loncommon.pm	2013/05/03 21:57:13	1.1126
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # a pile of common routines
 #
-# $Id: loncommon.pm,v 1.1124 2013/04/25 17:58:40 bisitz Exp $
+# $Id: loncommon.pm,v 1.1126 2013/05/03 21:57:13 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -9616,10 +9616,17 @@ sub ask_for_embedded_content {
             if (ref($args) eq 'HASH') {
                 $url = $args->{'docs_url'};
                 $title = $args->{'docs_title'};
-                $toplevel = "/$url";
+                $toplevel = $url; 
+                unless ($toplevel =~ m{^/}) {
+                    $toplevel = "/$url";
+                }
                 ($rem) = ($toplevel =~ m{^(.+/)[^/]+$});
-                ($path) =  
-                    ($toplevel =~ m{^(\Q/uploaded/$cdom/$cnum/\E(?:docs|supplemental)/(?:default|\d+)/\d+)/});
+                if ($toplevel =~ m{^(\Q/uploaded/$cdom/$cnum/portfolio/syllabus\E)}) {
+                    $path = $1;
+                } else {
+                    ($path) =
+                        ($toplevel =~ m{^(\Q/uploaded/$cdom/$cnum/\E(?:docs|supplemental)/(?:default|\d+)/\d+)/});
+                }
                 $fileloc = &Apache::lonnet::filelocation('',$toplevel);
                 $fileloc =~ s{^/}{};
                 ($filename) = ($fileloc =~ m{.+/([^/]+)$});
@@ -9635,7 +9642,13 @@ sub ask_for_embedded_content {
         $fileloc = &Apache::lonnet::filelocation('',$toplevel).'/';
         $fileloc =~ s{^/}{};
     }
-    foreach my $embed_file (keys(%{$allfiles})) {
+    foreach my $file (keys(%{$allfiles})) {
+        my $embed_file;
+        if (($path eq "/uploaded/$cdom/$cnum/portfolio/syllabus") && ($file =~ m{^\Q$path/\E(.+)$})) {
+            $embed_file = $1;
+        } else {
+            $embed_file = $file;
+        }
         my $absolutepath;
         if ($embed_file =~ m{^\w+://}) {
             $newfiles{$embed_file} = 1;
@@ -9799,12 +9812,14 @@ sub ask_for_embedded_content {
                 ($file eq $filename.'.bak') ||
                 ($dependencies{$file})) {
             if ($actionurl eq '/adm/dependencies') {
-                next if (($rem ne '') &&
-                         (($env{"httpref.$rem".$file} ne '') ||
-                          (ref($navmap) &&
-                          (($navmap->getResourceByUrl($rem.$file) ne '') ||
-                           (($file =~ /^(.*\.s?html?)\.bak$/i) &&
-                            ($navmap->getResourceByUrl($rem.$1)))))));
+                unless ($toplevel =~ m{^\Q/uploaded/$cdom/$cnum/portfolio/syllabus\E}) {
+                    next if (($rem ne '') &&
+                             (($env{"httpref.$rem".$file} ne '') ||
+                              (ref($navmap) &&
+                              (($navmap->getResourceByUrl($rem.$file) ne '') ||
+                               (($file =~ /^(.*\.s?html?)\.bak$/i) &&
+                                ($navmap->getResourceByUrl($rem.$1)))))));
+                }
             }
             $unused{$file} = 1;
         }
@@ -10197,9 +10212,10 @@ sub upload_embedded {
                 }
             }
         } elsif (($context eq 'coursedoc') || ($context eq 'syllabus')) {
+            my $extendedsubdir = $dirpath.'/'.$subdir;
+            $extendedsubdir =~ s{/+$}{};
             my $result =
-                &Apache::lonnet::userfileupload('embedded_item_'.$i,$context,
-                                                $dirpath.'/'.$subdir);
+                &Apache::lonnet::userfileupload('embedded_item_'.$i,$context,$extendedsubdir);
             if ($result !~ m|^/uploaded/|) {
                 $output .= '<span class="LC_error">'
                            .&mt('An error occurred ([_1]) while trying to upload [_2] for embedded element [_3].'
@@ -10209,7 +10225,9 @@ sub upload_embedded {
             } else {
                 $output .= &mt('Uploaded [_1]','<span class="LC_filename">'.
                            $path.$fname.'</span>').'<br />';
-                &Apache::lonnet::make_public_indefinitely($result);
+                if ($context eq 'syllabus') {
+                    &Apache::lonnet::make_public_indefinitely($result);
+                }
             }
         } else {
 # Save the file
@@ -10357,7 +10375,7 @@ sub modify_html_refs {
     }
     my (%allfiles,%codebase,$output,$content);
     my @changes = &get_env_multiple('form.namechange');
-    unless (@changes > 0) {
+    unless ((@changes > 0) || ($context eq 'syllabus')) {
         if (wantarray) {
             return ('',0,0); 
         } else {