Diff for /loncom/publisher/lonpublisher.pm between versions 1.115 and 1.116

version 1.115, 2003/03/14 02:26:12 version 1.116, 2003/03/14 15:29:46
Line 957  sub publish { Line 957  sub publish {
     }      }
 # ---------------- Find and document discrepancies in the parameters and stores  # ---------------- Find and document discrepancies in the parameters and stores
   
         my $chparms='';      my $chparms='';
         foreach (sort keys %metadatafields) {      foreach (sort keys %metadatafields) {
     if (($_=~/^parameter/) || ($_=~/^stores/)) {   if (($_=~/^parameter/) || ($_=~/^stores/)) {
                 unless ($_=~/\.\w+$/) {       unless ($_=~/\.\w+$/) { 
                    unless ($oldparmstores{$_}) {   unless ($oldparmstores{$_}) {
       print $logfile 'New: '.$_."\n";      print $logfile 'New: '.$_."\n";
                       $chparms.=$_.' ';      $chparms.=$_.' ';
                    }   }
         }      }
             }   }
         }      }
         if ($chparms) {      if ($chparms) {
     $scrout.='<p><b>New parameters or stored values:</b> '.   $scrout.='<p><b>New parameters or stored values:</b> '.$chparms;
                      $chparms;      }
         }  
       $chparms='';
         $chparms='';      foreach (sort keys %oldparmstores) {
         foreach (sort keys %oldparmstores) {   if (($_=~/^parameter/) || ($_=~/^stores/)) {
     if (($_=~/^parameter/) || ($_=~/^stores/)) {      unless (($metadatafields{$_.'.name'}) ||
                 unless (($metadatafields{$_.'.name'}) ||      ($metadatafields{$_.'.package'}) || ($_=~/\.\w+$/)) {
                         ($metadatafields{$_.'.package'}) || ($_=~/\.\w+$/)) {   print $logfile 'Obsolete: '.$_."\n";
     print $logfile 'Obsolete: '.$_."\n";   $chparms.=$_.' ';
                     $chparms.=$_.' ';      }
                 }   }
             }      }
         }      if ($chparms) {
         if ($chparms) {   $scrout.='<p><b>Obsolete parameters or stored values:</b> '.
     $scrout.='<p><b>Obsolete parameters or stored values:</b> '.      $chparms;
                      $chparms;      }
         }  
   
 # ------------------------------------------------------- Now have all metadata  # ------------------------------------------------------- Now have all metadata
   
         my %keywords=();      my %keywords=();
                   
  if (length($content)<500000) {      if (length($content)<500000) {
     my $textonly=$content;   my $textonly=$content;
             $textonly=~s/\<script[^\<]+\<\/script\>//g;   $textonly=~s/\<script[^\<]+\<\/script\>//g;
             $textonly=~s/\<m\>[^\<]+\<\/m\>//g;   $textonly=~s/\<m\>[^\<]+\<\/m\>//g;
             $textonly=~s/\<[^\>]*\>//g;   $textonly=~s/\<[^\>]*\>//g;
             $textonly=~tr/A-Z/a-z/;   $textonly=~tr/A-Z/a-z/;
             $textonly=~s/[\$\&][a-z]\w*//g;   $textonly=~s/[\$\&][a-z]\w*//g;
             $textonly=~s/[^a-z\s]//g;   $textonly=~s/[^a-z\s]//g;
   
             foreach ($textonly=~m/(\w+)/g) {   foreach ($textonly=~m/(\w+)/g) {
  unless ($nokey{$_}) {      unless ($nokey{$_}) {
                    $keywords{$_}=1;   $keywords{$_}=1;
                 }       } 
             }   }
         }      }
   
                           
             foreach (split(/\W+/,$metadatafields{'keywords'})) {      foreach (split(/\W+/,$metadatafields{'keywords'})) {
  $keywords{$_}=1;   $keywords{$_}=1;
             }      }
 # --------------------------------------------------- Now we also have keywords  # --------------------------------------------------- Now we also have keywords
 # =============================================================================  # =============================================================================
 # INTERACTIVE MODE  # INTERACTIVE MODE
 #  #
    unless ($batch) {      unless ($batch) {
         $scrout.=          $scrout.=
      '<form name="pubform" action="/adm/publish" method="post">'.      '<form name="pubform" action="/adm/publish" method="post">'.
        '<p><input type="submit" value="Finalize Publication" /></p>'.              '<p><input type="submit" value="Finalize Publication" /></p>'.
           &hiddenfield('phase','two').              &hiddenfield('phase','two').
           &hiddenfield('filename',$ENV{'form.filename'}).              &hiddenfield('filename',$ENV{'form.filename'}).
   &hiddenfield('allmeta',&Apache::lonnet::escape($allmeta)).      &hiddenfield('allmeta',&Apache::lonnet::escape($allmeta)).
           &hiddenfield('dependencies',join(',',keys %allow)).              &hiddenfield('dependencies',join(',',keys %allow)).
           &textfield('Title','title',$metadatafields{'title'}).              &textfield('Title','title',$metadatafields{'title'}).
           &textfield('Author(s)','author',$metadatafields{'author'}).              &textfield('Author(s)','author',$metadatafields{'author'}).
   &textfield('Subject','subject',$metadatafields{'subject'});      &textfield('Subject','subject',$metadatafields{'subject'});
   
 # --------------------------------------------------- Scan content for keywords  # --------------------------------------------------- Scan content for keywords
   
         my $keywords_help = Apache::loncommon::help_open_topic("Publishing_Keywords");          my $keywords_help = Apache::loncommon::help_open_topic("Publishing_Keywords");
  my $keywordout=<<"END";   my $keywordout=<<"END";
 <script>  <script>
 function checkAll(field)  function checkAll(field) {
 {  
     for (i = 0; i < field.length; i++)      for (i = 0; i < field.length; i++)
         field[i].checked = true ;          field[i].checked = true ;
 }  }
   
 function uncheckAll(field)  function uncheckAll(field) {
 {  
     for (i = 0; i < field.length; i++)      for (i = 0; i < field.length; i++)
         field[i].checked = false ;          field[i].checked = false ;
 }  }
Line 1049  function uncheckAll(field) Line 1046  function uncheckAll(field)
 <input type="button" value="check all" onclick="javascript:checkAll(document.pubform.keywords)">   <input type="button" value="check all" onclick="javascript:checkAll(document.pubform.keywords)"> 
 <input type="button" value="uncheck all" onclick="javascript:uncheckAll(document.pubform.keywords)">   <input type="button" value="uncheck all" onclick="javascript:uncheckAll(document.pubform.keywords)"> 
 <br />  <br />
 END  END
         $keywordout.='<table border=2><tr>';   $keywordout.='<table border=2><tr>';
         my $colcount=0;   my $colcount=0;
   
             foreach (sort keys %keywords) {   foreach (sort keys %keywords) {
                 $keywordout.='<td><input type=checkbox name="keywords" value="'.$_.'"';      $keywordout.='<td><input type=checkbox name="keywords" value="'.$_.'"';
                 if ($metadatafields{'keywords'}) {      if ($metadatafields{'keywords'}) {
                    if ($metadatafields{'keywords'}=~/$_/) {    if ($metadatafields{'keywords'}=~/$_/) {
                       $keywordout.=' checked';       $keywordout.=' checked';
                    }   }
         } elsif (&Apache::loncommon::keyword($_)) {      } elsif (&Apache::loncommon::keyword($_)) {
             $keywordout.=' checked';   $keywordout.=' checked';
                 }       }
                 $keywordout.='>'.$_.'</td>';      $keywordout.='>'.$_.'</td>';
                 if ($colcount>10) {      if ($colcount>10) {
     $keywordout.="</tr><tr>\n";   $keywordout.="</tr><tr>\n";
                     $colcount=0;   $colcount=0;
                 }      }
                 $colcount++;      $colcount++;
             }   }
           
  $keywordout.='</tr></table>';   $keywordout.='</tr></table>';
   
         $scrout.=$keywordout;   $scrout.=$keywordout;
   
         $scrout.=&textfield('Additional Keywords','addkey','');   $scrout.=&textfield('Additional Keywords','addkey','');
   
         $scrout.=&textfield('Notes','notes',$metadatafields{'notes'});   $scrout.=&textfield('Notes','notes',$metadatafields{'notes'});
   
         $scrout.=   $scrout.=
              '<p><b>Abstract:</b><br><textarea cols=80 rows=5 name=abstract>'.      '<p><b>Abstract:</b><br><textarea cols=80 rows=5 name=abstract>'.
               $metadatafields{'abstract'}.'</textarea>';      $metadatafields{'abstract'}.'</textarea>';
   
  $source=~/\.(\w+)$/;   $source=~/\.(\w+)$/;
   
  $scrout.=&hiddenfield('mime',$1);   $scrout.=&hiddenfield('mime',$1);
   
         $scrout.=&selectbox('Language','language',   $scrout.=&selectbox('Language','language',
                             $metadatafields{'language'},      $metadatafields{'language'},
     \&Apache::loncommon::languagedescription,      \&Apache::loncommon::languagedescription,
     (&Apache::loncommon::languageids),      (&Apache::loncommon::languageids),
      );     );
   
         unless ($metadatafields{'creationdate'}) {   unless ($metadatafields{'creationdate'}) {
     $metadatafields{'creationdate'}=time;      $metadatafields{'creationdate'}=time;
         }   }
         $scrout.=&hiddenfield('creationdate',   $scrout.=&hiddenfield('creationdate',
               &Apache::loncommon::unsqltime($metadatafields{'creationdate'}));        &Apache::loncommon::unsqltime($metadatafields{'creationdate'}));
   
    $scrout.=&hiddenfield('lastrevisiondate',time);
   
         $scrout.=&hiddenfield('lastrevisiondate',time);  
   
      
  $scrout.=&textfield('Publisher/Owner','owner',   $scrout.=&textfield('Publisher/Owner','owner',
                             $metadatafields{'owner'});      $metadatafields{'owner'});
   
 # -------------------------------------------------- Correct copyright for rat.  # -------------------------------------------------- Correct copyright for rat.
    unless ($style eq 'prv') {   unless ($style eq 'prv') {
      if ($style eq 'rat') {      if ($style eq 'rat') {
  if ($metadatafields{'copyright'} eq 'public') {    if ($metadatafields{'copyright'} eq 'public') { 
     delete $metadatafields{'copyright'};      delete $metadatafields{'copyright'};
  }   }
         $scrout.=&selectbox('Copyright/Distribution','copyright',   $scrout.=&selectbox('Copyright/Distribution','copyright',
                             $metadatafields{'copyright'},      $metadatafields{'copyright'},
     \&Apache::loncommon::copyrightdescription,      \&Apache::loncommon::copyrightdescription,
      (grep !/^public$/,(&Apache::loncommon::copyrightids)));      (grep !/^public$/,(&Apache::loncommon::copyrightids)));
      } else {      } else {
         $scrout.=&selectbox('Copyright/Distribution','copyright',   $scrout.=&selectbox('Copyright/Distribution','copyright',
                             $metadatafields{'copyright'},      $metadatafields{'copyright'},
     \&Apache::loncommon::copyrightdescription,      \&Apache::loncommon::copyrightdescription,
     (&Apache::loncommon::copyrightids));      (&Apache::loncommon::copyrightids));
      }      }
       
      my $copyright_help =      my $copyright_help =
         Apache::loncommon::help_open_topic('Publishing_Copyright');   Apache::loncommon::help_open_topic('Publishing_Copyright');
      $scrout =~ s/DISTRIBUTION:/'DISTRIBUTION: ' . $copyright_help/ge;      $scrout =~ s/DISTRIBUTION:/'DISTRIBUTION: ' . $copyright_help/ge;
      $scrout.=&textfield('Custom Distribution File','customdistributionfile',      $scrout.=&textfield('Custom Distribution File','customdistributionfile',
                      $metadatafields{'customdistributionfile'}).   $metadatafields{'customdistributionfile'}).
                 $copyright_help;      $copyright_help;
     } else {   } else {
      $scrout.=&hiddenfield('copyright','private');      $scrout.=&hiddenfield('copyright','private');
     }   }
     return ($scrout.'<p><input type="submit" value="Finalize Publication" /></p></form>',0);   return ($scrout.'<p><input type="submit" value="Finalize Publication" /></p></form>',0);
 # =============================================================================  # =============================================================================
 # BATCH MODE  # BATCH MODE
 #  #
   } else {      } else {
 # Transfer metadata directly to environment for stage 2  # Transfer metadata directly to environment for stage 2
     foreach (keys %metadatafields) {   foreach (keys %metadatafields) {
  $ENV{'form.'.$_}=$metadatafields{$_};      $ENV{'form.'.$_}=$metadatafields{$_};
    }
    $ENV{'form.addkey'}='';
    $ENV{'form.keywords'}='';
    foreach (keys %keywords) {
       if ($metadatafields{'keywords'}) {
    if ($metadatafields{'keywords'}=~/$_/) { 
       $ENV{'form.keywords'}.=$_.','; 
    }
       } elsif (&Apache::loncommon::keyword($_)) {
    $ENV{'form.keywords'}.=$_.',';
       }
    }
    $ENV{'form.keywords'}=~s/\,$//;
    unless ($ENV{'form.creationdate'}) { $ENV{'form.creationdate'}=time; }
    $ENV{'form.lastrevisiondate'}=time;
    if ((($style eq 'rat') && ($ENV{'form.copyright'} eq 'public')) ||
       (!$ENV{'form.copyright'})) { 
       $ENV{'form.copyright'}='default';
    }
    $ENV{'form.allmeta'}=&Apache::lonnet::escape($allmeta);
    return ($scrout,0);
     }      }
     $ENV{'form.addkey'}='';  
     $ENV{'form.keywords'}='';  
     foreach (keys %keywords) {  
         if ($metadatafields{'keywords'}) {  
            if ($metadatafields{'keywords'}=~/$_/) {   
               $ENV{'form.keywords'}.=$_.',';   
            }  
  } elsif (&Apache::loncommon::keyword($_)) {  
     $ENV{'form.keywords'}.=$_.',';  
         }   
     }  
     $ENV{'form.keywords'}=~s/\,$//;  
     unless ($ENV{'form.creationdate'}) { $ENV{'form.creationdate'}=time; }  
     $ENV{'form.lastrevisiondate'}=time;  
     if ((($style eq 'rat') && ($ENV{'form.copyright'} eq 'public')) ||  
         (!$ENV{'form.copyright'})) {   
  $ENV{'form.copyright'}='default';  
     }   
     $ENV{'form.allmeta'}=&Apache::lonnet::escape($allmeta);  
     return ($scrout,0);  
   }  
 }  }
   
 #########################################  #########################################

Removed from v.1.115  
changed lines
  Added in v.1.116


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