diff --git a/app/Http/Controllers/AssetsController.php b/app/Http/Controllers/AssetsController.php index a69636f94..7ce992ce5 100755 --- a/app/Http/Controllers/AssetsController.php +++ b/app/Http/Controllers/AssetsController.php @@ -302,8 +302,13 @@ class AssetsController extends Controller if ($request->has('image_delete')) { - unlink(public_path().'/uploads/assets/'.$asset->image); - $asset->image = ''; + try { + unlink(public_path().'/uploads/assets/'.$asset->image); + $asset->image = ''; + } catch (\Exception $e) { + \Log::error($e); + } + } @@ -1008,7 +1013,13 @@ class AssetsController extends Controller $this->authorize('view', $asset); $log = Actionlog::find($fileId); + $file = $log->get_src('assets'); + + if ($log->action_type =='audit') { + $file = $log->get_src('assets/audits'); + } + $filetype = Helper::checkUploadIsImage($file); if ($filetype) { @@ -1278,7 +1289,7 @@ class AssetsController extends Controller } - public function auditStore(Request $request, $id) + public function auditStore(AssetFileRequest $request, $id) { $this->authorize('audit', Asset::class); @@ -1288,11 +1299,13 @@ class AssetsController extends Controller ); $validator = \Validator::make($request->all(), $rules); + if ($validator->fails()) { return response()->json(Helper::formatStandardApiResponse('error', null, $validator->errors()->all())); } $asset = Asset::findOrFail($id); + // We don't want to log this as a normal update, so let's bypass that $asset->unsetEventDispatcher(); @@ -1300,7 +1313,23 @@ class AssetsController extends Controller $asset->last_audit_date = date('Y-m-d h:i:s'); if ($asset->save()) { - $asset->logAudit(request('note'), request('location_id')); + + + $filename = ''; + + if ($request->hasFile('image')) { + $file = $request->file('image'); + try { + $destinationPath = config('app.private_uploads').'/assets/audits'; + $extension = $file->getClientOriginalExtension(); + $filename = 'audit-'.$asset->id.'-'.str_slug($file->getClientOriginalName()).'.'.$extension; + $file->move($destinationPath, $filename); + } catch (\Exception $e) { + \Log::error($e); + } + } + + $asset->logAudit($request->input('note'), $request->input('location_id'), $filename); return redirect()->to("hardware")->with('success', trans('admin/hardware/message.audit.success')); } } diff --git a/app/Http/Transformers/ActionlogsTransformer.php b/app/Http/Transformers/ActionlogsTransformer.php index 1b26dd40d..3985507cc 100644 --- a/app/Http/Transformers/ActionlogsTransformer.php +++ b/app/Http/Transformers/ActionlogsTransformer.php @@ -26,6 +26,7 @@ class ActionlogsTransformer 'id' => (int) $actionlog->id, 'icon' => $actionlog->present()->icon(), 'image' => (method_exists($actionlog->item, 'getImageUrl')) ? $actionlog->item->getImageUrl() : null, + 'file' => ($actionlog->filename!='') ? route('show/assetfile', ['assetId' => $actionlog->item->id, 'fileId' => $actionlog->id]) : null, 'item' => ($actionlog->item) ? [ 'id' => (int) $actionlog->item->id, 'name' => e($actionlog->item->getDisplayNameAttribute()), diff --git a/app/Models/Loggable.php b/app/Models/Loggable.php index 31fbefbd7..a325762d4 100644 --- a/app/Models/Loggable.php +++ b/app/Models/Loggable.php @@ -163,7 +163,7 @@ trait Loggable * @since [v4.0] * @return \App\Models\Actionlog */ - public function logAudit($note, $location_id) + public function logAudit($note, $location_id, $filename = null) { $log = new Actionlog; $location = Location::find($location_id); @@ -177,10 +177,12 @@ trait Loggable $log->location_id = ($location_id) ? $location_id : null; $log->note = $note; $log->user_id = Auth::user()->id; + $log->filename = $filename; $log->logaction('audit'); $params = [ 'item' => $log->item, + 'filename' => $log->filename, 'admin' => $log->user, 'location' => ($location) ? $location->name : '', 'note' => $note diff --git a/resources/lang/en/button.php b/resources/lang/en/button.php index 696468976..c9487253d 100644 --- a/resources/lang/en/button.php +++ b/resources/lang/en/button.php @@ -12,4 +12,5 @@ return array( 'submit' => 'Submit', 'upload' => 'Upload', 'select_file' => 'Select File...', + 'select_files' => 'Select Files...', ); diff --git a/resources/views/hardware/audit.blade.php b/resources/views/hardware/audit.blade.php index 63f4370b2..f05d721e3 100644 --- a/resources/views/hardware/audit.blade.php +++ b/resources/views/hardware/audit.blade.php @@ -20,7 +20,13 @@
-
+ + {{ Form::open([ + 'method' => 'POST', + 'route' => ['asset.audit.store', $asset->id], + 'files' => true, + 'class' => 'form-horizontal' ]) }} +

{{ trans('admin/hardware/form.tag') }} {{ $asset->asset_tag }}

@@ -71,6 +77,13 @@
+ + @include ('partials.forms.edit.image-upload') + + + + +