use parent qw(SL::File::Backend);
use SL::DB::File;
-#use SL::Webdav;
+use SL::System::Process;
+use SL::Webdav;
use File::Copy;
use File::Slurp;
use File::Basename;
}
$main::lxdebug->message(LXDebug->DEBUG2(), "file_name=" . $dbfile->file_name ." number=".$number);
+ my @fileparts = split(/_/, $dbfile->file_name);
+ my $number_ext = pop @fileparts;
+ my ($maynumber, $ext) = split(/\./, $number_ext, 2);
+ push @fileparts, $maynumber if $maynumber ne $number;
+
+ my $basename = join('_', @fileparts);
+
my $path = File::Spec->catdir($self->get_rootdir, "webdav", $::auth->client->{id}, $type, $number);
if (!-d $path) {
File::Path::make_path($path, { chmod => 0770 });
}
- # simply add the timestring before the last .
- # fails for .tar.gz but the number extraction algorithm failed for all
- # '123 Storno zu 456' cases and doubled the name like:
- # Rechnung_123_Storno_zu_456_202113104 Storno zu 456_20211123_113023
- # TODO extension should be part of the File Model (filetype)
- my ($filename, $ext) = split(/\.([^\.]+)$/, $dbfile->file_name);
- my $fname = $filename . '_' . $dbfile->itime->strftime('%Y%m%d_%H%M%S');
+ my $fname = $basename . '_' . $number . '_' . $dbfile->itime->strftime('%Y%m%d_%H%M%S');
$fname .= '.' . $ext if $ext;
$main::lxdebug->message(LXDebug->DEBUG2(), "webdav path=" . $path . " filename=" . $fname);
return (File::Spec->catfile($path, $fname), $path, $fname);
}
-sub get_rootdir {
- my ($self) = @_;
-
- #TODO immer noch das alte Problem:
- #je nachdem von woher der Aufruf kommt ist man in ./users oder .
- my $rootdir = POSIX::getcwd();
- my $basename = basename($rootdir);
- my $dirname = dirname($rootdir);
- $rootdir = $dirname if $basename eq 'users';
- return $rootdir;
-}
+sub get_rootdir { SL::System::Process::exe_dir() }
sub _get_number_from_model {
my ($self, $dbfile) = @_;
Martin Helmling E<lt>martin.helmling@opendynamic.deE<gt>
=cut
-
-