--- loncom/interface/londocs.pm 2012/12/07 17:15:56 1.524 +++ loncom/interface/londocs.pm 2012/12/29 17:37:21 1.525 @@ -1,7 +1,7 @@ # The LearningOnline Network # Documents # -# $Id: londocs.pm,v 1.524 2012/12/07 17:15:56 raeburn Exp $ +# $Id: londocs.pm,v 1.525 2012/12/29 17:37:21 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -1694,7 +1694,11 @@ sub editor { $container = 'sequence'; } - my $jumpto = "uploaded/$coursedom/$coursenum/$folder.$container"; + my $jumpto; + + unless ($supplementalflag) { + $jumpto = "'uploaded/$coursedom/$coursenum/$folder.$container'"; + } unless ($allowed) { $randompick = -1; @@ -1867,7 +1871,7 @@ sub editor { 'Navigation_Screen',undef,'RAT') .'</td><td class="LC_middle">'.&mt('Tools:').'</td>' .'<td align="left"><ul id="LC_toolbar">' - .'<li><a href="/adm/coursedocs?forcesupplement=1" ' + .'<li><a href="/adm/coursedocs?forcesupplement=1&command=editsupp" ' .'id="LC_content_toolbar_edittoplevel" ' .'class="LC_toolbarItem" ' .'title="'.&mt('Supplemental Content Editor').'">' @@ -3211,23 +3215,33 @@ sub handler { # Do we directly jump somewhere? - if ($env{'form.command'} eq 'direct') { - my ($mapurl,$id,$resurl); + if (($env{'form.command'} eq 'direct') || ($env{'form.command'} eq 'directnav')) { if ($env{'form.symb'} ne '') { $env{'form.folderpath'}= &Apache::loncommon::symb_to_docspath($env{'form.symb'}); + &Apache::lonnet::appenv({'docs.exit.'.$env{'request.course.id'} => + $env{'form.command'}.'_'.$env{'form.symb'}}); } elsif ($env{'form.supppath'} ne '') { $env{'form.folderpath'}=$env{'form.supppath'}; + &Apache::lonnet::appenv({'docs.exit.'.$env{'request.course.id'} => + $env{'form.command'}.'_'.$env{'form.supppath'}}); } } elsif ($env{'form.command'} eq 'editdocs') { - $env{'form.folderpath'} = 'default&'. - &Apache::lonhtmlcommon::entity_encode('Main Course Content'). - ':::::'; + $env{'form.folderpath'} = 'default&'. + &Apache::lonhtmlcommon::entity_encode('Main Course Content'). + ':::::'; + &Apache::lonnet::appenv({'docs.exit.'.$env{'request.course.id'} => $env{'form.command'}}); } elsif ($env{'form.command'} eq 'editsupp') { - $env{'form.folderpath'} = 'default&'. + $env{'form.folderpath'} = 'supplemental&'. &Apache::lonhtmlcommon::entity_encode('Supplemental Content'); + &Apache::lonnet::appenv({'docs.exit.'.$env{'request.course.id'} => '/adm/supplemental'}); + } elsif ($env{'form.command'} eq 'contents') { + &Apache::lonnet::appenv({'docs.exit.'.$env{'request.course.id'} => '/adm/navmaps'}); + } elsif ($env{'form.command'} eq 'home') { + &Apache::lonnet::appenv({'docs.exit.'.$env{'request.course.id'} => '/adm/menu'}); } + # Where do we store these for when we come back? my $stored_folderpath='docs_folderpath'; if ($supplementalflag) { @@ -4224,11 +4238,11 @@ sub generate_edit_table { $activetab = $env{'form.active'}; } my $backicon = $iconpath.'clickhere.gif'; - my $backtext = &mt('Exit'); + my $backtext = &mt('Exit Editor'); $form = '<div class="LC_Box" style="margin:0;">'. '<ul id="navigation'.$tid.'" class="LC_TabContent">'."\n". '<li class="goback">'. - '<a href="javascript:toContents('."'$jumpto'".');">'. + '<a href="javascript:toContents('.$jumpto.');">'. '<img src="'.$backicon.'" class="LC_icon" style="border: none; vertical-align: top;"'. ' alt="'.$backtext.'" />'.$backtext.'</a></li>'."\n". '<li>'. @@ -4324,9 +4338,25 @@ sub editing_js { my $toplevelmain = 'default&Main%20'.$crstype.'%20Documents%3A%3A%3A%3A%3A'; my $toplevelsupp = &supplemental_base(); - my $backtourl = '/adm/navmaps'; - if ($supplementalflag) { + my $backtourl; + if ($env{'docs.exit.'.$env{'request.course.id'}} =~ /^direct_(.+)$/) { + my $caller = $1; + if ($caller =~ /^supplemental/) { + $backtourl = '/adm/supplemental?folderpath='.&escape($caller); + } else { + my ($map,$id,$res)=&Apache::lonnet::decode_symb($caller); + $res = &Apache::lonnet::clutter($res); + if (&Apache::lonnet::is_on_map($res)) { + $backtourl = &HTML::Entities::encode(&Apache::lonnet::clutter($res),'<>&"').'?symb='. + &HTML::Entities::encode($caller,'<>&"'); + } + } + } elsif ($env{'docs.exit.'.$env{'request.course.id'}} eq '/adm/menu') { + $backtourl = '/adm/menu'; + } elsif ($supplementalflag) { $backtourl = '/adm/supplemental'; + } else { + $backtourl = '/adm/navmaps'; } my $fieldsets = "'ext','doc'"; @@ -4628,9 +4658,8 @@ function showPage(current, pageId, nav, function toContents(jumpto) { var newurl = '$backtourl'; - if (jumpto != '') { + if ((newurl == '/adm/navmaps') && (jumpto != '')) { newurl = newurl+'?postdata='+jumpto; -; } location.href=newurl; }