--- loncom/interface/londocs.pm 2024/12/28 12:19:21 1.715 +++ loncom/interface/londocs.pm 2025/02/03 22:52:36 1.723 @@ -1,7 +1,7 @@ # The LearningOnline Network # Documents # -# $Id: londocs.pm,v 1.715 2024/12/28 12:19:21 raeburn Exp $ +# $Id: londocs.pm,v 1.723 2025/02/03 22:52:36 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -729,7 +729,7 @@ function validCrsCopy() { alert("$js_lt{'whco'}"); return false; } - } + } return true; } @@ -884,7 +884,7 @@ ENDJS if (keys(%tocopy)) { my (%resdirs,%resfiles); &Apache::lonnet::recursedirs($is_course_home,1,undef,$res_exclude,0,0,$resurl,'',\%resdirs,\%resfiles); - my ($notopdir,%newdir,%newfile,%checkdeps); + my ($notopdir,%newdir,%newfile,%checkdeps,%newresfile); $r->print('
'.&mt('Copy to: [_1]', ''.$desturl.'/'.$subdir.''). '
'."\n"); @@ -995,231 +995,164 @@ ENDJS ''.$desturl.'/'.$subdir.'/'.$file.''). ''."\n"); } elsif (($src ne '') && ($dest ne '')) { - if ($is_course_home) { - if (&File::Copy::copy($src,$dest)) { - $newfile{$file} = 1; - } - } else { - if (&Apache::lonnet::repcopy_crsprivfile($srcurl.'/'.$file,$dest) eq 'ok') { - $newfile{$file} = 1; - } - } - if ($newfile{$file}) { - my $gotmeta; - if ($is_course_home) { - if ((-e $src.'.meta') && (!-e $dest.'.meta')) { - if (&File::Copy::copy($src.'.meta',$dest.'.meta')) { - $gotmeta = 1; - } - } - } else { - if (&Apache::lonnet::repcopy_crsprivfile($srcurl.'/'.$file.'.meta',$dest.'.meta') eq 'ok') { - $gotmeta = 1; + my $ressrc = $docroot.$resurl.'/'.$file; + my $ressrcmeta = $ressrc.'.meta'; + my ($ext) = ($file =~ /\.(\w+)$/); + my $embstyle=&Apache::loncommon::fileembstyle($ext); + my ($getres,$getresmeta); + if ($respublish) { + if ($path eq '') { + if ((ref($resfiles{'/'}) eq 'HASH') && + (exists($resfiles{'/'}{$fname}))) { + $getres = 1; + $getresmeta = 1; } + } elsif ((ref($resfiles{$path}) eq 'HASH') && + (exists($resfiles{$path}{$fname}))) { + $getres = 1; + $getresmeta = 1; } - if ($gotmeta) { - if (open(my $fh,'<',$dest.'.meta')) { - my ($output,$now,setsourceavail); - $now = time; - if (($file =~ /\.(xml|html|htm|xhtml|xhtm)$/i) || ($file =~ /$LONCAPA::assess_re/)) { - $setsourceavail = 1; - } - while (my $line=<$fh>) { - chomp($line); - if ($line eq "