From d83827a44e54f6c6df43f95dd5ab974096d33cb6 Mon Sep 17 00:00:00 2001 From: Godfrey M Date: Tue, 5 Mar 2024 15:43:41 -0800 Subject: [PATCH] bulk actions are handled before sorting --- .../Assets/BulkAssetsController.php | 91 +++++++++---------- app/Models/Labels/DefaultLabel.php | 1 + app/View/Label.php | 2 +- 3 files changed, 47 insertions(+), 47 deletions(-) diff --git a/app/Http/Controllers/Assets/BulkAssetsController.php b/app/Http/Controllers/Assets/BulkAssetsController.php index 158f31813..5ff07f04f 100644 --- a/app/Http/Controllers/Assets/BulkAssetsController.php +++ b/app/Http/Controllers/Assets/BulkAssetsController.php @@ -50,7 +50,6 @@ class BulkAssetsController extends Controller } $asset_ids = $request->input('ids'); - // Figure out where we need to send the user after the update is complete, and store that in the session $bulk_back_url = request()->headers->get('referer'); session(['bulk_back_url' => $bulk_back_url]); @@ -93,6 +92,51 @@ class BulkAssetsController extends Controller $assets = Asset::with('assignedTo', 'location', 'model')->whereIn('assets.id', $asset_ids); + $assets = $assets->get(); + + $models = $assets->unique('model_id'); + $modelNames = []; + foreach($models as $model) { + $modelNames[] = $model->model->name; + } + if ($request->filled('bulk_actions')) { + + switch ($request->input('bulk_actions')) { + case 'labels': + $this->authorize('view', Asset::class); + + return (new Label) + ->with('assets', $assets) + ->with('settings', Setting::getSettings()) + ->with('bulkedit', true) + ->with('count', 0); + + case 'delete': + $this->authorize('delete', Asset::class); + $assets->each(function ($assets) { + $this->authorize('delete', $assets); + }); + + return view('hardware/bulk-delete')->with('assets', $assets); + + case 'restore': + $this->authorize('update', Asset::class); + $assets = Asset::withTrashed()->find($asset_ids); + $assets->each(function ($asset) { + $this->authorize('delete', $asset); + }); + return view('hardware/bulk-restore')->with('assets', $assets); + + case 'edit': + $this->authorize('update', Asset::class); + + return view('hardware/bulk') + ->with('assets', $asset_ids) + ->with('statuslabel_list', Helper::statusLabelList()) + ->with('models', $models->pluck(['model'])) + ->with('modelNames', $modelNames); + } + } switch ($sort_override) { case 'model': $assets->OrderModels($order); @@ -128,53 +172,8 @@ class BulkAssetsController extends Controller break; } - $assets = $assets->get(); - - $models = $assets->unique('model_id'); - $modelNames = []; - foreach($models as $model) { - $modelNames[] = $model->model->name; - } - - if ($request->filled('bulk_actions')) { - switch ($request->input('bulk_actions')) { - case 'labels': - $this->authorize('view', Asset::class); - - return (new Label) - ->with('assets', $assets) - ->with('settings', Setting::getSettings()) - ->with('bulkedit', true) - ->with('count', 0); - - case 'delete': - $this->authorize('delete', Asset::class); - $assets->each(function ($assets) { - $this->authorize('delete', $assets); - }); - - return view('hardware/bulk-delete')->with('assets', $assets); - - case 'restore': - $this->authorize('update', Asset::class); - $assets = Asset::withTrashed()->find($asset_ids); - $assets->each(function ($asset) { - $this->authorize('delete', $asset); - }); - return view('hardware/bulk-restore')->with('assets', $assets); - - case 'edit': - $this->authorize('update', Asset::class); - - return view('hardware/bulk') - ->with('assets', $asset_ids) - ->with('statuslabel_list', Helper::statusLabelList()) - ->with('models', $models->pluck(['model'])) - ->with('modelNames', $modelNames); - } - } return redirect()->back()->with('error', 'No action selected'); } diff --git a/app/Models/Labels/DefaultLabel.php b/app/Models/Labels/DefaultLabel.php index 796ead237..f4b480eb4 100644 --- a/app/Models/Labels/DefaultLabel.php +++ b/app/Models/Labels/DefaultLabel.php @@ -163,6 +163,7 @@ class DefaultLabel extends RectangleSheet // Fields $fieldsDone = 0; if ($fieldsDone < $this->getSupportFields()) { +// dd($record->get('fields')); foreach ($record->get('fields') as $field) { static::writeText( $pdf, $field['label'][0]. ': ' . $field['value'], diff --git a/app/View/Label.php b/app/View/Label.php index 01e71e2d8..e6521c000 100644 --- a/app/View/Label.php +++ b/app/View/Label.php @@ -126,7 +126,7 @@ class Label implements View switch ($settings->label2_2d_target) { case 'ht_tag': $barcode2DTarget = route('ht/assetTag', $asset->asset_tag); break; case 'hardware_id': - default: $barcode2DTarget = route('hardware.show', $asset->id); break; + default: $barcode2DTarget = route('hardware.show',['hardware' => $asset->id]); break; } $assetData->put('barcode2d', (object)[ 'type' => $barcode2DType,