--- loncom/interface/lonmenu.pm 2004/11/30 22:44:29 1.132 +++ loncom/interface/lonmenu.pm 2005/02/02 19:24:45 1.143 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Routines to control the menu # -# $Id: lonmenu.pm,v 1.132 2004/11/30 22:44:29 raeburn Exp $ +# $Id: lonmenu.pm,v 1.143 2005/02/02 19:24:45 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -78,6 +78,13 @@ sub menubuttons { my $reloadlink=''; my $escurl=&Apache::lonnet::escape(&Apache::lonenc::check_encrypt($ENV{'request.noversionuri'})); my $escsymb=&Apache::lonnet::escape(&Apache::lonenc::check_encrypt($ENV{'request.symb'})); + if ($ENV{'request.state'} eq 'construct') { + if (($ENV{'request.noversionuri'} eq '') || (!defined($ENV{'request.noversionuri'}))) { + my $returnurl = $ENV{'request.filename'}; + $returnurl =~ s:^/home/([^/]+)/public_html/(.*)$:/priv/$1/$2:; + $escurl = &Apache::lonnet::escape($returnurl); + } + } if ($ENV{'browser.interface'} eq 'textual') { # Textual display only my %lt=&initlittle(); @@ -138,9 +145,14 @@ ENDMAINMENU my $sidebg=&Apache::loncommon::designparm($function.'.sidebg',$domain); # Do we have a NAV link? if ($ENV{'request.course.id'}) { - $navmaps=(< -$lt{'nav'} +$lt{'nav'} ENDNAV if (($ENV{'request.noversionuri'}=~/^\/adm\//) && ($ENV{'request.noversionuri'}!~/^\/adm\/wrapper\//) && @@ -259,7 +271,7 @@ sub innerregister { $newmail.=$ENV{'course.'.$ENV{'request.course.id'}.'.description'}; my $maptitle=&Apache::lonnet::gettitle($mapurl); my $restitle=&Apache::lonnet::gettitle($resurl); - if ($maptitle) { + if ($maptitle && $maptitle ne 'default.sequence') { $newmail.=', '.$maptitle; } if ($restitle) { @@ -386,10 +398,10 @@ s&6&1&list.gif&list[_1]&dir[_1]&golist(' s&6&2&rtrv.gif&retrieve[_1]&version[_1]&gocstr('/adm/retrieve','/~$uname/$thisdisfn')&Retrieve old version s&6&3&pub.gif&publish[_1]&resource[_1]&gocstr('/adm/publish','/~$uname/$thisdisfn')&Publish this resource s&7&1&del.gif&delete[_1]&resource[_2]&gocstr('/adm/cfile?action=delete','/~$uname/$thisdisfn')&Delete this resource -s&7&2&prt.gif&prepare[_1]&printout[_1]&gopost('/adm/printout','/~$uname/$thisdisfn')&Prepare a printable document +s&7&2&prt.gif&prepare[_1]&printout[_1]&gocstr('/adm/printout','/~$uname/$thisdisfn')&Prepare a printable document ENDMENUITEMS } - } else { + } elsif (defined($ENV{'request.course.id'})) { $menuitems=(< @@ -491,7 +505,7 @@ var swmenu=null; swmenu.clearbut(7,3); swmenu.menucltim=swmenu.setTimeout( 'clearbut(2,1);clearbut(2,3);clearbut(8,1);clearbut(8,2);clearbut(8,3);'+ - 'clearbut(9,1);clearbut(9,3);clearbut(6,3);clearbut(6,1)', + 'clearbut(9,1);clearbut(9,3);clearbut(6,3);$clearcstr', 2000); } @@ -544,12 +558,14 @@ ENDDONOTREGTHIS } sub loadevents() { - if ($ENV{'request.noversionuri'} eq '/res/adm/pages/menu.html') { return ''; } + if ($ENV{'request.state'} eq 'construct' || + $ENV{'request.noversionuri'} eq '/res/adm/pages/menu.html') { return ''; } return 'LONCAPAreg();'; } sub unloadevents() { - if ($ENV{'request.noversionuri'} eq '/res/adm/pages/menu.html') { return ''; } + if ($ENV{'request.state'} eq 'construct' || + $ENV{'request.noversionuri'} eq '/res/adm/pages/menu.html') { return ''; } return 'LONCAPAstale();'; } @@ -963,7 +979,8 @@ sub utilityfunctions { my $caller = shift; unless (($ENV{'browser.interface'} eq 'textual') || ($ENV{'environment.remote'} eq 'off') || ($caller eq '/adm/menu')) { return ''; } - my $currenturl=&Apache::lonenc::check_encrypt($ENV{'request.noversionuri'}); + my $currenturl=&Apache::lonnet::clutter(&Apache::lonnet::fixversion((split(/\?/,$ENV{'request.noversionuri'}))[0])); + $currenturl=&Apache::lonenc::check_encrypt(&Apache::lonnet::unescape($currenturl)); my $currentsymb=&Apache::lonenc::check_encrypt($ENV{'request.symb'}); my $nav_control=&nav_control_js(); @@ -1011,6 +1028,27 @@ function gocstr(url,filename) { this.document.cstrdelete.submit(); return; } + if (url == '/adm/printout') { + this.document.cstrprint.postdata.value = filename + this.document.cstrprint.curseed.value = 0; + this.document.cstrprint.problemtype.value = 0; + if (this.document.lonhomework) { + if ((this.document.lonhomework.rndseed) && (this.document.lonhomework.rndseed.value != null) && (this.document.lonhomework.rndseed.value != '')) { + this.document.cstrprint.curseed.value = this.document.lonhomework.rndseed.value + } + if (this.document.lonhomework.problemtype) { + for (var i=0; i +
+ + + +
+ ENDCONSTSPACEFORM } @@ -1104,7 +1148,7 @@ sub handler { $tabbg=&Apache::loncommon::designparm($function.'.tabbg',$domain); $font=&Apache::loncommon::designparm($function.'.font',$domain); my $script_tag; - if ($ENV{'environment.remote'} eq 'on') { + if ($ENV{'environment.remote'} ne 'off') { my $utility=&utilityfunctions('/adm/menu'); $script_tag=(<