Add transfer search and OneDrive-style Files storage UI.
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:
isaacclad
2026-06-08 20:59:05 +00:00
co-authored by Cursor
parent b36148eeb6
commit 19170d6bc7
15 changed files with 1083 additions and 59 deletions
+10
View File
@@ -7,6 +7,7 @@ use App\Http\Controllers\Public\TransferPublicController;
use App\Http\Controllers\Qr\AccountController;
use App\Http\Controllers\Qr\AfiaController;
use App\Http\Controllers\Qr\TeamController;
use App\Http\Controllers\SearchController;
use App\Http\Controllers\Transfer\AnalyticsController;
use App\Http\Controllers\Transfer\ChunkedUploadController;
use App\Http\Controllers\Transfer\FilesController;
@@ -39,6 +40,7 @@ Route::middleware(['auth'])->group(function () {
Route::post('/notifications/mark-all-read', [NotificationController::class, 'markAllAsRead'])->name('notifications.mark-all-read');
Route::get('/dashboard', [OverviewController::class, 'index'])->name('transfer.dashboard');
Route::get('/search', SearchController::class)->name('transfer.search');
Route::post('/afia/chat', [AfiaController::class, 'chat'])->name('transfer.afia.chat');
Route::get('/transfers', [TransferController::class, 'index'])->name('transfer.transfers.index');
@@ -53,6 +55,14 @@ Route::middleware(['auth'])->group(function () {
Route::get('/transfers/{transfer}/download/{format}', [TransferController::class, 'download'])->name('transfer.transfers.download')->whereIn('format', ['png', 'svg', 'pdf']);
Route::get('/files', [FilesController::class, 'index'])->name('transfer.files.index');
Route::get('/files/open-in-email', [FilesController::class, 'openInEmail'])->name('transfer.files.open-in-email');
Route::post('/files/bulk-download', [FilesController::class, 'bulkDownload'])->name('transfer.files.bulk-download');
Route::post('/files/bulk-delete', [FilesController::class, 'bulkDestroy'])->name('transfer.files.bulk-delete');
Route::post('/files/move', [FilesController::class, 'move'])->name('transfer.files.move');
Route::post('/files/share', [FilesController::class, 'share'])->name('transfer.files.share');
Route::post('/files/reshare-email', [FilesController::class, 'reshareEmail'])->name('transfer.files.reshare-email');
Route::get('/files/{file}/download', [FilesController::class, 'download'])->name('transfer.files.download');
Route::delete('/files/{file}', [FilesController::class, 'destroy'])->name('transfer.files.destroy');
Route::get('/analytics', [AnalyticsController::class, 'index'])->name('transfer.analytics.index');
Route::get('/wallet', [AccountController::class, 'wallet'])->name('account.wallet');