--- loncom/publisher/lonpublisher.pm 2004/06/11 20:11:06 1.172
+++ loncom/publisher/lonpublisher.pm 2005/01/24 21:56:57 1.180.2.1
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Publication Handler
#
-# $Id: lonpublisher.pm,v 1.172 2004/06/11 20:11:06 matthew Exp $
+# $Id: lonpublisher.pm,v 1.180.2.1 2005/01/24 21:56:57 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -199,7 +199,8 @@ sub metaeval {
}
}
my $newentry=$parser->get_text('/'.$entry);
- if ($entry eq 'customdistributionfile') {
+ if (($entry eq 'customdistributionfile') ||
+ ($entry eq 'sourcerights')) {
$newentry=~s/^\s*//;
if ($newentry !~m|^/res|) { $newentry=$prefix.$newentry; }
}
@@ -328,6 +329,21 @@ sub textfield {
'';
}
+sub text_with_browse_field {
+ my ($title,$name,$value,$restriction)=@_;
+ $value=~s/^\s+//gs;
+ $value=~s/\s+$//gs;
+ $value=~s/\s+/ /gs;
+ $title=&mt($title);
+ $ENV{'form.'.$name}=$value;
+ return "\n
$title:".
+ "
".
+ ''.
+ 'Select '.
+ 'Search';
+
+}
+
sub hiddenfield {
my ($name,$value)=@_;
$ENV{'form.'.$name}=$value;
@@ -471,7 +487,8 @@ sub get_subscribed_hosts {
while ($filename=readdir(DIR)) {
if ($filename=~/\Q$srcf\E\.(\w+)$/) {
my $subhost=$1;
- if (($subhost ne 'meta' && $subhost ne 'subscription') &&
+ if (($subhost ne 'meta' && $subhost ne 'subscription' &&
+ $subhost ne 'tmp') &&
($subhost ne $Apache::lonnet::perlvar{'lonHostID'})) {
push(@subscribed,$subhost);
}
@@ -582,11 +599,11 @@ sub get_all_text_unbalanced {
} elsif ($token->[0] eq 'E') {
$result.=$token->[2];
}
- if ($result =~ /(.*)\Q$tag\E(.*)/s) {
+ if ($result =~ /\Q$tag\E/s) {
+ ($result,my $redo)=$result =~ /(.*)\Q$tag\E(.*)/is;
#&Apache::lonnet::logthis('Got a winner with leftovers ::'.$2);
#&Apache::lonnet::logthis('Result is :'.$1);
- $result=$1;
- my $redo=$tag.$2;
+ $redo=$tag.$redo;
push (@$pars,HTML::LCParser->new(\$redo));
$$pars[-1]->xml_mode('1');
last;
@@ -928,7 +945,7 @@ sub publish {
}
}
}
- $outstring=~s/\n*(\<\/[^\>]+\>)\s*$/$allowstr\n$1\n/s;
+ $outstring=~s/\n*(\<\/[^\>]+\>[^<]*)$/$allowstr\n$1\n/s;
# ------------------------------------------------------------- Write modified.
@@ -1130,7 +1147,7 @@ END
my $colcount=0;
foreach (sort keys %keywords) {
- $keywordout.=' | ';
+ $keywordout.=' />'.$_.'';
if ($colcount>10) {
$keywordout.="\n";
$colcount=0;
@@ -1205,11 +1222,20 @@ END
$intr_scrout.=&textfield('Publisher/Owner','owner',
$metadatafields{'owner'});
-# -------------------------------------------------- Correct copyright for rat.
+# ---------------------------------------------- Retrofix for unused copyright
+ if ($metadatafields{'copyright'} eq 'free') {
+ $metadatafields{'copyright'}='default';
+ $metadatafields{'sourceavail'}='open';
+ }
+# ------------------------------------------------ Dial in reasonable defaults
my $defaultoption=$metadatafields{'copyright'};
unless ($defaultoption) { $defaultoption='default'; }
+ my $defaultsourceoption=$metadatafields{'sourceavail'};
+ unless ($defaultsourceoption) { $defaultsourceoption='closed'; }
unless ($style eq 'prv') {
+# -------------------------------------------------- Correct copyright for rat.
if ($style eq 'rat') {
+# -------------------------------------- Retrofix for non-applicable copyright
if ($metadatafields{'copyright'} eq 'public') {
delete $metadatafields{'copyright'};
$defaultoption='default';
@@ -1218,39 +1244,35 @@ END
$defaultoption,
\&Apache::loncommon::copyrightdescription,
(grep !/^public$/,(&Apache::loncommon::copyrightids)));
- } else {
- $intr_scrout.=&selectbox('Copyright/Distribution','copyright',
- $defaultoption,
- \&Apache::loncommon::copyrightdescription,
- (&Apache::loncommon::copyrightids));
- }
-
- my $copyright_help =
- Apache::loncommon::help_open_topic('Publishing_Copyright');
- $intr_scrout =~ s/DISTRIBUTION:/'DISTRIBUTION: ' . $copyright_help/ge;
- $intr_scrout.=&textfield('Custom Distribution File','customdistributionfile',
- $metadatafields{'customdistributionfile'}).
- $copyright_help;
- $intr_scrout.=&selectbox('Source Distribution','sourceavail',
- $defaultoption,
- \&Apache::loncommon::source_copyrightdescription,
- (&Apache::loncommon::source_copyrightids));
- $intr_scrout.=&textfield('Source Custom Distribution File','sourcerights',
- $metadatafields{'sourcerights'});
- my $uctitle=&mt('Obsolete');
- $intr_scrout.=
- "\n$uctitle:".
- '
'.
- &textfield('Suggested Replacement for Obsolete File',
- 'obsoletereplacement',
- $metadatafields{'obsoletereplacement'});
} else {
- $intr_scrout.=&hiddenfield('copyright','private');
+ $intr_scrout.=&selectbox('Copyright/Distribution','copyright',
+ $defaultoption,
+ \&Apache::loncommon::copyrightdescription,
+ (&Apache::loncommon::copyrightids));
+ }
+ my $copyright_help =
+ Apache::loncommon::help_open_topic('Publishing_Copyright');
+ $intr_scrout =~ s/DISTRIBUTION:/'DISTRIBUTION: ' . $copyright_help/ge;
+ $intr_scrout.=&text_with_browse_field('Custom Distribution File','customdistributionfile',$metadatafields{'customdistributionfile'},'rights').$copyright_help;
+ $intr_scrout.=&selectbox('Source Distribution','sourceavail',
+ $defaultsourceoption,
+ \&Apache::loncommon::source_copyrightdescription,
+ (&Apache::loncommon::source_copyrightids));
+ $intr_scrout.=&text_with_browse_field('Source Custom Distribution File','sourcerights',$metadatafields{'sourcerights'},'rights');
+ my $uctitle=&mt('Obsolete');
+ $intr_scrout.=
+ "\n$uctitle:".
+ '
'.
+ &text_with_browse_field('Suggested Replacement for Obsolete File',
+ 'obsoletereplacement',
+ $metadatafields{'obsoletereplacement'});
+ } else {
+ $intr_scrout.=&hiddenfield('copyright','private');
+ }
if (!$batch) {
$scrout.=$intr_scrout.'';
@@ -1659,7 +1681,7 @@ sub publishdirectory {
$ruid,$rgid,$rrdev,$rsize,
$ratime,$rmtime,$rctime,
$rblksize,$rblocks)=stat($resdir.'/'.$filename);
- if (($rmtime<$cmtime) || ($ENV{'form.forcerepub'})) {
+ if (($rmtime<$cmtime) || ($ENV{'form.forcerepub'} eq 'ON')) {
# previously published, modified now
$publishthis=1;
}
@@ -1881,8 +1903,11 @@ sub handler {
&Apache::loncommon::content_type($r,'text/html');
$r->send_http_header;
-
- $r->print('LON-CAPA Publishing');
+
+ my $js=&Apache::loncommon::browser_and_searcher_javascript();
+ $r->print('LON-CAPA Publishing
+ ');
$r->print(&Apache::loncommon::bodytag('Resource Publication'));