';
- my $colcount=0;
+ $keywordout.='';
- $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.=
- 'Abstract: ';
+ $scrout.=
+ "\n
ABSTRACT:".
+ "
".
+ '';
$source=~/\.(\w+)$/;
$scrout.=&hiddenfield('mime',$1);
- $scrout.=&selectbox('Language','language',
- $metadatafields{'language'},
+ my $defaultlanguage=$metadatafields{'language'};
+ $defaultlanguage =~ s/\s*notset\s*//g;
+ $defaultlanguage =~ s/^,\s*//g;
+ $defaultlanguage =~ s/,\s*$//g;
+
+ $scrout.=&selectbox('Language','language',
+ $defaultlanguage,
\&Apache::loncommon::languagedescription,
(&Apache::loncommon::languageids),
- );
+ );
- unless ($metadatafields{'creationdate'}) {
+ unless ($metadatafields{'creationdate'}) {
$metadatafields{'creationdate'}=time;
- }
- $scrout.=&hiddenfield('creationdate',
- &Apache::loncommon::unsqltime($metadatafields{'creationdate'}));
+ }
+ $scrout.=&hiddenfield('creationdate',
+ &Apache::loncommon::unsqltime($metadatafields{'creationdate'}));
+
+ $scrout.=&hiddenfield('lastrevisiondate',time);
- $scrout.=&hiddenfield('lastrevisiondate',time);
-
$scrout.=&textfield('Publisher/Owner','owner',
- $metadatafields{'owner'});
+ $metadatafields{'owner'});
# -------------------------------------------------- Correct copyright for rat.
- if ($style eq 'rat') {
- if ($metadatafields{'copyright'} eq 'public') {
- delete $metadatafields{'copyright'};
+ 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',
+ $defaultoption,
+ \&Apache::loncommon::copyrightdescription,
+ (grep !/^public$/,(&Apache::loncommon::copyrightids)));
+ } else {
+ $scrout.=&selectbox('Copyright/Distribution','copyright',
+ $defaultoption,
+ \&Apache::loncommon::copyrightdescription,
+ (&Apache::loncommon::copyrightids));
+ }
+
+ my $copyright_help =
+ Apache::loncommon::help_open_topic('Publishing_Copyright');
+ $scrout =~ s/DISTRIBUTION:/'DISTRIBUTION: ' . $copyright_help/ge;
+ $scrout.=&textfield('Custom Distribution File','customdistributionfile',
+ $metadatafields{'customdistributionfile'}).
+ $copyright_help;
+ } else {
+ $scrout.=&hiddenfield('copyright','private');
}
- $scrout.=&selectbox('Copyright/Distribution','copyright',
- $metadatafields{'copyright'},
- \&Apache::loncommon::copyrightdescription,
- (grep !/^public$/,(&Apache::loncommon::copyrightids)));
- }
- else {
- $scrout.=&selectbox('Copyright/Distribution','copyright',
- $metadatafields{'copyright'},
- \&Apache::loncommon::copyrightdescription,
- (&Apache::loncommon::copyrightids));
- }
-
- my $copyright_help =
- Apache::loncommon::help_open_topic('Publishing_Copyright');
- $scrout =~ s/DISTRIBUTION:/'DISTRIBUTION: ' . $copyright_help/ge;
- return ($scrout.'
',0);
+ return ($scrout.'
',0);
# =============================================================================
# BATCH MODE
#
- } else {
+ } else {
# Transfer metadata directly to environment for stage 2
- foreach (keys %metadatafields) {
- $ENV{'form.'.$_}=$metadatafields{$_};
+ foreach (keys %metadatafields) {
+ $ENV{'form.'.$_}=$metadatafields{$_};
+ }
+ $ENV{'form.addkey'}='';
+ $ENV{'form.keywords'}='';
+ foreach (keys %keywords) {
+ if ($metadatafields{'keywords'}) {
+ if ($metadatafields{'keywords'}=~/\Q$_\E/) {
+ $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);
- }
}
#########################################
@@ -1231,6 +1249,8 @@ sub phasetwo {
$metadatafields{'lastrevisiondate'}=$ENV{'form.lastrevisiondate'};
$metadatafields{'owner'}=$ENV{'form.owner'};
$metadatafields{'copyright'}=$ENV{'form.copyright'};
+ $metadatafields{'customdistributionfile'}=
+ $ENV{'form.customdistributionfile'};
$metadatafields{'dependencies'}=$ENV{'form.dependencies'};
my $allkeywords=$ENV{'form.addkey'};
@@ -1269,7 +1289,7 @@ sub phasetwo {
.''.$tag.'>';
}
}
- $r->print('Wrote Metadata');
+ $r->print('
Wrote Metadata
');
print $logfile "\nWrote metadata";
}
@@ -1280,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";
}
@@ -1310,21 +1330,21 @@ sub phasetwo {
unlink($srcd.'/'.$filename);
unlink($srcd.'/'.$filename.'.meta');
} else {
- if ($filename=~/$srcf\.(\d+)\.$srct$/) {
+ if ($filename=~/\Q$srcf\E\.(\d+)\.\Q$srct\E$/) {
$maxversion=($1>$maxversion)?$1:$maxversion;
}
}
}
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 ";
@@ -1336,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') {
@@ -1347,7 +1367,7 @@ sub phasetwo {
} else {
- $r->print('Initial version');
+ $r->print('
Initial version
');
print $logfile "\nInitial version";
}
@@ -1362,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 ";
@@ -1381,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
@@ -1395,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;
}
@@ -1407,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;
}
@@ -1420,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/;
@@ -1436,11 +1456,11 @@ sub phasetwo {
$r->print(
- ''.
+ ''.
'View Published Version '.
- 'Back to Source '.
+ '
Back to Source
'.
'Back to Source Directory ');
+ '">Back to Source Directory
');
}
}
@@ -1456,7 +1476,7 @@ sub batchpublish {
my $docroot=$r->dir_config('lonDocRoot');
my $thisdistarget=$targetfile;
- $thisdistarget=~s/^$docroot//;
+ $thisdistarget=~s/^\Q$docroot\E//;
undef %metadatafields;
@@ -1523,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;
}
@@ -1693,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
@@ -1711,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.
@@ -1721,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.