Diff for /loncom/xml/lonxml.pm between versions 1.217 and 1.226

version 1.217, 2002/12/06 17:49:48 version 1.226, 2003/01/30 22:19:09
Line 101  use Apache::File(); Line 101  use Apache::File();
 use Apache::loncommon();  use Apache::loncommon();
 use Apache::lonfeedback();  use Apache::lonfeedback();
 use Apache::lonmsg();  use Apache::lonmsg();
 use Apache::lonmenu();  
 use Apache::loncacc();  use Apache::loncacc();
   
 #==================================================   Main subroutine: xmlparse    #==================================================   Main subroutine: xmlparse  
Line 193  sub xmlend { Line 192  sub xmlend {
               my $idx;                my $idx;
               for ($idx=1;$idx<=$contrib{'version'};$idx++) {                for ($idx=1;$idx<=$contrib{'version'};$idx++) {
  my $hidden=($contrib{'hidden'}=~/\.$idx\./);   my $hidden=($contrib{'hidden'}=~/\.$idx\./);
  unless (($hidden) && (!$seeid)) {   my $deleted=($contrib{'deleted'}=~/\.$idx\./);
    unless ((($hidden) && (!$seeid)) || ($deleted)) {
                  my $message=$contrib{$idx.':message'};                   my $message=$contrib{$idx.':message'};
                  $message=~s/\n/\<br \/\>/g;                   $message=~s/\n/\<br \/\>/g;
  $message=&Apache::lontexconvert::msgtexconverted($message);   $message=&Apache::lontexconvert::msgtexconverted($message);
Line 227  sub xmlend { Line 227  sub xmlend {
                           } else {                            } else {
                              $sender.=' <a href="/adm/feedback?hide='.                               $sender.=' <a href="/adm/feedback?hide='.
  $symb.':::'.$idx.'">Hide</a>';   $symb.':::'.$idx.'">Hide</a>';
   }    }                     
                       }                                               $sender.=' <a href="/adm/feedback?deldisc='.
    $symb.':::'.$idx.'">Delete</a>';
                         }
                   } else {                    } else {
                       if ($screenname) {                        if ($screenname) {
   $sender='<i>'.$screenname.'</i>';    $sender='<i>'.$screenname.'</i>';
Line 269  sub tokeninputfield { Line 271  sub tokeninputfield {
     my $defhost=$Apache::lonnet::perlvar{'lonHostID'};      my $defhost=$Apache::lonnet::perlvar{'lonHostID'};
     $defhost=~tr/a-z/A-Z/;      $defhost=~tr/a-z/A-Z/;
     return (<<ENDINPUTFIELD)      return (<<ENDINPUTFIELD)
 <script>  <script type="text/javascript">
     function updatetoken() {      function updatetoken() {
  var comp=new Array;   var comp=new Array;
         var barcode=unescape(document.tokeninput.barcode.value);          var barcode=unescape(document.tokeninput.barcode.value);
Line 353  sub printtokenheader { Line 355  sub printtokenheader {
     if ($target eq 'web') {      if ($target eq 'web') {
         my %idhash=&Apache::lonnet::idrget($tudom,($tuname));          my %idhash=&Apache::lonnet::idrget($tudom,($tuname));
  return    return 
  '<img align="right" src="/cgi-bin/barcode.gif?encode='.$token.'" />'.   '<img align="right" src="/cgi-bin/barcode.png?encode='.$token.'" />'.
                'Checked out for '.$plainname.                 'Checked out for '.$plainname.
                '<br />User: '.$tuname.' at '.$tudom.                 '<br />User: '.$tuname.' at '.$tudom.
        '<br />ID: '.$idhash{$tuname}.         '<br />ID: '.$idhash{$tuname}.
Line 393  sub registerurl { Line 395  sub registerurl {
     my $result = '';      my $result = '';
           
     if ($target eq 'edit') {      if ($target eq 'edit') {
         $result .="<script>\n".          $result .="<script type=\"text/javascrtipt\">\n".
             "if (typeof menu != 'undefined') {menu.currentURL=null;}\n".              "if (typeof menu != 'undefined') {menu.currentURL=null;}\n".
             &Apache::loncommon::browser_and_searcher_javascript().              &Apache::loncommon::browser_and_searcher_javascript().
                 "\n</script>\n";                  "\n</script>\n";
Line 402  sub registerurl { Line 404  sub registerurl {
          (!&Apache::lonnet::is_on_map($ENV{'REQUEST_URI'}))) &&           (!&Apache::lonnet::is_on_map($ENV{'REQUEST_URI'}))) &&
         (!$forcereg)) {          (!$forcereg)) {
  return $result.   return $result.
          '<script>function LONCAPAreg(){} function LONCAPAstale(){}</script>';           '<script type="text/javascript">function LONCAPAreg(){;} function LONCAPAstale(){}</script>';
     }      }
     if ($Apache::lonxml::registered && !$forcereg) { return ''; }      if ($Apache::lonxml::registered && !$forcereg) { return ''; }
     $Apache::lonxml::registered=1;      $Apache::lonxml::registered=1;
     my $nothing='';      my $reopen=&Apache::lonmenu::reopenmenu();
     if ($ENV{'browser.type'} eq 'explorer') { $nothing='javascript:void(0);'; }  
     my $newmail='';      my $newmail='';
     if (&Apache::lonmsg::newmail()) {       if (&Apache::lonmsg::newmail()) { 
        $newmail='menu.setstatus("you have","messages");';         $newmail='menu.setstatus("you have","messages");';
Line 497  ENDPARM Line 498  ENDPARM
 // BEGIN LON-CAPA Internal  // BEGIN LON-CAPA Internal
   
     function LONCAPAreg() {      function LONCAPAreg() {
   menu=window.open("$nothing","LONCAPAmenu","",false);    menu=$reopen;
           menu.clearTimeout(menu.menucltim);            menu.clearTimeout(menu.menucltim);
           $timesync            $timesync
           $newmail            $newmail
Line 508  ENDPARM Line 509  ENDPARM
           menu.currentStale=0;            menu.currentStale=0;
           menu.clearbut(3,1);            menu.clearbut(3,1);
           menu.switchbutton            menu.switchbutton
        (6,3,'catalog.gif','catalog','info','catalog_info()');         (6,3,'catalog.gif','catalog','info','catalog_info()','Show catalog information');
           menu.switchbutton            menu.switchbutton
        (8,1,'eval.gif','evaluate','this','gopost("/adm/evaluate",currentURL)','Provide my evaluation of this resource');         (8,1,'eval.gif','evaluate','this','gopost("/adm/evaluate",currentURL)','Provide my evaluation of this resource');
           menu.switchbutton            menu.switchbutton
Line 530  ENDPARM Line 531  ENDPARM
     }      }
   
     function LONCAPAstale() {      function LONCAPAstale() {
   menu=window.open("$nothing","LONCAPAmenu","",false);    menu=$reopen
           menu.currentStale=1;            menu.currentStale=1;
           if (menu.reloadURL!='' && menu.reloadURL!= null) {             if (menu.reloadURL!='' && menu.reloadURL!= null) { 
              menu.switchbutton               menu.switchbutton
Line 541  ENDPARM Line 542  ENDPARM
           menu.clearbut(7,3);            menu.clearbut(7,3);
           menu.menucltim=menu.setTimeout(            menu.menucltim=menu.setTimeout(
  'clearbut(2,1);clearbut(2,3);clearbut(8,1);clearbut(8,2);clearbut(8,3);'+   '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)',   'clearbut(9,1);clearbut(9,2);clearbut(9,3);clearbut(6,3);clearbut(6,1)',
   2000);    2000);
   
       }        }
Line 557  ENDREGTHIS Line 558  ENDREGTHIS
 // BEGIN LON-CAPA Internal  // BEGIN LON-CAPA Internal
   
     function LONCAPAreg() {      function LONCAPAreg() {
   menu=window.open("$nothing","LONCAPAmenu","",false);    menu=$reopen
           $timesync            $timesync
           menu.currentStale=1;            menu.currentStale=1;
           menu.clearbut(2,1);            menu.clearbut(2,1);
Line 772  sub inner_xmlparse { Line 773  sub inner_xmlparse {
       if ($token->[0] eq 'E') {         if ($token->[0] eq 'E') { 
  &end_tag($stack,$parstack,$token);   &end_tag($stack,$parstack,$token);
       }        }
     }      }
     if ($#$pars > -1) {      if ($#$pars > -1) {
  pop @$pars;   pop @$pars;
  pop @Apache::lonxml::pwd;   pop @Apache::lonxml::pwd;
Line 814  sub callsub { Line 815  sub callsub {
     }      }
     if (!$deleted) {      if (!$deleted) {
       if ($space) {        if ($space) {
  &Apache::lonxml::debug("Calling sub $sub in $space $metamode");   #&Apache::lonxml::debug("Calling sub $sub in $space $metamode");
  $sub1="$space\:\:$sub";   $sub1="$space\:\:$sub";
  ($currentstring,$nodefault) = &$sub1($target,$token,$tagstack,   ($currentstring,$nodefault) = &$sub1($target,$token,$tagstack,
      $parstack,$parser,$safeeval,       $parstack,$parser,$safeeval,
      $style);       $style);
       } else {        } else {
  &Apache::lonxml::debug("NOT Calling sub $sub in $space $metamode");   #&Apache::lonxml::debug("NOT Calling sub $sub in $space $metamode");
  if ($metamode <1) {   if ($metamode <1) {
   if (defined($token->[4]) && ($metamode < 1)) {    if (defined($token->[4]) && ($metamode < 1)) {
     $currentstring = $token->[4];      $currentstring = $token->[4];
Line 832  sub callsub { Line 833  sub callsub {
       #    &Apache::lonxml::debug("nodefalt:$nodefault:");        #    &Apache::lonxml::debug("nodefalt:$nodefault:");
       if ($currentstring eq '' && $nodefault eq '') {        if ($currentstring eq '' && $nodefault eq '') {
  if ($target eq 'edit') {   if ($target eq 'edit') {
   &Apache::lonxml::debug("doing default edit for $token->[1]");    #&Apache::lonxml::debug("doing default edit for $token->[1]");
   if ($token->[0] eq 'S') {    if ($token->[0] eq 'S') {
     $currentstring = &Apache::edit::tag_start($target,$token);      $currentstring = &Apache::edit::tag_start($target,$token);
   } elsif ($token->[0] eq 'E') {    } elsif ($token->[0] eq 'E') {
Line 1114  sub store_counter { Line 1115  sub store_counter {
 sub get_all_text {  sub get_all_text {
  my($tag,$pars)= @_;   my($tag,$pars)= @_;
  &Apache::lonxml::debug("Got a ".ref($pars));   &Apache::lonxml::debug("Got a ".ref($pars));
    my $gotfullstack=1;
  if (ref($pars) ne 'ARRAY') {   if (ref($pars) ne 'ARRAY') {
        $gotfullstack=0;
      $pars=[$pars];       $pars=[$pars];
  }   }
  my $depth=0;   my $depth=0;
Line 1123  sub get_all_text { Line 1126  sub get_all_text {
  if ( $tag =~ m:^/: ) {    if ( $tag =~ m:^/: ) { 
    my $tag=substr($tag,1);      my $tag=substr($tag,1); 
    #&Apache::lonxml::debug("have:$tag:");     #&Apache::lonxml::debug("have:$tag:");
    while (($depth >=0) && ($#$pars > -1)) {     my $top_empty=0;
      while (($depth >=0) && ($#$pars > -1) && (!$top_empty)) {
      while (($depth >=0) && ($token = $$pars[-1]->get_token)) {       while (($depth >=0) && ($token = $$pars[-1]->get_token)) {
        #&Apache::lonxml::debug("e token:$token->[0]:$depth:$token->[1]:".$#$pars.":".$#Apache::lonxml::pwd);         #&Apache::lonxml::debug("e token:$token->[0]:$depth:$token->[1]:".$#$pars.":".$#Apache::lonxml::pwd);
        if (($token->[0] eq 'T')||($token->[0] eq 'C')||($token->[0] eq 'D')) {         if (($token->[0] eq 'T')||($token->[0] eq 'C')||($token->[0] eq 'D')) {
Line 1145  sub get_all_text { Line 1149  sub get_all_text {
        pop(@$pars);         pop(@$pars);
        pop(@Apache::lonxml::pwd);         pop(@Apache::lonxml::pwd);
      }       }
        if (($depth >=0) && ($#$pars == 0) ) {        &debug("here4");$top_empty=1; }
      }
      if ($top_empty && $depth >= 0) {
          #never found the end tag ran out of text, throw error send back blank
          &error('Never found end tag for &lt;'.$tag.'&gt;');
          if ($gotfullstack) {
      my $newstring='</'.$tag.'>'.$result;
      &Apache::lonxml::newparser($pars,\$newstring);
          }
          $result='';
    }     }
  } else {   } else {
      while ($#$pars > -1) {       while ($#$pars > -1) {
Line 1251  sub afterburn { Line 1265  sub afterburn {
         $matchthis=~s/\_+/\\s\+/g;          $matchthis=~s/\_+/\\s\+/g;
         $result=~s/($matchthis)/\<a name=\"$anchorname\"\>$1\<\/a\>/s;          $result=~s/($matchthis)/\<a name=\"$anchorname\"\>$1\<\/a\>/s;
         $result.=(<<"ENDSCRIPT");          $result.=(<<"ENDSCRIPT");
 <script>  <script type="text/javascript">
     document.location.hash='$anchorname';      document.location.hash='$anchorname';
 </script>  </script>
 ENDSCRIPT  ENDSCRIPT

Removed from v.1.217  
changed lines
  Added in v.1.226


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