Diff for /loncom/xml/lonxml.pm between versions 1.531.2.16 and 1.551

version 1.531.2.16, 2014/06/21 23:39:27 version 1.551, 2014/12/15 17:39:24
Line 228  sub xmlend { Line 228  sub xmlend {
     return $discussion;      return $discussion;
 }  }
   
 sub tokeninputfield {  
     my $defhost=$Apache::lonnet::perlvar{'lonHostID'};  
     $defhost=~tr/a-z/A-Z/;  
     return (<<ENDINPUTFIELD)  
 <script type="text/javascript">  
     function updatetoken() {  
         var comp=new Array;  
         var barcode=unescape(document.tokeninput.barcode.value);  
         comp=barcode.split('*');  
         if (typeof(comp[0])!="undefined") {  
             document.tokeninput.codeone.value=comp[0];  
         }  
         if (typeof(comp[1])!="undefined") {  
             document.tokeninput.codetwo.value=comp[1];  
         }  
         if (typeof(comp[2])!="undefined") {  
             comp[2]=comp[2].toUpperCase();  
             document.tokeninput.codethree.value=comp[2];  
         }  
         document.tokeninput.barcode.value='';  
     }  
 </script>  
 <form method="post" name="tokeninput" action="">  
 <table border="2" bgcolor="#FFFFBB">  
 <tr><th>DocID Checkin</th></tr>  
 <tr><td>  
 <table>  
 <tr>  
 <td>Scan in Barcode</td>  
 <td><input type="text" size="22" name="barcode"  
 onchange="updatetoken()"/></td>  
 </tr>  
 <tr><td><i>or</i> Type in DocID</td>  
 <td>  
 <input type="text" size="5" name="codeone" />  
 <b><font size="+2">*</font></b>  
 <input type="text" size="5" name="codetwo" />  
 <b><font size="+2">*</font></b>  
 <input type="text" size="10" name="codethree" value="$defhost"  
 onchange="this.value=this.value.toUpperCase()" />  
 </td></tr>  
 </table>  
 </td></tr>  
 <tr><td><input type="submit" value="Check in DocID" /></td></tr>  
 </table>  
 </form>  
 ENDINPUTFIELD  
 }  
   
 sub maketoken {  
     my ($symb,$tuname,$tudom,$tcrsid)=@_;  
     unless ($symb) {  
         $symb=&Apache::lonnet::symbread();  
     }  
     unless ($tuname) {  
         $tuname=$env{'user.name'};  
         $tudom=$env{'user.domain'};  
         $tcrsid=$env{'request.course.id'};  
     }  
     return &Apache::lonnet::checkout($symb,$tuname,$tudom,$tcrsid);  
 }  
   
 sub printtokenheader {  
     my ($target,$token,$tsymb,$tcrsid,$tudom,$tuname)=@_;  
     unless ($token) { return ''; }  
   
     my ($symb,$courseid,$domain,$name) = &Apache::lonnet::whichuser();  
     unless ($tsymb) {  
         $tsymb=$symb;  
     }  
     unless ($tuname) {  
         $tuname=$name;  
         $tudom=$domain;  
         $tcrsid=$courseid;  
     }  
   
     my $plainname=&Apache::loncommon::plainname($tuname,$tudom);  
   
     if ($target eq 'web') {  
         my %idhash=&Apache::lonnet::idrget($tudom,($tuname));  
         return  
  '<img align="right" src="/cgi-bin/barcode.png?encode='.$token.'" />'.  
                &mt('Checked out for').' '.$plainname.  
                '<br />'.&mt('User').': '.$tuname.' at '.$tudom.  
                '<br />'.&mt('ID').': '.$idhash{$tuname}.  
                '<br />'.&mt('CourseID').': '.$tcrsid.  
                '<br />'.&mt('Course').': '.$env{'course.'.$tcrsid.'.description'}.  
                '<br />'.&mt('DocID').': '.$token.  
                '<br />'.&mt('Time').': '.&Apache::lonlocal::locallocaltime().'<hr />';  
     } else {  
         return $token;  
     }  
 }  
   
 sub printalltags {  sub printalltags {
   my $temp;      foreach my $temp (sort(keys(%Apache::lonxml::alltags))) {
   foreach $temp (sort keys %Apache::lonxml::alltags) {          &Apache::lonxml::debug("$temp -- ".
     &Apache::lonxml::debug("$temp -- ".                                 join(',',@{ $Apache::lonxml::alltags{$temp} }));
   join(',',@{ $Apache::lonxml::alltags{$temp} }));      }
   }  
 }  }
   
 sub xmlparse {  sub xmlparse {
Line 1421  sub extlink { Line 1326  sub extlink {
     if (!$exact) {      if (!$exact) {
  $res=&Apache::lonnet::hreflocation($Apache::lonxml::pwd[-1],$res);   $res=&Apache::lonnet::hreflocation($Apache::lonxml::pwd[-1],$res);
     }      }
     push(@Apache::lonxml::extlinks,$res)        push(@Apache::lonxml::extlinks,$res);
 }  }
   
 sub writeallows {  sub writeallows {
Line 1662  FULLPAGE Line 1567  FULLPAGE
               }                }
           } elsif ($symb || $folderpath) {            } elsif ($symb || $folderpath) {
               $deps_button = &Apache::lonhtmlcommon::dependencies_button()."\n";                $deps_button = &Apache::lonhtmlcommon::dependencies_button()."\n";
               $initialize .=                $initialize .= 
                   &Apache::lonhtmlcommon::dependencycheck_js($symb,$itemtitle,                    &Apache::lonhtmlcommon::dependencycheck_js($symb,$itemtitle,
                                                              undef,$folderpath,$uri)."\n";                                                               undef,$folderpath,$uri)."\n";
           }            }
Line 1845  sub handler { Line 1750  sub handler {
             }              }
  }   }
     }      }
       my $inhibit_menu;
     my %mystyle;      my %mystyle;
     my $result = '';      my $result = '';
     my $filecontents=&Apache::lonnet::getfile($file);      my $filecontents=&Apache::lonnet::getfile($file);
Line 1902  ENDNOTFOUND Line 1808  ENDNOTFOUND
     &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},      &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},
     ['rawmode']);      ['rawmode']);
     if ($env{'form.rawmode'}) { $result = $filecontents; }      if ($env{'form.rawmode'}) { $result = $filecontents; }
               if (($env{'request.state'} eq 'construct') &&
                   (($filetype eq 'css') || ($filetype eq 'js')) && ($ENV{'HTTP_REFERER'})) {
                   if ($ENV{'HTTP_REFERER'} =~ m{^https?\://[^\/]+/priv/$LONCAPA::match_domain/$LONCAPA::match_username/[^\?]+\.(x?html?|swf)(|\?)[^\?]*$}) {
                       $inhibit_menu = 1;
                   }
               }
             if (($filetype ne 'html') &&               if (($filetype ne 'html') && 
                 (!$env{'form.return_only_error_and_warning_counts'})) {                  (!$env{'form.return_only_error_and_warning_counts'}) &&
                   (!$inhibit_menu)) {
                 my $nochgview = 1;                  my $nochgview = 1;
                 my $controls = '';                  my $controls = '';
                     if ($env{'request.state'} eq 'construct') {                      if ($env{'request.state'} eq 'construct') {
Line 1941  ENDNOTFOUND Line 1854  ENDNOTFOUND
 #  #
 # Edit action? Insert editing commands  # Edit action? Insert editing commands
 #  #
     unless ($env{'request.state'} eq 'published') {      unless (($env{'request.state'} eq 'published') || ($inhibit_menu)) {
  if ($env{'form.editmode'} && (!($env{'form.viewmode'})) && (!($env{'form.discardview'})))   if ($env{'form.editmode'} && (!($env{'form.viewmode'})) && (!($env{'form.discardview'})))
  {   {
             my ($displayfile,$url,$symb,$itemtitle,$action);              my ($displayfile,$url,$symb,$itemtitle,$action);
Line 2140  sub error { Line 2053  sub error {
     my $declutter=&Apache::lonnet::declutter($env{'request.filename'});      my $declutter=&Apache::lonnet::declutter($env{'request.filename'});
             my $baseurl = &Apache::lonnet::clutter($declutter);              my $baseurl = &Apache::lonnet::clutter($declutter);
     my @userlist;      my @userlist;
     foreach (keys %users) {      foreach (keys(%users)) {
  my ($user,$domain) = split(/:/, $_);   my ($user,$domain) = split(/:/, $_);
  push(@userlist,"$user:$domain");   push(@userlist,"$user:$domain");
  my $key=$declutter.'_'.$user.'_'.$domain;   my $key=$declutter.'_'.$user.'_'.$domain;
Line 2211  sub add_messages { Line 2124  sub add_messages {
   
 sub get_param {  sub get_param {
     my ($param,$parstack,$safeeval,$context,$case_insensitive, $noelide) = @_;      my ($param,$parstack,$safeeval,$context,$case_insensitive, $noelide) = @_;
   
     if ( ! $context ) { $context = -1; }      if ( ! $context ) { $context = -1; }
     my $args ='';      my $args ='';
     if ( $#$parstack > (-2-$context) ) { $args=$$parstack[$context]; }      if ( $#$parstack > (-2-$context) ) { $args=$$parstack[$context]; }
Line 2218  sub get_param { Line 2132  sub get_param {
  $args=$Apache::lonxml::style_values.$args;   $args=$Apache::lonxml::style_values.$args;
     }      }
   
   
     if ($noelide) {      if ($noelide) {
         $args =~ s/'\$/'\\\$/g;  # $args =~ s/\\'/'/g;
    $args =~ s/'\$/'\\\$/g;
     }      }
   
     if ( ! $args ) { return undef; }      if ( ! $args ) { return undef; }
     if ( $case_insensitive ) {      if ( $case_insensitive ) {
  if ($args =~ s/(my (?:.*))(\$\Q$param\E[,\)])/$1.lc($2)/ei) {   if ($args =~ s/(my (?:.*))(\$\Q$param\E[,\)])/$1.lc($2)/ei) {
   
     return &Apache::run::run("{$args;".'return $'.$param.'}',      return &Apache::run::run("{$args;".'return $'.$param.'}',
                                      $safeeval); #'                                       $safeeval); #'
  } else {   } else {
Line 2232  sub get_param { Line 2149  sub get_param {
  }   }
     } else {      } else {
  if ( $args =~ /my .*\$\Q$param\E[,\)]/ ) {   if ( $args =~ /my .*\$\Q$param\E[,\)]/ ) {
       
     return &Apache::run::run("{$args;".'return $'.$param.'}',      return &Apache::run::run("{$args;".'return $'.$param.'}',
                                      $safeeval); #'                                       $safeeval); #'
  } else {   } else {

Removed from v.1.531.2.16  
changed lines
  Added in v.1.551


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