Added location clone

Signed-off-by: snipe <snipe@snipe.net>
This commit is contained in:
snipe 2023-03-01 13:51:35 -08:00
parent 78b36c7886
commit dac877f184
3 changed files with 45 additions and 7 deletions

View file

@ -227,6 +227,35 @@ class LocationsController extends Controller
}
/**
* Returns a view that presents a form to clone a location.
*
* @author [A. Gianotto] [<snipe@snipe.net>]
* @param int $licenseId
* @since [v6.0.14]
* @return View
*/
public function getClone($licenseId = null)
{
// Check if the asset exists
if (is_null($location_to_clone = Location::find($licenseId))) {
// Redirect to the asset management page
return redirect()->route('licenses.index')->with('error', trans('admin/locations/message.does_not_exist'));
}
$this->authorize('create', $location_to_clone);
$location = clone $location_to_clone;
$location->id = null;
$location->name = null;
$location->image = null;
return view('locations/edit')
->with('item', $location);
}
public function print_all_assigned($id)
{
if ($location = Location::where('id', $id)->first()) {

View file

@ -4,7 +4,7 @@ namespace App\Http\Transformers;
use App\Helpers\Helper;
use App\Models\Location;
use Gate;
use Illuminate\Support\Facades\Gate;
use Illuminate\Database\Eloquent\Collection;
use Illuminate\Support\Facades\Storage;
@ -63,6 +63,7 @@ class LocationsTransformer
$permissions_array['available_actions'] = [
'update' => Gate::allows('update', Location::class) ? true : false,
'delete' => $location->isDeletable(),
'clone' => (Gate::allows('create', Location::class) && ($location->deleted_at == '')),
];
$array += $permissions_array;

View file

@ -40,12 +40,9 @@ Route::group(['middleware' => 'auth'], function () {
'parameters' => ['category' => 'category_id'],
]);
/*
* Locations
*/
Route::resource('locations', LocationsController::class, [
'parameters' => ['location' => 'location_id'],
]);
Route::get('locations/{locationId}/clone',
[LocationsController::class, 'getClone']
)->name('clone/license');
Route::get(
'locations/{locationId}/printassigned',
@ -57,6 +54,17 @@ Route::group(['middleware' => 'auth'], function () {
[LocationsController::class, 'print_all_assigned']
)->name('locations.print_all_assigned');
/*
* Locations
*/
Route::resource('locations', LocationsController::class, [
'parameters' => ['location' => 'location_id'],
]);
/*
* Manufacturers
*/