version 1.298, 2021/06/03 13:59:44
|
version 1.300, 2022/09/09 19:20:55
|
Line 367 sub hiddenfield {
|
Line 367 sub hiddenfield {
|
|
|
sub checkbox { |
sub checkbox { |
my ($name,$text)=@_; |
my ($name,$text)=@_; |
return "\n<br /><label><input type='checkbox' name='$name' /> ". |
return "\n<label><input type='checkbox' name='$name' /> ". |
&mt($text)."</label>"; |
&mt($text)."</label>"; |
} |
} |
|
|
Line 424 sub common_access {
|
Line 424 sub common_access {
|
'sel' => 'Select', |
'sel' => 'Select', |
); |
); |
my $output = <<"END"; |
my $output = <<"END"; |
<br /> |
|
<span class="LC_nobreak"> |
<span class="LC_nobreak"> |
<label> |
<label> |
<input type="checkbox" name="commonaccess" value="$name" id="$chkid" |
<input type="checkbox" name="commonaccess" value="$name" id="$chkid" |
Line 2264 sub publishdirectory {
|
Line 2263 sub publishdirectory {
|
.&Apache::lonhtmlcommon::row_title(&mt('Target')) |
.&Apache::lonhtmlcommon::row_title(&mt('Target')) |
.'<span class="LC_filename">'.$thisdisresdir.'</span>' |
.'<span class="LC_filename">'.$thisdisresdir.'</span>' |
); |
); |
|
my %reasons = &Apache::lonlocal::texthash( |
|
mod => 'Authoring Space file postdates published file', |
|
modmeta => 'Authoring Space metadata file postdates published file', |
|
unpub => 'Resource is unpublished', |
|
); |
|
|
my $dirptr=16384; # Mask indicating a directory in stat.cmode. |
my $dirptr=16384; # Mask indicating a directory in stat.cmode. |
unless ($env{'form.phase'} eq 'two') { |
unless ($env{'form.phase'} eq 'two') { |
# ask user what they want |
# ask user what they want |
$r->print(&Apache::lonhtmlcommon::row_closure() |
$r->print(&Apache::lonhtmlcommon::row_closure() |
.&Apache::lonhtmlcommon::row_title(&mt('Options')) |
.&Apache::lonhtmlcommon::row_title(&mt('Options') |
); |
.&Apache::loncommon::help_open_topic('Publishing_Directory_Options'))); |
$r->print(&hiddenfield('phase','two'). |
$r->print(&hiddenfield('phase','two'). |
&hiddenfield('filename',$env{'form.filename'}). |
&hiddenfield('filename',$env{'form.filename'}). |
&checkbox('pubrec','include subdirectories'). |
'<fieldset><legend>'.&mt('Recurse').'</legend>'. |
&checkbox('forcerepub','force republication of previously published files'). |
&checkbox('pubrec','include subdirectories'). |
&checkbox('obsolete','make file(s) obsolete'). |
'</fieldset>'. |
&checkbox('forceoverride','force directory level metadata over existing'). |
'<fieldset><legend>'.&mt('Force').'</legend>'. |
&checkbox('excludeunpub','exclude currently unpublished files'). |
&checkbox('forcerepub','force republication of previously published files').'<br />'. |
|
&checkbox('forceoverride','force directory level metadata over existing'). |
|
'</fieldset>'. |
|
'<fieldset><legend>'.&mt('Exclude').'</legend>'. |
|
&checkbox('excludeunpub','exclude currently unpublished files').'<br />'. |
|
&checkbox('excludemod','exclude modified files').'<br />'. |
|
&checkbox('excludemodmeta','exclude files with modified metadata'). |
|
'</fieldset>'. |
|
'<fieldset><legend>'.&mt('Actions').'</legend>'. |
|
&checkbox('obsolete','make file(s) obsolete').'<br />'. |
&common_access('dist',&mt('apply common copyright/distribution'), |
&common_access('dist',&mt('apply common copyright/distribution'), |
['default','domain','custom']). |
['default','domain','public','custom']).'<br />'. |
&common_access('source',&mt('apply common source availability'), |
&common_access('source',&mt('apply common source availability'), |
['closed','open']) |
['closed','open']). |
|
'</fieldset>' |
); |
); |
$r->print(&Apache::lonhtmlcommon::row_closure(1) |
$r->print(&Apache::lonhtmlcommon::row_closure(1) |
.&Apache::lonhtmlcommon::end_pick_box() |
.&Apache::lonhtmlcommon::end_pick_box() |
Line 2292 sub publishdirectory {
|
Line 2306 sub publishdirectory {
|
$r->print(&Apache::lonhtmlcommon::row_closure(1) |
$r->print(&Apache::lonhtmlcommon::row_closure(1) |
.&Apache::lonhtmlcommon::end_pick_box() |
.&Apache::lonhtmlcommon::end_pick_box() |
); |
); |
|
my %commonaccess; |
|
map { $commonaccess{$_} = 1; } &Apache::loncommon::get_env_multiple('form.commonaccess'); |
unless ($lock) { $lock=&Apache::lonnet::set_lock(&mt('Publishing [_1]',$fn)); } |
unless ($lock) { $lock=&Apache::lonnet::set_lock(&mt('Publishing [_1]',$fn)); } |
# actually publish things |
# actually publish things |
opendir(DIR,$fn); |
opendir(DIR,$fn); |
Line 2312 sub publishdirectory {
|
Line 2328 sub publishdirectory {
|
($filename!~/^[\#\.]/) && ($filename!~/\~$/)) { |
($filename!~/^[\#\.]/) && ($filename!~/\~$/)) { |
# find out publication status and/or existing metadata |
# find out publication status and/or existing metadata |
my $publishthis=0; |
my $publishthis=0; |
|
my $skipthis; |
if (-e $resdir.'/'.$filename) { |
if (-e $resdir.'/'.$filename) { |
my ($rdev,$rino,$rmode,$rnlink, |
my ($rdev,$rino,$rmode,$rnlink, |
$ruid,$rgid,$rrdev,$rsize, |
$ruid,$rgid,$rrdev,$rsize, |
Line 2319 sub publishdirectory {
|
Line 2336 sub publishdirectory {
|
$rblksize,$rblocks)=stat($resdir.'/'.$filename); |
$rblksize,$rblocks)=stat($resdir.'/'.$filename); |
if (($rmtime<$cmtime) || ($env{'form.forcerepub'})) { |
if (($rmtime<$cmtime) || ($env{'form.forcerepub'})) { |
# previously published, modified now |
# previously published, modified now |
$publishthis=1; |
if ($env{'form.excludemod'}) { |
} |
$skipthis='mod'; |
my $meta_cmtime = (stat($fn.'/'.$filename.'.meta'))[9]; |
} else { |
my $meta_rmtime = (stat($resdir.'/'.$filename.'.meta'))[9]; |
$publishthis=1; |
if ( $meta_rmtime<$meta_cmtime ) { |
} |
$publishthis=1; |
|
} |
} |
|
unless ($skipthis) { |
|
my $meta_cmtime = (stat($fn.'/'.$filename.'.meta'))[9]; |
|
my $meta_rmtime = (stat($resdir.'/'.$filename.'.meta'))[9]; |
|
if ( $meta_rmtime<$meta_cmtime ) { |
|
if ($env{'form.excludemodmeta'}) { |
|
$skipthis='modmeta'; |
|
$publishthis=0; |
|
} else { |
|
$publishthis=1; |
|
} |
|
} else { |
|
unless (&Apache::loncommon::fileembstyle($extension) eq 'prv') { |
|
if ($commonaccess{'dist'}) { |
|
my ($currdist,$currdistfile,$currsourceavail); |
|
my $currdist = &Apache::lonnet::metadata($thisdisresdir.'/'.$filename,'copyright'); |
|
if ($currdist eq 'custom') { |
|
$currdistfile = &Apache::lonnet::metadata($thisdisresdir.'/'.$filename,'customdistributionfile'); |
|
} |
|
if ($env{'form.commondistselect'} eq 'custom') { |
|
if ($env{'form.commoncustomrights'} =~ m{^/res/.+\.rights$}) { |
|
if ($currdist eq 'custom') { |
|
unless ($env{'form.commoncustomrights'} eq $currdistfile) { |
|
$publishthis=1; |
|
} |
|
} else { |
|
$publishthis=1; |
|
} |
|
} |
|
} elsif ($env{'form.commondistselect'} =~ /^default|domain|public$/) { |
|
unless ($currdist eq $env{'form.commondistselect'}) { |
|
$publishthis=1; |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
} else { |
} else { |
# never published |
# never published |
unless ($env{'form.excludeunpub'}) { |
if ($env{'form.excludeunpub'}) { |
$publishthis=1; |
$skipthis='unpub'; |
} |
} else { |
|
$publishthis=1; |
|
} |
} |
} |
|
|
if ($publishthis) { |
if ($publishthis) { |
&batchpublish($r,$fn.'/'.$filename,$resdir.'/'.$filename,$nokeyref); |
&batchpublish($r,$fn.'/'.$filename,$resdir.'/'.$filename,$nokeyref); |
} else { |
} else { |
$r->print('<br />'.&mt('Skipping').' '.$filename.'<br />'); |
my $reason; |
|
if ($skipthis) { |
|
$reason = $reasons{$skipthis}; |
|
} else { |
|
$reason = &mt('No changes needed to published resource or metadata'); |
|
} |
|
$r->print('<br />'.&mt('Skipping').' '.$filename); |
|
if ($reason) { |
|
$r->print(' ('.$reason.')'); |
|
} |
|
$r->print('<br />'); |
} |
} |
$r->rflush(); |
$r->rflush(); |
} |
} |