--- loncom/interface/londocs.pm 2003/02/04 18:23:21 1.47 +++ loncom/interface/londocs.pm 2003/04/12 15:56:42 1.51 @@ -1,7 +1,7 @@ # The LearningOnline Network # Documents # -# $Id: londocs.pm,v 1.47 2003/02/04 18:23:21 www Exp $ +# $Id: londocs.pm,v 1.51 2003/04/12 15:56:42 www Exp $ # # Copyright Michigan State University Board of Trustees # @@ -188,7 +188,7 @@ sub editor { my ($name,$url)=split(/\:/,$Apache::lonratedt::resources[$_]); unless ($name) { $name=(split(/\//,$url))[-1]; } unless ($name) { $name='NO RESOURCE'; $url='/adm/notfound.html'; } - $r->print(&entryline($idx,$name,$url,$folder,$allowed)); + $r->print(&entryline($idx,$name,$url,$folder,$allowed,$_)); $idx++; } $r->print('</table>'); @@ -198,7 +198,7 @@ sub editor { # --------------------------------------------------------------- An entry line sub entryline { - my ($index,$title,$url,$folder,$allowed)=@_; + my ($index,$title,$url,$folder,$allowed,$residx)=@_; $title=~s/\&colon\;/\:/g; $title=&HTML::Entities::encode(&HTML::Entities::decode( &Apache::lonnet::unescape($title)),'\"\<\>\&\''); @@ -249,7 +249,18 @@ END } } $url=~s/^http\&colon\;\/\//\/adm\/wrapper\/ext\//; - if ($isfolder) { $url.='&foldername='.$foldertitle; } + if ($residx) { + $url.=(($url=~/\?/)?'&':'?').'symb='. + &Apache::lonnet::escape(&Apache::lonnet::symbclean( + &Apache::lonnet::declutter('uploaded/'. + $ENV{'course.'.$ENV{'request.course.id'}.'.domain'}.'/'. + $ENV{'course.'.$ENV{'request.course.id'}.'.num'}.'/'.$folder. + '.sequence'). + '___'.$residx.'___'. + &Apache::lonnet::declutter($url))); + } + if ($isfolder) { $url.='&foldername='. + &Apache::lonnet::escape($foldertitle); } $line.='<td bgcolor="#FFFFBB"><a href="'.$url.'" target="cat_'.$folder. '"><img src="/adm/lonIcons/'. $icon.'.gif" border="0"></a></td>'. @@ -471,6 +482,7 @@ ENDHEADERS my $script=''; my $allowed; my $events=''; + my $buttons=''; my $showdoc=0; &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, ['folder','foldername']); @@ -489,9 +501,10 @@ ENDHEADERS } } else { # got called in sequence from course $allowed=0; - $script='</script>'.&Apache::lonxml::registerurl(1,undef).'<script>'; - $events='onLoad="'.&Apache::lonxml::loadevents. - '" onUnload="'.&Apache::lonxml::unloadevents.'"'; + $script='</script>'.&Apache::lonmenu::registerurl(1,undef).'<script>'; + $events='onLoad="'.&Apache::lonmenu::loadevents. + '" onUnload="'.&Apache::lonmenu::unloadevents.'"'; + $buttons=&Apache::lonmenu::menubuttons(1,undef); } # get course data @@ -578,7 +591,8 @@ ENDNEWSCRIPT } # -------------------------------------------------------------------- Body tag $r->print('</head>'. - &Apache::loncommon::bodytag('Course Documents','',$events)); + &Apache::loncommon::bodytag('Course Documents','',$events). + $buttons); unless ($showdoc) { if ($allowed) { $r->print(&Apache::loncommon::help_open_topic('Docs_Adding_Course_Doc', @@ -606,12 +620,20 @@ ENDCOURSEVERIFY ($allowed?' '.$help{'Main_Course_Documents'}:'').'</h2>'); my $folder=$ENV{'form.folder'}; unless ($folder=~/^default/) { $folder='default'; } + my $postexec=''; + if ($folder eq 'default') { + $r->print('<script>this.window.name="loncapaclient";</script>'); + } else { + $postexec='self.close();'; + } $hadchanges=0; &editor($r,$coursenum,$coursedom,$folder,$allowed); if ($hadchanges) { - $r->print('<form method="post" action="/adm/roles">'. -'<input type=hidden name=orgurl value="/adm/coursedocs" /><input type=hidden name=selectrole value=1 /><h3><font color="red">Changes will become active for your current session after <input type="submit" name="'. -$ENV{'request.role'}.'" value="re-initializing course" />, or the next time you log in.</font></h3></form>'); + $r->print( +'<script>function reinit(tf) { tf.submit();'.$postexec.' }</script>'. +'<form method="post" action="/adm/roles" target="loncapaclient">'. +'<input type="hidden" name="orgurl" value="/adm/coursedocs" /><input type="hidden" name="selectrole" value="1" /><h3><font color="red">Changes will become active for your current session after <input type="hidden" name="'. +$ENV{'request.role'}.'" value="1" /><input type="button" value="re-initializing course" onClick="reinit(this.form)"/>, or the next time you log in.</font></h3></form>'); } my $folderseq='/uploaded/'.$coursedom.'/'.$coursenum.'/default_'.time. '.sequence';