Revision 108753a7
Von Bernd Bleßmann vor fast 5 Jahren hinzugefügt
SL/Common.pm | ||
---|---|---|
539 | 539 |
foreach my $item (qw(tmpdir tmpfile type)){ |
540 | 540 |
next if $form->{$item}; |
541 | 541 |
$::lxdebug->message(LXDebug::WARN(), 'Missing parameter:' . $item); |
542 |
$::form->error($::locale->text("Missing parameter for WebDAV file copy")); |
|
542 |
$::lxdebug->leave_sub(); |
|
543 |
return $::locale->text("Missing parameter for WebDAV file copy"); |
|
543 | 544 |
} |
544 | 545 |
|
545 | 546 |
my ($webdav_folder, $document_name) = get_webdav_folder($form); |
546 | 547 |
|
547 | 548 |
if (! $webdav_folder){ |
548 |
$::lxdebug->leave_sub(); |
|
549 | 549 |
$::lxdebug->message(LXDebug::WARN(), 'Cannot check correct WebDAV folder'); |
550 |
$::form->error($::locale->text("Cannot check correct WebDAV folder"));
|
|
551 |
return undef;
|
|
550 |
$::lxdebug->leave_sub();
|
|
551 |
return $::locale->text("Cannot check correct WebDAV folder")
|
|
552 | 552 |
} |
553 | 553 |
|
554 | 554 |
$complete_path = File::Spec->catfile($form->{cwd}, $webdav_folder); |
... | ... | |
562 | 562 |
chdir($current_dir); |
563 | 563 |
} |
564 | 564 |
|
565 |
opendir my $dh, $complete_path or die "Could not open $complete_path: $!"; |
|
565 |
my $dh; |
|
566 |
if (!opendir $dh, $complete_path) { |
|
567 |
$::lxdebug->leave_sub(); |
|
568 |
return "Could not open $complete_path: $!"; |
|
569 |
} |
|
566 | 570 |
|
567 | 571 |
my ($newest_name, $newest_time); |
568 | 572 |
while ( defined( my $file = readdir( $dh ) ) ) { |
... | ... | |
590 | 594 |
|
591 | 595 |
if (!File::Copy::copy($current_file, $new_file)) { |
592 | 596 |
$::lxdebug->message(LXDebug::WARN(), "Copy file from $current_file to $new_file failed: $ERRNO"); |
593 |
$::form->error($::locale->text("Copy file from #1 to #2 failed: #3", $current_file, $new_file, $ERRNO)); |
|
597 |
$::lxdebug->leave_sub(); |
|
598 |
return $::locale->text("Copy file from #1 to #2 failed: #3", $current_file, $new_file, $ERRNO); |
|
594 | 599 |
} |
595 | 600 |
|
596 | 601 |
$::lxdebug->leave_sub(); |
SL/Form.pm | ||
---|---|---|
1035 | 1035 |
} |
1036 | 1036 |
if ($self->{media} eq 'file') { |
1037 | 1037 |
copy(join('/', $self->{cwd}, $userspath, $self->{tmpfile}), $out =~ m|^/| ? $out : join('/', $self->{cwd}, $out)) if $template->uses_temp_file; |
1038 |
Common::copy_file_to_webdav_folder($self) if $copy_to_webdav; |
|
1038 |
|
|
1039 |
if ($copy_to_webdav) { |
|
1040 |
my $error = Common::copy_file_to_webdav_folder($self); |
|
1041 |
chdir("$self->{cwd}"); |
|
1042 |
$self->error($error) if $error; |
|
1043 |
} |
|
1044 |
|
|
1039 | 1045 |
if (!$self->{preview} && $self->doc_storage_enabled) |
1040 | 1046 |
{ |
1041 | 1047 |
$self->{attachment_filename} ||= $self->generate_attachment_filename; |
... | ... | |
1049 | 1055 |
return; |
1050 | 1056 |
} |
1051 | 1057 |
|
1052 |
Common::copy_file_to_webdav_folder($self) if $copy_to_webdav; |
|
1058 |
if ($copy_to_webdav) { |
|
1059 |
my $error = Common::copy_file_to_webdav_folder($self); |
|
1060 |
chdir("$self->{cwd}"); |
|
1061 |
$self->error($error) if $error; |
|
1062 |
} |
|
1053 | 1063 |
|
1054 | 1064 |
if ( !$self->{preview} && $ext_for_format eq 'pdf' && $self->doc_storage_enabled) { |
1055 | 1065 |
$self->{attachment_filename} ||= $self->generate_attachment_filename; |
Auch abrufbar als: Unified diff
WebDav: Fehler beim Kopieren anzeigen / Verzeichnis zurück wechseln
Wenn in SL::Form->parse_template bei Common::copy_file_to_webdav_folder etwas
schief ging, wurde dort ein "die" oder "Form->error" aufgerufen. Allderdings
wird in parse_template vorher das Arbeitsverzeichnis gewechselt, so dass die
web-templates zum Anzeigen des Fehlers nicht mehr gefunden werden.
Dies ist nur ein schlechter Fix. In #96 (redmine) sind einige bessere Lösungen
erwähnt, die aber etwas mehr Aufwand und vor allem Testen verlangen.
Bezieht sich auch auf #96 (redmine)
Refs #96