*/ public array $data = []; /** @var array */ public array $files = []; public static function canAccess(): bool { $u = Auth::user(); return $u instanceof User && $u->hasAnyRole(['super-admin', 'admin']); } public function mount(): void { $this->form->fill(); $this->refreshFiles(); } public function form(Form $form): Form { return $form ->statePath('data') ->schema([ FileUpload::make('uploads') ->label('Carica file (da Windows)') ->helperText('I file vengono salvati in storage locale: import/inbox') ->disk('local') ->directory('import/inbox') ->multiple() ->preserveFilenames() ->required(), ]); } public function submit(): void { $uploads = $this->data['uploads'] ?? []; $count = is_array($uploads) ? count($uploads) : 0; Notification::make() ->title('Upload completato') ->body('File caricati: ' . $count) ->success() ->send(); $this->data['uploads'] = []; $this->refreshFiles(); } public function refreshFiles(): void { $disk = Storage::disk('local'); $paths = $disk->files('import/inbox'); sort($paths); $out = []; foreach ($paths as $path) { $out[] = [ 'name' => basename($path), 'path' => $path, 'size' => (int) $disk->size($path), 'modified' => (int) $disk->lastModified($path), ]; } $this->files = $out; } }