diff --git a/app/Http/Controllers/Api/LocationsController.php b/app/Http/Controllers/Api/LocationsController.php index 78ed868ff9..06d06d936b 100644 --- a/app/Http/Controllers/Api/LocationsController.php +++ b/app/Http/Controllers/Api/LocationsController.php @@ -23,7 +23,7 @@ class LocationsController extends Controller $allowed_columns = ['id','name','address','address2','city','state','country','zip','created_at', 'updated_at','parent_id', 'manager_id']; - $locations = Location::select([ + $locations = Location::with('parent', 'manager', 'childLocations')->select([ 'locations.id', 'locations.name', 'locations.address', @@ -37,7 +37,10 @@ class LocationsController extends Controller 'locations.created_at', 'locations.updated_at', 'locations.currency' - ])->withCount('assets')->withCount('users'); + ])->withCount('locationAssets') + ->withCount('assignedAssets') + ->withCount('assets') + ->withCount('users'); if ($request->has('search')) { $locations = $locations->TextSearch($request->input('search')); @@ -52,7 +55,6 @@ class LocationsController extends Controller $total = $locations->count(); $locations = $locations->skip($offset)->take($limit)->get(); return (new LocationsTransformer)->transformLocations($locations, $total); - } @@ -74,7 +76,6 @@ class LocationsController extends Controller return response()->json(Helper::formatStandardApiResponse('success', (new LocationsTransformer)->transformLocation($location), trans('admin/locations/message.create.success'))); } return response()->json(Helper::formatStandardApiResponse('error', null, $location->getErrors())); - } /** @@ -109,7 +110,13 @@ class LocationsController extends Controller $location->fill($request->all()); if ($location->save()) { - return response()->json(Helper::formatStandardApiResponse('success', (new LocationsTransformer)->transformLocation($location), trans('admin/locations/message.update.success'))); + return response()->json( + Helper::formatStandardApiResponse( + 'success', + (new LocationsTransformer)->transformLocation($location), + trans('admin/locations/message.update.success') + ) + ); } return response()->json(Helper::formatStandardApiResponse('error', null, $location->getErrors())); @@ -129,7 +136,6 @@ class LocationsController extends Controller $location = Location::findOrFail($id); $this->authorize('delete', $location); $location->delete(); - return response()->json(Helper::formatStandardApiResponse('success', null, trans('admin/locations/message.delete.success'))); - + return response()->json(Helper::formatStandardApiResponse('success', null, trans('admin/locations/message.delete.success'))); } } diff --git a/app/Http/Controllers/AssetsController.php b/app/Http/Controllers/AssetsController.php index ecaaa1d0d9..d69dd19c45 100755 --- a/app/Http/Controllers/AssetsController.php +++ b/app/Http/Controllers/AssetsController.php @@ -75,7 +75,7 @@ class AssetsController extends Controller } else { $company = null; } - return view('hardware/index')->with('company',$company); + return view('hardware/index')->with('company', $company); } /** @@ -94,7 +94,6 @@ class AssetsController extends Controller } $this->authorize('view', $asset); return redirect()->route('hardware.show', $asset->id)->with('topsearch', $topsearch); - } /** @@ -126,9 +125,7 @@ class AssetsController extends Controller if ($request->has('model_id')) { $selected_model = AssetModel::find($request->input('model_id')); $view->with('selected_model', $selected_model); - } else { } - return $view; } @@ -168,7 +165,6 @@ class AssetsController extends Controller // Create the image (if one was chosen.) if (Input::has('image')) { - $image = Input::get('image'); // After modification, the image is prefixed by mime info like the following: @@ -201,7 +197,6 @@ class AssetsController extends Controller ->put('default', $messageBag)); return response()->json(['image' => $e->getMessage()], 422); } - } @@ -211,31 +206,26 @@ class AssetsController extends Controller // Need to investigate and fix. Using static method for now. $model = AssetModel::find($request->get('model_id')); - - if ($model->fieldset) { foreach ($model->fieldset->fields as $field) { - if ($field->field_encrypted=='1') { if (Gate::allows('admin')) { $asset->{$field->convertUnicodeDbSlug()} = \Crypt::encrypt($request->input($field->convertUnicodeDbSlug())); } - } else { $asset->{$field->convertUnicodeDbSlug()} = $request->input($field->convertUnicodeDbSlug()); } - } } // Was the asset created? if ($asset->save()) { $asset->logCreate(); - if(request('assigned_user')) { + if (request('assigned_user')) { $target = User::find(request('assigned_user')); - } elseif(request('assigned_asset')) { + } elseif (request('assigned_asset')) { $target = Asset::find(request('assigned_asset')); - } elseif(request('assigned_location')) { + } elseif (request('assigned_location')) { $target = Location::find(request('assigned_location')); } if (isset($target)) { @@ -268,15 +258,15 @@ class AssetsController extends Controller $this->authorize($item); return view('hardware/edit', compact('item')) - ->with('model_list', Helper::modelList()) - ->with('supplier_list', Helper::suppliersList()) - ->with('company_list', Helper::companyList()) - ->with('locations_list', Helper::locationsList()) - ->with('statuslabel_list', Helper::statusLabelList()) - ->with('assigned_to', Helper::usersList()) - ->with('manufacturer', Helper::manufacturerList()) - ->with('statuslabel_types', Helper::statusTypeList()) - ->with('category', Helper::categoryList('asset')); + ->with('model_list', Helper::modelList()) + ->with('supplier_list', Helper::suppliersList()) + ->with('company_list', Helper::companyList()) + ->with('locations_list', Helper::locationsList()) + ->with('statuslabel_list', Helper::statusLabelList()) + ->with('assigned_to', Helper::usersList()) + ->with('manufacturer', Helper::manufacturerList()) + ->with('statuslabel_types', Helper::statusTypeList()) + ->with('category', Helper::categoryList('asset')); } @@ -291,7 +281,6 @@ class AssetsController extends Controller public function update(AssetRequest $request, $assetId = null) { - // Check if the asset exists if (!$asset = Asset::find($assetId)) { // Redirect to the asset management page with error @@ -369,7 +358,6 @@ class AssetsController extends Controller if (Gate::allows('admin')) { $asset->{$field->convertUnicodeDbSlug()} = \Crypt::encrypt(e($request->input($field->convertUnicodeDbSlug()))); } - } else { $asset->{$field->convertUnicodeDbSlug()} = $request->input($field->convertUnicodeDbSlug()); } @@ -385,7 +373,6 @@ class AssetsController extends Controller \Input::flash(); \Session::flash('errors', $asset->getErrors()); return response()->json(['errors' => $asset->getErrors()], 500); - } /** @@ -407,8 +394,8 @@ class AssetsController extends Controller $this->authorize('delete', $asset); DB::table('assets') - ->where('id', $asset->id) - ->update(array('assigned_to' => null)); + ->where('id', $asset->id) + ->update(array('assigned_to' => null)); $asset->delete(); @@ -447,7 +434,6 @@ class AssetsController extends Controller ->with('users_list', Helper::usersList()) ->with('assets_list', Helper::assetsList()) ->with('locations_list', Helper::locationsList()); - } /** @@ -469,11 +455,11 @@ class AssetsController extends Controller } $this->authorize('checkout', $asset); - if(request('assigned_user')) { + if (request('assigned_user')) { $target = User::find(request('assigned_user')); - } elseif(request('assigned_asset')) { + } elseif (request('assigned_asset')) { $target = Asset::find(request('assigned_asset')); - } elseif(request('assigned_location')) { + } elseif (request('assigned_location')) { $target = Location::find(request('assigned_location')); } // $user = User::find(Input::get('assigned_to')); @@ -519,7 +505,6 @@ class AssetsController extends Controller $this->authorize('checkin', $asset); return view('hardware/checkin', compact('asset'))->with('statusLabel_list', Helper::statusLabelList())->with('backto', $backto); - } @@ -544,7 +529,7 @@ class AssetsController extends Controller $this->authorize('checkin', $asset); $admin = Auth::user(); - if($asset->assignedType() == Asset::USER) { + if ($asset->assignedType() == Asset::USER) { $user = $asset->assignedTo; } if (is_null($target = $asset->assignedTo)) { @@ -583,7 +568,7 @@ class AssetsController extends Controller } if ($backto=='user') { - return redirect()->to("admin/users/".$user->id.'/view')->with('success', trans('admin/hardware/message.checkin.success')); + return redirect()->route("users.show", $user->id)->with('success', trans('admin/hardware/message.checkin.success')); } return redirect()->route("hardware.index")->with('success', trans('admin/hardware/message.checkin.success')); } @@ -607,15 +592,16 @@ class AssetsController extends Controller $asset = Asset::withTrashed()->find($assetId); $this->authorize('view', $asset); $settings = Setting::getSettings(); - $audit_log = Actionlog::where('action_type','=','audit')->where('item_id','=',$assetId)->where('item_type','=',Asset::class)->orderBy('created_at','DESC')->first(); + $audit_log = Actionlog::where('action_type', '=', 'audit') + ->where('item_id', '=', $assetId) + ->where('item_type', '=', Asset::class) + ->orderBy('created_at', 'DESC')->first(); if (isset($asset)) { - if (!is_null($asset->assetloc)) { $use_currency = $asset->assetloc->currency; } else { - if ($settings->default_currency!='') { $use_currency = $settings->default_currency; } else { @@ -629,7 +615,7 @@ class AssetsController extends Controller ); return view('hardware/view', compact('asset', 'qr_code', 'settings')) - ->with('use_currency', $use_currency)->with('audit_log',$audit_log); + ->with('use_currency', $use_currency)->with('audit_log', $audit_log); } return redirect()->route('hardware.index')->with('error', trans('admin/hardware/message.does_not_exist', compact('id'))); @@ -652,8 +638,7 @@ class AssetsController extends Controller $size = Helper::barcodeDimensions($settings->barcode_type); $qr_file = public_path().'/uploads/barcodes/qr-'.str_slug($asset->asset_tag).'-'.str_slug($asset->id).'.png'; - if (isset($asset->id,$asset->asset_tag)) { - + if (isset($asset->id, $asset->asset_tag)) { if (file_exists($qr_file)) { $header = ['Content-type' => 'image/png']; return response()->file($qr_file, $header); @@ -665,7 +650,6 @@ class AssetsController extends Controller } } } - } @@ -683,8 +667,7 @@ class AssetsController extends Controller $asset = Asset::find($assetId); $barcode_file = public_path().'/uploads/barcodes/'.str_slug($settings->alt_barcode).'-'.str_slug($asset->asset_tag).'.png'; - if (isset($asset->id,$asset->asset_tag)) { - + if (isset($asset->id, $asset->asset_tag)) { if (file_exists($barcode_file)) { $header = ['Content-type' => 'image/png']; return response()->file($barcode_file, $header); @@ -695,7 +678,6 @@ class AssetsController extends Controller return response($barcode_obj->getPngData())->header('Content-type', 'image/png'); } } - } /** @@ -762,7 +744,6 @@ class AssetsController extends Controller */ public function postImportHistory(Request $request) { - if (!ini_get("auto_detect_line_endings")) { ini_set("auto_detect_line_endings", '1'); } @@ -780,9 +761,7 @@ class AssetsController extends Controller foreach ($results as $row) { - if (is_array($row)) { - $row = array_change_key_case($row, CASE_LOWER); $asset_tag = Helper::array_smart_fetch($row, "asset tag"); if (!array_key_exists($asset_tag, $item)) { @@ -797,7 +776,6 @@ class AssetsController extends Controller $item[$asset_tag][$batch_counter]['email'] = Helper::array_smart_fetch($row, "email"); if ($asset = Asset::where('asset_tag', '=', $asset_tag)->first()) { - $item[$asset_tag][$batch_counter]['asset_id'] = $asset->id; $base_username = User::generateFormattedNameFromFullName(Setting::getSettings()->username_format, $item[$asset_tag][$batch_counter]['name']); @@ -854,12 +832,10 @@ class AssetsController extends Controller } else { $status['error'][]['asset'][$asset_tag]['msg'] = 'Asset and user was matched but could not be saved.'; } - } else { $item[$asset_tag][$batch_counter]['checkedout_to'] = null; $status['error'][]['user'][Helper::array_smart_fetch($row, "name")]['msg'] = 'User does not exist so no checkin log was created.'; } - } else { $item[$asset_tag][$batch_counter]['asset_id'] = null; $status['error'][]['asset'][$asset_tag]['msg'] = 'Asset does not exist so no match was attempted.'; @@ -875,7 +851,6 @@ class AssetsController extends Controller // Only do this if a matching user was found if ((array_key_exists('checkedout_to', $asset_batch[$x])) && ($asset_batch[$x]['checkedout_to']!='')) { - if (($total_in_batch > 1) && ($x < $total_in_batch) && (array_key_exists($next, $asset_batch))) { $checkin_date = Carbon::parse($asset_batch[$next]['checkout_date'])->subDay(1)->format('Y-m-d H:i:s'); $asset_batch[$x]['real_checkin'] = $checkin_date; @@ -982,7 +957,6 @@ class AssetsController extends Controller } $log->delete(); return redirect()->back()->with('success', trans('admin/hardware/message.deletefile.success')); - } // Prepare the error message $error = trans('admin/hardware/message.does_not_exist', compact('id')); @@ -1049,25 +1023,19 @@ class AssetsController extends Controller if ($request->has('bulk_actions')) { - if ($request->input('bulk_actions')=='labels') { - $count = 0; return view('hardware/labels') ->with('assets', Asset::find($asset_ids)) ->with('settings', Setting::getSettings()) ->with('count', $count) - ->with('settings', - Setting::getSettings() - ); - + ->with('settings', Setting::getSettings()); } elseif ($request->input('bulk_actions')=='delete') { $assets = Asset::with('assignedTo', 'assetloc')->find($asset_ids); - $assets->each(function($asset) { - $this->authorize('delete',$asset); + $assets->each(function ($asset) { + $this->authorize('delete', $asset); }); return view('hardware/bulk-delete')->with('assets', $assets); - // Bulk edit } elseif ($request->input('bulk_actions')=='edit') { return view('hardware/bulk') @@ -1148,9 +1116,8 @@ class AssetsController extends Controller } DB::table('assets') - ->where('id', $key) - ->update($update_array); - + ->where('id', $key) + ->update($update_array); } // endforeach return redirect()->to("hardware")->with('success', trans('admin/hardware/message.update.success')); // no values given, nothing to update @@ -1171,8 +1138,7 @@ class AssetsController extends Controller public function postBulkDelete() { $this->authorize('delete', Asset::class); - - + if (Input::has('ids')) { $assets = Asset::find(Input::get('ids')); foreach ($assets as $asset) { @@ -1180,9 +1146,8 @@ class AssetsController extends Controller $update_array['assigned_to'] = null; DB::table('assets') - ->where('id', $asset->id) - ->update($update_array); - + ->where('id', $asset->id) + ->update($update_array); } // endforeach return redirect()->to("hardware")->with('success', trans('admin/hardware/message.delete.success')); // no values given, nothing to update @@ -1282,10 +1247,8 @@ class AssetsController extends Controller $asset->next_audit_date = $request->input('next_audit_date'); if ($asset->save()) { - $asset->logAudit(request('note'),request('location_id')); + $asset->logAudit(request('note'), request('location_id')); return redirect()->to("hardware")->with('success', trans('admin/hardware/message.audit.success')); } } - - } diff --git a/app/Http/Controllers/LicensesController.php b/app/Http/Controllers/LicensesController.php index 912d4fbbfb..c269b7a048 100755 --- a/app/Http/Controllers/LicensesController.php +++ b/app/Http/Controllers/LicensesController.php @@ -519,13 +519,16 @@ class LicensesController extends Controller //Log the upload to the log $license->logUpload($filename, e($request->input('notes'))); } - + // This being called from a modal seems to confuse redirect()->back() + // It thinks we should go to the dashboard. As this is only used + // from the modal at present, hardcode the redirect. Longterm + // maybe we evaluate something else. if ($upload_success) { - return redirect()->back()->with('success', trans('admin/licenses/message.upload.success')); + return redirect()->route('licenses.show', $license->id)->with('success', trans('admin/licenses/message.upload.success')); } - return redirect()->back()->with('error', trans('admin/licenses/message.upload.error')); + return redirect()->route('licenses.show', $license->id)->with('error', trans('admin/licenses/message.upload.error')); } - return redirect()->back()->with('error', trans('admin/licenses/message.upload.nofiles')); + return redirect()->route('licenses.show', $license->id)->with('error', trans('admin/licenses/message.upload.nofiles')); } // Prepare the error message $error = trans('admin/licenses/message.does_not_exist', compact('id')); diff --git a/app/Http/Transformers/LocationsTransformer.php b/app/Http/Transformers/LocationsTransformer.php index c914ba9e41..5dc8961dba 100644 --- a/app/Http/Transformers/LocationsTransformer.php +++ b/app/Http/Transformers/LocationsTransformer.php @@ -38,8 +38,8 @@ class LocationsTransformer 'state' => e($location->state), 'country' => e($location->country), 'zip' => e($location->zip), - 'assets_checkedout' => $location->assets()->count(), - 'assets_default' => $location->assignedassets()->count(), + 'assets_checkedout' => $location->location_assets_count, + 'assets_default' => $location->assigned_assets_count, 'created_at' => Helper::getFormattedDateObject($location->created_at, 'datetime'), 'updated_at' => Helper::getFormattedDateObject($location->updated_at, 'datetime'), diff --git a/resources/views/emails/asset-canceled.blade.php b/resources/views/emails/asset-canceled.blade.php index 8ce2419d94..16b3a05cf5 100644 --- a/resources/views/emails/asset-canceled.blade.php +++ b/resources/views/emails/asset-canceled.blade.php @@ -4,7 +4,7 @@

{{ trans('mail.a_user_canceled') }} {{ $snipeSettings->site_name }}.

-

{{ trans('mail.user') }} {{ $requested_by }}
+

{{ trans('mail.user') }} {{ $requested_by }}
{{ trans('mail.item') }} {{ $item_name }} ({{ $item_type }})
{{ trans('mail.canceled') }} {{ $requested_date }}

diff --git a/resources/views/emails/asset-requested.blade.php b/resources/views/emails/asset-requested.blade.php index b90b5a7b0a..14c2572a4f 100644 --- a/resources/views/emails/asset-requested.blade.php +++ b/resources/views/emails/asset-requested.blade.php @@ -4,7 +4,7 @@

{{ trans('mail.a_user_requested') }} {{ $snipeSettings->site_name }}.

-

{{ trans('mail.user') }} {{ $requested_by }}
+

{{ trans('mail.user') }} {{ $requested_by }}
{{ trans('mail.item') }} {{ $item_name }} ({{ $item_type }})
{{ trans('mail.requested') }} {{ $requested_date }} @if ($item_quantity > 1) diff --git a/resources/views/emails/low-inventory.blade.php b/resources/views/emails/low-inventory.blade.php index 62f5faee36..5b188cc320 100644 --- a/resources/views/emails/low-inventory.blade.php +++ b/resources/views/emails/low-inventory.blade.php @@ -15,7 +15,7 @@ @for($i=0; $count > $i; $i++) - {{ $data[$i]['name'] }} + {{ $data[$i]['name'] }} {{ $data[$i]['type'] }} {{ $data[$i]['remaining'] }}