mirror of
https://github.com/InvoiceShelf/InvoiceShelf.git
synced 2026-04-08 05:54:47 +00:00
fix(backup): remote disk backups never appear in backup listing
Three bugs prevented backups stored on remote disks (Dropbox, S3, etc.) from ever appearing in the Settings > Backup listing: 1. Typo in BackupSetting.vue: `filed_disk_id` was sent to the API instead of `file_disk_id`, so the backend never received the selected disk ID and always fell back to the local filesystem. 2. Wrong default disk selection in loadDisksData(): `set_as_default == 0` selected the first disk that is NOT default (local_public), instead of the disk that IS default. Changed to `set_as_default == 1` with a fallback to the first disk. 3. BackupsController::index() did not call setConfig() on the FileDisk before querying backups, so even when the correct file_disk_id arrived it still read from the default local filesystem. Added the same disk bootstrap logic already present in CreateBackupJob and destroy(). Made-with: Cursor
This commit is contained in:
@@ -27,6 +27,16 @@ class BackupsController extends ApiController
|
||||
$configuredBackupDisks = config('backup.backup.destination.disks');
|
||||
|
||||
try {
|
||||
if ($request->file_disk_id) {
|
||||
$fileDisk = \App\Models\FileDisk::find($request->file_disk_id);
|
||||
if ($fileDisk) {
|
||||
$fileDisk->setConfig();
|
||||
$prefix = env('DYNAMIC_DISK_PREFIX', 'temp_');
|
||||
config(['backup.backup.destination.disks' => [$prefix.$fileDisk->driver]]);
|
||||
$configuredBackupDisks = config('backup.backup.destination.disks');
|
||||
}
|
||||
}
|
||||
|
||||
$backupDestination = BackupDestination::create(config('filesystems.default'), config('backup.backup.name'));
|
||||
|
||||
$backups = Cache::remember("backups-{$request->file_disk_id}", now()->addSeconds(4), function () use ($backupDestination) {
|
||||
|
||||
Reference in New Issue
Block a user