Diff for /loncom/interface/londocs.pm between versions 1.90 and 1.99

version 1.90, 2003/10/28 00:57:50 version 1.99, 2004/01/15 03:18:19
Line 425  END Line 425  END
 # Figure out what kind of a resource this is  # Figure out what kind of a resource this is
     my ($extension)=($url=~/\.(\w+)$/);      my ($extension)=($url=~/\.(\w+)$/);
     my $uploaded=($url=~/^\/*uploaded\//);      my $uploaded=($url=~/^\/*uploaded\//);
     my $icon='unknown';      my $icon=&Apache::loncommon::icon($url);
     if (-e "/home/httpd/html/adm/lonIcons/$extension.gif") {  
  $icon=$extension;  
     }  
     my $isfolder=0;      my $isfolder=0;
     if ($uploaded) {      if ($uploaded) {
        if ($extension eq 'sequence') {         if ($extension eq 'sequence') {
   $icon='folder_closed';    $icon=$iconpath.'/folder_closed.gif';
           $url=~/\/(\w+)\.sequence/;            $url=~/\/(\w+)\.sequence/;
           $url='/adm/coursedocs?folder='.$1;            $url='/adm/coursedocs?folder='.$1;
           $isfolder=1;            $isfolder=1;
Line 454  END Line 451  END
     if ($isfolder) { $url.='&foldername='.      if ($isfolder) { $url.='&foldername='.
        &Apache::lonnet::escape($foldertitle); }         &Apache::lonnet::escape($foldertitle); }
     $line.='<td bgcolor="#FFFFBB"><a href="'.$url.'" target="cat_'.$folder.      $line.='<td bgcolor="#FFFFBB"><a href="'.$url.'" target="cat_'.$folder.
 '"><img src="/adm/lonIcons/'.   '"><img src="'.$icon.'" border="0"></a></td>'.
         $icon.'.gif" border="0"></a></td>'.  
         "<td bgcolor='#FFFFBB'><a href='$url' target='cat_$folder'>$title</a></td></tr>";          "<td bgcolor='#FFFFBB'><a href='$url' target='cat_$folder'>$title</a></td></tr>";
     return $line;      return $line;
 }  }
Line 510  sub checkonthis { Line 506  sub checkonthis {
                  &Apache::lonxml::xmlparse($r,'web',                   &Apache::lonxml::xmlparse($r,'web',
                    &Apache::lonnet::getfile(                     &Apache::lonnet::getfile(
                     &Apache::lonnet::filelocation('',$url)));                      &Apache::lonnet::filelocation('',$url)));
    undef($Apache::lonhomework::parsing_a_problem);
  $ENV{'request.filename'}=$oldpath;   $ENV{'request.filename'}=$oldpath;
                  if (($Apache::lonxml::errorcount) ||                   if (($Apache::lonxml::errorcount) ||
                      ($Apache::lonxml::warningcount)) {                       ($Apache::lonxml::warningcount)) {
      if ($Apache::lonxml::errorcount) {       if ($Apache::lonxml::errorcount) {
                         $r->print('<font color="red"><b>'.                          $r->print('<img src="/adm/lonMisc/bomb.gif" /><font color="red"><b>'.
   $Apache::lonxml::errorcount.' '.    $Apache::lonxml::errorcount.' '.
   &mt('error(s)').'</b></font> ');    &mt('error(s)').'</b></font> ');
                      }                       }
Line 576  sub checkversions { Line 573  sub checkversions {
     my $r=shift;      my $r=shift;
     $r->print('<html><head><title>Check Versions</title></head>'.      $r->print('<html><head><title>Check Versions</title></head>'.
               &Apache::loncommon::bodytag('Check Course Document Versions'));                &Apache::loncommon::bodytag('Check Course Document Versions'));
     $hashtied=0;  
     &tiehash();  
     my $header='';      my $header='';
     my $startsel='';      my $startsel='';
     my $monthsel='';      my $monthsel='';
Line 586  sub checkversions { Line 581  sub checkversions {
     my $allsel='';      my $allsel='';
     my %changes=();      my %changes=();
     my $starttime=0;      my $starttime=0;
       my $haschanged=0;
       my %setversions=&Apache::lonnet::dump('resourceversions',
     $ENV{'course.'.$ENV{'request.course.id'}.'.domain'},
     $ENV{'course.'.$ENV{'request.course.id'}.'.num'});
   
       $hashtied=0;
       &tiehash();
       my %newsetversions=();
       if ($ENV{'form.setmostrecent'}) {
    $haschanged=1;
    foreach (keys %hash) {
       if ($_=~/^ids\_(\/res\/.+)$/) {
    $newsetversions{$1}='mostrecent';
       }
    }
       } elsif ($ENV{'form.setcurrent'}) {
    $haschanged=1;
    foreach (keys %hash) {
       if ($_=~/^ids\_(\/res\/.+)$/) {
    my $getvers=&Apache::lonnet::getversion($1);
    if ($getvers>0) {
       $newsetversions{$1}=$getvers;
    }
       }
    }
       } elsif ($ENV{'form.setversions'}) {
    $haschanged=1;
    foreach (keys %ENV) {
       if ($_=~/^form\.set_version_(.+)$/) {
    my $src=$1;
    &Apache::lonnet::logthis('Found: '.$1.' '.$ENV{$_});
    if (($ENV{$_}) && ($ENV{$_} ne $setversions{$src})) {
       $newsetversions{$src}=$ENV{$_};
    }
       }
    }
       }
       if ($haschanged) {
           if (&Apache::lonnet::put('resourceversions',\%newsetversions,
     $ENV{'course.'.$ENV{'request.course.id'}.'.domain'},
     $ENV{'course.'.$ENV{'request.course.id'}.'.num'}) eq 'ok') {
       $r->print('<h1>'.&mt('Your Version Settings have been Stored').'</h1>');
    } else {
       $r->print('<h1><font color="red">'.&mt('An Error Occured while Attempting to Store your Version Settings').'</font></h1>');
    }
    &changewarning($r,'');
       }
     if ($ENV{'form.timerange'} eq 'all') {      if ($ENV{'form.timerange'} eq 'all') {
 # show all documents  # show all documents
  $header=&mt('All Documents in Course');   $header=&mt('All Documents in Course');
    $allsel=1;
  foreach (keys %hash) {   foreach (keys %hash) {
     if ($_=~/^ids\_(\/res\/.+)$/) {      if ($_=~/^ids\_(\/res\/.+)$/) {
  my $src=$1;   my $src=$1;
Line 628  sub checkversions { Line 671  sub checkversions {
     $header=&mt('No content modifications yet.');      $header=&mt('No content modifications yet.');
  }   }
     }      }
       %setversions=&Apache::lonnet::dump('resourceversions',
     $ENV{'course.'.$ENV{'request.course.id'}.'.domain'},
     $ENV{'course.'.$ENV{'request.course.id'}.'.num'});
     my %lt=&Apache::lonlocal::texthash      my %lt=&Apache::lonlocal::texthash
       ('st' => 'Version changes since start of Course',        ('st' => 'Version changes since start of Course',
        'lm' => 'Version changes since last Month',         'lm' => 'Version changes since last Month',
        'lw' => 'Version changes since last Week',         'lw' => 'Version changes since last Week',
        'sy' => 'Version changes since Yesterday',         'sy' => 'Version changes since Yesterday',
                'al' => 'All Resources',                 'al' => 'All Resources (possibly large output)',
        'sd' => 'Display',         'sd' => 'Display',
        'fi' => 'File',         'fi' => 'File',
        'md' => 'Modification Date',         'md' => 'Modification Date',
                'mr' => 'Most recently published Version',                 'mr' => 'Most recently published Version',
        've' => 'Version used in Course',         've' => 'Version used in Course',
                'vu' => 'Set Version to be used in Course',                  'vu' => 'Set Version to be used in Course',
   'sv' => 'Set Versions to be used in Course according to Selections below',
   'sm' => 'Keep all Resources up-to-date with most recent Versions (default)',
   'sc' => 'Set all Resource Versions to current Version (Fix Versions)',
        'di' => 'Differences');         'di' => 'Differences');
     $r->print(<<ENDHEADERS);      $r->print(<<ENDHEADERS);
 <form action="/adm/coursedocs" method="post">  <form action="/adm/coursedocs" method="post">
   <input type="hidden" name="versions" value="1" />
   <input type="submit" name="setmostrecent" value="$lt{'sm'}" />
   <input type="submit" name="setcurrent" value="$lt{'sc'}" /><hr />
 <select name="timerange">  <select name="timerange">
 <option value='all' $allsel>$lt{'al'}</option>  <option value='all' $allsel>$lt{'al'}</option>
 <option value="-1" $startsel>$lt{'st'}</option>  <option value="-1" $startsel>$lt{'st'}</option>
Line 650  sub checkversions { Line 702  sub checkversions {
 <option value="604800" $weeksel>$lt{'lw'}</option>  <option value="604800" $weeksel>$lt{'lw'}</option>
 <option value="86400" $daysel>$lt{'sy'}</option>  <option value="86400" $daysel>$lt{'sy'}</option>
 </select>  </select>
 <input type="submit" name="versions" value="$lt{'sd'}" />  <input type="submit" name="display" value="$lt{'sd'}" />
 </form>  
 <h3>$header</h3>  <h3>$header</h3>
   <input type="submit" name="setversions" value="$lt{'sv'}" />
 <table border="2">  <table border="2">
 <tr>  <tr>
 <th>$lt{'fi'}</th><th>$lt{'md'}</th><th>$lt{'mr'}</th>  <th>$lt{'fi'}</th><th>$lt{'md'}</th><th>$lt{'mr'}</th>
 <th>$lt{'ve'}</th><th>$lt{'vu'}</th><th>$lt{'di'}</th></tr>  <th>$lt{'ve'}</th><th>$lt{'vu'}</th><th>$lt{'di'}</th></tr>
 ENDHEADERS  ENDHEADERS
     foreach (keys %changes) {      foreach (sort keys %changes) {
  if ($changes{$_}>$starttime) {   if ($changes{$_}>$starttime) {
     my ($root,$extension)=($_=~/^(.*)\.(\w+)$/);      my ($root,$extension)=($_=~/^(.*)\.(\w+)$/);
     my $currentversion=&Apache::lonnet::getversion($_);      my $currentversion=&Apache::lonnet::getversion($_);
       if ($currentversion<0) {
    $currentversion=&mt('Could not be determined.');
       }
     my $linkurl=&Apache::lonnet::clutter($_);      my $linkurl=&Apache::lonnet::clutter($_);
     $r->print(      $r->print(
       '<tr><td><a href="'.$linkurl.'" target="cat">'.$linkurl.        '<tr><td><b>'.
         &Apache::lonnet::gettitle($linkurl).
      '</b><br /><a href="'.$linkurl.'" target="cat">'.$linkurl.
       '</a></td><td>'.        '</a></td><td>'.
       &Apache::lonlocal::locallocaltime($changes{$_}).        &Apache::lonlocal::locallocaltime($changes{$_}).
                       '</td><td><font size="+2">'.                        '</td><td><font size="+2">'.
       $currentversion.'</font></td><td><font size="+2">');        $currentversion.'</font></td><td><font size="+2">');
 # Used in course  # Used in course
     my $usedversion=$hash{'version_'.$linkurl};      my $usedversion=$hash{'version_'.$linkurl};
     if ($usedversion) {      if (($usedversion) && ($usedversion ne 'mostrecent')) {
  $r->print($usedversion);   $r->print($usedversion);
     } else {      } else {
  $r->print($currentversion);   $r->print($currentversion);
     }      }
     $r->print('</font></td><td>');      $r->print('</font></td><td>');
 # Set version  # Set version
     $r->print(&Apache::loncommon::select_form($usedversion,      $r->print(&Apache::loncommon::select_form($setversions{$linkurl},
       'set_version_'.$linkurl,        'set_version_'.$linkurl,
       ('' => '',        ('' => '',
        'current' => 'current',         'mostrecent' => 'most recent',
        map {$_,$_} (1..$currentversion))));         map {$_,$_} (1..$currentversion))));
     $r->print('</td><td>');      $r->print('</td><td><font size="1"><ul>');
     my $lastold=1;      my $lastold=1;
     for (my $prevvers=1;$prevvers<$currentversion;$prevvers++) {      for (my $prevvers=1;$prevvers<$currentversion;$prevvers++) {
  my $url=$root.'.'.$prevvers.'.'.$extension;   my $url=$root.'.'.$prevvers.'.'.$extension;
Line 694  ENDHEADERS Line 751  ENDHEADERS
     }      }
             for (my $prevvers=$lastold;$prevvers<$currentversion;$prevvers++) {              for (my $prevvers=$lastold;$prevvers<$currentversion;$prevvers++) {
  my $url=$root.'.'.$prevvers.'.'.$extension;   my $url=$root.'.'.$prevvers.'.'.$extension;
  $r->print('<a href="'.&Apache::lonnet::clutter($url).   $r->print('<li><a href="'.&Apache::lonnet::clutter($url).
   '">'.&mt('Version').' '.$prevvers.' ('.    '">'.&mt('Version').' '.$prevvers.'</a> ('.
   &Apache::lonlocal::locallocaltime(&Apache::lonnet::metadata($url,'lastrevisiondate')).    &Apache::lonlocal::locallocaltime(&Apache::lonnet::metadata($url,'lastrevisiondate')).
   ')</a>');    ')');
  if (&Apache::loncommon::fileembstyle($extension) eq 'ssi') {   if (&Apache::loncommon::fileembstyle($extension) eq 'ssi') {
                     $r->print(' <a href="/adm/diff?filename='.                      $r->print(' <a href="/adm/diff?filename='.
       &Apache::lonnet::clutter($root.'.'.$extension).        &Apache::lonnet::clutter($root.'.'.$extension).
       '&versionone='.$prevvers.        '&versionone='.$prevvers.
       '">'.&mt('Diffs').'</a>');        '">'.&mt('Diffs').'</a>');
  }   }
  $r->print('<br />');   $r->print('</li>');
     }      }
     $r->print('</td></tr>');      $r->print('</ul></font></td></tr>');
  }   }
     }      }
     $r->print('</table>');      $r->print('</table></form>');
     $r->print('<h1>'.&mt('Done').'.</h1>');      $r->print('<h1>'.&mt('Done').'.</h1>');
   
     &untiehash();      &untiehash();
 }  }
   
   sub changewarning {
       my ($r,$postexec)=@_;
       $r->print(
   '<script>function reinit(tf) { tf.submit();'.$postexec.' }</script>'. 
   '<form method="post" action="/adm/roles" target="loncapaclient">'.
   '<input type="hidden" name="orgurl" value="/adm/coursedocs" /><input type="hidden" name="selectrole" value="1" /><h3><font color="red">'.
   &mt('Changes will become active for your current session after').
   ' <input type="hidden" name="'.
   $ENV{'request.role'}.'" value="1" /><input type="button" value="'.
   &mt('re-initializing course').'" onClick="reinit(this.form)"/>'.&mt(', or the next time you log in.').
   $help{'Caching'}.'</font></h3></form>');
   }
   
 # ================================================================ Main Handler  # ================================================================ Main Handler
 sub handler {  sub handler {
     my $r = shift;      my $r = shift;
Line 722  sub handler { Line 792  sub handler {
     $r->send_http_header;      $r->send_http_header;
     return OK if $r->header_only;      return OK if $r->header_only;
   
     &Apache::lonlocal::clearreroutetrans();  
 # --------------------------------------------- Initialize help topics for this  # --------------------------------------------- Initialize help topics for this
   foreach ('Adding_Course_Doc','Main_Course_Documents',    foreach ('Adding_Course_Doc','Main_Course_Documents',
            'Adding_External_Resource','Navigate_Content',             'Adding_External_Resource','Navigate_Content',
Line 893  ENDNEWSCRIPT Line 962  ENDNEWSCRIPT
 # -------------------------------------------------------------------- Body tag  # -------------------------------------------------------------------- Body tag
   $r->print('</head>'.    $r->print('</head>'.
             &Apache::loncommon::bodytag('Course Documents','',$events,              &Apache::loncommon::bodytag('Course Documents','',$events,
  '','',$showdoc));   '','',$showdoc).
       &Apache::loncommon::help_open_faq(273).
       &Apache::loncommon::help_open_bug('RAT'));
   unless ($showdoc) {    unless ($showdoc) {
 # -----------------------------------------------------------------------------  # -----------------------------------------------------------------------------
        my %lt=&Apache::lonlocal::texthash(         my %lt=&Apache::lonlocal::texthash(
Line 914  ENDNEWSCRIPT Line 985  ENDNEWSCRIPT
                 'sipr' => 'Simple Problem',                  'sipr' => 'Simple Problem',
                 'scuf' => 'Score Upload Form',                  'scuf' => 'Score Upload Form',
                 'bull' => 'Bulletin Board',                  'bull' => 'Bulletin Board',
                 'mypi' => 'My Personal Info'                  'mypi' => 'My Personal Info',
                   'file' =>  'File',
                   'title' => 'Title',
                   'comment' => 'Comment' 
   );    );
 # -----------------------------------------------------------------------------  # -----------------------------------------------------------------------------
     if ($allowed) {      if ($allowed) {
Line 944  $dumpbut Line 1018  $dumpbut
 </form>  </form>
 ENDCOURSEVERIFY  ENDCOURSEVERIFY
        $r->print(&Apache::loncommon::help_open_topic('Docs_Adding_Course_Doc',         $r->print(&Apache::loncommon::help_open_topic('Docs_Adding_Course_Doc',
      'Editing the Table of Contents for your Course'));       &mt('Editing the Table of Contents for your Course')));
     }      }
 # --------------------------------------------------------- Standard documents  # --------------------------------------------------------- Standard documents
     $r->print('<table border=2 cellspacing=4 cellpadding=4>');      $r->print('<table border=2 cellspacing=4 cellpadding=4>');
Line 962  ENDCOURSEVERIFY Line 1036  ENDCOURSEVERIFY
        $hadchanges=0;         $hadchanges=0;
        &editor($r,$coursenum,$coursedom,$folder,$allowed);         &editor($r,$coursenum,$coursedom,$folder,$allowed);
        if ($hadchanges) {         if ($hadchanges) {
    $r->print(     &changewarning($r,$postexec);
 '<script>function reinit(tf) { tf.submit();'.$postexec.' }</script>'.   
 '<form method="post" action="/adm/roles" target="loncapaclient">'.  
 '<input type="hidden" name="orgurl" value="/adm/coursedocs" /><input type="hidden" name="selectrole" value="1" /><h3><font color="red">'.  
 &mt('Changes will become active for your current session after').  
 ' <input type="hidden" name="'.  
 $ENV{'request.role'}.'" value="1" /><input type="button" value="'.  
 &mt('re-initializing course').'" onClick="reinit(this.form)"/>'.&mt(', or the next time you log in.').  
 $help{'Caching'}.'</font></h3></form>');  
        }         }
        my $folderseq='/uploaded/'.$coursedom.'/'.$coursenum.'/default_'.time.         my $folderseq='/uploaded/'.$coursedom.'/'.$coursenum.'/default_'.time.
                      '.sequence';                       '.sequence';
Line 981  $help{'Caching'}.'</font></h3></form>'); Line 1047  $help{'Caching'}.'</font></h3></form>');
 <th bgcolor="#DDDDDD">$lt{'spec'}</th>  <th bgcolor="#DDDDDD">$lt{'spec'}</th>
 </tr>  </tr>
 <tr><td bgcolor="#DDDDDD">  <tr><td bgcolor="#DDDDDD">
 File:<br />  $lt{'file'}:<br />
 <form action="/adm/coursedocs" method="post" enctype="multipart/form-data">  <form action="/adm/coursedocs" method="post" enctype="multipart/form-data">
 <input type="file" name="uploaddoc" size="40">  <input type="file" name="uploaddoc" size="40">
 <br />  <br />
 Title:<br />  $lt{'title'}:<br />
 <input type="text" size="50" name="comment">  <input type="text" size="50" name="comment">
 <input type="hidden" name="folder" value="$folder">  <input type="hidden" name="folder" value="$folder">
 <input type="hidden" name="foldername" value="$ENV{'form.foldername'}">  <input type="hidden" name="foldername" value="$ENV{'form.foldername'}">
Line 1131  ENDFORM Line 1197  ENDFORM
 <tr><td bgcolor="#DDDDDD">  <tr><td bgcolor="#DDDDDD">
 <form action="/adm/coursedocs" method="post" enctype="multipart/form-data">  <form action="/adm/coursedocs" method="post" enctype="multipart/form-data">
 <input type="file" name="uploaddoc" size="40">  <input type="file" name="uploaddoc" size="40">
 <br />Comment:<br />  <br />$lt{'comment'}:<br />
 <textarea cols=50 rows=4 name='comment'>  <textarea cols=50 rows=4 name='comment'>
 </textarea>  </textarea>
 <input type="hidden" name="folder" value="$folder">  <input type="hidden" name="folder" value="$folder">
Line 1217  ENDSUPFORM Line 1283  ENDSUPFORM
          &entryline(0,&mt("Click to download or use your browser's Save Link function"),$showdoc).'</table></p>');           &entryline(0,&mt("Click to download or use your browser's Save Link function"),$showdoc).'</table></p>');
   }    }
  }   }
  $r->print(&Apache::lonlocal::endreroutetrans().'</body></html>');   $r->print('</body></html>');
  return OK;   return OK;
 }   } 
   

Removed from v.1.90  
changed lines
  Added in v.1.99


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