--- loncom/xml/lonxml.pm 2012/11/21 23:13:30 1.533 +++ loncom/xml/lonxml.pm 2012/11/29 20:47:11 1.534 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # XML Parser Module # -# $Id: lonxml.pm,v 1.533 2012/11/21 23:13:30 raeburn Exp $ +# $Id: lonxml.pm,v 1.534 2012/11/29 20:47:11 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -1510,7 +1510,7 @@ sub renderingoptions { } sub inserteditinfo { - my ($filecontents,$filetype,$filename,$symb,$itemtitle) = @_; + my ($filecontents,$filetype,$filename,$symb,$itemtitle,$folderpath,$uri) = @_; $filecontents = &HTML::Entities::encode($filecontents,'<>&"'); my $xml_help = ''; my $initialize=''; @@ -1536,10 +1536,11 @@ sub inserteditinfo { FULLPAGE if ($filetype eq 'html') { - if ($symb) { + if ($symb || $folderpath) { $deps_button = &Apache::lonhtmlcommon::dependencies_button()."\n"; $initialize .= - &Apache::lonhtmlcommon::dependencycheck_js($symb,$itemtitle)."\n"; + &Apache::lonhtmlcommon::dependencycheck_js($symb,$itemtitle, + undef,$folderpath,$uri)."\n"; } $dragmath_button = ''.&Apache::lonhtmlcommon::dragmath_button('filecont',1).''; $initialize .= "\n".&Apache::lonhtmlcommon::dragmath_js('EditMathPopup'); @@ -1797,14 +1798,24 @@ ENDNOTFOUND my ($displayfile,$url,$symb,$itemtitle); $displayfile=$request->uri; if ($request->uri =~ m{^/uploaded/}) { + if ($env{'request.course.id'}) { + my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'}; + my $cnum = $env{'course.'.$env{'request.course.id'}.'.num'}; + if ($request->uri =~ m{^\Q/uploaded/$cdom/$cnum/\Esupplemental/}) { + &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, + ['folderpath','title']); + } + } ($symb,$itemtitle,$displayfile) = - &get_courseupload_hierarchy($request->uri); + &get_courseupload_hierarchy($request->uri, + $env{'form.folderpath'},$env{'form.title'}); } else { $displayfile=~s/^\/[^\/]*//; } my ($edit_info, $add_to_onload, $add_to_onresize)= - &inserteditinfo($filecontents,$filetype,$displayfile,$symb,$itemtitle); + &inserteditinfo($filecontents,$filetype,$displayfile,$symb, + $itemtitle,$env{'form.folderpath'},$request->uri); my %options = ('add_entries' => @@ -1855,20 +1866,34 @@ sub display_title { } sub get_courseupload_hierarchy { - my ($url) = @_; + my ($url,$folderpath,$title) = @_; my ($symb,$itemtitle,$displaypath); if ($env{'request.course.id'}) { - $symb = &Apache::lonnet::symbread($url); - my ($map,$id,$res)=&Apache::lonnet::decode_symb($symb); - my $navmap=Apache::lonnavmaps::navmap->new; - if (ref($navmap)) { - my $res = $navmap->getBySymb($symb); - if (ref($res)) { - my @pathitems = - &Apache::loncommon::get_folder_hierarchy($navmap,$map,1); - $itemtitle = $res->compTitle(); - push(@pathitems,$itemtitle); - $displaypath = join(' » ',@pathitems); + if ($folderpath =~ /^supplemental/) { + my @folders = split(/\&/,$folderpath); + my @pathitems; + while (@folders) { + my $folder=shift(@folders); + my $foldername=shift(@folders); + push(@pathitems,&unescape($foldername)); + } + if ($title) { + push(@pathitems,&unescape($title)); + } + $displaypath = join(' » ',@pathitems); + } else { + $symb = &Apache::lonnet::symbread($url); + my ($map,$id,$res)=&Apache::lonnet::decode_symb($symb); + my $navmap=Apache::lonnavmaps::navmap->new; + if (ref($navmap)) { + my $res = $navmap->getBySymb($symb); + if (ref($res)) { + my @pathitems = + &Apache::loncommon::get_folder_hierarchy($navmap,$map,1); + $itemtitle = $res->compTitle(); + push(@pathitems,$itemtitle); + $displaypath = join(' » ',@pathitems); + } } } }