diff --git a/app/Http/Controllers/Admin/Manage/CuttingController.php b/app/Http/Controllers/Admin/Manage/CuttingController.php index ac4f88c..aa75aa9 100644 --- a/app/Http/Controllers/Admin/Manage/CuttingController.php +++ b/app/Http/Controllers/Admin/Manage/CuttingController.php @@ -49,6 +49,13 @@ public function show(Cutting $cutting): Response ]); } + public function share(Cutting $cutting): Response + { + return Inertia::render('admin/manage/cutting/show', [ + 'cutting' => $this->service->getForShow($cutting), + ]); + } + public function store(CuttingRequest $request): RedirectResponse { return $this->handleAction( diff --git a/resources/js/pages/admin/manage/cutting/cutting-card.tsx b/resources/js/pages/admin/manage/cutting/cutting-card.tsx index 8c5c98e..8f3af82 100644 --- a/resources/js/pages/admin/manage/cutting/cutting-card.tsx +++ b/resources/js/pages/admin/manage/cutting/cutting-card.tsx @@ -1,3 +1,5 @@ +import { Briefcase, ChevronDown, Copy, MessageCircle, Pencil, Share2, Trash2 } from 'lucide-react'; +import { useState } from 'react'; import { RowActions } from '@/components/data-display'; import { ImagePreviewButton } from '@/components/dialogs'; import { Button } from '@/components/ui/button'; @@ -10,13 +12,11 @@ import { import { Tooltip, TooltipContent, TooltipTrigger } from '@/components/ui/tooltip'; import { useCan } from '@/hooks/use-can'; import { formatNumber } from '@/lib/format'; -import { show as cuttingShow } from '@/routes/admin/manage/cuttings'; -import { Briefcase, ChevronDown, Copy, MessageCircle, Pencil, Share2, Trash2 } from 'lucide-react'; -import { useState } from 'react'; +import { share as cuttingShare } from '@/routes/admin/manage/cuttings'; import type { Cutting } from './columns'; function generateShareLink(cuttingId: number): string { - return window.location.origin + cuttingShow.url(cuttingId); + return window.location.origin + cuttingShare.url(cuttingId); } function generateWhatsappText(cutting: Cutting): string { diff --git a/routes/web.php b/routes/web.php index 98c45ba..f97d3d5 100644 --- a/routes/web.php +++ b/routes/web.php @@ -53,6 +53,7 @@ Route::resource('raw-materials', RawMaterialController::class)->except(['show'])->middleware('permission:raw_materials.view|raw_materials.create|raw_materials.update|raw_materials.delete'); Route::post('raw-materials/{rawMaterial}/toggle-status', [RawMaterialController::class, 'toggleStatus'])->name('raw-materials.toggle-status')->middleware('permission:raw_materials.toggle_status'); + Route::get('raw-materials/{rawMaterial}/variants', [RawMaterialController::class, 'variants'])->name('raw-materials.variants')->middleware('permission:raw_materials.view'); Route::get('raw-materials/{rawMaterial}/variants/{variant}/edit', [RawMaterialVariantController::class, 'edit'])->name('raw-materials.variants.edit')->middleware('permission:raw_materials.update'); Route::put('raw-materials/{rawMaterial}/variants/{variant}', [RawMaterialVariantController::class, 'update'])->name('raw-materials.variants.update')->middleware('permission:raw_materials.update'); Route::delete('raw-materials/{rawMaterial}/variants/{variant}', [RawMaterialVariantController::class, 'destroy'])->name('raw-materials.variants.destroy')->middleware('permission:raw_materials.delete'); @@ -66,6 +67,7 @@ Route::resource('purchases', PurchaseController::class)->except(['show'])->middleware('permission:purchases.view|purchases.create|purchases.update|purchases.delete'); Route::resource('cuttings', CuttingController::class)->middleware('permission:cuttings.view|cuttings.create|cuttings.update|cuttings.delete'); + Route::get('cuttings/{cutting}/share', [CuttingController::class, 'share'])->name('cuttings.share'); Route::resource('transactions', TransactionController::class)->except(['show'])->middleware('permission:orders.view|orders.create|orders.update|orders.delete'); Route::patch('transactions/{transaction}/status', [TransactionController::class, 'updateStatus'])->name('transactions.updateStatus')->middleware('permission:orders.update');