Diff for /loncom/interface/londocs.pm between versions 1.321 and 1.331

version 1.321, 2008/12/15 03:02:19 version 1.331, 2009/01/30 10:02:46
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 265  sub dumpcourse { Line 262  sub dumpcourse {
   
 sub exportbutton {  sub exportbutton {
     my $type = &Apache::loncommon::course_type();      my $type = &Apache::loncommon::course_type();
     return '<div>'.      return '<input type="submit" name="exportcourse" value="'.
             '<input type="submit" name="exportcourse" value="'.  
             &mt('Export '.$type.' to IMS').'" />'.              &mt('Export '.$type.' to IMS').'" />'.
     &Apache::loncommon::help_open_topic('Docs_Export_Course_Docs').'</div>';      &Apache::loncommon::help_open_topic('Docs_Export_Course_Docs');
 }  }
   
   
Line 280  sub exportcourse { Line 276  sub exportcourse {
                                                $env{'course.'.$env{'request.course.id'}.'.domain'}, $env{'course.'.$env{'request.course.id'}.'.num'});                                                 $env{'course.'.$env{'request.course.id'}.'.domain'}, $env{'course.'.$env{'request.course.id'}.'.num'});
     my $numdisc = keys(%discussiontime);      my $numdisc = keys(%discussiontime);
     my $navmap = Apache::lonnavmaps::navmap->new();      my $navmap = Apache::lonnavmaps::navmap->new();
       if (!defined($navmap)) {
           $r->print(&Apache::loncommon::start_page('Export '.lc($type).' to IMS content package').
                     '<h2>IMS Export Failed</h2>'.
                     '<div class="LC_error">'.
                     &mt('Unable to retrieve information about course contents').
                     '</div><a href="/adm/coursedocs">'.&mt('Return to Course Editor').'</a>');
           &Apache::lonnet::logthis('IMS export failed - could not create navmap object in '.lc($type).':'.$env{'request.course.id'});
           return;
       }
     my $it=$navmap->getIterator(undef,undef,undef,1,undef,undef);      my $it=$navmap->getIterator(undef,undef,undef,1,undef,undef);
     my $curRes;      my $curRes;
     my $outcome;      my $outcome;
Line 471  function containerCheck(item) { Line 476  function containerCheck(item) {
  $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="'.
                   &mt('Export '.$type.' DOCS').'" /></p></form>'.                    &mt('Export '.$type.' DOCS').'" /></p></form>');
   &Apache::loncommon::end_page());  
     }      }
 }  }
   
Line 1280  sub do_paste_from_buffer { Line 1284  sub do_paste_from_buffer {
 # Maps need to be copied first  # Maps need to be copied first
     if (($url=~/\.(page|sequence)$/) && ($url=~/^\/uploaded\//)) {      if (($url=~/\.(page|sequence)$/) && ($url=~/^\/uploaded\//)) {
  $title=&mt('Copy of').' '.$title;   $title=&mt('Copy of').' '.$title;
  my $newid=$$.time;   my $newid=$$.int(rand(100)).time;
  $url=~/^(.+)\.(\w+)$/;   my ($oldid,$ext) = ($url=~/^(.+)\.(\w+)$/);
  my $newurl=$1.$newid.'.'.$2;          if ($oldid =~ m{^(/uploaded/\Q$coursedom\E/\Q$coursenum\E/)(\D+)(\d+)$}) {
               my $path = $1;
               my $prefix = $2;
               my $ancestor = $3;
               if (length($ancestor) > 10) {
                   $ancestor = substr($ancestor,-10,10);
               }
               $oldid = $path.$prefix.$ancestor;
           }
           my $counter = 0;
           my $newurl=$oldid.$newid.'.'.$ext;
           my $is_unique = &uniqueness_check($newurl);
           while (!$is_unique && $counter < 100) {
               $counter ++;
               $newid ++;
               $newurl = $oldid.$newid;
               $is_unique = &uniqueness_check($newurl);
           }
           if (!$is_unique) {
               if ($url=~/\.page$/) {
                   return &mt('Paste failed: an error occurred creating a unique URL for the composite page');
               } else {
                   return &mt('Paste failed: an error occurred creating a unique URL for the folder');
               }
           }
  my $storefn=$newurl;   my $storefn=$newurl;
  $storefn=~s{^/\w+/$match_domain/$match_username/}{};   $storefn=~s{^/\w+/$match_domain/$match_username/}{};
  my $paste_map_result =   my $paste_map_result =
Line 1340  sub do_paste_from_buffer { Line 1368  sub do_paste_from_buffer {
 # Store the result  # Store the result
 }  }
   
   sub uniqueness_check {
       my ($newurl) = @_;
       my $unique = 1;
       foreach my $res (@LONCAPA::map::order) {
           my ($name,$url)=split(/\:/,$LONCAPA::map::resources[$res]);
           $url=&LONCAPA::map::qtescape($url);
           if ($newurl eq $url) {
               $unique = 0;
               last;    
           }
       }
       return $unique;
   }
   
 my %parameter_type = ( 'randompick'     => 'int_pos',  my %parameter_type = ( 'randompick'     => 'int_pos',
        'hiddenresource' => 'string_yesno',         'hiddenresource' => 'string_yesno',
        'encrypturl'     => 'string_yesno',         'encrypturl'     => 'string_yesno',
Line 2098  List Symbs Line 2140  List Symbs
 sub list_symbs {  sub list_symbs {
     my ($r) = @_;      my ($r) = @_;
   
       my $type = &Apache::loncommon::course_type();
     $r->print(&Apache::loncommon::start_page('Symb List'));      $r->print(&Apache::loncommon::start_page('Symb List'));
     $r->print(&Apache::lonhtmlcommon::breadcrumbs('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");      if (!defined($navmap)) {
     foreach my $res ($navmap->retrieveResources()) {          $r->print('<h2>'.&mt('Retrieval of List Failed').'</h2>'.
  $r->print($res->compTitle()."\t".$res->symb()."\n");                    '<div class="LC_error">'.
                     &mt('Unable to retrieve information about course contents').
                     '</div>');
           &Apache::lonnet::logthis('Symb list failed - could not create navmap object in '.lc($type).':'.$env{'request.course.id'});
       } else {
           $r->print("<pre>\n");
           foreach my $res ($navmap->retrieveResources()) {
       $r->print($res->compTitle()."\t".$res->symb()."\n");
           }
           $r->print("\n</pre>\n");
     }      }
     $r->print("\n</pre>\n");  
     $r->print('<a href="/adm/coursedocs">'.&mt('Return to DOCS').'</a>');      $r->print('<a href="/adm/coursedocs">'.&mt('Return to DOCS').'</a>');
 }  }
   
   
   
 sub verifycontent {  sub verifycontent {
     my ($r) = @_;      my ($r) = @_;
     my $type = &Apache::loncommon::course_type();      my $type = &Apache::loncommon::course_type();
Line 2468  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 2521  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 2594  sub handler { Line 2647  sub handler {
     }      }
 # -------------------------------------------------------------------- Body tag  # -------------------------------------------------------------------- Body tag
     $script = '<script type="text/javascript">'."\n".$script."\n".'</script>';      $script = '<script type="text/javascript">'."\n".$script."\n".'</script>';
  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, bread_crumbs => @brcrum}).      {'force_register' => $showdoc,
                                        'bread_crumbs' => $brcrum}).
       &Apache::loncommon::help_open_menu('','',273,'RAT'));        &Apache::loncommon::help_open_menu('','',273,'RAT'));
       
   my %allfiles = ();    my %allfiles = ();
Line 2692  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 2720  sub handler { Line 2773  sub handler {
                 '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 2746  sub handler { Line 2872  sub handler {
            $containertag = '<input type="hidden" name="folderpath" value="" />';             $containertag = '<input type="hidden" name="folderpath" value="" />';
            $uploadtag = '<input type="hidden" name="folderpath" value="'.&HTML::Entities::encode($folderpath,'<>&"').'" />';             $uploadtag = '<input type="hidden" name="folderpath" value="'.&HTML::Entities::encode($folderpath,'<>&"').'" />';
        }         }
          ##############alter hashaufruf
        $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)));
     }      }
Line 2823  ENDCOURSEVERIFY Line 2916  ENDCOURSEVERIFY
     $container='page';      $container='page';
  }   }
  my $readfile='/uploaded/'.$coursedom.'/'.$coursenum.'/'.$folder.'.'.$container;   my $readfile='/uploaded/'.$coursedom.'/'.$coursenum.'/'.$folder.'.'.$container;
   
   
   
    my $recoverform=(<<RFORM);
    <form action="/adm/groupsort" method="post" name="recover">
    <input type="button" name="recovermap" onClick="javascript:groupopen('$readfile',1,0)" value="$lt{'reco'}" />
    </form>
   RFORM
   
    my $imspform=(<<IMSPFORM);
    <form action="/adm/imsimportdocs" method="post" name="ims">
    <input type="hidden" name="folder" value="$folder" />
    <input name="imsimport" type="button" value="$lt{'imsf'}" onClick="javascript:makeims();" />
    </form>
   IMSPFORM
   
    my $newnavform=(<<NNFORM);
    <form action="/adm/coursedocs" method="post" name="newnav">
    $uploadtag
    <input type="hidden" name="importdetail" 
    value="$lt{'navc'}=/adm/navmaps" />
    <span class="LC_nobreak">
    <input name="newnav" type="submit" value="$lt{'navc'}" />
    $help{'Navigate_Content'}
    </span>
    </form>
   NNFORM
    my $newsmppageform=(<<NSPFORM);
    <form action="/adm/coursedocs" method="post" name="newsmppg">
    $uploadtag
    <input type="hidden" name="importdetail" value="" />
    <span class="LC_nobreak">
    <input name="newsmppg" type="button" value="$lt{'sipa'}"
    onClick="javascript:makesmppage();" /> $help{'Simple Page'}
    </span>
    </form>
   NSPFORM
   
    my $newsmpproblemform=(<<NSPROBFORM);
    <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>
   
   NSPROBFORM
   
    my $newdropboxform=(<<NDBFORM);
    <form action="/adm/coursedocs" method="post" name="newdropbox">
    $uploadtag      
    <input type="hidden" name="importdetail" value="" />
    <span class="LC_nobreak">          
    <input name="newdropbox" type="button" value="$lt{'drbx'}"
    onClick="javascript:makedropbox();" />
    </span>         
    </form> 
   NDBFORM
   
    my $newexuploadform=(<<NEXUFORM);
    <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>
   NEXUFORM
   
    my $newbulform=(<<NBFORM);
    <form action="/adm/coursedocs" method="post" name="newbul">
    $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
   
        $r->print(<<ENDFORM);         $r->print(<<ENDFORM);
   
   
 <table class="LC_docs_adddocs">  <table class="LC_docs_adddocs">
 <tr>  <!-- <tr>
 <th>$lt{'uplm'}</th>  <th>$lt{'uplm'}</th>
 <th>$lt{'impp'}</th>  <th>$lt{'impp'}</th>
 <th>$lt{'spec'}</th>  <th>$lt{'spec'}</th>
 </tr>  </tr> -->
 <tr>  <tr>
 <td>  <td>
 $lt{'file'}:<br />  $fileuploadform
 <form name="uploaddocument" action="/adm/coursedocs" method="post" enctype="multipart/form-data">  
 <input type="file" name="uploaddoc" size="40" />  
 <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">  
 <label>$lt{'parse'}?  
 <input type="checkbox" name="parserflag" checked="checked" />  
 </label>  
 </span>  
 <br />  
 <br />  
 <span class="LC_nobreak">  
 <input type="submit" value="$lt{'upld'}" />  
  $help{'Uploading_From_Harddrive'}  
 </span>  
 </form>  
 </td>  </td>
 <td>  <td>
 <form action="/adm/coursedocs" method="post" name="simpleeditdefault">  $simpleeditdefaultform
 $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>  
 <hr />  <hr />
 <form action="/adm/groupsort" method="post" name="recover">  $recoverform
 <input type="button" name="recovermap" onClick="javascript:groupopen('$readfile',1,0)" value="$lt{'reco'}" />  
 </form>  
 ENDFORM  ENDFORM
        unless ($env{'form.pagepath'}) {         unless ($env{'form.pagepath'}) {
    $r->print(<<ENDFORM);     $r->print(<<ENDFORM);
 <hr />  <hr />
 <form action="/adm/coursedocs" method="post" name="newext">  $extresourcesform
 $uploadtag   <br />
 <input type="hidden" name="importdetail" value="" />  $imspform
 <span class="LC_nobreak">  
 <input name="newext" type="button" onClick="javascript:makenewext('newext');"  
 value="$lt{'extr'}" /> $help{'Adding_External_Resource'}  
 </span>  
 </form>  
 <br /><form action="/adm/imsimportdocs" method="post" name="ims">  
 <input type="hidden" name="folder" value="$folder" />  
 <input name="imsimport" type="button" value="$lt{'imsf'}" onClick="javascript:makeims();" />  
 </form>  
 ENDFORM  ENDFORM
        }         }
        $r->print('</td><td>');         $r->print('</td><td>');
        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">  
 <input type="hidden" name="folderpath" value="$path" />  
 <input type="hidden" name="importdetail" value="" />   my $newpageform=(<<NPFORM);
 <span class="LC_nobreak">   <form action="/adm/coursedocs" method="post" name="newpage">
 <input name="newfolder" type="button"   <input type="hidden" name="folderpath" value="$path" />
 onClick="javascript:makenewfolder(this.form,'$folderseq');"   <input type="hidden" name="importdetail" value="" />
 value="$lt{'newf'}" />$help{'Adding_Folders'}   <span class="LC_nobreak">
 </span>   <input name="newpage" type="button"
 </form>   onClick="javascript:makenewpage(this.form,'$pageseq');"
 <br /><form action="/adm/coursedocs" method="post" name="newpage">   value="$lt{'newp'}" />$help{'Adding_Pages'}
 <input type="hidden" name="folderpath" value="$path" />   </span>
 <input type="hidden" name="importdetail" value="" />   </form>
 <span class="LC_nobreak">  NPFORM
 <input name="newpage" type="button"  
 onClick="javascript:makenewpage(this.form,'$pageseq');"   my $newfolderform=(<<NFFORM);
 value="$lt{'newp'}" />$help{'Adding_Pages'}   <form action="/adm/coursedocs" method="post" name="newfolder">
 </span>   <input type="hidden" name="folderpath" value="$path" />
 </form>   <input type="hidden" name="importdetail" value="" />
 <br /><form action="/adm/coursedocs" method="post" name="newsyl">   <span class="LC_nobreak">
 $uploadtag   <input name="newfolder" type="button"
 <input type="hidden" name="importdetail"    onClick="javascript:makenewfolder(this.form,'$folderseq');"
 value="$lt{'syll'}=/public/$coursedom/$coursenum/syllabus" />   value="$lt{'newf'}" />$help{'Adding_Folders'}
 <span class="LC_nobreak">   </span>
 <input name="newsyl" type="submit" value="$lt{'syll'}" />    </form>
  $help{'Syllabus'}  NFFORM
 </span>  
 </form>   my $newsylform=(<<NSYLFORM);
 <br /><form action="/adm/coursedocs" method="post" name="newnav">   <form action="/adm/coursedocs" method="post" name="newsyl">
 $uploadtag   $uploadtag
 <input type="hidden" name="importdetail"    <input type="hidden" name="importdetail" 
 value="$lt{'navc'}=/adm/navmaps" />   value="$lt{'syll'}=/public/$coursedom/$coursenum/syllabus" />
 <span class="LC_nobreak">   <span class="LC_nobreak">
 <input name="newnav" type="submit" value="$lt{'navc'}" />   <input name="newsyl" type="submit" value="$lt{'syll'}" /> 
 $help{'Navigate_Content'}   $help{'Syllabus'}
 </span>   </span>
 </form>   </form>
 <br /><form action="/adm/coursedocs" method="post" name="newsmppg">  NSYLFORM
 $uploadtag  
 <input type="hidden" name="importdetail" value="" />   my $newgroupfileform=(<<NGFFORM);
 <span class="LC_nobreak">   <form action="/adm/coursedocs" method="post" name="newgroupfiles">
 <input name="newsmppg" type="button" value="$lt{'sipa'}"   $uploadtag
 onClick="javascript:makesmppage();" /> $help{'Simple Page'}   <input type="hidden" name="importdetail"
 </span>   value="$lt{'grpo'}=/adm/$coursedom/$coursenum/aboutme" />
 </form>   <span class="LC_nobreak">
 <br /><form action="/adm/coursedocs" method="post" name="newsmpproblem">   <input name="newgroupfiles" type="submit" value="$lt{'grpo'}" />
 $uploadtag   $help{'Group Files'}
 <input type="hidden" name="importdetail" value="" />   </span>
 <span class="LC_nobreak">   </form>
 <input name="newsmpproblem" type="button" value="$lt{'sipr'}"  NGFFORM
 onClick="javascript:makesmpproblem();" />$help{'Simple Problem'}  
 </span>  
 </form>             my $specialdocumentsform=(<<ENDFORM);
 <br /><form action="/adm/coursedocs" method="post" name="newdropbox">  <br />
 $uploadtag        $newfolderform
 <input type="hidden" name="importdetail" value="" />  <br />
 <span class="LC_nobreak">            $newpageform
 <input name="newdropbox" type="button" value="$lt{'drbx'}"  <br />
 onClick="javascript:makedropbox();" />  $newsylform
 </span>           <br />
 </form>   $newnavform
 <br /><form action="/adm/coursedocs" method="post" name="newexamupload">  <br />
 $uploadtag  $newsmppageform
 <input type="hidden" name="importdetail" value="" />  <br />
 <span class="LC_nobreak">  $newsmpproblemform
 <input name="newexamupload" type="button" value="$lt{'scuf'}"  <br />
 onClick="javascript:makeexamupload();" />  $newdropboxform
 $help{'Score_Upload_Form'}  <br />
 </span>  $newexuploadform
 </form>  <br />
 <br /><form action="/adm/coursedocs" method="post" name="newbul">  $newbulform
 $uploadtag  <br />
 <input type="hidden" name="importdetail" value="" />  $newaboutmeform
 <span class="LC_nobreak">  <br />
 <input name="newbulletin" type="button" value="$lt{'bull'}"  $newaboutsomeoneform
 onClick="javascript:makebulboard();" />  <br />
 $help{'Bulletin Board'}  $newgroupfileform
 </span>  <br />
 </form>  $newrosterform
 <br /><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>  
 <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  ENDFORM
        }  
   $r->print($specialdocumentsform);
   
   my %orderhash = (
                   'aa_eins' => 'New Document',
                   'bb_zwei' => 'Published Documents',
                   'cc_drei' => 'Special Documents',
    'dd_vier' => 'More Options',
                   'zz_hide' => 'Hide all Option',
                   );
   my %namehash = (
                   'New Document' => $fileuploadform,
                   'Published Documents' => $simpleeditdefaultform,
                   'Special Documents' => $specialdocumentsform,
    'More Options' => $extresourcesform.'<br />'.$imspform.'<br />'.$recoverform,
                   'drei' => 'dr',
                   );
   my $varcd = 'Course Documents';
   $r->print(&generate_edit_table($varcd,\%namehash,\%orderhash)); 
   
         }
        if ($env{'form.pagepath'}) {         if ($env{'form.pagepath'}) {
            $r->print(<<ENDBLOCK);             $r->print(<<ENDBLOCK);
 <form action="/adm/coursedocs" method="post" name="newsmpproblem">  $newsmpproblemform
 $uploadtag  <br />
 <input type="hidden" name="importdetail" value="" />  $newexuploadform
 <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  ENDBLOCK
        }         }
        $r->print('</td></tr>'."\n".         $r->print('</td></tr>'."\n".
 '</table>');  '</table>');
   #$r->print(&generate_edit_table(\%namehash,\%orderhash));
        $r->print('</td></tr>');         $r->print('</td></tr>');
     }      }
 # ----------------------------------------------------- Supplemental documents  # ----------------------------------------------------- Supplemental documents
Line 3066  ENDBLOCK Line 3203  ENDBLOCK
        '.sequence';         '.sequence';
   
    my $path = &HTML::Entities::encode($env{'form.folderpath'},'<>&"');     my $path = &HTML::Entities::encode($env{'form.folderpath'},'<>&"');
   
    my $supupdocform=(<<SUPDOCFORM);
    <form action="/adm/coursedocs" method="post" enctype="multipart/form-data">
    $fileupload
    <br />
    <br />
    <span class="LC_nobreak">
    $checkbox
    </span>
    <br /><br />
    $lt{'comment'}:<br />
    <textarea cols=50 rows=4 name='comment'>
    </textarea>
    <br />
    <input type="hidden" name="folderpath" value="$path" />
    <input type="hidden" name="cmd" value="upload_supplemental" />
    <span class="LC_nobreak">
    <input type="submit" value="$lt{'upld'}" />
    $help{'Uploading_From_Harddrive'}
    </span>
    </form>
   SUPDOCFORM
   
    my $supnewfolderform=(<<SNFFORM);
    <form action="/adm/coursedocs" method="post" name="supnewfolder">
    <input type="hidden" name="folderpath" value="$path" />
    <input type="hidden" name="importdetail" value="" />
    <span class="LC_nobreak">
    <input name="newfolder" type="button"
    onClick="javascript:makenewfolder(this.form,'$folderseq');"
    value="$lt{'newf'}" /> $help{'Adding_Folders'}
    </span>
    </form>
   SNFFORM
   
   
    my $supnewextform=(<<SNEFORM);
    <form action="/adm/coursedocs" method="post" name="supnewext">
    <input type="hidden" name="folderpath" value="$path" />
    <input type="hidden" name="importdetail" value="" />
    <span class="LC_nobreak">
    <input name="newext" type="button" 
    onClick="javascript:makenewext('supnewext');"
    value="$lt{'extr'}" /> $help{'Adding_External_Resource'}
    </span>
    </form>
   SNEFORM
   
    my $supnewsylform=(<<SNSFORM);
    <form action="/adm/coursedocs" method="post" name="supnewsyl">
    <input type="hidden" name="folderpath" value="$path" />
    <input type="hidden" name="importdetail" 
    value="Syllabus=/public/$coursedom/$coursenum/syllabus" />
    <span class="LC_nobreak">
    <input name="newsyl" type="submit" value="$lt{'syll'}" />
    $help{'Syllabus'}
    </span>
    </form>
   SNSFORM
   
    my $supnewaboutmeform=(<<SNAMFORM);
    <form action="/adm/coursedocs" method="post" name="subnewaboutme">
    <input type="hidden" name="folderpath" value="$path" />
    <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>
   SNAMFORM
   
    $r->print(<<ENDSUPFORM);     $r->print(<<ENDSUPFORM);
 <table class="LC_docs_adddocs"><tr>  <ul class="LC_TabContent">
 <th>$lt{'upls'}</th>  <li>$lt{'nd'}</li>
 <th>$lt{'spec'}</th>  <li>$lt{'sd'}</li>
 </tr>  <li>$lt{'hao'}</li>
   </ul>
   <table class="LC_docs_adddocs">
 <tr><td>  <tr><td>
 <form action="/adm/coursedocs" method="post" enctype="multipart/form-data">  $supupdocform
 <input type="file" name="uploaddoc" size="40" />  </td>
   <td>
   $supnewfolderform
 <br />  <br />
   $supnewextform
 <br />  <br />
 <span class="LC_nobreak">  $supnewsylform
 <label>$lt{'parse'}?  
 <input type="checkbox" name="parserflag" />  
 </label>  
 </span>  
 <br /><br />  
 $lt{'comment'}:<br />  
 <textarea cols=50 rows=4 name='comment'>  
 </textarea>  
 <br />  <br />
 <input type="hidden" name="folderpath" value="$path" />  $supnewaboutmeform
 <input type="hidden" name="cmd" value="upload_supplemental" />  
 <span class="LC_nobreak">  
 <input type="submit" value="$lt{'upld'}" />  
  $help{'Uploading_From_Harddrive'}  
 </span>  
 </form>  
 </td>  
 <td>  
 <form action="/adm/coursedocs" method="post" name="supnewfolder">  
 <input type="hidden" name="folderpath" value="$path" />  
 <input type="hidden" name="importdetail" value="" />  
 <span class="LC_nobreak">  
 <input name="newfolder" type="button"  
 onClick="javascript:makenewfolder(this.form,'$folderseq');"  
 value="$lt{'newf'}" /> $help{'Adding_Folders'}  
 </span>  
 </form>  
 <br /><form action="/adm/coursedocs" method="post" name="supnewext">  
 <input type="hidden" name="folderpath" value="$path" />  
 <input type="hidden" name="importdetail" value="" />  
 <span class="LC_nobreak">  
 <input name="newext" type="button"   
 onClick="javascript:makenewext('supnewext');"  
 value="$lt{'extr'}" /> $help{'Adding_External_Resource'}  
 </span>  
 </form>  
 <br /><form action="/adm/coursedocs" method="post" name="supnewsyl">  
 <input type="hidden" name="folderpath" value="$path" />  
 <input type="hidden" name="importdetail"   
 value="Syllabus=/public/$coursedom/$coursenum/syllabus" />  
 <span class="LC_nobreak">  
 <input name="newsyl" type="submit" value="$lt{'syll'}" />  
 $help{'Syllabus'}  
 </span>  
 </form>  
 <br /><form action="/adm/coursedocs" method="post" name="subnewaboutme">  
 <input type="hidden" name="folderpath" value="$path" />  
 <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>  
 </td></tr>  </td></tr>
 </table></td></tr>  </table></td></tr>
 ENDSUPFORM  ENDSUPFORM
Line 3146  ENDSUPFORM Line 3308  ENDSUPFORM
   <input type="hidden" name="residx" />    <input type="hidden" name="residx" />
 </form>');  </form>');
     }      }
   
   } else {    } else {
       unless ($upload_result eq 'phasetwo') {        unless ($upload_result eq 'phasetwo') {
 # -------------------------------------------------------- This is showdoc mode  # -------------------------------------------------------- This is showdoc mode
Line 3160  ENDSUPFORM Line 3323  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 ($varcd,$namehash_ref,$orderhash_ref) = @_;
       #my %optionhash = %{$optionhash_ref};         #id verlinkt mit inhalt
       #my %tablehash = %{$tablehash_ref};
       my %namehash = %{$namehash_ref};             #name verlinkt mit id
       my %orderhash = %{$orderhash_ref};           #name mit kürzel verlinkt mit name
       #my %tablehash = %{$tablehash_ref};
       my $form;
   
       #foreach my $id (keys(%tablehash)){
       $form = '<div class="LC_ContentBoxSpecial"><h4 class="LC_hcell">'.&mt('Upload '.$varcd).'</h4>';
       
       $form .= '<ul class="LC_TabContent">';
       foreach my $name (sort(keys(%orderhash))){
           if($name eq 'zz_hide'){
               $form .= '<li onclick="javascript:hideAll();">'.&mt($orderhash{$name}).'</li>';
           }else{
               $form .= '<li onclick="javascript:showPage(this, \''.$orderhash{$name}.'\');">'.&mt($orderhash{$name}).'</li>';
           }
       }
       $form .= '<div id="content" style="padding: 0 0; margin: 0 0;">';
       foreach my $field (keys(%namehash)){
           $form .= '<div id="'.$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 3362  function markcopy(folderpath,index,oldti Line 3601  function markcopy(folderpath,index,oldti
     this.document.forms.renameform.submit();      this.document.forms.renameform.submit();
 }  }
   
   function hideAll() {
    currentData = document.getElementById('content');
    currentDivs = currentData.getElementsByTagName('div');
    for (i = 0; i < currentDivs.length; i++) {
    currentDivs[i].style.display = 'none';
    }
   }
   
   function showPage(current, pageId) {
    hideAll();
    current.className = 'active';
    currentData = document.getElementById(pageId);
    currentData.style.display = 'block';
    return false;
   }
   
 ENDNEWSCRIPT  ENDNEWSCRIPT
 }  }
 1;  1;

Removed from v.1.321  
changed lines
  Added in v.1.331


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