Diff for /loncom/interface/londocs.pm between versions 1.246 and 1.263

version 1.246, 2006/11/11 18:36:43 version 1.263, 2006/12/01 22:17:26
Line 147  sub dumpcourse { Line 147  sub dumpcourse {
     my $type = &Apache::loncommon::course_type();      my $type = &Apache::loncommon::course_type();
     $r->print(&Apache::loncommon::start_page('Dump '.$type.' DOCS to Construction Space').      $r->print(&Apache::loncommon::start_page('Dump '.$type.' DOCS to Construction Space').
       '<form name="dumpdoc" method="post">');        '<form name="dumpdoc" method="post">');
       $r->print(&Apache::lonhtmlcommon::breadcrumbs('Dump '.$type.' DOCS to Construction Space'));
     my ($home,$other,%outhash)=&authorhosts();      my ($home,$other,%outhash)=&authorhosts();
     unless ($home) { return ''; }      unless ($home) { return ''; }
     my $origcrsid=$env{'request.course.id'};      my $origcrsid=$env{'request.course.id'};
Line 315  sub exportcourse { Line 316  sub exportcourse {
             }              }
         }          }
         $r->print(&Apache::loncommon::start_page('Export '.lc($type).' to IMS content package'));          $r->print(&Apache::loncommon::start_page('Export '.lc($type).' to IMS content package'));
    $r->print(&Apache::lonhtmlcommon::breadcrumbs('Export '.lc($type).' to IMS content package'));
         $r->print($outcome);          $r->print($outcome);
         $r->print(&Apache::loncommon::end_page());          $r->print(&Apache::loncommon::end_page());
     } else {      } else {
Line 456  function containerCheck(item) { Line 458  function containerCheck(item) {
         |;          |;
  $r->print(&Apache::loncommon::start_page('Export '.lc($type).' to IMS content package',   $r->print(&Apache::loncommon::start_page('Export '.lc($type).' to IMS content package',
  $scripttag));   $scripttag));
    $r->print(&Apache::lonhtmlcommon::breadcrumbs('Export '.lc($type).' to IMS content package'));
  $r->print($display.'</table>'.   $r->print($display.'</table>'.
                   '<p><input type="hidden" name="finishexport" value="1">'.                    '<p><input type="hidden" name="finishexport" value="1">'.
                   '<input type="submit" name="exportcourse" value="'.                    '<input type="submit" name="exportcourse" value="'.
Line 933  sub group_import { Line 936  sub group_import {
     my $idx = &LONCAPA::map::getresidx($url);      my $idx = &LONCAPA::map::getresidx($url);
     $LONCAPA::map::order[$#LONCAPA::map::order+1]=$idx;      $LONCAPA::map::order[$#LONCAPA::map::order+1]=$idx;
     my $ext = 'false';      my $ext = 'false';
     if ($url=~/^http:\/\//) { $ext = 'true'; }      if ($url=~m{^http://} || $url=~m{^https://}) { $ext = 'true'; }
     $url =~ s/:/\&colon;/g;      $url =~ s/:/\&colon;/g;
     $name =~ s/:/\&colon;/g;      $name =~ s/:/\&colon;/g;
     $LONCAPA::map::resources[$idx] =       $LONCAPA::map::resources[$idx] = 
Line 954  sub breadcrumbs { Line 957  sub breadcrumbs {
     }      }
     my $folderpath;      my $folderpath;
     my $cpinfo='';      my $cpinfo='';
       my $plain='';
     if ($env{'form.markedcopy_url'}) {      if ($env{'form.markedcopy_url'}) {
        $cpinfo='&markedcopy_url='.         $cpinfo='&markedcopy_url='.
                &escape($env{'form.markedcopy_url'}).                 &escape($env{'form.markedcopy_url'}).
Line 986  sub breadcrumbs { Line 990  sub breadcrumbs {
        'text'=>'<font size="+1">'.         'text'=>'<font size="+1">'.
    $name.'</font>'     $name.'</font>'
        });         });
    $plain.=$name.' &gt; ';
     }      }
       $plain=~s/\&gt\;\s*$//;
     return (&Apache::lonhtmlcommon::breadcrumbs(undef,undef,0,'nohelp',      return (&Apache::lonhtmlcommon::breadcrumbs(undef,undef,0,'nohelp',
        'LC_docs_path'),$randompick,$ishidden,$isencrypted);         'LC_docs_path'),$randompick,$ishidden,$isencrypted,$plain);
   }
   
   sub log_docs {
       return &Apache::lonnet::instructor_log('docslog',@_);
   }
   
   {
       my @oldresources=();
       my @oldorder=();
       my $parmidx;
       my %parmaction=();
       my %parmvalue=();
       my $changedflag;
   
       sub snapshotbefore {
           @oldresources=@LONCAPA::map::resources;
           @oldorder=@LONCAPA::map::order;
           $parmidx=undef;
           %parmaction=();
           %parmvalue=();
           $changedflag=0;
       }
   
       sub remember_parms {
           my ($idx,$parameter,$action,$value)=@_;
           $parmidx=$idx;
           $parmaction{$parameter}=$action;
           $parmvalue{$parameter}=$value;
           $changedflag=1;
       }
   
       sub log_differences {
           my ($plain)=@_;
           my %storehash=('folder' => $plain,
                          'currentfolder' => $env{'form.folder'});
           if ($parmidx) {
              $storehash{'parameter_res'}=$oldresources[$parmidx];
              foreach my $parm (keys %parmaction) {
                 $storehash{'parameter_action_'.$parm}=$parmaction{$parm};
                 $storehash{'parameter_value_'.$parm}=$parmvalue{$parm};
              }
           }
           my $maxidx=$#oldresources;
           if ($#LONCAPA::map::resources>$#oldresources) {
              $maxidx=$#LONCAPA::map::resources;
           }
           for (my $idx=0; $idx<=$maxidx; $idx++) {
              if ($LONCAPA::map::resources[$idx] ne $oldresources[$idx]) {
                 $storehash{'before_resources_'.$idx}=$oldresources[$idx];
                 $storehash{'after_resources_'.$idx}=$LONCAPA::map::resources[$idx];
                 $changedflag=1;
              }
              if ($LONCAPA::map::order[$idx] ne $oldorder[$idx]) {
                 $storehash{'before_order_res_'.$idx}=$oldresources[$oldorder[$idx]];
                 $storehash{'after_order_res_'.$idx}=$LONCAPA::map::resources[$LONCAPA::map::order[$idx]];
                 $changedflag=1;
              }
           }
    $storehash{'maxidx'}=$maxidx;
           if ($changedflag) { &log_docs(\%storehash); }
       }
   }
   
   
   #
   # Docs Change Log
   #
   sub docs_change_log {
       my ($r)=@_;
       my $folder=$env{'form.folder'};
       $r->print(&Apache::loncommon::start_page('Course Document Change Log'));
       $r->print(&Apache::lonhtmlcommon::breadcrumbs('Course Document Change Log'));
       my %docslog=&Apache::lonnet::dump('nohist_docslog',
                                         $env{'course.'.$env{'request.course.id'}.'.domain'},
                                         $env{'course.'.$env{'request.course.id'}.'.num'});
   
       if ((keys(%docslog))[0]=~/^error\:/) { undef(%docslog); }
   
       $r->print('<form action="/adm/coursedocs" method="post" name="docslog">'.
                 '<input type="hidden" name="docslog" value="1" />');
   
       my %saveable_parameters = ('show' => 'scalar',);
       &Apache::loncommon::store_course_settings('docs_log',
                                                 \%saveable_parameters);
       &Apache::loncommon::restore_course_settings('docs_log',
                                                   \%saveable_parameters);
       if (!$env{'form.show'}) { $env{'form.show'}=10; }
       my %lt=('hiddenresource' => 'Resources hidden',
       'encrypturl'     => 'URL hidden',
       'randompick'     => 'Randomly pick',
       'set'            => 'set to',
       'del'            => 'deleted');
       $r->print(&Apache::loncommon::display_filter().
                 '<input type="hidden" name="folder" value="'.$folder.'" />'.
                 '<input type="submit" value="'.&mt('Display').'" /></form>');
       $r->print(&Apache::loncommon::start_data_table().&Apache::loncommon::start_data_table_header_row().
                 '<th>'.&mt('Time').'</th><th>'.&mt('User').'</th><th>'.&mt('Folder').'</th><th>'.&mt('Before').'</th><th>'.
                 &mt('After').'</th>'.
                 &Apache::loncommon::end_data_table_header_row());
       my $shown=0;
       foreach my $id (sort { $docslog{$b}{'exe_time'}<=>$docslog{$a}{'exe_time'} } (keys(%docslog))) {
    if ($env{'form.displayfilter'} eq 'currentfolder') {
       if ($docslog{$id}{'logentry'}{'currentfolder'} ne $folder) { next; }
    }
           my @changes=keys(%{$docslog{$id}{'logentry'}});
           if ($env{'form.displayfilter'} eq 'containing') {
       my $wholeentry=$docslog{$id}{'exe_uname'}.':'.$docslog{$id}{'exe_udom'}.':'.
    &Apache::loncommon::plainname($docslog{$id}{'exe_uname'},$docslog{$id}{'exe_udom'});
       foreach my $key (@changes) {
    $wholeentry.=':'.$docslog{$id}{'logentry'}{$key};
       }
       if ($wholeentry!~/\Q$env{'form.containingphrase'}\E/i) { next; }         
    }
           my $count = 0;
           my $time =
               &Apache::lonlocal::locallocaltime($docslog{$id}{'exe_time'});
           my $plainname =
               &Apache::loncommon::plainname($docslog{$id}{'exe_uname'},
                                             $docslog{$id}{'exe_udom'});
           my $about_me_link =
               &Apache::loncommon::aboutmewrapper($plainname,
                                                  $docslog{$id}{'exe_uname'},
                                                  $docslog{$id}{'exe_udom'});
           my $send_msg_link='';
           if ((($docslog{$id}{'exe_uname'} ne $env{'user.name'})
                || ($docslog{$id}{'exe_udom'} ne $env{'user.domain'}))) {
               $send_msg_link ='<br />'.
                   &Apache::loncommon::messagewrapper(&mt('Send message'),
                                                      $docslog{$id}{'exe_uname'},
                                                      $docslog{$id}{'exe_udom'});
           }
           $r->print(&Apache::loncommon::start_data_table_row());
           $r->print('<td>'.$time.'</td>
                          <td>'.$about_me_link.
                     '<br /><tt>'.$docslog{$id}{'exe_uname'}.
                                     ':'.$docslog{$id}{'exe_udom'}.'</tt>'.
                     $send_msg_link.'</td><td>'.
                     $docslog{$id}{'logentry'}{'folder'}.'</td><td>');
   # Before
    for (my $idx=0;$idx<=$docslog{$id}{'logentry'}{'maxidx'};$idx++) {
       my $oldname=(split(/\:/,$docslog{$id}{'logentry'}{'before_resources_'.$idx}))[0];
       my $newname=(split(/\:/,$docslog{$id}{'logentry'}{'after_resources_'.$idx}))[0];
       if ($oldname ne $newname) {
    $r->print(&LONCAPA::map::qtescape($oldname));
       }
    }
    $r->print('<ul>');
    for (my $idx=0;$idx<=$docslog{$id}{'logentry'}{'maxidx'};$idx++) {
               if ($docslog{$id}{'logentry'}{'before_order_res_'.$idx}) {
    $r->print('<li>'.&LONCAPA::map::qtescape((split(/\:/,$docslog{$id}{'logentry'}{'before_order_res_'.$idx}))[0]).'</li>');
       }
    }
    $r->print('</ul>');
   # After
           $r->print('</td><td>');
   
    for (my $idx=0;$idx<=$docslog{$id}{'logentry'}{'maxidx'};$idx++) {
       my $oldname=(split(/\:/,$docslog{$id}{'logentry'}{'before_resources_'.$idx}))[0];
       my $newname=(split(/\:/,$docslog{$id}{'logentry'}{'after_resources_'.$idx}))[0];
       if ($oldname ne $newname) {
    $r->print(&LONCAPA::map::qtescape($newname));
       }
    }        
    $r->print('<ul>');
    for (my $idx=0;$idx<=$docslog{$id}{'logentry'}{'maxidx'};$idx++) {
               if ($docslog{$id}{'logentry'}{'after_order_res_'.$idx}) {
    $r->print('<li>'.&LONCAPA::map::qtescape((split(/\:/,$docslog{$id}{'logentry'}{'after_order_res_'.$idx}))[0]).'</li>');
       }
    }
    $r->print('</ul>');
    if ($docslog{$id}{'logentry'}{'parameter_res'}) {
       $r->print(&LONCAPA::map::qtescape((split(/\:/,$docslog{$id}{'logentry'}{'parameter_res'}))[0]).':<ul>');
       foreach my $parameter ('randompick','hiddenresource','encrypturl') {
    if ($docslog{$id}{'logentry'}{'parameter_action_'.$parameter}) {
       $r->print('<li>'.
         &mt($lt{$parameter}.' '.$lt{$docslog{$id}{'logentry'}{'parameter_action_'.$parameter}}.' [_1]',
     $docslog{$id}{'logentry'}{'parameter_value_'.$parameter})
         .'</li>');
    }
       }
       $r->print('</ul>');
    }
   # End
           $r->print('</td>'.&Apache::loncommon::end_data_table_row());
           $shown++;
           if (!($env{'form.show'} eq &mt('all')
                 || $shown<=$env{'form.show'})) { last; }
       }
       $r->print(&Apache::loncommon::end_data_table());
       $r->print(&Apache::loncommon::end_page());
 }  }
   
 sub editor {  sub editor {
Line 1013  sub editor { Line 1209  sub editor {
  $env{'form.markedcopy_title'}=$title;   $env{'form.markedcopy_title'}=$title;
  $env{'form.markedcopy_url'}=$url;   $env{'form.markedcopy_url'}=$url;
     }      }
     my ($breadcrumbtrail,$randompick,$ishidden,$isencrypted)=&breadcrumbs($folder);      my ($breadcrumbtrail,$randompick,$ishidden,$isencrypted,$plain)=&breadcrumbs($folder);
     $r->print($breadcrumbtrail);      $r->print($breadcrumbtrail);
     if ($fatal) {      if ($fatal) {
    $r->print('<p><font color="red">'.$errtext.'</font></p>');     $r->print('<p><font color="red">'.$errtext.'</font></p>');
Line 1023  sub editor { Line 1219  sub editor {
 # ---------------- if they are for this folder and user allowed to make changes  # ---------------- if they are for this folder and user allowed to make changes
  if (($allowed) && ($env{'form.folder'} eq $folder)) {   if (($allowed) && ($env{'form.folder'} eq $folder)) {
 # set parameters and change order  # set parameters and change order
     if (defined($env{'form.setparms'})) {              &snapshotbefore();
       if ($env{'form.changeparms'}) {
  my $idx=$env{'form.setparms'};   my $idx=$env{'form.setparms'};
 # set parameters  # set parameters
  if ($env{'form.randpick_'.$idx}) {   if ($env{'form.changeparms'} eq 'randompick') {
     &LONCAPA::map::storeparameter($idx,'parameter_randompick',$env{'form.randpick_'.$idx},'int_pos');      if ($env{'form.randpick_'.$idx}) {
  } else {   &LONCAPA::map::storeparameter($idx,'parameter_randompick',$env{'form.randpick_'.$idx},'int_pos');
     &LONCAPA::map::delparameter($idx,'parameter_randompick');   &remember_parms($idx,'randompick','set',$env{'form.randpick_'.$idx});
       } else {
    &LONCAPA::map::delparameter($idx,'parameter_randompick');
    &remember_parms($idx,'randompick','del');
       }
  }   }
  if ($env{'form.hidprs_'.$idx}) {   if ($env{'form.changeparms'} eq 'hiddenresource') {
     &LONCAPA::map::storeparameter($idx,'parameter_hiddenresource','yes','string_yesno');      if ($env{'form.hidprs_'.$idx}) {
  } else {   &LONCAPA::map::storeparameter($idx,'parameter_hiddenresource','yes','string_yesno');
     &LONCAPA::map::delparameter($idx,'parameter_hiddenresource');   &remember_parms($idx,'hiddenresource','set',$env{'form.hidprs_'.$idx});
       } else {
    &LONCAPA::map::delparameter($idx,'parameter_hiddenresource');
    &remember_parms($idx,'hiddenresource','del');
       }
  }   }
  if ($env{'form.encprs_'.$idx}) {   if ($env{'form.changeparms'} eq 'encrypturl') {
     &LONCAPA::map::storeparameter($idx,'parameter_encrypturl','yes','string_yesno');      if ($env{'form.encprs_'.$idx}) {
  } else {   &LONCAPA::map::storeparameter($idx,'parameter_encrypturl','yes','string_yesno');
     &LONCAPA::map::delparameter($idx,'parameter_encrypturl');   &remember_parms($idx,'encrypturl','set',$env{'form.encprs_'.$idx});
       } else {
    &LONCAPA::map::delparameter($idx,'parameter_encrypturl');
    &remember_parms($idx,'encrypturl','del');
       }
    }
   # store the changed version
    ($errtext,$fatal)=&storemap($coursenum,$coursedom,$folder.'.'.$container);
    if ($fatal) {
       $r->print('<p><font color="red">'.$errtext.'</font></p>');
       return;
  }   }
       }
   
  if ($env{'form.newpos'}) {      if ($env{'form.newpos'}) {
 # change order  # change order
    my $newpos=$env{'form.newpos'}-1;
     my $newpos=$env{'form.newpos'}-1;   my $currentpos=$env{'form.currentpos'}-1;
     my $currentpos=$env{'form.currentpos'}-1;   my $i;
     my $i;   my @neworder=();
     my @neworder=();   if ($newpos>$currentpos) {
     if ($newpos>$currentpos) {  
 # moving stuff up  # moving stuff up
  for ($i=0;$i<$currentpos;$i++) {      for ($i=0;$i<$currentpos;$i++) {
     $neworder[$i]=$LONCAPA::map::order[$i];   $neworder[$i]=$LONCAPA::map::order[$i];
  }      }
  for ($i=$currentpos;$i<$newpos;$i++) {      for ($i=$currentpos;$i<$newpos;$i++) {
     $neworder[$i]=$LONCAPA::map::order[$i+1];   $neworder[$i]=$LONCAPA::map::order[$i+1];
  }      }
                         $neworder[$newpos]=$LONCAPA::map::order[$currentpos];      $neworder[$newpos]=$LONCAPA::map::order[$currentpos];
  for ($i=$newpos+1;$i<=$#LONCAPA::map::order;$i++) {      for ($i=$newpos+1;$i<=$#LONCAPA::map::order;$i++) {
     $neworder[$i]=$LONCAPA::map::order[$i];   $neworder[$i]=$LONCAPA::map::order[$i];
  }      }
     } else {   } else {
 # moving stuff down  # moving stuff down
  for ($i=0;$i<$newpos;$i++) {      for ($i=0;$i<$newpos;$i++) {
     $neworder[$i]=$LONCAPA::map::order[$i];   $neworder[$i]=$LONCAPA::map::order[$i];
  }      }
  $neworder[$newpos]=$LONCAPA::map::order[$currentpos];      $neworder[$newpos]=$LONCAPA::map::order[$currentpos];
  for ($i=$newpos+1;$i<$currentpos+1;$i++) {      for ($i=$newpos+1;$i<$currentpos+1;$i++) {
     $neworder[$i]=$LONCAPA::map::order[$i-1];   $neworder[$i]=$LONCAPA::map::order[$i-1];
  }      }
  for ($i=$currentpos+1;$i<=$#LONCAPA::map::order;$i++) {      for ($i=$currentpos+1;$i<=$#LONCAPA::map::order;$i++) {
     $neworder[$i]=$LONCAPA::map::order[$i];   $neworder[$i]=$LONCAPA::map::order[$i];
  }  
     }      }
     @LONCAPA::map::order=@neworder;  
  }   }
    @LONCAPA::map::order=@neworder;
 # store the changed version  # store the changed version
   
  ($errtext,$fatal)=&storemap($coursenum,$coursedom,$folder.'.'.$container);   ($errtext,$fatal)=&storemap($coursenum,$coursedom,$folder.'.'.$container);
  if ($fatal) {   if ($fatal) {
     $r->print('<p><font color="red">'.$errtext.'</font></p>');      $r->print('<p><font color="red">'.$errtext.'</font></p>');
     return;      return;
  }   }
   
     }      }
   
     if ($env{'form.pastemarked'}) {      if ($env{'form.pastemarked'}) {
 # paste resource to end of list  # paste resource to end of list
                 my $url=$env{'form.markedcopy_url'};                  my $url=$env{'form.markedcopy_url'};
Line 1195  sub editor { Line 1408  sub editor {
     }      }
  }   }
 # Store the changed version  # Store the changed version
  ($errtext,$fatal)=group_import($coursenum, $coursedom, $folder,   ($errtext,$fatal)=&group_import($coursenum, $coursedom, $folder,
        $container,'londocs',@imports);         $container,'londocs',@imports);
  if ($fatal) {   if ($fatal) {
     $r->print('<p><font color="red">'.$errtext.'</font></p>');      $r->print('<p><font color="red">'.$errtext.'</font></p>');
Line 1222  sub editor { Line 1435  sub editor {
                    $r->print('<p><font color="red">'.&mt('No map selected.').'</font></p>');                     $r->print('<p><font color="red">'.&mt('No map selected.').'</font></p>');
                }                 }
            }             }
              &log_differences($plain);
        }         }
 # ---------------------------------------------------------------- End commands  # ---------------------------------------------------------------- End commands
 # ---------------------------------------------------------------- Print screen  # ---------------------------------------------------------------- Print screen
Line 1504  ENDCOPY Line 1718  ENDCOPY
 <input type="hidden" name="markedcopy_url" value="$env{'form.markedcopy_url'}" />  <input type="hidden" name="markedcopy_url" value="$env{'form.markedcopy_url'}" />
 <input type="hidden" name="markedcopy_title" value="$env{'form.markedcopy_title'}" />  <input type="hidden" name="markedcopy_title" value="$env{'form.markedcopy_title'}" />
 <input type="hidden" name="setparms" value="$orderidx" />  <input type="hidden" name="setparms" value="$orderidx" />
   <input type="hidden" name="changeparms" value="0" />
 <td><table border='0' cellspacing='2' cellpadding='0'>  <td><table border='0' cellspacing='2' cellpadding='0'>
 <tr><td bgcolor="#DDDDDD">  <tr><td bgcolor="#DDDDDD">
 <a href='/adm/coursedocs?cmd=up_$index&pagepath=$pagepath&pagesymb=$pagesymb$cpinfo'>  <a href='/adm/coursedocs?cmd=up_$index&pagepath=$pagepath&pagesymb=$pagesymb$cpinfo'>
Line 1535  ENDCOPY Line 1750  ENDCOPY
 <input type="hidden" name="markedcopy_url" value="$env{'form.markedcopy_url'}" />  <input type="hidden" name="markedcopy_url" value="$env{'form.markedcopy_url'}" />
 <input type="hidden" name="markedcopy_title" value="$env{'form.markedcopy_title'}" />  <input type="hidden" name="markedcopy_title" value="$env{'form.markedcopy_title'}" />
 <input type="hidden" name="setparms" value="$orderidx" />  <input type="hidden" name="setparms" value="$orderidx" />
   <input type="hidden" name="changeparms" value="0" />
 <td><table border='0' cellspacing='2' cellpadding='0'>  <td><table border='0' cellspacing='2' cellpadding='0'>
 <tr><td bgcolor="#DDDDDD">  <tr><td bgcolor="#DDDDDD">
 <a href='/adm/coursedocs?cmd=up_$index&folderpath=$folderpath$cpinfo'>  <a href='/adm/coursedocs?cmd=up_$index&folderpath=$folderpath$cpinfo'>
Line 1632  END Line 1848  END
                                               'parameter_encrypturl'))[0]=~/^yes$/i);                                                'parameter_encrypturl'))[0]=~/^yes$/i);
  $url.='folderpath='.&escape($folderpath).$cpinfo;   $url.='folderpath='.&escape($folderpath).$cpinfo;
  $parameterset='<label>'.&mt('Randomly Pick: ').   $parameterset='<label>'.&mt('Randomly Pick: ').
     '<input type="text" size="4" onChange="this.form.submit()" name="randpick_'.$orderidx.'" value="'.      '<input type="text" size="4" onChange="this.form.changeparms.value='."'randompick'".';this.form.submit()" name="randpick_'.$orderidx.'" value="'.
     (&LONCAPA::map::getparameter($orderidx,      (&LONCAPA::map::getparameter($orderidx,
                                               'parameter_randompick'))[0].                                                'parameter_randompick'))[0].
                                               '" />'.                                                '" />'.
Line 1671  END Line 1887  END
     ((&LONCAPA::map::getparameter($orderidx,'parameter_hiddenresource'))[0]=~/^yes$/i?' checked="1"':'');      ((&LONCAPA::map::getparameter($orderidx,'parameter_hiddenresource'))[0]=~/^yes$/i?' checked="1"':'');
  $line.=(<<ENDPARMS);   $line.=(<<ENDPARMS);
 <td bgcolor="#BBBBFF"><font size='-2'>  <td bgcolor="#BBBBFF"><font size='-2'>
 <nobr><label><input type="checkbox" name="hidprs_$orderidx" onClick="this.form.submit()" $hidtext /> $lt{'hd'}</label></nobr></td>  <nobr><label><input type="checkbox" name="hidprs_$orderidx" onClick="this.form.changeparms.value='hiddenresource';this.form.submit()" $hidtext /> $lt{'hd'}</label></nobr></td>
 <td bgcolor="#BBBBFF"><font size='-2'>  <td bgcolor="#BBBBFF"><font size='-2'>
 <nobr><label><input type="checkbox" name="encprs_$orderidx" onClick="this.form.submit()" $enctext /> $lt{'ec'}</label></nobr></td>  <nobr><label><input type="checkbox" name="encprs_$orderidx" onClick="this.form.changeparms.value='encrypturl';this.form.submit()" $enctext /> $lt{'ec'}</label></nobr></td>
 <td bgcolor="#BBBBFF"><font size="-2">$parameterset</font></td>  <td bgcolor="#BBBBFF"><font size="-2">$parameterset</font></td>
 ENDPARMS  ENDPARMS
     }      }
Line 1787  sub list_symbs { Line 2003  sub list_symbs {
     my ($r) = @_;      my ($r) = @_;
   
     $r->print(&Apache::loncommon::start_page('Symb List'));      $r->print(&Apache::loncommon::start_page('Symb List'));
       $r->print(&Apache::lonhtmlcommon::breadcrumbs('Symb List'));
     my $navmap = Apache::lonnavmaps::navmap->new();      my $navmap = Apache::lonnavmaps::navmap->new();
     $r->print("<pre>\n");      $r->print("<pre>\n");
     foreach my $res ($navmap->retrieveResources()) {      foreach my $res ($navmap->retrieveResources()) {
Line 1806  sub verifycontent { Line 2023  sub verifycontent {
    my $loaderror=&Apache::lonnet::overloaderror($r);     my $loaderror=&Apache::lonnet::overloaderror($r);
    if ($loaderror) { return $loaderror; }     if ($loaderror) { return $loaderror; }
    $r->print(&Apache::loncommon::start_page('Verify '.$type.' Documents'));     $r->print(&Apache::loncommon::start_page('Verify '.$type.' Documents'));
      $r->print(&Apache::lonhtmlcommon::breadcrumbs('Verify '.$type.' Documents'));
    $hashtied=0;     $hashtied=0;
    undef %alreadyseen;     undef %alreadyseen;
    %alreadyseen=();     %alreadyseen=();
Line 1841  sub checkversions { Line 2059  sub checkversions {
     my ($r) = @_;      my ($r) = @_;
     my $type = &Apache::loncommon::course_type();      my $type = &Apache::loncommon::course_type();
     $r->print(&Apache::loncommon::start_page("Check $type Document Versions"));      $r->print(&Apache::loncommon::start_page("Check $type Document Versions"));
       $r->print(&Apache::lonhtmlcommon::breadcrumbs("Check $type Document Versions"));
     my $header='';      my $header='';
     my $startsel='';      my $startsel='';
     my $monthsel='';      my $monthsel='';
Line 2132  sub changewarning { Line 2351  sub changewarning {
 $help{'Caching'}.'</font></h3></form>'."\n\n");  $help{'Caching'}.'</font></h3></form>'."\n\n");
 }  }
   
   # =========================================== Breadcrumbs for special functions
   
   sub init_breadcrumbs {
       my ($form,$text)=@_;
       &Apache::lonhtmlcommon::clear_breadcrumbs();
       &Apache::lonhtmlcommon::add_breadcrumb({href=>"/adm/coursedocs",
       text=>&Apache::loncommon::course_type()." Documents",
       faq=>273,
       bug=>'Instructor Interface',
                                               help => 'Docs_Adding_Course_Doc'});
       &Apache::lonhtmlcommon::add_breadcrumb({href=>"/adm/coursedocs?".$form.'=1',
       text=>$text,
       faq=>273,
       bug=>'Instructor Interface'});
   }
   
 # ================================================================ Main Handler  # ================================================================ Main Handler
 sub handler {  sub handler {
     my $r = shift;      my $r = shift;
Line 2160  sub handler { Line 2395  sub handler {
     'Docs_About_Bulletin_Board,Docs_Editing_Templated_Pages');      'Docs_About_Bulletin_Board,Docs_Editing_Templated_Pages');
     $help{'My Personal Info'} = &Apache::loncommon::help_open_topic(      $help{'My Personal Info'} = &Apache::loncommon::help_open_topic(
   'Docs_About_My_Personal_Info,Docs_Editing_Templated_Pages');    'Docs_About_My_Personal_Info,Docs_Editing_Templated_Pages');
       $help{'Group Files'} = &Apache::loncommon::help_open_topic('Docs_About_Group_Files');
     $help{'Caching'} = &Apache::loncommon::help_open_topic('Caching');      $help{'Caching'} = &Apache::loncommon::help_open_topic('Caching');
   
 # does this user have privileges to modify docs  # does this user have privileges to modify docs
     my $allowed=&Apache::lonnet::allowed('mdc',$env{'request.course.id'});      my $allowed=&Apache::lonnet::allowed('mdc',$env{'request.course.id'});
   
   if ($allowed && $env{'form.verify'}) {    if ($allowed && $env{'form.verify'}) {
         &init_breadcrumbs('verify','Verify Content');
       &verifycontent($r);        &verifycontent($r);
   } elsif ($allowed && $env{'form.listsymbs'}) {    } elsif ($allowed && $env{'form.listsymbs'}) {
         &init_breadcrumbs('listsymbs','List Symbs');
       &list_symbs($r);        &list_symbs($r);
     } elsif ($allowed && $env{'form.docslog'}) {
         &init_breadcrumbs('docslog','Show Log');
         &docs_change_log($r);
   } elsif ($allowed && $env{'form.versions'}) {    } elsif ($allowed && $env{'form.versions'}) {
         &init_breadcrumbs('versions','Check/Set Resource Versions');
       &checkversions($r);        &checkversions($r);
   } elsif ($allowed && $env{'form.dumpcourse'}) {    } elsif ($allowed && $env{'form.dumpcourse'}) {
         &init_breadcrumbs('dumpcourse','Dump '.&Apache::loncommon::course_type().' DOCS to Construction Space');
       &dumpcourse($r);        &dumpcourse($r);
   } elsif ($allowed && $env{'form.exportcourse'}) {    } elsif ($allowed && $env{'form.exportcourse'}) {
         &init_breadcrumbs('exportcourse','Export '.&Apache::loncommon::course_type().' to IMS');
       &exportcourse($r);        &exportcourse($r);
   } else {    } else {
 # is this a standard course?  # is this a standard course?
Line 2352  sub handler { Line 2595  sub handler {
                 'scuf' => 'Score Upload Form',                  'scuf' => 'Score Upload Form',
                 'bull' => 'Bulletin Board',                  'bull' => 'Bulletin Board',
                 'mypi' => 'My Personal Info',                  'mypi' => 'My Personal Info',
                   'grpo' => 'Group Files',
  'abou' => 'About User',   'abou' => 'About User',
                 'imsf' => 'Import IMS package',                  'imsf' => 'Import IMS package',
                 'file' =>  'File',                  'file' =>  'File',
Line 2367  sub handler { Line 2611  sub handler {
  'vc' => 'Verify Content',   'vc' => 'Verify Content',
  'cv' => 'Check/Set Resource Versions',   'cv' => 'Check/Set Resource Versions',
  'ls' => 'List Symbs',   'ls' => 'List Symbs',
                                            'sl' => 'Show Log'
   );    );
   
        my $folderpath=$env{'form.folderpath'};         my $folderpath=$env{'form.folderpath'};
Line 2390  sub handler { Line 2635  sub handler {
 $containertag  $containertag
 </form>  </form>
 <form name="simpleedit" method="post" action="/adm/coursedocs">  <form name="simpleedit" method="post" action="/adm/coursedocs">
 <input type=hidden name="importdetail" value="">  <input type="hidden" name="importdetail" value="" />
 $uploadtag  $uploadtag
 </form>  </form>
 <form action="/adm/coursedocs" method="post" name="courseverify">  <form action="/adm/coursedocs" method="post" name="courseverify">
Line 2403  $dumpbut Line 2648  $dumpbut
 $exportbut  $exportbut
 </td><td bgcolor="#DDDDCC">  </td><td bgcolor="#DDDDCC">
     <input type="submit" name="listsymbs" value="$lt{'ls'}" />      <input type="submit" name="listsymbs" value="$lt{'ls'}" />
   </td><td bgcolor="#DDDDCC">
       <input type="hidden" name="folder" value="$env{'form.folder'}" />
       <input type="submit" name="docslog" value="$lt{'sl'}" />
 </td></tr></table>  </td></tr></table>
 </form>  </form>
 ENDCOURSEVERIFY  ENDCOURSEVERIFY
Line 2502  ENDFORM Line 2750  ENDFORM
 <hr />  <hr />
 <form action="/adm/coursedocs" method="post" name="newext">  <form action="/adm/coursedocs" method="post" name="newext">
 $uploadtag  $uploadtag
 <input type=hidden name="importdetail" value="">  <input type="hidden" name="importdetail" value="" />
 <nobr>  <nobr>
 <input name="newext" type="button" onClick="javascript:makenewext('newext');"  <input name="newext" type="button" onClick="javascript:makenewext('newext');"
 value="$lt{'extr'}" /> $help{'Adding_External_Resource'}  value="$lt{'extr'}" /> $help{'Adding_External_Resource'}
Line 2520  ENDFORM Line 2768  ENDFORM
            $r->print(<<ENDFORM);             $r->print(<<ENDFORM);
 <br /><form action="/adm/coursedocs" method="post" name="newfolder">  <br /><form action="/adm/coursedocs" method="post" name="newfolder">
 <input type="hidden" name="folderpath" value="$env{'form.folderpath'}" />  <input type="hidden" name="folderpath" value="$env{'form.folderpath'}" />
 <input type=hidden name="importdetail" value="">  <input type="hidden" name="importdetail" value="" />
 <nobr>  <nobr>
 <input name="newfolder" type="button"  <input name="newfolder" type="button"
 onClick="javascript:makenewfolder(this.form,'$folderseq');"  onClick="javascript:makenewfolder(this.form,'$folderseq');"
Line 2529  value="$lt{'newf'}" />$help{'Adding_Fold Line 2777  value="$lt{'newf'}" />$help{'Adding_Fold
 </form>  </form>
 <br /><form action="/adm/coursedocs" method="post" name="newpage">  <br /><form action="/adm/coursedocs" method="post" name="newpage">
 <input type="hidden" name="folderpath" value="$env{'form.folderpath'}" />  <input type="hidden" name="folderpath" value="$env{'form.folderpath'}" />
 <input type=hidden name="importdetail" value="">  <input type="hidden" name="importdetail" value="" />
 <nobr>  <nobr>
 <input name="newpage" type="button"  <input name="newpage" type="button"
 onClick="javascript:makenewpage(this.form,'$pageseq');"  onClick="javascript:makenewpage(this.form,'$pageseq');"
Line 2538  value="$lt{'newp'}" />$help{'Adding_Page Line 2786  value="$lt{'newp'}" />$help{'Adding_Page
 </form>  </form>
 <br /><form action="/adm/coursedocs" method="post" name="newsyl">  <br /><form action="/adm/coursedocs" method="post" name="newsyl">
 $uploadtag  $uploadtag
 <input type=hidden name="importdetail"   <input type="hidden" name="importdetail" 
 value="Syllabus=/public/$coursedom/$coursenum/syllabus">  value="Syllabus=/public/$coursedom/$coursenum/syllabus" />
 <nobr>  <nobr>
 <input name="newsyl" type="submit" value="$lt{'syll'}" />   <input name="newsyl" type="submit" value="$lt{'syll'}" /> 
  $help{'Syllabus'}   $help{'Syllabus'}
Line 2547  value="Syllabus=/public/$coursedom/$cour Line 2795  value="Syllabus=/public/$coursedom/$cour
 </form>  </form>
 <br /><form action="/adm/coursedocs" method="post" name="newnav">  <br /><form action="/adm/coursedocs" method="post" name="newnav">
 $uploadtag  $uploadtag
 <input type=hidden name="importdetail"   <input type="hidden" name="importdetail" 
 value="Navigate Content=/adm/navmaps">  value="Navigate Content=/adm/navmaps" />
 <nobr>  <nobr>
 <input name="newnav" type="submit" value="$lt{'navc'}" />  <input name="newnav" type="submit" value="$lt{'navc'}" />
 $help{'Navigate_Content'}  $help{'Navigate_Content'}
Line 2556  $help{'Navigate_Content'} Line 2804  $help{'Navigate_Content'}
 </form>  </form>
 <br /><form action="/adm/coursedocs" method="post" name="newsmppg">  <br /><form action="/adm/coursedocs" method="post" name="newsmppg">
 $uploadtag  $uploadtag
 <input type=hidden name="importdetail" value="">  <input type="hidden" name="importdetail" value="" />
 <nobr>  <nobr>
 <input name="newsmppg" type="button" value="$lt{'sipa'}"  <input name="newsmppg" type="button" value="$lt{'sipa'}"
 onClick="javascript:makesmppage();" /> $help{'Simple Page'}  onClick="javascript:makesmppage();" /> $help{'Simple Page'}
Line 2564  onClick="javascript:makesmppage();" /> $ Line 2812  onClick="javascript:makesmppage();" /> $
 </form>  </form>
 <br /><form action="/adm/coursedocs" method="post" name="newsmpproblem">  <br /><form action="/adm/coursedocs" method="post" name="newsmpproblem">
 $uploadtag  $uploadtag
 <input type=hidden name="importdetail" value="">  <input type="hidden" name="importdetail" value="" />
 <nobr>  <nobr>
 <input name="newsmpproblem" type="button" value="$lt{'sipr'}"  <input name="newsmpproblem" type="button" value="$lt{'sipr'}"
 onClick="javascript:makesmpproblem();" />$help{'Simple Problem'}  onClick="javascript:makesmpproblem();" />$help{'Simple Problem'}
Line 2572  onClick="javascript:makesmpproblem();" / Line 2820  onClick="javascript:makesmpproblem();" /
 </form>  </form>
 <br /><form action="/adm/coursedocs" method="post" name="newdropbox">  <br /><form action="/adm/coursedocs" method="post" name="newdropbox">
 $uploadtag        $uploadtag      
 <input type=hidden name="importdetail" value="">  <input type="hidden" name="importdetail" value="" />
 <nobr>            <nobr>          
 <input name="newdropbox" type="button" value="$lt{'drbx'}"  <input name="newdropbox" type="button" value="$lt{'drbx'}"
 onClick="javascript:makedropbox();" />  onClick="javascript:makedropbox();" />
Line 2580  onClick="javascript:makedropbox();" /> Line 2828  onClick="javascript:makedropbox();" />
 </form>   </form> 
 <br /><form action="/adm/coursedocs" method="post" name="newexamupload">  <br /><form action="/adm/coursedocs" method="post" name="newexamupload">
 $uploadtag  $uploadtag
 <input type=hidden name="importdetail" value="">  <input type="hidden" name="importdetail" value="" />
 <nobr>  <nobr>
 <input name="newexamupload" type="button" value="$lt{'scuf'}"  <input name="newexamupload" type="button" value="$lt{'scuf'}"
 onClick="javascript:makeexamupload();" />  onClick="javascript:makeexamupload();" />
Line 2589  $help{'Score_Upload_Form'} Line 2837  $help{'Score_Upload_Form'}
 </form>  </form>
 <br /><form action="/adm/coursedocs" method="post" name="newbul">  <br /><form action="/adm/coursedocs" method="post" name="newbul">
 $uploadtag  $uploadtag
 <input type=hidden name="importdetail" value="">  <input type="hidden" name="importdetail" value="" />
 <nobr>  <nobr>
 <input name="newbulletin" type="button" value="$lt{'bull'}"  <input name="newbulletin" type="button" value="$lt{'bull'}"
 onClick="javascript:makebulboard();" />  onClick="javascript:makebulboard();" />
Line 2598  $help{'Bulletin Board'} Line 2846  $help{'Bulletin Board'}
 </form>  </form>
 <br /><form action="/adm/coursedocs" method="post" name="newaboutme">  <br /><form action="/adm/coursedocs" method="post" name="newaboutme">
 $uploadtag  $uploadtag
 <input type=hidden name="importdetail"   <input type="hidden" name="importdetail" 
 value="$plainname=/adm/$udom/$uname/aboutme">  value="$plainname=/adm/$udom/$uname/aboutme" />
 <nobr>  <nobr>
 <input name="newaboutme" type="submit" value="$lt{'mypi'}" />  <input name="newaboutme" type="submit" value="$lt{'mypi'}" />
 $help{'My Personal Info'}  $help{'My Personal Info'}
Line 2607  $help{'My Personal Info'} Line 2855  $help{'My Personal Info'}
 </form>  </form>
 <br /><form action="/adm/coursedocs" method="post" name="newaboutsomeone">  <br /><form action="/adm/coursedocs" method="post" name="newaboutsomeone">
 $uploadtag  $uploadtag
 <input type=hidden name="importdetail" value="">  <input type="hidden" name="importdetail" value="" />
 <nobr>  <nobr>
 <input name="newaboutsomeone" type="button" value="$lt{'abou'}"   <input name="newaboutsomeone" type="button" value="$lt{'abou'}" 
 onClick="javascript:makeabout();" />  onClick="javascript:makeabout();" />
 </nobr>  </nobr>
 </form>  </form>
   <br /><form action="/adm/coursedocs" method="post" name="newgroupfiles">
   $uploadtag
   <input type="hidden" name="importdetail"
   value="Group Files=/adm/$coursedom/$coursenum/aboutme" />
   <nobr>
   <input name="newgroupfiles" type="submit" value="$lt{'grpo'}" />
   $help{'Group Files'}
   </nobr>
   </form>
 ENDFORM  ENDFORM
        }         }
        if ($env{'form.pagepath'}) {         if ($env{'form.pagepath'}) {
            $r->print(<<ENDBLOCK);             $r->print(<<ENDBLOCK);
 <form action="/adm/coursedocs" method="post" name="newsmpproblem">  <form action="/adm/coursedocs" method="post" name="newsmpproblem">
 $uploadtag  $uploadtag
 <input type=hidden name="importdetail" value="">  <input type="hidden" name="importdetail" value="" />
 <nobr>  <nobr>
 <input name="newsmpproblem" type="button" value="$lt{'sipr'}"  <input name="newsmpproblem" type="button" value="$lt{'sipr'}"
 onClick="javascript:makesmpproblem();" />$help{'Simple Problem'}  onClick="javascript:makesmpproblem();" />$help{'Simple Problem'}
Line 2627  onClick="javascript:makesmpproblem();" / Line 2884  onClick="javascript:makesmpproblem();" /
 </form>  </form>
 <br /><form action="/adm/coursedocs" method="post" name="newexamupload">  <br /><form action="/adm/coursedocs" method="post" name="newexamupload">
 $uploadtag  $uploadtag
 <input type=hidden name="importdetail" value="">  <input type="hidden" name="importdetail" value="" />
 <nobr>  <nobr>
 <input name="newexamupload" type="button" value="$lt{'scuf'}"  <input name="newexamupload" type="button" value="$lt{'scuf'}"
 onClick="javascript:makeexamupload();" />  onClick="javascript:makeexamupload();" />
Line 2691  $lt{'comment'}:<br /> Line 2948  $lt{'comment'}:<br />
 <td bgcolor="#DDDDDD">  <td bgcolor="#DDDDDD">
 <form action="/adm/coursedocs" method="post" name="supnewfolder">  <form action="/adm/coursedocs" method="post" name="supnewfolder">
 <input type="hidden" name="folderpath" value="$env{'form.folderpath'}" />  <input type="hidden" name="folderpath" value="$env{'form.folderpath'}" />
 <input type=hidden name="importdetail" value="">  <input type="hidden" name="importdetail" value="" />
 <nobr>  <nobr>
 <input name="newfolder" type="button"  <input name="newfolder" type="button"
 onClick="javascript:makenewfolder(this.form,'$folderseq');"  onClick="javascript:makenewfolder(this.form,'$folderseq');"
Line 2700  value="$lt{'newf'}" /> $help{'Adding_Fol Line 2957  value="$lt{'newf'}" /> $help{'Adding_Fol
 </form>  </form>
 <br /><form action="/adm/coursedocs" method="post" name="supnewext">  <br /><form action="/adm/coursedocs" method="post" name="supnewext">
 <input type="hidden" name="folderpath" value="$env{'form.folderpath'}" />  <input type="hidden" name="folderpath" value="$env{'form.folderpath'}" />
 <input type=hidden name="importdetail" value="">  <input type="hidden" name="importdetail" value="" />
 <nobr>  <nobr>
 <input name="newext" type="button"   <input name="newext" type="button" 
 onClick="javascript:makenewext('supnewext');"  onClick="javascript:makenewext('supnewext');"
Line 2709  value="$lt{'extr'}" /> $help{'Adding_Ext Line 2966  value="$lt{'extr'}" /> $help{'Adding_Ext
 </form>  </form>
 <br /><form action="/adm/coursedocs" method="post" name="supnewsyl">  <br /><form action="/adm/coursedocs" method="post" name="supnewsyl">
 <input type="hidden" name="folderpath" value="$env{'form.folderpath'}" />  <input type="hidden" name="folderpath" value="$env{'form.folderpath'}" />
 <input type=hidden name="importdetail"   <input type="hidden" name="importdetail" 
 value="Syllabus=/public/$coursedom/$coursenum/syllabus">  value="Syllabus=/public/$coursedom/$coursenum/syllabus" />
 <nobr>  <nobr>
 <input name="newsyl" type="submit" value="$lt{'syll'}" />  <input name="newsyl" type="submit" value="$lt{'syll'}" />
 $help{'Syllabus'}  $help{'Syllabus'}
Line 2718  $help{'Syllabus'} Line 2975  $help{'Syllabus'}
 </form>  </form>
 <br /><form action="/adm/coursedocs" method="post" name="subnewaboutme">  <br /><form action="/adm/coursedocs" method="post" name="subnewaboutme">
 <input type="hidden" name="folderpath" value="$env{'form.folderpath'}" />  <input type="hidden" name="folderpath" value="$env{'form.folderpath'}" />
 <input type=hidden name="importdetail"   <input type="hidden" name="importdetail" 
 value="$plainname=/adm/$udom/$uname/aboutme">  value="$plainname=/adm/$udom/$uname/aboutme" />
 <nobr>  <nobr>
 <input name="newaboutme" type="submit" value="$lt{'mypi'}" />  <input name="newaboutme" type="submit" value="$lt{'mypi'}" />
 $help{'My Personal Info'}  $help{'My Personal Info'}

Removed from v.1.246  
changed lines
  Added in v.1.263


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