--- loncom/publisher/lonpublisher.pm 2003/03/14 16:12:14 1.118 +++ loncom/publisher/lonpublisher.pm 2003/07/05 10:07:12 1.124 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Publication Handler # -# $Id: lonpublisher.pm,v 1.118 2003/03/14 16:12:14 albertel Exp $ +# $Id: lonpublisher.pm,v 1.124 2003/07/05 10:07:12 www Exp $ # # Copyright Michigan State University Board of Trustees # @@ -190,7 +190,7 @@ sub metaeval { } if ($metadatafields{$unikey}) { my $newentry=$parser->get_text('/'.$entry); - unless (($metadatafields{$unikey}=~/$newentry/) || + unless (($metadatafields{$unikey}=~/\Q$newentry\E/) || ($newentry eq '')) { $metadatafields{$unikey}.=', '.$newentry; } @@ -242,7 +242,7 @@ sub metaread { my ($logfile,$fn)=@_; unless (-e $fn) { print($logfile 'No file '.$fn."\n"); - return '
No file: '.$fn.''; + return '
No file: '.$fn.''; } print($logfile 'Processing '.$fn."\n"); my $metastring; @@ -251,7 +251,7 @@ sub metaread { $metastring=join('',<$metafh>); } &metaeval($metastring); - return '
Processed file: '.$fn.''; + return '
Processed file: '.$fn.''; } ######################################### @@ -304,7 +304,9 @@ string which presents the form field (fo ######################################### sub textfield { my ($title,$name,$value)=@_; - return "\n

$title:
". + my $uctitle=uc($title); + return "\n

$uctitle:". + "


". ''; } @@ -316,8 +318,9 @@ sub hiddenfield { sub selectbox { my ($title,$name,$value,$functionref,@idlist)=@_; my $uctitle=uc($title); + $value=(split(/\s*,\s*/,$value))[-1]; my $selout="\n

$uctitle:". - "
".''; foreach (@idlist) { $selout.='

New parameters or stored values: '.$chparms; + $scrout.='

New parameters or stored values: '.$chparms.'

'; } $chparms=''; @@ -984,7 +987,7 @@ sub publish { } if ($chparms) { $scrout.='

Obsolete parameters or stored values: '. - $chparms; + $chparms.'

'; } # ------------------------------------------------------- Now have all metadata @@ -1042,24 +1045,26 @@ function uncheckAll(field) { field[i].checked = false ; } -

Keywords: $keywords_help - - +

KEYWORDS: + $keywords_help + + +


END - $keywordout.=''; + $keywordout.='
'; my $colcount=0; foreach (sort keys %keywords) { - $keywordout.=''; if ($colcount>10) { $keywordout.="\n"; $colcount=0; @@ -1076,15 +1081,22 @@ END $scrout.=&textfield('Notes','notes',$metadatafields{'notes'}); $scrout.= - '

Abstract:
'; + "\n

ABSTRACT:". + "


". + '

'; $source=~/\.(\w+)$/; $scrout.=&hiddenfield('mime',$1); + my $defaultlanguage=$metadatafields{'language'}; + $defaultlanguage =~ s/\s*notset\s*//g; + $defaultlanguage =~ s/^,\s*//g; + $defaultlanguage =~ s/,\s*$//g; + $scrout.=&selectbox('Language','language', - $metadatafields{'language'}, + $defaultlanguage, \&Apache::loncommon::languagedescription, (&Apache::loncommon::languageids), ); @@ -1102,18 +1114,21 @@ END $metadatafields{'owner'}); # -------------------------------------------------- Correct copyright for rat. + my $defaultoption=$metadatafields{'copyright'}; + unless ($defaultoption) { $defaultoption='default'; } unless ($style eq 'prv') { if ($style eq 'rat') { if ($metadatafields{'copyright'} eq 'public') { delete $metadatafields{'copyright'}; + $defaultoption='default'; } $scrout.=&selectbox('Copyright/Distribution','copyright', - $metadatafields{'copyright'}, + $defaultoption, \&Apache::loncommon::copyrightdescription, (grep !/^public$/,(&Apache::loncommon::copyrightids))); } else { $scrout.=&selectbox('Copyright/Distribution','copyright', - $metadatafields{'copyright'}, + $defaultoption, \&Apache::loncommon::copyrightdescription, (&Apache::loncommon::copyrightids)); } @@ -1140,7 +1155,7 @@ END $ENV{'form.keywords'}=''; foreach (keys %keywords) { if ($metadatafields{'keywords'}) { - if ($metadatafields{'keywords'}=~/$_/) { + if ($metadatafields{'keywords'}=~/\Q$_\E/) { $ENV{'form.keywords'}.=$_.','; } } elsif (&Apache::loncommon::keyword($_)) { @@ -1274,7 +1289,7 @@ sub phasetwo { .''; } } - $r->print('

Wrote Metadata'); + $r->print('

Wrote Metadata

'); print $logfile "\nWrote metadata"; } @@ -1285,14 +1300,14 @@ sub phasetwo { unless ($metadatafields{'copyright'} eq 'priv') { my ($error,$success) = &store_metadata(\%metadatafields); if ($success) { - $r->print('

Synchronized SQL metadata database'); + $r->print('

Synchronized SQL metadata database

'); print $logfile "\nSynchronized SQL metadata database"; } else { $r->print($error); print $logfile "\n".$error; } } else { - $r->print('

Private Publication - did not synchronize database'); + $r->print('

Private Publication - did not synchronize database

'); print $logfile "\nPrivate: Did not synchronize data into ". "SQL metadata database"; } @@ -1322,14 +1337,14 @@ sub phasetwo { } closedir(DIR); $maxversion++; - $r->print('

Creating old version '.$maxversion); + $r->print('

Creating old version '.$maxversion.'

'); print $logfile "\nCreating old version ".$maxversion; my $copyfile=$srcd.'/'.$srcf.'.'.$maxversion.'.'.$srct; if (copy($target,$copyfile)) { print $logfile "Copied old target to ".$copyfile."\n"; - $r->print('

Copied old target file'); + $r->print('

Copied old target file

'); } else { print $logfile "Unable to write ".$copyfile.':'.$!."\n"; return "Failed to copy old target, $!, FAIL"; @@ -1341,7 +1356,7 @@ sub phasetwo { if (copy($target.'.meta',$copyfile)) { print $logfile "Copied old target metadata to ".$copyfile."\n"; - $r->print('

Copied old metadata') + $r->print('

Copied old metadata

') } else { print $logfile "Unable to write metadata ".$copyfile.':'.$!."\n"; if (-e $target.'.meta') { @@ -1352,7 +1367,7 @@ sub phasetwo { } else { - $r->print('

Initial version'); + $r->print('

Initial version

'); print $logfile "\nInitial version"; } @@ -1367,14 +1382,14 @@ sub phasetwo { $path.="/$parts[$count]"; if ((-e $path)!=1) { print $logfile "\nCreating directory ".$path; - $r->print('

Created directory '.$parts[$count]); + $r->print('

Created directory '.$parts[$count].'

'); mkdir($path,0777); } } if (copy($source,$copyfile)) { print $logfile "\nCopied original source to ".$copyfile."\n"; - $r->print('

Copied source file'); + $r->print('

Copied source file

'); } else { print $logfile "\nUnable to write ".$copyfile.':'.$!."\n"; return "Failed to copy source, $!, FAIL"; @@ -1386,7 +1401,7 @@ sub phasetwo { if (copy($source.'.meta',$copyfile)) { print $logfile "\nCopied original metadata to ".$copyfile."\n"; - $r->print('

Copied metadata'); + $r->print('

Copied metadata

'); } else { print $logfile "\nUnable to write metadata ".$copyfile.':'.$!."\n"; return @@ -1400,7 +1415,7 @@ sub phasetwo { $r->print('

Notifying host '.$subhost.':');$r->rflush; print $logfile "\nNotifying host ".$subhost.':'; my $reply=&Apache::lonnet::critical('update:'.$target,$subhost); - $r->print($reply.'
');$r->rflush; + $r->print($reply.'


');$r->rflush; print $logfile $reply; } @@ -1412,7 +1427,7 @@ sub phasetwo { print $logfile "\nNotifying host for metadata only ".$subhost.':'; my $reply=&Apache::lonnet::critical('update:'.$target.'.meta', $subhost); - $r->print($reply.'
');$r->rflush; + $r->print($reply.'


');$r->rflush; print $logfile $reply; } @@ -1425,13 +1440,13 @@ sub phasetwo { my ($cdom,$cname)=split(/\_/,$_); my $reply=&Apache::lonnet::cput ('versionupdate',{$target => $now},$cdom,$cname); - $r->print($reply.'
');$r->rflush; + $r->print($reply.'


');$r->rflush; print $logfile $reply; } # ------------------------------------------------ Provide link to new resource unless ($batch) { my $thisdistarget=$target; - $thisdistarget=~s/^$docroot//; + $thisdistarget=~s/^\Q$docroot\E//; my $thissrc=$source; $thissrc=~s/^\/home\/(\w+)\/public_html/\/priv\/$1/; @@ -1441,11 +1456,11 @@ sub phasetwo { $r->print( - '
'. + '
'. 'View Published Version'. - '

Back to Source'. + '

Back to Source

'. '

Back to Source Directory'); + '">Back to Source Directory

'); } } @@ -1461,7 +1476,7 @@ sub batchpublish { my $docroot=$r->dir_config('lonDocRoot'); my $thisdistarget=$targetfile; - $thisdistarget=~s/^$docroot//; + $thisdistarget=~s/^\Q$docroot\E//; undef %metadatafields; @@ -1528,7 +1543,7 @@ sub publishdirectory { $ruid,$rgid,$rrdev,$rsize, $ratime,$rmtime,$rctime, $rblksize,$rblocks)=stat($resdir.'/'.$filename); - if ($rmtime<$cmtime) { + if (($rmtime<$cmtime) || ($ENV{'form.forcerepub'})) { # previously published, modified now $publishthis=1; } @@ -1698,10 +1713,10 @@ unless ($ENV{'form.phase'} eq 'two') { $thistarget=~s/\/public\_html//; my $thisdistarget=$thistarget; - $thisdistarget=~s/^$docroot//; + $thisdistarget=~s/^\Q$docroot\E//; my $thisdisfn=$thisfn; - $thisdisfn=~s/^\/home\/$cuname\/public_html\///; + $thisdisfn=~s/^\/home\/\Q$cuname\E\/public_html\///; if ($fn=~/\/$/) { # -------------------------------------------------------- This is a directory @@ -1716,7 +1731,7 @@ unless ($ENV{'form.phase'} eq 'two') { $r->print('

Publishing '. &Apache::loncommon::filedescription($thistype).' '. ''.$thisdisfn. - '

Target: '.$thisdistarget.'

'); + 'Target: '.$thisdistarget.'
'); if (($cuname ne $ENV{'user.name'}) || ($cudom ne $ENV{'user.domain'})) { $r->print('

Co-Author: '.$cuname.' at '.$cudom. @@ -1726,7 +1741,7 @@ unless ($ENV{'form.phase'} eq 'two') { if (&Apache::loncommon::fileembstyle($thistype) eq 'ssi') { $r->print('
Diffs with Current Version

'); + '&versiontwo=priv" target="cat">Diffs with Current Version
'); } # ------------------ Publishing from $thisfn to $thistarget with $thisembstyle.

'; + $keywordout.=' />'.$_.'