Diff for /loncom/interface/londocs.pm between versions 1.325.2.4 and 1.334

version 1.325.2.4, 2010/01/22 01:07:08 version 1.334, 2009/02/03 14:16:39
Line 59  my $hadchanges; Line 59  my $hadchanges;
 my %help=();  my %help=();
   
   
   
 sub mapread {  sub mapread {
     my ($coursenum,$coursedom,$map)=@_;      my ($coursenum,$coursedom,$map)=@_;
     return      return
Line 120  sub dumpbutton { Line 119  sub dumpbutton {
     my $type = &Apache::loncommon::course_type();      my $type = &Apache::loncommon::course_type();
     if ($home+$other==0) { return ''; }      if ($home+$other==0) { return ''; }
     if ($home) {      if ($home) {
  return '<div>'.   return '<input type="submit" name="dumpcourse" value="'.
     '<input type="submit" name="dumpcourse" value="'.  
     &mt('Dump '.$type.' DOCS to Construction Space').'" />'.      &mt('Dump '.$type.' DOCS to Construction Space').'" />'.
     &Apache::loncommon::help_open_topic('Docs_Dump_Course_Docs').      &Apache::loncommon::help_open_topic('Docs_Dump_Course_Docs');
     '</div>';  
     } else {      } else {
  return '<div>'.   return '<div>'.
      &mt('Dump '.$type.       &mt('Dump '.$type.
Line 145  sub dumpcourse { Line 142  sub dumpcourse {
     my ($r) = @_;      my ($r) = @_;
     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" action="" method="post">');        '<form name="dumpdoc" method="post">');
     $r->print(&Apache::lonhtmlcommon::breadcrumbs('Dump '.$type.' DOCS to Construction Space'));      $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 ''; }
Line 265  sub dumpcourse { Line 262  sub dumpcourse {
   
 sub exportbutton {  sub exportbutton {
     my $type = &Apache::loncommon::course_type();      my $type = &Apache::loncommon::course_type();
     return '<input type="submit" name="exportcourse"'      return '<input type="submit" name="exportcourse" value="'.
           .' value="'.&mt('IMS Export').'"'              &mt('Export '.$type.' to IMS').'" />'.
           .' title="'.&mt('Export '.$type.' to IMS Package').'" />'.      &Apache::loncommon::help_open_topic('Docs_Export_Course_Docs');
     &Apache::loncommon::help_open_topic('Docs_Export_Course_Docs').'<br />';  
 }  }
   
   
Line 281  sub exportcourse { Line 277  sub exportcourse {
     my $numdisc = keys(%discussiontime);      my $numdisc = keys(%discussiontime);
     my $navmap = Apache::lonnavmaps::navmap->new();      my $navmap = Apache::lonnavmaps::navmap->new();
     if (!defined($navmap)) {      if (!defined($navmap)) {
         $r->print(&Apache::loncommon::start_page('Export '.$type.' to IMS Package').          $r->print(&Apache::loncommon::start_page('Export '.lc($type).' to IMS content package').
                   '<h2>'.&mt('IMS Export Failed').'</h2>'.                    '<h2>IMS Export Failed</h2>'.
                   '<div class="LC_error">');                    '<div class="LC_error">'.
         if ($crstype eq 'Community') {                    &mt('Unable to retrieve information about course contents').
             $r->print(&mt('Unable to retrieve information about community contents'));                    '</div><a href="/adm/coursedocs">'.&mt('Return to Course Editor').'</a>');
         } else {          &Apache::lonnet::logthis('IMS export failed - could not create navmap object in '.lc($type).':'.$env{'request.course.id'});
             $r->print(&mt('Unable to retrieve information about course contents'));  
         }  
         $r->print('</div><a href="/adm/coursedocs">');  
         if ($crstype eq 'Community') {  
             $r->print(&mt('Return to Community Editor'));  
         } else {  
             $r->print(&mt('Return to Course Editor'));  
         }  
         $r->print('</a>');  
         &Apache::lonnet::logthis('IMS export failed - could not create navmap object in '.lc($crstype).':'.$env{'request.course.id'});  
         return;          return;
     }      }
     my $it=$navmap->getIterator(undef,undef,undef,1,undef,undef);      my $it=$navmap->getIterator(undef,undef,undef,1,undef,undef);
Line 312  sub exportcourse { Line 298  sub exportcourse {
         my @exportitems = &Apache::loncommon::get_env_multiple('form.archive');          my @exportitems = &Apache::loncommon::get_env_multiple('form.archive');
         my @discussions = &Apache::loncommon::get_env_multiple('form.discussion');          my @discussions = &Apache::loncommon::get_env_multiple('form.discussion');
         if (@exportitems == 0 && @discussions == 0) {          if (@exportitems == 0 && @discussions == 0) {
             $outcome =               $outcome = '<br />As you did not select any content items or discussions for export, an IMS package has not been created.  Please <a href="javascript:history.go(-1)">go back</a> to select either content items or discussions for export';
                 '<p class="LC_warning">'  
                .&mt('As you did not select any content items or discussions'  
                    .' for export, an IMS package has not been created.')  
                .'</p>'  
                .'<p>'  
                .&mt('Please [_1]go back[_2] to select either content items'  
                    .' or discussions for export.'  
                        ,'<a href="javascript:history.go(-1)">'  
                        ,'</a>')  
                .'</p>';  
         } else {          } else {
             my $now = time;              my $now = time;
             my %symbs;              my %symbs;
Line 345  sub exportcourse { Line 321  sub exportcourse {
                 open(OUTPUT, "zip -r $imszip *  2> /dev/null |");                  open(OUTPUT, "zip -r $imszip *  2> /dev/null |");
                 close(OUTPUT);                  close(OUTPUT);
                 chdir $cwd;                  chdir $cwd;
                 $outcome .= '<p>'                  $outcome .= &mt('Download the zip file from <a href="[_1]">IMS '.lc($type).' archive</a><br />',$imszipfile,);
                            .&mt('[_1]Your IMS package[_2] is ready for download.'  
                                ,'<a href="'.$imszipfile.'">','</a>')  
                            .'</p>';  
                 if ($copyresult) {                  if ($copyresult) {
                     $outcome .= '<p class="LC_error">'                      $outcome .= &mt('The following errors occurred during export - [_1]',$copyresult);
                                .&mt('The following errors occurred during export - [_1]'  
                                    ,$copyresult)  
                                .'</p>';  
                 }                  }
             } else {              } else {
                 $outcome = '<p class="LC_error">'                  $outcome = '<br />'.&mt('Unfortunately you will not be able to retrieve an IMS archive of this posts at this time, because there was a problem creating a manifest file.').'<br />';
                           .&mt('Unfortunately you will not be able to retrieve'  
                               .' an IMS archive of this posts at this time,'  
                               .' because there was a problem creating a'  
                               .' manifest file.')  
                           .'</p>'  
                           .'<p><a href="javascript:history.go(-1)">'  
                           .&mt('Go Back')  
                           .'</a></p>';  
             }              }
         }          }
         $r->print(&Apache::loncommon::start_page('Export '.$type.' to IMS Package'));          $r->print(&Apache::loncommon::start_page('Export '.lc($type).' to IMS content package'));
         $r->print(&Apache::lonhtmlcommon::breadcrumbs('IMS Export'));   $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 {
         my $display='<form name="exportdoc" action="" method="post">'."\n".          my $display;
                     '<p>'.          $display = '<form name="exportdoc" method="post">'."\n";
                     &mt('Choose which items you wish to export from your '.$crstype.'.').          $display .= &mt('Choose which items you wish to export from your '.$type.'.<br /><br />');
                     '</p>'.          $display .= '<table border="0" cellspacing="0" cellpadding="3">'.
                     '<div class="LC_columnSection"><fieldset>'.                      '<tr><td><fieldset><legend>&nbsp;<b>Content items</b></legend>'.
                     '<legend>'.&mt('Content items').'</legend>'.                      '<input type="button" value="check all" '.
                     '<input type="button" value="'.&mt('check all').'" '.  
                     'onclick="javascript:checkAll(document.exportdoc.archive)" />'.                      'onclick="javascript:checkAll(document.exportdoc.archive)" />'.
                     '&nbsp;&nbsp;<input type="button" value="'.&mt('uncheck all').'"'.                      '&nbsp;&nbsp;<input type="button" value="uncheck all"'.
                     ' onclick="javascript:uncheckAll(document.exportdoc.archive)" /></fieldset>';                      ' onclick="javascript:uncheckAll(document.exportdoc.archive)" /></fieldset></td>'.
         if ($numdisc > 0) {                      '<td>&nbsp;</td><td>&nbsp;</td>'.
             $display .= '<fieldset>'.                      '<td align="right"><fieldset><legend>&nbsp;<b>Discussion posts'.
                         '<legend>'.&mt('Discussion posts').'</legend>'.                      '</b></legend><input type="button" value="check all"'.
                         '<input type="button" value="'.&mt('check all').'"'.                      ' onclick="javascript:checkAll(document.exportdoc.discussion)" />'.
                         ' onclick="javascript:checkAll(document.exportdoc.discussion)" />'.                      '&nbsp;&nbsp;<input type="button" value="uncheck all"'.
                         '&nbsp;&nbsp;<input type="button" value="'.&mt('uncheck all').'"'.                      ' onclick="javascript:uncheckAll(document.exportdoc.discussion)" /></fieldset></td>'.
                         ' onclick="javascript:uncheckAll(document.exportdoc.discussion)" />'.                      '</tr></table>';
                         '</fieldset>';  
         }  
         $display .= '</div>';  
         my $curRes;          my $curRes;
         my $depth = 0;          my $depth = 0;
         my $count = 0;          my $count = 0;
Line 400  sub exportcourse { Line 358  sub exportcourse {
         my %parent = ();          my %parent = ();
         my %children = ();          my %children = ();
         my $lastcontainer = $startcount;          my $lastcontainer = $startcount;
         $display .= &Apache::loncommon::start_data_table()          my @bgcolors = ('#F6F6F6','#FFFFFF');
                    .&Apache::loncommon::start_data_table_header_row()          $display .= '<table cellspacing="0"><tr>'.
                    .'<th>'.&mt('Export content item?').'</th>';              '<td><b>Export content item?<br /></b></td><td>&nbsp;</td><td align="right">'."\n";
         if ($numdisc > 0) {          if ($numdisc > 0) {
             $display .= '<th>'.&mt('Export discussion posts?').'</th>';              $display.='<b>Export&nbsp;discussion posts?</b>'."\n";
         }          }
         $display .= &Apache::loncommon::end_data_table_header_row();          $display.='&nbsp;</td></tr>';
         while ($curRes = $it->next()) {          while ($curRes = $it->next()) {
             if (ref($curRes)) {              if (ref($curRes)) {
                 $count ++;                  $count ++;
Line 427  sub exportcourse { Line 385  sub exportcourse {
                         $ressymb = 'bulletin___'.$3.'___adm/wrapper/adm/'.$1.'/'.$2.'/'.$3.'/bulletinboard';                          $ressymb = 'bulletin___'.$3.'___adm/wrapper/adm/'.$1.'/'.$2.'/'.$3.'/bulletinboard';
                     }                      }
                 }                  }
                 my $currelem = $count+$boards+$startcount;                  my $color = $count%2;
                 $display .= &Apache::loncommon::start_data_table_row()                  $display .='<tr bgcolor='.$bgcolors[$color].'><td>'."\n".
                            .'<td>'."\n"                      '<input type="checkbox" name="archive" value="'.$count.'" ';
                            .'<input type="checkbox" name="archive" value="'.$count.'" ';  
                 if (($curRes->is_sequence()) || ($curRes->is_page())) {                  if (($curRes->is_sequence()) || ($curRes->is_page())) {
                     $lastcontainer = $currelem;                      my $checkitem = $count + $boards + $startcount;
                     $display .= 'onclick="javascript:propagateCheck('."'$currelem'".')"';                      $display .= 'onClick="javascript:propagateCheck('."'$checkitem'".')"';
                 }                  }
                 $display .= ' />'."\n";                  $display .= ' />'."\n";
                 for (my $i=0; $i<$depth; $i++) {                  for (my $i=0; $i<$depth; $i++) {
                     $display .= ('<img src="/adm/lonIcons/whitespace1.gif" class="LC_docs_spacer" />' x2)."\n";                      $display .= '<img src="/adm/lonIcons/whitespace1.gif" class="LC_docs_spacer" /><img src="/adm/lonIcons/whitespace1.gif" class="LC_docs_spacer" />'."\n";
                 }                  }
                 if ($curRes->is_sequence()) {                  if ($curRes->is_sequence()) {
                     $display .= '<img src="/adm/lonIcons/navmap.folder.open.gif" alt="" />&nbsp;'."\n";                      $display .= '<img src="/adm/lonIcons/navmap.folder.open.gif">&nbsp;'."\n";
                       $lastcontainer = $count + $startcount + $boards;
                 } elsif ($curRes->is_page()) {                  } elsif ($curRes->is_page()) {
                     $display .= '<img src="/adm/lonIcons/navmap.page.open.gif" alt="" />&nbsp;'."\n";                      $display .= '<img src="/adm/lonIcons/navmap.page.open.gif">&nbsp;'."\n";
                       $lastcontainer = $count + $startcount + $boards;
                 }                  }
                   my $currelem = $count+$boards+$startcount;
                 $children{$parent{$depth}} .= $currelem.':';                  $children{$parent{$depth}} .= $currelem.':';
                 $display .= '&nbsp;'.$curRes->title().'</td>'."\n";                  $display .= '&nbsp;'.$curRes->title().'</td>';
   
                 # Existing discussion posts?  
   
                 if ($discussiontime{$ressymb} > 0) {                  if ($discussiontime{$ressymb} > 0) {
                     $boards ++;                      $boards ++;
                     $display .= '<td align="right">'                      $currelem = $count+$boards+$startcount;
                                .'<input type="checkbox" name="discussion" value="'.$count.'" />'                      $display .= '<td>&nbsp;</td><td align="right"><input type="checkbox" name="discussion" value="'.$count.'" />&nbsp;</td>'."\n";
                                .'</td>'."\n";  
                 } else {                  } else {
                     $display .= '<td>&nbsp;</td>'."\n";                      $display .= '<td colspan="2">&nbsp;</td>'."\n";
                 }                  }
                 $display .= &Apache::loncommon::end_data_table_row();  
             }              }
         }          }
         $display .= &Apache::loncommon::end_data_table();  
         my $scripttag = qq|          my $scripttag = qq|
 <script type="text/javascript">  <script>
 // <![CDATA[  
   
 function checkAll(field) {  function checkAll(field) {
     if (field.length > 0) {      if (field.length > 0) {
Line 515  function containerCheck(item) { Line 468  function containerCheck(item) {
      }          }   
 }  }
   
 // ]]>  
 </script>  </script>
         |;          |;
         $r->print(&Apache::loncommon::start_page('Export '.$type.' to IMS 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(&Apache::lonhtmlcommon::breadcrumbs('Export '.lc($type).' to IMS content package'));
  $r->print($display.   $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="'.
                   &mt('Export').'" /></p></form>');                    &mt('Export '.$type.' DOCS').'" /></p></form>');
     }      }
 }  }
   
Line 551  sub create_ims_store { Line 503  sub create_ims_store {
     my $manifestfilename = $$tempexport.$manifest;      my $manifestfilename = $$tempexport.$manifest;
     if ($ims_manifest = Apache::File->new('>'.$manifestfilename)) {      if ($ims_manifest = Apache::File->new('>'.$manifestfilename)) {
         $$manifestok=1;          $$manifestok=1;
         print $ims_manifest           print $ims_manifest
 '<?xml version="1.0" encoding="UTF-8"?>'."\n".  '<?xml version="1.0" encoding="UTF-8"?>'."\n".
 '<manifest xmlns="http://www.imsglobal.org/xsd/imscp_v1p1"'.  '<manifest xmlns="http://www.imsglobal.org/xsd/imscp_v1p1"'.
 ' xmlns:imsmd="http://www.imsglobal.org/xsd/imsmd_v1p2"'.  ' xmlns:imsmd="http://www.imsglobal.org/xsd/imsmd_v1p2"'.
Line 1271  sub update_paste_buffer { Line 1223  sub update_paste_buffer {
         &Apache::lonnet::appenv({'docs.markedcopy_supplemental' => $title});          &Apache::lonnet::appenv({'docs.markedcopy_supplemental' => $title});
  ($title) = &parse_supplemental_title($title);   ($title) = &parse_supplemental_title($title);
     } elsif ($env{'docs.markedcopy_supplemental'}) {      } elsif ($env{'docs.markedcopy_supplemental'}) {
         &Apache::lonnet::delenv('docs.markedcopy_supplemental');          &Apache::lonnet::delenv('docs\\.markedcopy_supplemental');
     }      }
     $url=~s{http(&colon;|:)//https(&colon;|:)//}{https$2//};      $url=~s{http(&colon;|:)//https(&colon;|:)//}{https$2//};
   
Line 1375  sub do_paste_from_buffer { Line 1327  sub do_paste_from_buffer {
     }      }
 # published maps can only exists once, so remove it from paste buffer when done  # published maps can only exists once, so remove it from paste buffer when done
     if (($url=~/\.(page|sequence)$/) && ($url=~m {^/res/})) {      if (($url=~/\.(page|sequence)$/) && ($url=~m {^/res/})) {
  &Apache::lonnet::delenv('docs.markedcopy');   &Apache::lonnet::delenv('docs\\.markedcopy');
     }      }
     if ($url=~ m{/smppg$}) {      if ($url=~ m{/smppg$}) {
  my $db_name = &Apache::lonsimplepage::get_db_name($url);   my $db_name = &Apache::lonsimplepage::get_db_name($url);
Line 1823  sub entryline { Line 1775  sub entryline {
  '<select name="newpos" onChange="this.form.submit()">';   '<select name="newpos" onChange="this.form.submit()">';
     for (my $i=1;$i<=$#LONCAPA::map::order+1;$i++) {      for (my $i=1;$i<=$#LONCAPA::map::order+1;$i++) {
  if ($i==$incindex) {   if ($i==$incindex) {
     $selectbox.='<option value="" selected="selected">('.$i.')</option>';      $selectbox.='<option value="" selected="1">('.$i.')</option>';
  } else {   } else {
     $selectbox.='<option value="'.$i.'">'.$i.'</option>';      $selectbox.='<option value="'.$i.'">'.$i.'</option>';
  }   }
Line 1947  END Line 1899  END
     }      }
           
     my $orig_url = $url;      my $orig_url = $url;
     $orig_url=~s{http(&colon;|:)//https(&colon;|:)//}{https$2//};  
     my $external = ($url=~s{^http(|s)(&colon;|:)//}{/adm/wrapper/ext/});      my $external = ($url=~s{^http(|s)(&colon;|:)//}{/adm/wrapper/ext/});
     if ((!$isfolder) && ($residx) && ($folder!~/supplemental/) && (!$ispage)) {      if ((!$isfolder) && ($residx) && ($folder!~/supplemental/) && (!$ispage)) {
  my $symb=&Apache::lonnet::symbclean(   my $symb=&Apache::lonnet::symbclean(
Line 2010  END Line 1961  END
     my $ro_set=      my $ro_set=
     ((&LONCAPA::map::getparameter($orderidx,'parameter_randomorder'))[0]=~/^yes$/i?' checked="checked"':'');      ((&LONCAPA::map::getparameter($orderidx,'parameter_randomorder'))[0]=~/^yes$/i?' checked="checked"':'');
  $rand_order_text ='   $rand_order_text ='
 <span class="LC_nobreak"><label><input type="checkbox" name="randomorder_'.$orderidx.'" onclick="this.form.changeparms.value=\'randomorder\';this.form.submit()" '.$ro_set.' /> '.&mt('Random Order').' </label></span>';     <span class="LC_nobreak"><label><input type="checkbox" name="randomorder_'.$orderidx.'" onClick="this.form.changeparms.value=\'randomorder\';this.form.submit()" '.$ro_set.' /> '.&mt('Random Order').' </label></span>';   
     }      }
     if ($ispage) {      if ($ispage) {
         my $pagename=&escape($pagetitle);          my $pagename=&escape($pagetitle);
Line 2048  END Line 1999  END
        'hd' => 'Hidden',         'hd' => 'Hidden',
        'ec' => 'URL hidden');         'ec' => 'URL hidden');
  my $enctext=   my $enctext=
     ((&LONCAPA::map::getparameter($orderidx,'parameter_encrypturl'))[0]=~/^yes$/i?' checked="checked"':'');      ((&LONCAPA::map::getparameter($orderidx,'parameter_encrypturl'))[0]=~/^yes$/i?' checked="1"':'');
  my $hidtext=   my $hidtext=
     ((&LONCAPA::map::getparameter($orderidx,'parameter_hiddenresource'))[0]=~/^yes$/i?' checked="checked"':'');      ((&LONCAPA::map::getparameter($orderidx,'parameter_hiddenresource'))[0]=~/^yes$/i?' checked="1"':'');
  $line.=(<<ENDPARMS);   $line.=(<<ENDPARMS);
   <td class="LC_docs_entry_parameter">    <td class="LC_docs_entry_parameter">
     $form_start      $form_start
     <label><input type="checkbox" name="hiddenresource_$orderidx" onclick="this.form.changeparms.value='hiddenresource';this.form.submit()" $hidtext /> $lt{'hd'}</label>      <label><input type="checkbox" name="hiddenresource_$orderidx" onClick="this.form.changeparms.value='hiddenresource';this.form.submit()" $hidtext /> $lt{'hd'}</label>
     $form_end      $form_end
   </td>    </td>
   <td class="LC_docs_entry_parameter">    <td class="LC_docs_entry_parameter">
     $form_start      $form_start
     <label><input type="checkbox" name="encrypturl_$orderidx" onclick="this.form.changeparms.value='encrypturl';this.form.submit()" $enctext /> $lt{'ec'}</label>      <label><input type="checkbox" name="encrypturl_$orderidx" onClick="this.form.changeparms.value='encrypturl';this.form.submit()" $enctext /> $lt{'ec'}</label>
     $form_end      $form_end
   </td>    </td>
   <td class="LC_docs_entry_parameter">$form_start $rand_order_text $form_end</td>    <td class="LC_docs_entry_parameter">$form_start $rand_order_text $form_end</td>
Line 2142  sub checkonthis { Line 2093  sub checkonthis {
                  if (($errorcount) ||                   if (($errorcount) ||
                      ($warningcount)) {                       ($warningcount)) {
      if ($errorcount) {       if ($errorcount) {
                         $r->print('<img src="/adm/lonMisc/bomb.gif" alt="'.&mt('bomb').'" /><span class="LC_error">'.                          $r->print('<img src="/adm/lonMisc/bomb.gif" /><span class="LC_error">'.
                           &mt('[quant,_1,error]',$errorcount).'</span>');                            &mt('[quant,_1,error]',$errorcount).'</span>');
                      }                       }
      if ($warningcount) {       if ($warningcount) {
Line 2167  sub checkonthis { Line 2118  sub checkonthis {
       unless ($url=~/\$/) {        unless ($url=~/\$/) {
   $r->print('<span class="LC_error">'.&mt('not found').'</b></span>');    $r->print('<span class="LC_error">'.&mt('not found').'</b></span>');
       } else {        } else {
   $r->print('<span class="LC_error">'.&mt('unable to verify variable URL').'</span>');    $r->print('<span class="LC_unknown">'.&mt('unable to verify variable URL').'</span>');
       }        }
           } else {            } else {
              $r->print('<span class="LC_error">'.&mt('access denied').'</span>');               $r->print('<span class="LC_error">'.&mt('access denied').'</span>');
Line 2532  sub changewarning { Line 2483  sub changewarning {
  $message='Changes will become active for your current session after [_1], or the next time you log in.';   $message='Changes will become active for your current session after [_1], or the next time you log in.';
     }      }
     $r->print("\n\n".      $r->print("\n\n".
 '<script type="text/javascript">'."\n".  '<script type="text/javascript">function reinit(tf) { tf.submit();'.$postexec.' }</script>'."\n". 
 '// <![CDATA['."\n".  
 'function reinit(tf) { tf.submit();'.$postexec.' }'."\n".  
 '// ]]>'."\n".  
 '</script>'."\n".  
 '<form name="reinitform" method="post" action="/adm/roles" target="loncapaclient">'.  '<form name="reinitform" method="post" action="/adm/roles" target="loncapaclient">'.
 '<input type="hidden" name="orgurl" value="'.$url.  '<input type="hidden" name="orgurl" value="'.$url.
 '" /><input type="hidden" name="selectrole" value="1" /><p class="LC_warning">'.  '" /><input type="hidden" name="selectrole" value="1" /><h3><span class="LC_warning">'.
 &mt($message,' <input type="hidden" name="'.  &mt($message,' <input type="hidden" name="'.
     $env{'request.role'}.'" value="1" /><input type="button" value="'.      $env{'request.role'}.'" value="1" /><input type="button" value="'.
     &mt('re-initializing '.$course_type).'" onclick="reinit(this.form)" />').      &mt('re-initializing '.$course_type).'" onClick="reinit(this.form)" />').
 $help{'Caching'}.'</p></form>'."\n\n");  $help{'Caching'}.'</span></h3></form>'."\n\n");
   
 }  }
   
   
Line 2572  sub handler { Line 2518  sub handler {
     return OK if $r->header_only;      return OK if $r->header_only;
     my $type = &Apache::loncommon::course_type();      my $type = &Apache::loncommon::course_type();
   
   
 # --------------------------------------------- Initialize help topics for this  # --------------------------------------------- Initialize help topics for this
     foreach my $topic ('Adding_Course_Doc','Main_Course_Documents',      foreach my $topic ('Adding_Course_Doc','Main_Course_Documents',
                'Adding_External_Resource','Navigate_Content',                 'Adding_External_Resource','Navigate_Content',
Line 2613  sub handler { Line 2560  sub handler {
       &init_breadcrumbs('dumpcourse','Dump '.&Apache::loncommon::course_type().' DOCS to Construction Space');        &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','IMS Export');        &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 2625  sub handler { Line 2572  sub handler {
     my $showdoc=0;      my $showdoc=0;
     my $containertag;      my $containertag;
     my $uploadtag;      my $uploadtag;
   
   
     &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},      &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},
     ['folderpath','pagepath',      ['folderpath','pagepath',
      'pagesymb']);       'pagesymb']);
Line 2697  sub handler { Line 2646  sub handler {
  $script .= &editing_js($udom,$uname);   $script .= &editing_js($udom,$uname);
     }      }
 # -------------------------------------------------------------------- Body tag  # -------------------------------------------------------------------- Body tag
     $script = '<script type="text/javascript">'."\n"      $script = '<script type="text/javascript">'."\n".$script."\n".'</script>';
               .'// <![CDATA['."\n"  
               .$script."\n"  
               .'// ]]>'."\n"  
               .'</script>'."\n";  
     my $brcrum = [{href=>"/adm/createuser",text=>"$type Documents"}];      my $brcrum = [{href=>"/adm/createuser",text=>"$type Documents"}];
     $r->print(&Apache::loncommon::start_page("$type Documents", $script,      $r->print(&Apache::loncommon::start_page("$type Documents", $script,
     {'force_register' => $showdoc,      {'force_register' => $showdoc,
Line 2801  sub handler { Line 2746  sub handler {
                 'uplm' => 'Upload a new main '.lc($type).' document',                  'uplm' => 'Upload a new main '.lc($type).' document',
                 'upls' => 'Upload a new supplemental '.lc($type).' document',                  'upls' => 'Upload a new supplemental '.lc($type).' document',
                 'impp' => 'Import a document',                  'impp' => 'Import a document',
                 'pubd' => 'Published documents',                  'pubd' => 'Published Documents',
  'copm' => 'All documents out of a published map into this folder',   'copm' => 'All documents out of a published map into this folder',
                 'spec' => 'Special documents',  
                 'upld' => 'Upload Document',                  'upld' => 'Upload Document',
                 'srch' => 'Search',                  'srch' => 'Search',
                 'impo' => 'Import',                  'impo' => 'Import',
Line 2816  sub handler { Line 2760  sub handler {
                 'extr' => 'External Resource',                  'extr' => 'External Resource',
                 'syll' => 'Syllabus',                  'syll' => 'Syllabus',
                 'navc' => 'Navigate Contents',                  'navc' => 'Navigate Contents',
                 'sipa' => 'Simple Course Page',                  'sipa' => 'Simple Page',
                 'sipr' => 'Simple Problem',                  'sipr' => 'Simple Problem',
                 'drbx' => 'Drop Box',                  'drbx' => 'Drop Box',
                 'scuf' => 'Score Upload Form',                  'scuf' => 'Score Upload Form',
                 'bull' => 'Discussion Board',                  'bull' => 'Bulletin Board',
                 'mypi' => 'My Personal Information Page',                  'mypi' => 'My Personal Info',
                 'grpo' => 'Group Portfolios',                  'grpo' => 'Group Files',
                 'rost' => 'Course Roster',                  'rost' => 'Course Roster',
  'abou' => 'About User',   'abou' => 'About User',
                 'imsf' => 'IMS Import',                  'imsf' => 'Import IMS package',
                 'imsl' => 'Import IMS package',  
                 'file' =>  'File',                  'file' =>  'File',
                 'title' => 'Title',                  'title' => 'Title',
                 'comment' => 'Comment',                  'comment' => 'Comment',
                 'parse' => 'If HTML file, upload embedded images/multimedia files'                  'parse' => 'Upload embedded images/multimedia files if HTML file!',
    'nd' => 'New Document',
    'pm' => 'Published Map',
    'sd' => 'Special Document',
    'mo' => 'More Options',
    'hao' => 'Hide all Options'
   );    );
 # -----------------------------------------------------------------------------  # -----------------------------------------------------------------------------
    my $fileupload=(<<FIUP);
    $lt{'file'}:<br />
    <input type="file" name="uploaddoc" size="40" />
   FIUP
   
    my $checkbox=(<<CHBO);
    <!-- <label>$lt{'parse'}?
    <input type="checkbox" name="parserflag" />
    </label> -->
    <label>
    <input type="checkbox" name="parserflag" checked="checked" /> $lt{'parse'}
    </label>
   CHBO
   
    my $fileuploadform=(<<FUFORM);
    <form name="uploaddocument" action="/adm/coursedocs" method="post" enctype="multipart/form-data">
    $fileupload
    <br />
    $lt{'title'}:<br />
    <input type="text" size="50" name="comment" />
    $uploadtag
    <input type="hidden" name="cmd" value="upload_default" />
    <br />
    <span class="LC_nobreak">
    $checkbox
    </span>
    <br />
    <br />
    <span class="LC_nobreak">
    <input type="submit" value="$lt{'upld'}" />
    $help{'Uploading_From_Harddrive'}
    </span>
    </form>
   FUFORM
   
    my $simpleeditdefaultform=(<<SEDFFORM);
    <form action="/adm/coursedocs" method="post" name="simpleeditdefault">
    $lt{'pubd'}<br />
    $uploadtag
    <input type="button" onClick="javascript:groupsearch()" value="$lt{'srch'}" />
    <br />
    <span class="LC_nobreak">
    <input type="button" onClick="javascript:groupimport();" value="$lt{'impo'}" />
    $help{'Importing_LON-CAPA_Resource'}
    </span>
    <br />
    <input type="button" onClick="javascript:groupopen(0,1,1);" value="$lt{'book'}" />
    <hr />
    <p>
    $lt{'copm'}<br />
    <input type="text" size="40" name="importmap" /><br />
    <span class="LC_nobreak"><input type="button" 
    onClick="javascript:openbrowser('simpleeditdefault','importmap','sequence,page','')"
    value="$lt{'selm'}" /> <input type="submit" name="loadmap" value="$lt{'load'}" />
    $help{'Load_Map'}</span>
    </p>
    </form>
   SEDFFORM
   
    my $extresourcesform=(<<ERFORM);
    <form action="/adm/coursedocs" method="post" name="newext">
    $uploadtag
    <input type="hidden" name="importdetail" value="" />
    <span class="LC_nobreak">
    <input name="newext" type="button" onClick="javascript:makenewext('newext');"
    value="$lt{'extr'}" /> $help{'Adding_External_Resource'}
    </span>
    </form>
   ERFORM
   
     if ($allowed) {      if ($allowed) {
  &update_paste_buffer($coursenum,$coursedom);   &update_paste_buffer($coursenum,$coursedom);
        my $dumpbut=&dumpbutton();  
        my $exportbut=&exportbutton();  
        my %lt=&Apache::lonlocal::texthash(         my %lt=&Apache::lonlocal::texthash(
  'vc' => 'Verify Content',   'vc' => 'Verify Content',
  'cv' => 'Check/Set Resource Versions',   'cv' => 'Check/Set Resource Versions',
Line 2857  sub handler { Line 2873  sub handler {
            $uploadtag = '<input type="hidden" name="folderpath" value="'.&HTML::Entities::encode($folderpath,'<>&"').'" />';             $uploadtag = '<input type="hidden" name="folderpath" value="'.&HTML::Entities::encode($folderpath,'<>&"').'" />';
        }         }
   
        $r->print(<<ENDCOURSEVERIFY);         $r->print(&generate_admin_options($containertag,$uploadtag,\%lt,\%help,\%env));
 <form name="renameform" method="post" action="/adm/coursedocs">  
   <input type="hidden" name="title" />  
   <input type="hidden" name="cmd" />  
   <input type="hidden" name="markcopy" />  
   <input type="hidden" name="copyfolder" />  
   $containertag  
 </form>  
 <form name="simpleedit" method="post" action="/adm/coursedocs">  
   <input type="hidden" name="importdetail" value="" />  
   $uploadtag  
 </form>  
 <form action="/adm/coursedocs" method="post" name="courseverify">  
   <div class="LC_docs_course_commands">  
   
       <div>  
         <input type="submit" name="verify" value="$lt{'vc'}" />$help{'Verify_Content'}  
       </div>  
       <div>  
         <input type="submit" name="versions" value="$lt{'cv'}" />$help{'Check_Resource_Versions'}  
       </div>  
         $dumpbut  
         $exportbut  
       <div>  
         <input type="submit" name="listsymbs" value="$lt{'ls'}" />  
       </div>  
       <div>  
         <input type="hidden" name="folder" value="$env{'form.folder'}" />  
         <input type="submit" name="docslog" value="$lt{'sl'}" />  
       </div>  
   </div>  
 </form>  
 <div style="clear: both; height: 0px;">&nbsp;</div>  
 ENDCOURSEVERIFY  
        $r->print(&Apache::loncommon::help_open_topic('Docs_Adding_Course_Doc',         $r->print(&Apache::loncommon::help_open_topic('Docs_Adding_Course_Doc',
      &mt('Editing the Table of Contents for your '.$type)));       &mt('Editing the Table of Contents for your '.$type)));
     }      }
 # --------------------------------------------------------- Standard documents  # --------------------------------------------------------- Standard documents
     $r->print('<table class="LC_docs_documents">');  
   
     if (($standard) && ($allowed) && (!$forcesupplement)) {      if (($standard) && ($allowed) && (!$forcesupplement)) {
  $r->print('<tr><td class="LC_docs_document">');  
 #  '<h2>'.&mt('Main Course Documents').  
 #  ($allowed?' '.$help{'Main_Course_Documents'}:'').'</h2>');  
        my $folder=$env{'form.folder'};         my $folder=$env{'form.folder'};
        if ($folder eq '' || $folder eq 'supplemental') {         if ($folder eq '' || $folder eq 'supplemental') {
            $folder='default';             $folder='default';
Line 2910  ENDCOURSEVERIFY Line 2888  ENDCOURSEVERIFY
        }         }
        my $postexec='';         my $postexec='';
        if ($folder eq 'default') {         if ($folder eq 'default') {
            $r->print('<script type="text/javascript">'."\n"     $r->print('<script type="text/javascript">this.window.name="loncapaclient";</script>');
                     .'// <![CDATA['."\n"  
                     .'this.window.name="loncapaclient";'."\n"  
                     .'// ]]>'."\n"  
                     .'</script>'."\n"  
        );  
        } else {         } else {
            #$postexec='self.close();';             #$postexec='self.close();';
        }         }
Line 2938  ENDCOURSEVERIFY Line 2911  ENDCOURSEVERIFY
     $container='page';      $container='page';
  }   }
  my $readfile='/uploaded/'.$coursedom.'/'.$coursenum.'/'.$folder.'.'.$container;   my $readfile='/uploaded/'.$coursedom.'/'.$coursenum.'/'.$folder.'.'.$container;
        $r->print(<<ENDFORM);  
 <table class="LC_docs_adddocs">  
 <tr>  
 <th>$lt{'uplm'}</th>   my $recoverform=(<<RFORM);
 <th>$lt{'impp'}</th>   <form action="/adm/groupsort" method="post" name="recover">
 <th>$lt{'spec'}</th>   <input type="button" name="recovermap" onClick="javascript:groupopen('$readfile',1,0)" value="$lt{'reco'}" />
 </tr>   </form>
 <tr>  RFORM
 <td>  
 $lt{'file'}:<br />   my $imspform=(<<IMSPFORM);
 <form name="uploaddocument" action="/adm/coursedocs" method="post" enctype="multipart/form-data">   <form action="/adm/imsimportdocs" method="post" name="ims">
 <input type="file" name="uploaddoc" size="40" />   <input type="hidden" name="folder" value="$folder" />
 <br />   <input name="imsimport" type="button" value="$lt{'imsf'}" onClick="javascript:makeims();" />
 $lt{'title'}:<br />   </form>
 <input type="text" size="50" name="comment" />  IMSPFORM
 $uploadtag  
 <input type="hidden" name="cmd" value="upload_default" />   my $newnavform=(<<NNFORM);
 <br />   <form action="/adm/coursedocs" method="post" name="newnav">
 <span class="LC_nobreak">   $uploadtag
 <label>$lt{'parse'}?   <input type="hidden" name="importdetail" 
 <input type="checkbox" name="parserflag" checked="checked" />   value="$lt{'navc'}=/adm/navmaps" />
 </label>   <span class="LC_nobreak">
 </span>   <input name="newnav" type="submit" value="$lt{'navc'}" />
 <br />   $help{'Navigate_Content'}
 <br />   </span>
 <span class="LC_nobreak">   </form>
 <input type="submit" value="$lt{'upld'}" />  NNFORM
  $help{'Uploading_From_Harddrive'}   my $newsmppageform=(<<NSPFORM);
 </span>   <form action="/adm/coursedocs" method="post" name="newsmppg">
 </form>   $uploadtag
 </td>   <input type="hidden" name="importdetail" value="" />
 <td>   <span class="LC_nobreak">
 <form action="/adm/coursedocs" method="post" name="simpleeditdefault">   <input name="newsmppg" type="button" value="$lt{'sipa'}"
 $lt{'pubd'}<br />   onClick="javascript:makesmppage();" /> $help{'Simple Page'}
 $uploadtag   </span>
 <input type="button" onclick="javascript:groupsearch()" value="$lt{'srch'}" />   </form>
 <br />  NSPFORM
 <span class="LC_nobreak">  
 <input type="button" onclick="javascript:groupimport();" value="$lt{'impo'}" />   my $newsmpproblemform=(<<NSPROBFORM);
 $help{'Importing_LON-CAPA_Resource'}   <form action="/adm/coursedocs" method="post" name="newsmpproblem">
 </span>   $uploadtag
 <br />   <input type="hidden" name="importdetail" value="" />
 <input type="button" onclick="javascript:groupopen(0,1,1);" value="$lt{'book'}" />   <span class="LC_nobreak">
 <hr />   <input name="newsmpproblem" type="button" value="$lt{'sipr'}"
 <p>   onClick="javascript:makesmpproblem();" />$help{'Simple Problem'}
 $lt{'copm'}<br />   </span>
 <input type="text" size="40" name="importmap" /><br />   </form>
 <span class="LC_nobreak"><input type="button"   
 onclick="javascript:openbrowser('simpleeditdefault','importmap','sequence,page','')"  NSPROBFORM
 value="$lt{'selm'}" /> <input type="submit" name="loadmap" value="$lt{'load'}" />  
 $help{'Load_Map'}</span>   my $newdropboxform=(<<NDBFORM);
 </p>   <form action="/adm/coursedocs" method="post" name="newdropbox">
 </form>   $uploadtag      
 <hr />   <input type="hidden" name="importdetail" value="" />
 <form action="/adm/groupsort" method="post" name="recover">   <span class="LC_nobreak">          
 <input type="button" name="recovermap" onclick="javascript:groupopen('$readfile',1,0)" value="$lt{'reco'}" />   <input name="newdropbox" type="button" value="$lt{'drbx'}"
 </form>   onClick="javascript:makedropbox();" />
 ENDFORM   </span>         
        unless ($env{'form.pagepath'}) {   </form> 
    $r->print(<<ENDFORM);  NDBFORM
 <hr />  
 <form action="/adm/coursedocs" method="post" name="newext">   my $newexuploadform=(<<NEXUFORM);
 $uploadtag   <form action="/adm/coursedocs" method="post" name="newexamupload">
 <input type="hidden" name="importdetail" value="" />   $uploadtag
 <span class="LC_nobreak">   <input type="hidden" name="importdetail" value="" />
 <input name="newext" type="button" onclick="javascript:makenewext('newext');"   <span class="LC_nobreak">
 value="$lt{'extr'}" /> $help{'Adding_External_Resource'}   <input name="newexamupload" type="button" value="$lt{'scuf'}"
 </span>   onClick="javascript:makeexamupload();" />
 </form>   $help{'Score_Upload_Form'}
 <br /><form action="/adm/imsimportdocs" method="post" name="ims">   </span>
 <input type="hidden" name="folder" value="$folder" />   </form>
 <input name="imsimport" type="button" value="$lt{'imsf'}" title="$lt{imsl}" onclick="javascript:makeims();" />  NEXUFORM
 </form>  
 ENDFORM   my $newbulform=(<<NBFORM);
        }   <form action="/adm/coursedocs" method="post" name="newbul">
        $r->print('</td><td>');   $uploadtag
    <input type="hidden" name="importdetail" value="" />
    <span class="LC_nobreak">
    <input name="newbulletin" type="button" value="$lt{'bull'}"
    onClick="javascript:makebulboard();" />
    $help{'Bulletin Board'}
    </span>
    </form>
   NBFORM
   
    my $newaboutmeform=(<<NAMFORM);
    <form action="/adm/coursedocs" method="post" name="newaboutme">
    $uploadtag
    <input type="hidden" name="importdetail" 
    value="$plainname=/adm/$udom/$uname/aboutme" />
    <span class="LC_nobreak">
    <input name="newaboutme" type="submit" value="$lt{'mypi'}" />
    $help{'My Personal Info'}
    </span>
    </form>
   NAMFORM
   
    my $newaboutsomeoneform=(<<NASOFORM);
    <form action="/adm/coursedocs" method="post" name="newaboutsomeone">
    $uploadtag
    <input type="hidden" name="importdetail" value="" />
    <span class="LC_nobreak">
    <input name="newaboutsomeone" type="button" value="$lt{'abou'}" 
    onClick="javascript:makeabout();" />
    </span>
    </form>
   NASOFORM
   
   
    my $newrosterform=(<<NROSTFORM);
    <form action="/adm/coursedocs" method="post" name="newroster">
    $uploadtag
    <input type="hidden" name="importdetail" 
    value="$lt{'rost'}=/adm/viewclasslist" />
    <span class="LC_nobreak">
    <input name="newroster" type="submit" value="$lt{'rost'}" />
    $help{'Course Roster'}
    </span>
    </form>
   NROSTFORM
   
        unless ($env{'form.pagepath'}) {         unless ($env{'form.pagepath'}) {
    my $path = &HTML::Entities::encode($env{'form.folderpath'},'<>&"');     my $path = &HTML::Entities::encode($env{'form.folderpath'},'<>&"');
            $r->print(<<ENDFORM);  
 <br /><form action="/adm/coursedocs" method="post" name="newfolder">   my $newpageform=(<<NPFORM);
 <input type="hidden" name="folderpath" value="$path" />   <form action="/adm/coursedocs" method="post" name="newpage">
 <input type="hidden" name="importdetail" value="" />   <input type="hidden" name="folderpath" value="$path" />
 <span class="LC_nobreak">   <input type="hidden" name="importdetail" value="" />
 <input name="newfolder" type="button"   <span class="LC_nobreak">
 onclick="javascript:makenewfolder(this.form,'$folderseq');"   <input name="newpage" type="button"
 value="$lt{'newf'}" />$help{'Adding_Folders'}   onClick="javascript:makenewpage(this.form,'$pageseq');"
 </span>   value="$lt{'newp'}" />$help{'Adding_Pages'}
 </form>   </span>
 <br /><form action="/adm/coursedocs" method="post" name="newpage">   </form>
 <input type="hidden" name="folderpath" value="$path" />  NPFORM
 <input type="hidden" name="importdetail" value="" />  
 <span class="LC_nobreak">   my $newfolderform=(<<NFFORM);
 <input name="newpage" type="button"   <form action="/adm/coursedocs" method="post" name="newfolder">
 onclick="javascript:makenewpage(this.form,'$pageseq');"   <input type="hidden" name="folderpath" value="$path" />
 value="$lt{'newp'}" />$help{'Adding_Pages'}   <input type="hidden" name="importdetail" value="" />
 </span>   <span class="LC_nobreak">
 </form>   <input name="newfolder" type="button"
 <br /><form action="/adm/coursedocs" method="post" name="newsyl">   onClick="javascript:makenewfolder(this.form,'$folderseq');"
 $uploadtag   value="$lt{'newf'}" />$help{'Adding_Folders'}
 <input type="hidden" name="importdetail"    </span>
 value="$lt{'syll'}=/public/$coursedom/$coursenum/syllabus" />   </form>
 <span class="LC_nobreak">  NFFORM
 <input name="newsyl" type="submit" value="$lt{'syll'}" />   
  $help{'Syllabus'}   my $newsylform=(<<NSYLFORM);
 </span>   <form action="/adm/coursedocs" method="post" name="newsyl">
 </form>   $uploadtag
 <br /><form action="/adm/coursedocs" method="post" name="newnav">   <input type="hidden" name="importdetail" 
 $uploadtag   value="$lt{'syll'}=/public/$coursedom/$coursenum/syllabus" />
 <input type="hidden" name="importdetail"    <span class="LC_nobreak">
 value="$lt{'navc'}=/adm/navmaps" />   <input name="newsyl" type="submit" value="$lt{'syll'}" /> 
 <span class="LC_nobreak">   $help{'Syllabus'}
 <input name="newnav" type="submit" value="$lt{'navc'}" />   </span>
 $help{'Navigate_Content'}   </form>
 </span>  NSYLFORM
 </form>  
 <br /><form action="/adm/coursedocs" method="post" name="newsmppg">   my $newgroupfileform=(<<NGFFORM);
 $uploadtag   <form action="/adm/coursedocs" method="post" name="newgroupfiles">
 <input type="hidden" name="importdetail" value="" />   $uploadtag
 <span class="LC_nobreak">   <input type="hidden" name="importdetail"
 <input name="newsmppg" type="button" value="$lt{'sipa'}"   value="$lt{'grpo'}=/adm/$coursedom/$coursenum/aboutme" />
 onclick="javascript:makesmppage();" /> $help{'Simple Page'}   <span class="LC_nobreak">
 </span>   <input name="newgroupfiles" type="submit" value="$lt{'grpo'}" />
 </form>   $help{'Group Files'}
 <br /><form action="/adm/coursedocs" method="post" name="newsmpproblem">   </span>
 $uploadtag   </form>
 <input type="hidden" name="importdetail" value="" />  NGFFORM
 <span class="LC_nobreak">  
 <input name="newsmpproblem" type="button" value="$lt{'sipr'}"  
 onclick="javascript:makesmpproblem();" />$help{'Simple Problem'}          my $specialdocumentsform=(<<SPDOFORM);
 </span>   <br />$newfolderform
 </form>   <br />$newpageform
 <br /><form action="/adm/coursedocs" method="post" name="newdropbox">   <br />$newsylform
 $uploadtag         <br />$newnavform
 <input type="hidden" name="importdetail" value="" />   <br />$newsmppageform
 <span class="LC_nobreak">             <br />$newsmpproblemform
 <input name="newdropbox" type="button" value="$lt{'drbx'}"   <br />$newdropboxform
 onclick="javascript:makedropbox();" />   <br />$newexuploadform
 </span>            <br />$newbulform
 </form>    <br />$newaboutmeform
 <br /><form action="/adm/coursedocs" method="post" name="newexamupload">   <br />$newaboutsomeoneform
 $uploadtag   <br />$newgroupfileform
 <input type="hidden" name="importdetail" value="" />   <br />$newrosterform
 <span class="LC_nobreak">  SPDOFORM
 <input name="newexamupload" type="button" value="$lt{'scuf'}"  
 onclick="javascript:makeexamupload();" />  
 $help{'Score_Upload_Form'}  my %orderhash = (
 </span>                  'aa' => 'New Document',
 </form>                  'bb' => 'Published Documents',
 <br /><form action="/adm/coursedocs" method="post" name="newbul">                  'cc' => 'Special Documents',
 $uploadtag   'dd' => 'More Options',
 <input type="hidden" name="importdetail" value="" />                  'zz' => 'Hide all Options',
 <span class="LC_nobreak">                  );
 <input name="newbulletin" type="button" value="$lt{'bull'}"  my %namehash = (
 onclick="javascript:makebulboard();" />                  'New Document' => $fileuploadform,
 $help{'Bulletin Board'}                  'Published Documents' => $simpleeditdefaultform,
 </span>                  'Special Documents' => $specialdocumentsform,
 </form>   'More Options' => $extresourcesform.'<br />'.$imspform.'<br />'.$recoverform,
 <br /><form action="/adm/coursedocs" method="post" name="newaboutme">                  );
 $uploadtag  my $tid='1';
 <input type="hidden" name="importdetail"   my $content='content';
 value="$plainname=/adm/$udom/$uname/aboutme" />  my $navigation='navigation';
 <span class="LC_nobreak">  my $varcd = 'Main Course Documents';
 <input name="newaboutme" type="submit" value="$lt{'mypi'}" />  $r->print(&generate_edit_table($tid,$content,$navigation,$varcd,\%namehash,\%orderhash)); 
 $help{'My Personal Info'}        }
 </span>  
 </form>  
 <br /><form action="/adm/coursedocs" method="post" name="newaboutsomeone">  
 $uploadtag  
 <input type="hidden" name="importdetail" value="" />  
 <span class="LC_nobreak">  
 <input name="newaboutsomeone" type="button" value="$lt{'abou'}"   
 onclick="javascript:makeabout();" />  
 </span>  
 </form>  
 <br /><form action="/adm/coursedocs" method="post" name="newgroupfiles">  
 $uploadtag  
 <input type="hidden" name="importdetail"  
 value="$lt{'grpo'}=/adm/$coursedom/$coursenum/aboutme" />  
 <span class="LC_nobreak">  
 <input name="newgroupfiles" type="submit" value="$lt{'grpo'}" />  
 $help{'Group Files'}  
 </span>  
 </form>  
 <br /><form action="/adm/coursedocs" method="post" name="newroster">  
 $uploadtag  
 <input type="hidden" name="importdetail"   
 value="$lt{'rost'}=/adm/viewclasslist" />  
 <span class="LC_nobreak">  
 <input name="newroster" type="submit" value="$lt{'rost'}" />  
 $help{'Course Roster'}  
 </span>  
 </form>  
 ENDFORM  
        }  
        if ($env{'form.pagepath'}) {         if ($env{'form.pagepath'}) {
            $r->print(<<ENDBLOCK);  
 <form action="/adm/coursedocs" method="post" name="newsmpproblem">  
 $uploadtag  
 <input type="hidden" name="importdetail" value="" />  
 <span class="LC_nobreak">  
 <input name="newsmpproblem" type="button" value="$lt{'sipr'}"  
 onclick="javascript:makesmpproblem();" />$help{'Simple Problem'}  
 </span>  
 </form>  
 <br /><form action="/adm/coursedocs" method="post" name="newexamupload">  
 $uploadtag  
 <input type="hidden" name="importdetail" value="" />  
 <span class="LC_nobreak">  
 <input name="newexamupload" type="button" value="$lt{'scuf'}"  
 onclick="javascript:makeexamupload();" />  
 $help{'Score_Upload_Form'}  
 </span>  
 </form>  
 ENDBLOCK  
        }         }
        $r->print('</td></tr>'."\n".  
 '</table>');  
        $r->print('</td></tr>');  
     }      }
 # ----------------------------------------------------- Supplemental documents  # ----------------------------------------------------- Supplemental documents
     if (!$forcestandard) {      if (!$forcestandard) {
        $r->print('<tr><td class="LC_docs_document">');  
 # '<h2>'.&mt('Supplemental Course Documents').  
 #  ($allowed?' '.$help{'Supplemental'}:'').'</h2>');  
        my $folder=$env{'form.folder'};         my $folder=$env{'form.folder'};
        unless ($folder=~/^supplemental/) {         unless ($folder=~/^supplemental/) {
    $folder='supplemental';     $folder='supplemental';
Line 3181  ENDBLOCK Line 3144  ENDBLOCK
        '.sequence';         '.sequence';
   
    my $path = &HTML::Entities::encode($env{'form.folderpath'},'<>&"');     my $path = &HTML::Entities::encode($env{'form.folderpath'},'<>&"');
    $r->print(<<ENDSUPFORM);  
 <table class="LC_docs_adddocs"><tr>   my $supupdocform=(<<SUPDOCFORM);
 <th>$lt{'upls'}</th>   <form action="/adm/coursedocs" method="post" enctype="multipart/form-data">
 <th>$lt{'spec'}</th>   $fileupload
 </tr>   <br />
 <tr><td>   <br />
 <form action="/adm/coursedocs" method="post" enctype="multipart/form-data">   <span class="LC_nobreak">
 <input type="file" name="uploaddoc" size="40" />   $checkbox
 <br />   </span>
 <br />   <br /><br />
 <span class="LC_nobreak">   $lt{'comment'}:<br />
 <label>$lt{'parse'}?   <textarea cols=50 rows=4 name='comment'>
 <input type="checkbox" name="parserflag" />   </textarea>
 </label>   <br />
 </span>   <input type="hidden" name="folderpath" value="$path" />
 <br /><br />   <input type="hidden" name="cmd" value="upload_supplemental" />
 $lt{'comment'}:<br />   <span class="LC_nobreak">
 <textarea cols="50" rows="4" name="comment">   <input type="submit" value="$lt{'upld'}" />
 </textarea>   $help{'Uploading_From_Harddrive'}
 <br />   </span>
 <input type="hidden" name="folderpath" value="$path" />   </form>
 <input type="hidden" name="cmd" value="upload_supplemental" />  SUPDOCFORM
 <span class="LC_nobreak">  
 <input type="submit" value="$lt{'upld'}" />   my $supnewfolderform=(<<SNFFORM);
  $help{'Uploading_From_Harddrive'}   <form action="/adm/coursedocs" method="post" name="supnewfolder">
 </span>   <input type="hidden" name="folderpath" value="$path" />
 </form>   <input type="hidden" name="importdetail" value="" />
 </td>   <span class="LC_nobreak">
 <td>   <input name="newfolder" type="button"
 <form action="/adm/coursedocs" method="post" name="supnewfolder">   onClick="javascript:makenewfolder(this.form,'$folderseq');"
 <input type="hidden" name="folderpath" value="$path" />   value="$lt{'newf'}" /> $help{'Adding_Folders'}
 <input type="hidden" name="importdetail" value="" />   </span>
 <span class="LC_nobreak">   </form>
 <input name="newfolder" type="button"  SNFFORM
 onclick="javascript:makenewfolder(this.form,'$folderseq');"  
 value="$lt{'newf'}" /> $help{'Adding_Folders'}  
 </span>   my $supnewextform=(<<SNEFORM);
 </form>   <form action="/adm/coursedocs" method="post" name="supnewext">
 <br /><form action="/adm/coursedocs" method="post" name="supnewext">   <input type="hidden" name="folderpath" value="$path" />
 <input type="hidden" name="folderpath" value="$path" />   <input type="hidden" name="importdetail" value="" />
 <input type="hidden" name="importdetail" value="" />   <span class="LC_nobreak">
 <span class="LC_nobreak">   <input name="newext" type="button" 
 <input name="newext" type="button"    onClick="javascript:makenewext('supnewext');"
 onclick="javascript:makenewext('supnewext');"   value="$lt{'extr'}" /> $help{'Adding_External_Resource'}
 value="$lt{'extr'}" /> $help{'Adding_External_Resource'}   </span>
 </span>   </form>
 </form>  SNEFORM
 <br /><form action="/adm/coursedocs" method="post" name="supnewsyl">  
 <input type="hidden" name="folderpath" value="$path" />   my $supnewsylform=(<<SNSFORM);
 <input type="hidden" name="importdetail"    <form action="/adm/coursedocs" method="post" name="supnewsyl">
 value="Syllabus=/public/$coursedom/$coursenum/syllabus" />   <input type="hidden" name="folderpath" value="$path" />
 <span class="LC_nobreak">   <input type="hidden" name="importdetail" 
 <input name="newsyl" type="submit" value="$lt{'syll'}" />   value="Syllabus=/public/$coursedom/$coursenum/syllabus" />
 $help{'Syllabus'}   <span class="LC_nobreak">
 </span>   <input name="newsyl" type="submit" value="$lt{'syll'}" />
 </form>   $help{'Syllabus'}
 <br /><form action="/adm/coursedocs" method="post" name="subnewaboutme">   </span>
 <input type="hidden" name="folderpath" value="$path" />   </form>
 <input type="hidden" name="importdetail"   SNSFORM
 value="$plainname=/adm/$udom/$uname/aboutme" />  
 <span class="LC_nobreak">   my $supnewaboutmeform=(<<SNAMFORM);
 <input name="newaboutme" type="submit" value="$lt{'mypi'}" />   <form action="/adm/coursedocs" method="post" name="subnewaboutme">
 $help{'My Personal Info'}   <input type="hidden" name="folderpath" value="$path" />
 </span>   <input type="hidden" name="importdetail" 
 </form>   value="$plainname=/adm/$udom/$uname/aboutme" />
 </td></tr>   <span class="LC_nobreak">
 </table></td></tr>   <input name="newaboutme" type="submit" value="$lt{'mypi'}" />
 ENDSUPFORM   $help{'My Personal Info'}
        }   </span>
     }   </form>
     $r->print('</table>');  SNAMFORM
   
   
   
   my %suporderhash = (
                   'ee' => 'New Document',
                   'ff' => 'Special Documents',
                   'zz' => 'Hide all Options',
                   );
   
   my %supnamehash = (
                   'New Document' => $supupdocform,
                   'Special Documents' => $supnewfolderform.'<br />'.$supnewextform.'<br />'.$supnewsylform.'<br />'.$supnewaboutmeform,
                   );
   
   my $tid='2';
   my $content='content';
   my $navigation='navigation';
   my $varscd = 'Supplemental Course Documents';
   
   $r->print(&generate_edit_table($tid,$content,$navigation,$varscd,\%supnamehash,\%suporderhash));
   
    } 
      }
     if ($allowed) {      if ($allowed) {
  $r->print('   $r->print('
 <form method="post" name="extimport" action="/adm/coursedocs">  <form method="post" name="extimport" action="/adm/coursedocs">
Line 3275  ENDSUPFORM Line 3261  ENDSUPFORM
  return OK;   return OK;
 }   } 
   
   sub generate_admin_options {
     my ($containertag,$uploadtag,$lt_ref,$help_ref,$env_ref) = @_;
     my %lt = %{$lt_ref};
     my %help = %{$help_ref};
     my %env = %{$env_ref};
     my $dumpbut=&dumpbutton();
     my $exportbut=&exportbutton();
     return (<<ENDOPTIONFORM);
    <form name="renameform" method="post" action="/adm/coursedocs">
      <input type="hidden" name="title" />
      <input type="hidden" name="cmd" />
      <input type="hidden" name="markcopy" />
      <input type="hidden" name="copyfolder" />
      $containertag
    </form>
    <form name="simpleedit" method="post" action="/adm/coursedocs">
      <input type="hidden" name="importdetail" value="" />
      $uploadtag
    </form>
    <form action="/adm/coursedocs" method="post" name="courseverify">
      <ul style="list-style-type:none">
          <li>
              <input type="submit" name="verify" value="$lt{'vc'}" />$help{'Verify_Content'}
          </li>
          <li>
              <input type="submit" name="versions" value="$lt{'cv'}" />$help{'Check_Resource_Versions'}
          </li>
          <li>
              $dumpbut
          </li>
          <li>
              $exportbut
          </li>
          <li>
             <input type="submit" name="listsymbs" value="$lt{'ls'}" />
           </li>
           <li>
             <input type="hidden" name="folder" value="$env{'form.folder'}" />
             <input type="submit" name="docslog" value="$lt{'sl'}" />
           </li>
      </ul>
    </form>
    <div style="clear: both; height: 0px;">&nbsp;</div>
   ENDOPTIONFORM
   
   }
   
   
   sub generate_edit_table {
       my ($tid,$content,$navigation,$varcd,$namehash_ref,$orderhash_ref) = @_;
       my %namehash = %{$namehash_ref};             #name verlinkt mit id
       my %orderhash = %{$orderhash_ref};           #name mit kürzel verlinkt mit name
       my $form;
   
       
   
       $form = '<div class="LC_ContentBoxSpecial"><h4 class="LC_hcell">'.&mt($varcd).'</h4>';
       $form .= '<ul id="'.$navigation.$tid.'" class="LC_TabContent">';
       foreach my $name (sort(keys(%orderhash))){
           if($name eq 'zz'){
               $form .= '<li onclick="javascript:hideAll(this, \''.$navigation.$tid.'\' ,\''.$content.$tid.'\');" class="active">'.&mt($orderhash{$name}).'</li>';
           }else{
               $form .= '<li onclick="javascript:showPage(this, \''.$tid.$orderhash{$name}.'\', \''.$navigation.$tid.'\',\''.$content.$tid.'\');">'.&mt($orderhash{$name}).'</li>';
           }
       }
       $form .= '<div id="'.$content.$tid.'" style="padding: 0 0; margin: 0 0;">';
       foreach my $field (keys(%namehash)){
           $form .= '<div id="'.$tid.$field.'" class="LC_ContentBox" style="display: none;">'.$namehash{$field}.'</div>';
         }
       $form .= '</div></div>';
       
       return $form;
   }
   
 sub editing_js {  sub editing_js {
     my ($udom,$uname) = @_;      my ($udom,$uname) = @_;
Line 3285  sub editing_js { Line 3344  sub editing_js {
                                           p_mnp => 'Name of New Page',                                            p_mnp => 'Name of New Page',
                                           t_mnp => 'New Page',                                            t_mnp => 'New Page',
                                           p_mxu => 'Title for the Uploaded Score',                                            p_mxu => 'Title for the Uploaded Score',
                                           p_msp => 'Name of the Simple Course Page',                                            p_msp => 'Title for the Page',
                                           p_msb => 'Title for the Problem',                                            p_msb => 'Title for the Problem',
                                           p_mdb => 'Title for the Drop Box',                                            p_mdb => 'Title for the Drop Box',
                                           p_mbb => 'Title for the Discussion Board',                                            p_mbb => 'Title for the Bulletin Board',
                                           p_mab => "Enter user:domain for User's 'About Me' Page",                                            p_mab => "Enter user:domain for User's 'About Me' Page",
                                           p_mab2 => "About [_99]",                                            p_mab2 => "About [_99]",
                                           p_mab_alrt1 => 'Not a valid user:domain',                                            p_mab_alrt1 => 'Not a valid user:domain',
Line 3477  function markcopy(folderpath,index,oldti Line 3536  function markcopy(folderpath,index,oldti
     this.document.forms.renameform.submit();      this.document.forms.renameform.submit();
 }  }
   
   function unselectInactive(nav) {
    currentNav = document.getElementById(nav);
    currentLis = currentNav.getElementsByTagName('LI');
    for (i = 0; i < currentLis.length; i++) {
    currentLis[i].className = 'i';
    }
   }
   
   function hideAll(current, nav, data) {
    unselectInactive(nav);
    current.className = 'active';
    currentData = document.getElementById(data);
    currentDivs = currentData.getElementsByTagName('DIV');
    for (i = 0; i < currentDivs.length; i++) {
    currentDivs[i].style.display = 'none';
    }
   }
   
   function showPage(current, pageId, nav, data) {
    hideAll(current, nav, data);
    unselectInactive(nav);
    current.className = 'active';
    currentData = document.getElementById(pageId);
    currentData.style.display = 'block';
    return false;
   }
   
 ENDNEWSCRIPT  ENDNEWSCRIPT
 }  }
 1;  1;

Removed from v.1.325.2.4  
changed lines
  Added in v.1.334


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