diff --git a/app/Http/Controllers/Accessories/AccessoriesController.php b/app/Http/Controllers/Accessories/AccessoriesController.php index f0b54a9498..feffaa2889 100755 --- a/app/Http/Controllers/Accessories/AccessoriesController.php +++ b/app/Http/Controllers/Accessories/AccessoriesController.php @@ -115,6 +115,36 @@ class AccessoriesController extends Controller } + /** + * Returns a view that presents a form to clone an accessory. + * + * @author [J. Vinsmoke] + * @param int $accessoryId + * @since [v6.0] + * @return View + */ + public function getClone($accessoryId = null) + { + + $this->authorize('create', Accesory::class); + + // Check if the asset exists + if (is_null($accessory_to_clone = Accessory::find($accessoryId))) { + // Redirect to the asset management page + return redirect()->route('accessory.index')->with('error', trans('admin/accessories/message.does_not_exist')); + } + + $accessory = clone $accessory_to_clone; + $accessory->id = null; + $accessory->location_id = null; + + //duplicate the image for the cloned accessory + copy('uploads/accessories/usb-keyboard.jpg','uploads/accessories/testimage.jpg'); + + return view('accessories/edit') + ->with('item', $accessory); + + } /** * Save edited Accessory from form post diff --git a/app/Http/Transformers/AccessoriesTransformer.php b/app/Http/Transformers/AccessoriesTransformer.php index 00c30f9ea2..fffc434cbb 100644 --- a/app/Http/Transformers/AccessoriesTransformer.php +++ b/app/Http/Transformers/AccessoriesTransformer.php @@ -4,7 +4,7 @@ namespace App\Http\Transformers; use App\Helpers\Helper; use App\Models\Accessory; -use Gate; +use Illuminate\Support\Facades\Gate; use Illuminate\Database\Eloquent\Collection; use Illuminate\Support\Facades\Storage; @@ -51,6 +51,7 @@ class AccessoriesTransformer 'checkin' => false, 'update' => Gate::allows('update', Accessory::class), 'delete' => Gate::allows('delete', Accessory::class), + 'clone' => (Gate::allows('create', Accessory::class) && ($accessory->created_at == 'datetime')), ]; $permissions_array['user_can_checkout'] = false; diff --git a/resources/views/accessories/view.blade.php b/resources/views/accessories/view.blade.php index fd31722204..e121bbc164 100644 --- a/resources/views/accessories/view.blade.php +++ b/resources/views/accessories/view.blade.php @@ -39,6 +39,11 @@ {{ trans('admin/accessories/general.edit') }} @endcan + @can('update', \App\Models\Accessory::class) +