Diff for /loncom/xml/scripttag.pm between versions 1.135 and 1.143

version 1.135, 2006/03/23 23:47:56 version 1.143, 2007/08/30 22:56:43
Line 80  sub end_LONCAPA_INTERNAL_TURN_STYLE_OFF Line 80  sub end_LONCAPA_INTERNAL_TURN_STYLE_OFF
     return ('','no');      return ('','no');
 }  }
   
   =pod 
   
   =item start_LONCAPA_INTERNAL_LONHTTPD_PORT
   
   emits a pice of javascript that says a global js variable to the
   current lonhttp port, currently used by the remote control to find out
   where to load images from
   
   =cut
   
 sub start_LONCAPA_INTERNAL_LONHTTPD_PORT {  sub start_LONCAPA_INTERNAL_LONHTTPD_PORT {
     my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;      my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;
     if ($target eq 'web') {      if ($target eq 'web' || $target eq 'webgrade') {
  my $lonhttpdPort=$Apache::lonnet::perlvar{'lonhttpdPort'};  
  if (!defined($lonhttpdPort)) { $lonhttpdPort='8080'; }  
  return '<script type="text/javascript">var lonhttpdport=\''.   return '<script type="text/javascript">var lonhttpdport=\''.
     $lonhttpdPort.'\';</script>';      &Apache::loncommon::lonhttpd_port().'\';</script>';
     }      }
     return ('','no');      return ('','no');
 }  }
Line 116  sub start_script { Line 124  sub start_script {
     ($env{'form.answer_output_mode'} ne 'tex') &&      ($env{'form.answer_output_mode'} ne 'tex') &&
     ($Apache::lonhomework::viewgrades == 'F')) {      ($Apache::lonhomework::viewgrades == 'F')) {
     $Apache::lonxml::evaluate--;      $Apache::lonxml::evaluate--;
     my (undef,undef,$udom,$uname)=&Apache::lonxml::whichuser();      my (undef,undef,$udom,$uname)=&Apache::lonnet::whichuser();
     my $windowopen=&Apache::lonhtmlcommon::javascript_docopen();      my $windowopen=&Apache::lonhtmlcommon::javascript_docopen();
     my $start_page =      my $start_page =
  &Apache::loncommon::start_page('Script Vars', undef,   &Apache::loncommon::start_page('Script Vars', undef,
Line 126  sub start_script { Line 134  sub start_script {
     my $end_page =      my $end_page =
  &Apache::loncommon::end_page({'js_ready' => 1,});   &Apache::loncommon::end_page({'js_ready' => 1,});
   
     $result.="<script type=\"text/javascript\">      $uname =~s/\W//g;
       $udom  =~s/\W//g;
       my $script_var ="<script type=\"text/javascript\">
 // <![CDATA[  // <![CDATA[
     function LONCAPA_scriptvars_".$uname."_".$udom."_"."$Apache::lonxml::curdepth() {newWindow=open('','new_W','width=500,height=500,scrollbars=1,resizable=yes');newWindow.$windowopen;newWindow.document.writeln('$start_page<pre>";      function LONCAPA_scriptvars_".$uname."_".$udom."_"."$Apache::lonxml::curdepth() {newWindow=open('','new_W','width=500,height=500,scrollbars=1,resizable=yes');newWindow.$windowopen;newWindow.document.writeln('$start_page<pre>";
     my $listing=&Apache::run::dump($target,$safeeval);      my $listing=&Apache::run::dump($target,$safeeval);
     $listing=~s/\\/\\\\/g;      $listing=~s/\\/\\\\/g;
     $listing=~s/\'/\\\'/g;      $listing=~s/\'/\\\'/g;
     $result.=$listing;      $script_var.=$listing;
     $result.= "</pre>$end_page');newWindow.document.close();newWindow.focus()}      $script_var.= "<\\/pre>$end_page');newWindow.document.close();newWindow.focus()}
 // ]]>  // ]]>
 </script><a href=\"javascript:LONCAPA_scriptvars_".$uname."_".$udom."_$Apache::lonxml::curdepth();void(0);\">Script Vars</a><br />";  </script><a href=\"javascript:LONCAPA_scriptvars_".$uname."_".$udom."_$Apache::lonxml::curdepth();void(0);\">Script Vars</a><br />";
       &Apache::lonxml::add_script_result($script_var);
  }   }
     } elsif ($target eq "edit" ) {      } elsif ($target eq "edit" ) {
       #&Apache::run::run($bodytext,$safeeval);        #&Apache::run::run($bodytext,$safeeval);
Line 222  sub start_scriptlib { Line 233  sub start_scriptlib {
   
   if ($target eq 'web' || $target eq 'tex' || $target eq 'grade' ||    if ($target eq 'web' || $target eq 'tex' || $target eq 'grade' ||
       $target eq 'meta' || $target eq 'edit' || $target eq 'answer' ||        $target eq 'meta' || $target eq 'edit' || $target eq 'answer' ||
       $target eq 'analyze') {        $target eq 'analyze' || $target eq 'webgrade') {
     $bodytext=$$parser[$#$parser]->get_text("/scriptlib");      $bodytext=$$parser[$#$parser]->get_text("/scriptlib");
     $bodytext=&Apache::run::evaluate($bodytext,$safeeval,      $bodytext=&Apache::run::evaluate($bodytext,$safeeval,
      $$parstack[$#$parstack]);       $$parstack[$#$parstack]);
Line 268  sub start_parserlib { Line 279  sub start_parserlib {
   my $error='';    my $error='';
   if ($target eq 'web' || $target eq 'tex' || $target eq 'grade' ||    if ($target eq 'web' || $target eq 'tex' || $target eq 'grade' ||
       $target eq 'meta' || $target eq 'edit' || $target eq 'answer' ||        $target eq 'meta' || $target eq 'edit' || $target eq 'answer' ||
       $target eq 'analyze') {        $target eq 'analyze' || $target eq 'webgrade') {
     $bodytext=$$parser[$#$parser]->get_text("/parserlib");      $bodytext=$$parser[$#$parser]->get_text("/parserlib");
     $bodytext=&Apache::run::evaluate($bodytext,$safeeval,      $bodytext=&Apache::run::evaluate($bodytext,$safeeval,
      $$parstack[$#$parstack]);       $$parstack[$#$parstack]);
Line 309  sub end_parserlib { Line 320  sub end_parserlib {
 sub start_window {  sub start_window {
     my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;      my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;
     my $result = '';      my $result = '';
     if ($target eq 'web') {      if ($target eq 'web' || $target eq 'webgrade') {
  &Apache::lonxml::startredirection;   &Apache::lonxml::startredirection;
     } elsif ($target eq 'tex') {      } elsif ($target eq 'tex') {
  $result = '\unskip\footnote{';   $result = '\unskip\footnote{';
Line 331  sub start_window { Line 342  sub start_window {
 sub end_window {  sub end_window {
   my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;    my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;
   my $result;    my $result;
   if ($target eq 'web') {    if ($target eq 'web' || $target eq 'webgrade') {
     my $output=&Apache::lonxml::endredirection;      my $output=&Apache::lonxml::endredirection;
     $output =~ s/[\n\r]/ /g;      $output =~ s/[\n\r]/ /g;
 #    $output = &HTML::Entities::encode($output,'<>&"\'');  #    $output = &HTML::Entities::encode($output,'<>&"\'');
Line 350  sub end_window { Line 361  sub end_window {
  'js_ready'  => 1,});   'js_ready'  => 1,});
     my $end_page =      my $end_page =
  &Apache::loncommon::end_page({'js_ready' => 1,});   &Apache::loncommon::end_page({'js_ready' => 1,});
     $result = "<script type=\"text/javascript\"> function LONCAPA_newwindow_$Apache::lonxml::curdepth() {newWindow=open('','new_W','width=$width,height=$height,scrollbars=1');newWindow.document.open('text/html','replace');newWindow.document.writeln('$start_page $output $end_page');newWindow.document.close();}</script><a href=\"javascript:LONCAPA_newwindow_$Apache::lonxml::curdepth();void(0);\">$linktext</a>";      $result = "<script type=\"text/javascript\">
   //<!--
    function LONCAPA_newwindow_$Apache::lonxml::curdepth() {
   newWindow=open(".&Apache::lonhtmlcommon::javascript_nothing().",'new_W','width=$width,height=$height,scrollbars=1');
   newWindow.".&Apache::lonhtmlcommon::javascript_docopen().";
   newWindow.document.writeln('$start_page $output $end_page');
   newWindow.document.close();}
   //-->
   </script><a href=\"javascript:LONCAPA_newwindow_$Apache::lonxml::curdepth();void(0);\">$linktext</a>";
   } elsif ($target eq 'tex') {    } elsif ($target eq 'tex') {
       $result = '}';        $result = '}';
   } else {    } else {
Line 380  sub start_import { Line 399  sub start_import {
     my $dir=$location;      my $dir=$location;
     $dir=~s:/[^/]*$::;      $dir=~s:/[^/]*$::;
     #  &Apache::lonxml::debug("directory $dir $location file $file \n<b>END</b>\n");      #  &Apache::lonxml::debug("directory $dir $location file $file \n<b>END</b>\n");
     my $id= &Apache::lonxml::get_param('id',$parstack,$safeeval);      my $id= &Apache::lonxml::get_id($parstack,$safeeval);
     if (!$id) { $id=$Apache::lonxml::curdepth; }      if (!$id) { $id=$Apache::lonxml::curdepth; }
     push(@Apache::inputtags::import,$id);      push(@Apache::inputtags::import,$id);
     push(@Apache::inputtags::importlist,$id);      push(@Apache::inputtags::importlist,$id);
Line 397  sub start_import { Line 416  sub start_import {
   } elsif ($target eq 'modified') {    } elsif ($target eq 'modified') {
       $result=$token->[4].&Apache::edit::modifiedfield("/import",$parser);        $result=$token->[4].&Apache::edit::modifiedfield("/import",$parser);
   } elsif ($target eq 'meta') {    } elsif ($target eq 'meta') {
     my $id= &Apache::lonxml::get_param('id',$parstack,$safeeval);      my $id= &Apache::lonxml::get_id($parstack,$safeeval);
     $result.='<import part="'.$Apache::inputtags::part;      $result.='<import part="'.$Apache::inputtags::part;
     if ($id) {      if ($id) {
       $result.='" id="'.$id;        $result.='" id="'.$id;
Line 456  sub end_physnet { Line 475  sub end_physnet {
 sub start_standalone {  sub start_standalone {
   my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;    my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;
   my $result='';    my $result='';
   if ($target eq 'web' ) {    if ($target eq 'web' || $target eq 'webgrade') {
     if ( $env{'request.course.id'} ) {      if ( $env{'request.course.id'} ) {
       my $inside = &Apache::lonxml::get_all_text("/standalone",$parser,$style);        my $inside = &Apache::lonxml::get_all_text("/standalone",$parser,$style);
     } else {      } else {
Line 469  sub start_standalone { Line 488  sub start_standalone {
 sub end_standalone {  sub end_standalone {
   my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;    my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;
   my $result='';    my $result='';
   if ($target eq 'web' ) {    if ($target eq 'web' || $target eq 'webgrade' ) {
     if ( $env{'request.course.id'} ) {      if ( $env{'request.course.id'} ) {
     } else {      } else {
       $result='</td></tr></table>';        $result='</td></tr></table>';
Line 487  sub start_comment { Line 506  sub start_comment {
     $result.=&Apache::edit::editfield($token->[1],$bodytext,'',80,4)      $result.=&Apache::edit::editfield($token->[1],$bodytext,'',80,4)
   } elsif ( $target eq 'modified') {    } elsif ( $target eq 'modified') {
     $result=$token->[4].&Apache::edit::modifiedfield("/comment",$parser);      $result=$token->[4].&Apache::edit::modifiedfield("/comment",$parser);
   } elsif ( $target eq 'web' || $target eq 'tex' || $target eq 'grade' ||    } elsif ( $target eq 'web'    || $target eq 'tex'  || $target eq 'grade'   ||
     $target eq 'answer' || $target eq 'meta' || $target eq 'analyze') {      $target eq 'answer' || $target eq 'meta' || $target eq 'analyze' ||
       $target eq 'webgrade') {
     #normally throw away comments      #normally throw away comments
     my $bodytext=&Apache::lonxml::get_all_text("/comment",$parser,$style);      my $bodytext=&Apache::lonxml::get_all_text("/comment",$parser,$style);
   }    }
Line 530  sub start_num { Line 550  sub start_num {
     my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style) = @_;      my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style) = @_;
     my $result = '';      my $result = '';
     my $inside = &Apache::lonxml::get_all_text_unbalanced("/num",$parser);      my $inside = &Apache::lonxml::get_all_text_unbalanced("/num",$parser);
     if ($target eq 'tex' || $target eq 'web') {      if ($target eq 'tex' || $target eq 'web' || $target eq 'webgrade') {
  $inside=&Apache::run::evaluate($inside,$safeeval,$$parstack[-1]);   $inside=&Apache::run::evaluate($inside,$safeeval,$$parstack[-1]);
  if (!$Apache::lonxml::default_homework_loaded) {   if (!$Apache::lonxml::default_homework_loaded) {
     &Apache::lonxml::default_homework_load($safeeval);      &Apache::lonxml::default_homework_load($safeeval);
Line 551  sub end_num { Line 571  sub end_num {
 sub start_parse {  sub start_parse {
     my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style) = @_;      my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style) = @_;
     my $result = '';      my $result = '';
     if ( $target eq 'web' || $target eq 'tex' ||      if ( $target eq 'web'    || $target eq 'tex'    ||
  $target eq 'grade' || $target eq 'answer' ||   $target eq 'grade'  || $target eq 'answer' ||
  $target eq 'analyze') {   $target eq 'analyze'|| $target eq 'webgrade') {
  my $inside = &Apache::lonxml::get_all_text_unbalanced("/parse",$parser);   my $inside = &Apache::lonxml::get_all_text_unbalanced("/parse",$parser);
  $inside=&Apache::run::evaluate($inside,$safeeval,$$parstack[-1]);   $inside=&Apache::run::evaluate($inside,$safeeval,$$parstack[-1]);
  if (!$Apache::lonxml::default_homework_loaded) {   if (!$Apache::lonxml::default_homework_loaded) {
Line 581  sub end_parse { Line 601  sub end_parse {
 sub start_algebra {  sub start_algebra {
     my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style) = @_;      my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style) = @_;
     my $result = '';      my $result = '';
     if ( $target eq 'web' || $target eq 'tex' ||      if ( $target eq 'web'     || $target eq 'tex'    ||
  $target eq 'grade' || $target eq 'answer' ||   $target eq 'grade'   || $target eq 'answer' ||
  $target eq 'analyze') {   $target eq 'analyze' || $target eq 'webgrade') {
  my $inside = &Apache::lonxml::get_all_text_unbalanced("/algebra",$parser);   my $inside = &Apache::lonxml::get_all_text_unbalanced("/algebra",$parser);
  $inside = &Apache::run::evaluate($inside,$safeeval,$$parstack[-1]);   $inside = &Apache::run::evaluate($inside,$safeeval,$$parstack[-1]);
  if ($target eq 'web' || $target eq 'tex' || $target eq 'analyze') {   if ($target eq 'web' || $target eq 'tex' || $target eq 'analyze') {

Removed from v.1.135  
changed lines
  Added in v.1.143


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>