version 1.479, 2012/03/28 12:58:42
|
version 1.480, 2012/04/05 15:22:39
|
Line 1120 sub process_file_upload {
|
Line 1120 sub process_file_upload {
|
position => $position, |
position => $position, |
phase => $nextphase, |
phase => $nextphase, |
comment => $comment, |
comment => $comment, |
); |
); |
|
my ($destination,$dir_root) = &embedded_destination($coursenum,$coursedom); |
|
my @current = &get_dir_list($url,$coursenum,$coursedom,$newidx); |
$$upload_output = $showupload. |
$$upload_output = $showupload. |
&Apache::loncommon::decompress_form($mimetype, |
&Apache::loncommon::decompress_form($mimetype, |
$archiveurl,'/adm/coursedocs',$noextract, |
$archiveurl,'/adm/coursedocs',$noextract, |
\%archiveitems); |
\%archiveitems,\@current); |
} |
} |
} |
} |
} |
} |
return $nextphase; |
return $nextphase; |
} |
} |
|
|
|
sub get_dir_list { |
|
my ($url,$coursenum,$coursedom,$newidx) = @_; |
|
my ($destination,$dir_root) = &embedded_destination(); |
|
my ($dirlistref,$listerror) = |
|
&Apache::lonnet::dirlist("$dir_root/$destination/$newidx",$coursedom,$coursenum,1); |
|
my @dir_lines; |
|
my $dirptr=16384; |
|
if (ref($dirlistref) eq 'ARRAY') { |
|
foreach my $dir_line (sort |
|
{ |
|
my ($afile)=split('&',$a,2); |
|
my ($bfile)=split('&',$b,2); |
|
return (lc($afile) cmp lc($bfile)); |
|
} (@{$dirlistref})) { |
|
my ($filename,$dom,undef,$testdir,undef,undef,undef,undef,$size,undef,$mtime,undef,undef,undef,$obs,undef)=split(/\&/,$dir_line,16); |
|
$filename =~ s/\s+$//; |
|
next if ($filename =~ /^\.\.?$/); |
|
my $isdir = 0; |
|
if ($dirptr&$testdir) { |
|
$isdir = 1; |
|
} |
|
push(@dir_lines, [$filename,$dom,$isdir,$size,$mtime,$obs]); |
|
} |
|
} |
|
return @dir_lines; |
|
} |
|
|
sub is_supplemental_title { |
sub is_supplemental_title { |
my ($title) = @_; |
my ($title) = @_; |
return scalar($title =~ m/^(\d+)___&&&___($match_username)___&&&___($match_domain)___&&&___(.*)$/); |
return scalar($title =~ m/^(\d+)___&&&___($match_username)___&&&___($match_domain)___&&&___(.*)$/); |
Line 2991 sub decompression_info {
|
Line 3020 sub decompression_info {
|
my $docudom=$env{'course.'.$env{'request.course.id'}.'.domain'}; |
my $docudom=$env{'course.'.$env{'request.course.id'}.'.domain'}; |
my $docuname=$env{'course.'.$env{'request.course.id'}.'.num'}; |
my $docuname=$env{'course.'.$env{'request.course.id'}.'.num'}; |
my $container='sequence'; |
my $container='sequence'; |
my $hiddenelem; |
my ($pathitem,$hiddenelem); |
|
my @hiddens = ('newidx','comment','position'); |
if ($env{'form.pagepath'}) { |
if ($env{'form.pagepath'}) { |
$container='page'; |
$container='page'; |
$hiddenelem = '<input type="hidden" name="pagepath" value="'.$env{'form.pagepath'}.'" />'."\n"; |
$pathitem = 'pagepath'; |
} else { |
} else { |
$hiddenelem = '<input type="hidden" name="folderpath" value="'.$env{'form.folderpath'}.'" />'."\n"; |
$pathitem = 'folderpath'; |
} |
|
if ($env{'form.newidx'}) { |
|
$hiddenelem .= '<input type="hidden" name="newidx" value="'.$env{'form.newidx'}.'" />'."\n"; |
|
} |
} |
if ($env{'form.comment'}) { |
unshift(@hiddens,$pathitem); |
$hiddenelem .= '<input type="hidden" name="comment" value="'.$env{'form.comment'}.'" />'."\n"; |
foreach my $item (@hiddens) { |
|
if ($env{'form.'.$item}) { |
|
$hiddenelem .= '<input type="hidden" name="'.$item.'" value="'. |
|
$env{'form.'.$item}.'" />'."\n"; |
|
} |
} |
} |
return ($destination,$dir_root,$londocroot,$docudom,$docuname,$container, |
return ($destination,$dir_root,$londocroot,$docudom,$docuname,$container, |
$hiddenelem); |
$hiddenelem); |
Line 3017 sub decompression_phase_one {
|
Line 3048 sub decompression_phase_one {
|
} else { |
} else { |
my $file = $1; |
my $file = $1; |
$output = &Apache::loncommon::process_decompression($docudom,$docuname,$file,$destination,$dir_root,$hiddenelem); |
$output = &Apache::loncommon::process_decompression($docudom,$docuname,$file,$destination,$dir_root,$hiddenelem); |
if ($env{'form.archivedelete'}) { |
|
my $map = $env{'form.folder'}.'.'.$container; |
|
my ($delwarning,$delresult); |
|
my ($errtext,$fatal) = &mapread($docuname,$docudom,$map); |
|
if ($fatal) { |
|
if ($container eq 'page') { |
|
$delwarning = &mt('An error occurred retrieving the contents of the current page.'); |
|
} else { |
|
$delwarning = &mt('An error occurred retrieving the contents of the current folder.'); |
|
} |
|
$delwarning .= &mt('As a result the archive file has not been removed.'); |
|
} else { |
|
my $currcmd = $env{'form.cmd'}; |
|
$env{'form.cmd'} = 'del_'.$env{'form.position'}; |
|
if (&handle_edit_cmd($docuname,$docudom)) { |
|
($errtext,$fatal) = &storemap($docuname,$docudom,$map); |
|
if ($fatal) { |
|
if ($container eq 'page') { |
|
$delwarning = &mt('An error occurred updating the contents of the current page.'); |
|
} else { |
|
$delwarning = &mt('An error occurred updating the contents of the current folder.'); |
|
} |
|
} |
|
} |
|
$env{'form.cmd'} = $currcmd; |
|
$delresult = &mt('Archive file removed after extracting files.'); |
|
} |
|
if ($delwarning) { |
|
$output .= '<p class="LC_warning">'. |
|
$delwarning. |
|
'</p>'; |
|
} |
|
if ($delresult) { |
|
$output .= '<p class="LC_info">'. |
|
$delresult. |
|
'</p>'; |
|
} |
|
} |
|
} |
} |
if ($error) { |
if ($error) { |
$output .= '<p class="LC_error">'.&mt('Not extracted.').'<br />'. |
$output .= '<p class="LC_error">'.&mt('Not extracted.').'<br />'. |
Line 3069 sub decompression_phase_one {
|
Line 3062 sub decompression_phase_one {
|
sub decompression_phase_two { |
sub decompression_phase_two { |
my ($destination,$dir_root,$londocroot,$docudom,$docuname,$container,$hiddenelem)= |
my ($destination,$dir_root,$londocroot,$docudom,$docuname,$container,$hiddenelem)= |
&decompression_info(); |
&decompression_info(); |
my $output = |
my ($output,$url); |
&Apache::loncommon::process_extracted_files('coursedocs',$docudom,$docuname, |
if ($env{'form.archivedelete'}) { |
|
($output,$url) = &remove_archive($docudom,$docuname,$container); |
|
} |
|
$output .= |
|
&Apache::loncommon::process_extracted_files('coursedocs',$docudom,$docuname,$url, |
$destination,$dir_root,$hiddenelem); |
$destination,$dir_root,$hiddenelem); |
return $output; |
return $output; |
} |
} |
|
|
|
sub remove_archive { |
|
my ($docudom,$docuname,$container) = @_; |
|
my $map = $env{'form.folder'}.'.'.$container; |
|
my ($output,$delwarning,$delresult,$url,$outcome); |
|
my ($errtext,$fatal) = &mapread($docuname,$docudom,$map); |
|
if ($fatal) { |
|
if ($container eq 'page') { |
|
$delwarning = &mt('An error occurred retrieving the contents of the current page.'); |
|
} else { |
|
$delwarning = &mt('An error occurred retrieving the contents of the current folder.'); |
|
} |
|
$delwarning .= &mt('As a result the archive file has not been removed.'); |
|
} else { |
|
my $currcmd = $env{'form.cmd'}; |
|
my $position = $env{'form.position'}; |
|
if ($position > 0) { |
|
$env{'form.cmd'} = 'del_'.$position; |
|
my ($title,$url,@rrest) = |
|
split(/:/,$LONCAPA::map::resources[$LONCAPA::map::order[$position]]); |
|
if (&handle_edit_cmd($docuname,$docudom)) { |
|
($errtext,$fatal) = &storemap($docuname,$docudom,$map); |
|
if ($fatal) { |
|
if ($container eq 'page') { |
|
$delwarning = &mt('An error occurred updating the contents of the current page.'); |
|
} else { |
|
$delwarning = &mt('An error occurred updating the contents of the current folder.'); |
|
} |
|
} else { |
|
$outcome = 'ok'; |
|
} |
|
$delresult = &mt('Archive file removed.'); |
|
} |
|
} |
|
$env{'form.cmd'} = $currcmd; |
|
} |
|
if ($delwarning) { |
|
$output = '<p class="LC_warning">'. |
|
$delwarning. |
|
'</p>'; |
|
} |
|
if ($delresult) { |
|
$output .= '<p class="LC_info">'. |
|
$delresult. |
|
'</p>'; |
|
} |
|
return ($output,$url,$outcome); |
|
} |
|
|
sub generate_admin_options { |
sub generate_admin_options { |
my ($help_ref,$env_ref) = @_; |
my ($help_ref,$env_ref) = @_; |
my %lt=&Apache::lonlocal::texthash( |
my %lt=&Apache::lonlocal::texthash( |
Line 3315 newWindow = window.open("","IMSimport","
|
Line 3360 newWindow = window.open("","IMSimport","
|
newWindow.location.href = newlocation; |
newWindow.location.href = newlocation; |
} |
} |
|
|
|
|
function finishpick() { |
function finishpick() { |
var title=this.document.forms.extimport.title.value; |
var title=this.document.forms.extimport.title.value; |
var url=this.document.forms.extimport.url.value; |
var url=this.document.forms.extimport.url.value; |