mirror of
https://github.com/pelican-dev/panel.git
synced 2025-09-09 23:18:37 +02:00
Improve join_paths
helper method (#1668)
This commit is contained in:
parent
47557021fd
commit
32eb1abd4a
@ -193,10 +193,10 @@ class ListFiles extends ListRecords
|
|||||||
->required()
|
->required()
|
||||||
->live(),
|
->live(),
|
||||||
Placeholder::make('new_location')
|
Placeholder::make('new_location')
|
||||||
->content(fn (Get $get, File $file) => resolve_path('./' . join_paths($this->path, $get('location') ?? '/', $file->name))),
|
->content(fn (Get $get, File $file) => resolve_path(join_paths($this->path, $get('location') ?? '/', $file->name))),
|
||||||
])
|
])
|
||||||
->action(function ($data, File $file) {
|
->action(function ($data, File $file) {
|
||||||
$location = rtrim($data['location'], '/');
|
$location = $data['location'];
|
||||||
$files = [['to' => join_paths($location, $file->name), 'from' => $file->name]];
|
$files = [['to' => join_paths($location, $file->name), 'from' => $file->name]];
|
||||||
|
|
||||||
$this->getDaemonFileRepository()->renameFiles($this->path, $files);
|
$this->getDaemonFileRepository()->renameFiles($this->path, $files);
|
||||||
@ -353,10 +353,10 @@ class ListFiles extends ListRecords
|
|||||||
->required()
|
->required()
|
||||||
->live(),
|
->live(),
|
||||||
Placeholder::make('new_location')
|
Placeholder::make('new_location')
|
||||||
->content(fn (Get $get) => resolve_path('./' . join_paths($this->path, $get('location') ?? ''))),
|
->content(fn (Get $get) => resolve_path(join_paths($this->path, $get('location') ?? ''))),
|
||||||
])
|
])
|
||||||
->action(function (Collection $files, $data) {
|
->action(function (Collection $files, $data) {
|
||||||
$location = rtrim($data['location'], '/');
|
$location = $data['location'];
|
||||||
|
|
||||||
$files = $files->map(fn ($file) => ['to' => join_paths($location, $file['name']), 'from' => $file['name']])->toArray();
|
$files = $files->map(fn ($file) => ['to' => join_paths($location, $file['name']), 'from' => $file['name']])->toArray();
|
||||||
$this->getDaemonFileRepository()->renameFiles($this->path, $files);
|
$this->getDaemonFileRepository()->renameFiles($this->path, $files);
|
||||||
@ -432,11 +432,12 @@ class ListFiles extends ListRecords
|
|||||||
->modalSubmitActionLabel(trans('server/file.actions.new_file.create'))
|
->modalSubmitActionLabel(trans('server/file.actions.new_file.create'))
|
||||||
->action(function ($data) {
|
->action(function ($data) {
|
||||||
$path = join_paths($this->path, $data['name']);
|
$path = join_paths($this->path, $data['name']);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
$this->getDaemonFileRepository()->putContent($path, $data['editor'] ?? '');
|
$this->getDaemonFileRepository()->putContent($path, $data['editor'] ?? '');
|
||||||
|
|
||||||
Activity::event('server:file.write')
|
Activity::event('server:file.write')
|
||||||
->property('file', join_paths($path, $data['name']))
|
->property('file', $path)
|
||||||
->log();
|
->log();
|
||||||
} catch (FileExistsException) {
|
} catch (FileExistsException) {
|
||||||
AlertBanner::make('file_already_exists')
|
AlertBanner::make('file_already_exists')
|
||||||
|
@ -52,11 +52,16 @@ if (!function_exists('convert_bytes_to_readable')) {
|
|||||||
if (!function_exists('join_paths')) {
|
if (!function_exists('join_paths')) {
|
||||||
function join_paths(string $base, string ...$paths): string
|
function join_paths(string $base, string ...$paths): string
|
||||||
{
|
{
|
||||||
if ($base === '/') {
|
$base = trim($base, '/');
|
||||||
return str_replace('//', '', implode('/', $paths));
|
|
||||||
|
$paths = array_map(fn (string $path) => trim($path, '/'), $paths);
|
||||||
|
$paths = array_filter($paths, fn (string $path) => strlen($path) > 0);
|
||||||
|
|
||||||
|
if (empty($base)) {
|
||||||
|
return implode('/', $paths);
|
||||||
}
|
}
|
||||||
|
|
||||||
return str_replace('//', '', $base . '/' . implode('/', $paths));
|
return $base . '/' . implode('/', $paths);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user