--- loncom/xml/lonxml.pm 2001/08/21 17:21:50 1.122 +++ loncom/xml/lonxml.pm 2001/08/23 21:28:30 1.125 @@ -13,7 +13,7 @@ # 6/12,6/13 H. K. Ng # 6/16 Gerd Kortemeyer # 7/27 H. K. Ng -# 8/7,8/9,8/10,8/11,8/15,8/16,8/17,8/18,8/20 Gerd Kortemeyer +# 8/7,8/9,8/10,8/11,8/15,8/16,8/17,8/18,8/20,8/23 Gerd Kortemeyer package Apache::lonxml; use vars @@ -322,11 +322,9 @@ ENDPARM function LONCAPAstale() { menu=window.open("","LONCAPAmenu"); menu.currentStale=1; - menu.switchbutton - (3,1,'reload.gif','return','location','go(currentURL)'); - menu.clearbut(7,1); - menu.clearbut(7,2); - menu.clearbut(7,3); + //menu.clearbut(7,1); + //menu.clearbut(7,2); + //menu.clearbut(7,3); menu.menucltim=menu.setTimeout( 'clearbut(2,1);clearbut(2,3);clearbut(8,1);clearbut(8,2);clearbut(8,3);'+ 'clearbut(9,1);clearbut(9,2);clearbut(9,3);clearbut(6,3)', @@ -408,7 +406,9 @@ sub xmlparse { my $finaloutput = &inner_xmlparse($target,\@stack,\@parstack,\@pars, $safeeval,\%style_for_target); - + if ($ENV{'request.uri'}) { + &writeallows($ENV{'request.uri'}); + } return $finaloutput; } @@ -656,6 +656,7 @@ sub setup_globals { my ($target)=@_; $Apache::lonxml::registered = 0; @Apache::lonxml::pwd=(); + @Apache::lonxml::extlinks=(); if ($target eq 'meta') { $Apache::lonxml::redirection = 0; $Apache::lonxml::metamode = 1; @@ -738,12 +739,8 @@ sub init_safespace { # $safeeval->deny(":base_orig"); $safeinit .= ';$external::target="'.$target.'";'; my $rndseed; - if (defined(&Apache::lonhomework::whichuser)) { - my ($symb,$courseid,$domain,$name) = &Apache::lonhomework::whichuser(); - $rndseed=&Apache::lonnet::rndseed($symb,$courseid,$domain,$name); - } else { - $rndseed=&Apache::lonnet::rndseed(); - } + my ($symb,$courseid,$domain,$name) = &Apache::lonxml::whichuser(); + $rndseed=&Apache::lonnet::rndseed($symb,$courseid,$domain,$name); $safeinit .= ';$external::randomseed='.$rndseed.';'; &Apache::run::run($safeinit,$safeeval); } @@ -888,7 +885,8 @@ sub writeallows { my %httpref=(); map { $httpref{'httpref.'. - &Apache::lonnet::hreflocation($thisdir,$_)}=$thisurl; } @extlinks; + &Apache::lonnet::hreflocation($thisdir,$_)}=$thisurl; + } @extlinks; &Apache::lonnet::appenv(%httpref); } @@ -1040,7 +1038,6 @@ ENDNOTFOUND $request->print($result); - writeallows($request->uri); return OK; } @@ -1125,6 +1122,29 @@ sub description { my ($token)=@_; return $insertlist{$insertlist{"$token->[1].num"}.'.description'}; } + +# ----------------------------------------------------------------- whichuser +# returns a list of $symb, $courseid, $domain, $name that is correct for +# calls to lonnet functions for this setup. +# - looks for form.grade_ parameters +sub whichuser { + my $symb=&Apache::lonnet::symbread(); + my $courseid=$ENV{'request.course.id'}; + my $domain=$ENV{'user.domain'}; + my $name=$ENV{'user.name'}; + if (defined($ENV{'form.grade_symb'})) { + my $tmp_courseid=$ENV{'form.grade_courseid'}; + my $allowed=&Apache::lonnet::allowed('mgr',$tmp_courseid); + if ($allowed) { + $symb=$ENV{'form.grade_symb'}; + $courseid=$ENV{'form.grade_courseid'}; + $domain=$ENV{'form.grade_domain'}; + $name=$ENV{'form.grade_username'}; + } + } + return ($symb,$courseid,$domain,$name); +} + 1; __END__