Add transfer search and OneDrive-style Files storage UI.
Deploy Ladill Transfer / deploy (push) Successful in 29s
Deploy Ladill Transfer / deploy (push) Successful in 29s
Transfers now lists all shares with filters and pagination; Files becomes a selectable cloud view with download, share, delete, move, and open-in-email actions. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -28,15 +28,34 @@ class TransferController extends Controller
|
||||
public function index(Request $request): View
|
||||
{
|
||||
$account = ladill_account();
|
||||
$search = trim((string) $request->query('q', ''));
|
||||
$status = (string) $request->query('status', 'all');
|
||||
$sort = (string) $request->query('sort', 'newest');
|
||||
|
||||
$transfers = Transfer::query()
|
||||
->where('user_id', $account->id)
|
||||
->accessible()
|
||||
->where('status', '!=', Transfer::STATUS_DELETED)
|
||||
->when($search !== '', function ($query) use ($search) {
|
||||
$like = '%'.$search.'%';
|
||||
$query->where(function ($inner) use ($like) {
|
||||
$inner->where('title', 'like', $like)
|
||||
->orWhere('message', 'like', $like)
|
||||
->orWhere('recipient_email', 'like', $like)
|
||||
->orWhereHas('files', fn ($files) => $files->where('original_name', 'like', $like));
|
||||
});
|
||||
})
|
||||
->when($status === 'active', fn ($query) => $query->accessible())
|
||||
->when($status === 'grace', fn ($query) => $query->where('status', Transfer::STATUS_GRACE))
|
||||
->when($status === 'expired', fn ($query) => $query->where('status', Transfer::STATUS_EXPIRED))
|
||||
->with(['qrCode', 'files'])
|
||||
->latest()
|
||||
->paginate(20);
|
||||
->when($sort === 'oldest', fn ($query) => $query->oldest())
|
||||
->when($sort === 'title', fn ($query) => $query->orderBy('title'))
|
||||
->when($sort === 'downloads', fn ($query) => $query->orderByDesc('downloads_total'))
|
||||
->when($sort === 'newest', fn ($query) => $query->latest())
|
||||
->paginate(20)
|
||||
->withQueryString();
|
||||
|
||||
return view('transfer.transfers.index', compact('transfers'));
|
||||
return view('transfer.transfers.index', compact('transfers', 'search', 'status', 'sort'));
|
||||
}
|
||||
|
||||
public function create(): View
|
||||
|
||||
Reference in New Issue
Block a user