diff --git a/app/Http/Controllers/Consumables/ConsumablesController.php b/app/Http/Controllers/Consumables/ConsumablesController.php index 5685944a5c..883d5849ee 100644 --- a/app/Http/Controllers/Consumables/ConsumablesController.php +++ b/app/Http/Controllers/Consumables/ConsumablesController.php @@ -200,7 +200,7 @@ class ConsumablesController extends Controller */ public function show($consumableId = null) { - $consumable = Consumable::find($consumableId); + $consumable = Consumable::withCount('users as users_consumables')->find($consumableId); $this->authorize($consumable); if (isset($consumable->id)) { return view('consumables/view', compact('consumable')); @@ -209,4 +209,16 @@ class ConsumablesController extends Controller return redirect()->route('consumables.index') ->with('error', trans('admin/consumables/message.does_not_exist')); } + + public function clone(Consumable $consumable) : View + { + $this->authorize('create', $consumable); + $consumable_to_close = $consumable; + $consumable = clone $consumable_to_close; + $consumable->id = null; + $consumable->image = null; + $consumable->user_id = null; + + return view('consumables/edit')->with('item', $consumable); + } } diff --git a/app/Http/Transformers/ConsumablesTransformer.php b/app/Http/Transformers/ConsumablesTransformer.php index f23ebc0382..d0ae57eef0 100644 --- a/app/Http/Transformers/ConsumablesTransformer.php +++ b/app/Http/Transformers/ConsumablesTransformer.php @@ -55,6 +55,7 @@ class ConsumablesTransformer 'checkin' => Gate::allows('checkin', Consumable::class), 'update' => Gate::allows('update', Consumable::class), 'delete' => Gate::allows('delete', Consumable::class), + 'clone' => (Gate::allows('create', Consumable::class) && ($consumable->deleted_at == '')), ]; $array += $permissions_array; diff --git a/resources/lang/en-US/admin/consumables/general.php b/resources/lang/en-US/admin/consumables/general.php index 7c6bb32968..29acfedc1b 100644 --- a/resources/lang/en-US/admin/consumables/general.php +++ b/resources/lang/en-US/admin/consumables/general.php @@ -8,4 +8,5 @@ return array( 'remaining' => 'Remaining', 'total' => 'Total', 'update' => 'Update Consumable', + 'inventory_warning' => 'The inventory of this consumable is below the minimum amount of :min_count', ); diff --git a/resources/lang/en-US/button.php b/resources/lang/en-US/button.php index 22821b8157..51c54bb9b5 100644 --- a/resources/lang/en-US/button.php +++ b/resources/lang/en-US/button.php @@ -7,6 +7,7 @@ return [ 'checkin_and_delete' => 'Checkin All / Delete User', 'delete' => 'Delete', 'edit' => 'Edit', + 'clone' => 'Clone', 'restore' => 'Restore', 'remove' => 'Remove', 'request' => 'Request', @@ -21,4 +22,13 @@ return [ 'add_maintenance' => 'Add Maintenance', 'append' => 'Append', 'new' => 'New', + 'var' => [ + 'clone' => 'Clone :item_type', + 'edit' => 'Edit :item_type', + 'delete' => 'Delete :item_type', + 'restore' => 'Delete :item_type', + 'create' => 'Create New :item_type', + 'checkout' => 'Checkout :item_type', + 'checkin' => 'Checkin :item_type', + ] ]; diff --git a/resources/lang/en-US/general.php b/resources/lang/en-US/general.php index 71bbb05a4f..b3a6b34320 100644 --- a/resources/lang/en-US/general.php +++ b/resources/lang/en-US/general.php @@ -557,5 +557,6 @@ return [ 'close' => 'Close', 'expires' => 'Expires', 'map_fields'=> 'Map :item_type Field', + 'remaining_var' => ':count Remaining', ]; diff --git a/resources/views/accessories/view.blade.php b/resources/views/accessories/view.blade.php index 9a37059b41..e42439bd86 100644 --- a/resources/views/accessories/view.blade.php +++ b/resources/views/accessories/view.blade.php @@ -330,7 +330,7 @@ {{ trans('admin/accessories/general.edit') }} @endcan - @can('update', \App\Models\Accessory::class) + @can('create', \App\Models\Accessory::class)
diff --git a/resources/views/consumables/view.blade.php b/resources/views/consumables/view.blade.php index 5a25659fbe..f6ea14042e 100644 --- a/resources/views/consumables/view.blade.php +++ b/resources/views/consumables/view.blade.php @@ -2,114 +2,520 @@ {{-- Page title --}} @section('title') - {{ $consumable->name }} - {{ trans('general.consumable') }} -@parent -@stop + {{ $consumable->name }} + {{ trans('general.consumable') }} - + ({{ trans('general.remaining_var', ['count' => $consumable->numRemaining()]) }}) + @parent +@endsection @section('header_right') - - {{ trans('general.back') }} -@stop - + + {{ trans('general.back') }} +@endsection {{-- Page content --}} @section('content') -