diff --git a/app/Http/Controllers/VendorPortal/DocumentController.php b/app/Http/Controllers/VendorPortal/DocumentController.php index ab85e87f1c4c..91a87486eea7 100644 --- a/app/Http/Controllers/VendorPortal/DocumentController.php +++ b/app/Http/Controllers/VendorPortal/DocumentController.php @@ -27,6 +27,8 @@ class DocumentController extends Controller { use MakesHash; + public const MODULE_PURCHASE_ORDERS = 16384; + /** * @return Factory|View */ @@ -42,12 +44,34 @@ class DocumentController extends Controller */ public function show(ShowDocumentRequest $request, Document $document) { - return render('documents.show', [ + return render('documents.vendor_show', [ 'document' => $document, - 'settings' => auth()->guard('vendor')->user()->company->settings + 'settings' => auth()->guard('vendor')->user()->company->settings, + 'sidebar' => $this->sidebarMenu(), + 'company' => auth()->guard('vendor')->user()->company, ]); } + + private function sidebarMenu() :array + { + $enabled_modules = auth()->guard('vendor')->user()->company->enabled_modules; + $data = []; + + // TODO: Enable dashboard once it's completed. + // $this->settings->enable_client_portal_dashboard + // $data[] = [ 'title' => ctrans('texts.dashboard'), 'url' => 'client.dashboard', 'icon' => 'activity']; + + if (self::MODULE_PURCHASE_ORDERS & $enabled_modules) { + $data[] = ['title' => ctrans('texts.purchase_orders'), 'url' => 'vendor.purchase_orders.index', 'icon' => 'file-text']; + } + + // $data[] = ['title' => ctrans('texts.documents'), 'url' => 'client.documents.index', 'icon' => 'download']; + + return $data; + } + + public function download(ShowDocumentRequest $request, Document $document) { return Storage::disk($document->disk)->download($document->url, $document->name); diff --git a/resources/views/portal/ninja2020/documents/vendor_show.blade.php b/resources/views/portal/ninja2020/documents/vendor_show.blade.php new file mode 100644 index 000000000000..8fd433235af1 --- /dev/null +++ b/resources/views/portal/ninja2020/documents/vendor_show.blade.php @@ -0,0 +1,95 @@ +@extends('portal.ninja2020.layout.vendor_app') +@section('meta_title', ctrans('texts.document')) + +@section('body') +
+
+
+
+
+

+ {{ ctrans('texts.document') }} +

+

+ {{ ctrans('texts.document_details') }} +

+
+
+
+
+
+ {{ ctrans('texts.name') }} +
+
+ {{ Illuminate\Support\Str::limit($document->name, 40) }} +
+
+
+
+ {{ ctrans('texts.type') }} +
+
+ {{ App\Models\Document::$types[$document->type]['mime'] }} +
+
+
+
+ {{ ctrans('texts.hash') }} +
+
+ {{ $document->hash }} +
+
+
+
+ {{ ctrans('texts.size') }} +
+
+ {{ $document->size / 1000 }} kB +
+
+
+
+ {{ ctrans('texts.width') }} +
+
+ {{ $document->width }}px +
+
+
+
+ {{ ctrans('texts.height') }} +
+
+ {{ $document->height }}px +
+
+
+
+
+ + +
+
+
+@endsection \ No newline at end of file diff --git a/routes/vendor.php b/routes/vendor.php index 94b958f528f4..b97411fa250a 100644 --- a/routes/vendor.php +++ b/routes/vendor.php @@ -10,7 +10,6 @@ | */ use App\Http\Controllers\Auth\VendorContactLoginController; -use App\Http\Controllers\VendorPortal\DocumentController; use App\Http\Controllers\VendorPortal\InvitationController; use App\Http\Controllers\VendorPortal\PurchaseOrderController; use App\Http\Controllers\VendorPortal\UploadController; @@ -42,7 +41,10 @@ Route::group(['middleware' => ['auth:vendor', 'vendor_locale', 'domain_db'], 'pr Route::post('purchase_orders/bulk', [PurchaseOrderController::class, 'bulk'])->name('purchase_orders.bulk'); Route::get('logout', [VendorContactLoginController::class, 'logout'])->name('logout'); Route::post('purchase_order/upload/{purchase_order}', [UploadController::class,'upload'])->name('upload.store'); - Route::resource('documents', DocumentController::class)->only(['index', 'show']); + + Route::post('documents/download_multiple', [App\Http\Controllers\VendorPortal\DocumentController::class, 'downloadMultiple'])->name('documents.download_multiple'); + Route::get('documents/{document}/download', [App\Http\Controllers\VendorPortal\DocumentController::class, 'download'])->name('documents.download'); + Route::resource('documents', App\Http\Controllers\VendorPortal\DocumentController::class)->only(['index', 'show']); });