Diff for /loncom/xml/lonxml.pm between versions 1.531.2.1 and 1.531.2.6

version 1.531.2.1, 2012/05/10 19:08:33 version 1.531.2.6, 2013/03/18 00:04:27
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;    my $temp;
   foreach $temp (sort keys %Apache::lonxml::alltags) {    foreach $temp (sort keys %Apache::lonxml::alltags) {
Line 649  sub setup_globals { Line 743  sub setup_globals {
   
 sub init_safespace {  sub init_safespace {
   my ($target,$safeeval,$safehole,$safeinit) = @_;    my ($target,$safeeval,$safehole,$safeinit) = @_;
   $safeeval->reval('use Math::Complex;');  
   $safeeval->reval('use LaTeX::Table;');    $safeeval->reval('use LaTeX::Table;');
   $safeeval->deny_only(':dangerous');    $safeeval->deny_only(':dangerous');
     $safeeval->reval('use Math::Complex;');
   $safeeval->permit_only(":default");    $safeeval->permit_only(":default");
   $safeeval->permit("entereval");    $safeeval->permit("entereval");
   $safeeval->permit(":base_math");    $safeeval->permit(":base_math");
Line 1502  sub renderingoptions { Line 1596  sub renderingoptions {
            {&Apache::lonlocal::texthash             {&Apache::lonlocal::texthash
                (''        => '',                 (''        => '',
                 'tth'     => 'tth (TeX to HTML)',                  'tth'     => 'tth (TeX to HTML)',
                   'MathJax' => 'MathJax',
   'jsMath'  => 'jsMath',    'jsMath'  => 'jsMath',
                 'mimetex' => 'mimetex (Convert to Images)')}).                  'mimetex' => 'mimetex (Convert to Images)')}).
      '</span>';       '</span>';
Line 1509  sub renderingoptions { Line 1604  sub renderingoptions {
 }  }
   
 sub inserteditinfo {  sub inserteditinfo {
       my ($filecontents,$filetype,$filename,$symb,$itemtitle) = @_;        my ($filecontents,$filetype,$filename,$symb,$itemtitle,$folderpath,$uri) = @_;
       $filecontents = &HTML::Entities::encode($filecontents,'<>&"');        $filecontents = &HTML::Entities::encode($filecontents,'<>&"');
       my $xml_help = '';        my $xml_help = '';
       my $initialize='';        my $initialize='';
Line 1535  sub inserteditinfo { Line 1630  sub inserteditinfo {
 </script>  </script>
 FULLPAGE  FULLPAGE
       if ($filetype eq 'html') {        if ($filetype eq 'html') {
           if ($symb) {            if ($symb || $folderpath) {
               $deps_button = &Apache::lonhtmlcommon::dependencies_button()."\n";                $deps_button = &Apache::lonhtmlcommon::dependencies_button()."\n";
               $initialize .=                 $initialize .= 
                   &Apache::lonhtmlcommon::dependencycheck_js($symb,$itemtitle)."\n";                    &Apache::lonhtmlcommon::dependencycheck_js($symb,$itemtitle,
                                                                undef,$folderpath,$uri)."\n";
           }            }
           $dragmath_button = '<span id="math_filecont">'.&Apache::lonhtmlcommon::dragmath_button('filecont',1).'</span>';            $dragmath_button = '<span id="math_filecont">'.&Apache::lonhtmlcommon::dragmath_button('filecont',1).'</span>';
           $initialize .= "\n".&Apache::lonhtmlcommon::dragmath_js('EditMathPopup');            $initialize .= "\n".&Apache::lonhtmlcommon::dragmath_js('EditMathPopup');
Line 1668  sub handler { Line 1764  sub handler {
     } else {      } else {
  $filetype='html';   $filetype='html';
     }      }
       unless ($env{'request.uri'}) {
           $env{'request.uri'}=$request->uri;
           &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},
                                                   ['todocs']);
       }
     if ($filetype eq 'sty') {      if ($filetype eq 'sty') {
         $breadcrumbtext = 'Style File Editor';          $breadcrumbtext = 'Style File Editor';
     } elsif ($filetype eq 'js') {      } elsif ($filetype eq 'js') {
Line 1796  ENDNOTFOUND Line 1897  ENDNOTFOUND
             my ($displayfile,$url,$symb,$itemtitle);              my ($displayfile,$url,$symb,$itemtitle);
     $displayfile=$request->uri;      $displayfile=$request->uri;
             if ($request->uri =~ m{^/uploaded/}) {              if ($request->uri =~ m{^/uploaded/}) {
                   if ($env{'request.course.id'}) {
                       my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'};
                       my $cnum = $env{'course.'.$env{'request.course.id'}.'.num'};
                       if ($request->uri =~ m{^\Q/uploaded/$cdom/$cnum/\Esupplemental/}) {
                           &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},
                                                                   ['folderpath','title']);
                       }
                   }
   
                 ($symb,$itemtitle,$displayfile) =                   ($symb,$itemtitle,$displayfile) = 
                     &get_courseupload_hierarchy($request->uri);                      &get_courseupload_hierarchy($request->uri,
                                                   $env{'form.folderpath'},$env{'form.title'});
             } else {              } else {
         $displayfile=~s/^\/[^\/]*//;          $displayfile=~s/^\/[^\/]*//;
             }              }
   
     my ($edit_info, $add_to_onload, $add_to_onresize)=      my ($edit_info, $add_to_onload, $add_to_onresize)=
  &inserteditinfo($filecontents,$filetype,$displayfile,$symb,$itemtitle);   &inserteditinfo($filecontents,$filetype,$displayfile,$symb,
                                   $itemtitle,$env{'form.folderpath'},$request->uri);
   
     my %options =       my %options = 
  ('add_entries' =>   ('add_entries' =>
Line 1854  sub display_title { Line 1966  sub display_title {
 }  }
   
 sub get_courseupload_hierarchy {  sub get_courseupload_hierarchy {
     my ($url) = @_;      my ($url,$folderpath,$title) = @_;
     my ($symb,$itemtitle,$displaypath);      my ($symb,$itemtitle,$displaypath);
     if ($env{'request.course.id'}) {      if ($env{'request.course.id'}) {
         $symb = &Apache::lonnet::symbread();          if ($folderpath =~ /^supplemental/) {
         my ($map,$id,$res)=&Apache::lonnet::decode_symb($symb);              my @folders = split(/\&/,$folderpath);
         my $navmap=Apache::lonnavmaps::navmap->new;              my @pathitems;
         if (ref($navmap)) {              while (@folders) {
             my $res = $navmap->getBySymb($symb);                  my $folder=shift(@folders);
             if (ref($res)) {                  my $foldername=shift(@folders);
                 my @pathitems =                  $foldername =~ s/\:(\d*)\:(\w*)\:(\w*):(\d*)\:?(\d*)$//;
                     &Apache::loncommon::get_folder_hierarchy($navmap,$map,1);                  push(@pathitems,&unescape($foldername));
                 $itemtitle = $res->compTitle();              }
                 push(@pathitems,$itemtitle);              if ($title) {
                 $displaypath = join(' &raquo; ',@pathitems);                  push(@pathitems,&unescape($title));
               }
               $displaypath = join(' &raquo; ',@pathitems);
           } else {
               $symb = &Apache::lonnet::symbread($url);
               my ($map,$id,$res)=&Apache::lonnet::decode_symb($symb);
               my $navmap=Apache::lonnavmaps::navmap->new;
               if (ref($navmap)) {
                   my $res = $navmap->getBySymb($symb);
                   if (ref($res)) {
                       my @pathitems =
                           &Apache::loncommon::get_folder_hierarchy($navmap,$map,1);
                       $itemtitle = $res->compTitle();
                       push(@pathitems,$itemtitle);
                       $displaypath = join(' &raquo; ',@pathitems);
                   }
             }              }
         }          }
     }      }
Line 2024  sub add_messages { Line 2151  sub add_messages {
 }  }
   
 sub get_param {  sub get_param {
     my ($param,$parstack,$safeeval,$context,$case_insensitive) = @_;      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]; }
     if ( ! $Apache::lonxml::usestyle ) {      if ( ! $Apache::lonxml::usestyle ) {
  $args=$Apache::lonxml::style_values.$args;   $args=$Apache::lonxml::style_values.$args;
     }      }
   
       if ($noelide) {
           $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) {

Removed from v.1.531.2.1  
changed lines
  Added in v.1.531.2.6


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