Minor fixes (#4091)

* Fix old urls.

Still had some /admin/ urls floating around, which was causing bad
redirects in some instances.  Should fix #4085

* The modal seems to be confusing license upload. be more explicit in the route we redirect to.

* Fix #4039.  Use proper methods for location assets.

This also fixes a bunch of n+1 issues in the transformer.  Also: curious
to know what Location::assets() does, because it doesn't do what I want
it to :)
This commit is contained in:
Daniel Meltzer 2017-10-01 15:57:04 -04:00 committed by snipe
parent 0bb186ad3b
commit 23ca2d9a0b
7 changed files with 61 additions and 89 deletions

View file

@ -23,7 +23,7 @@ class LocationsController extends Controller
$allowed_columns = ['id','name','address','address2','city','state','country','zip','created_at', $allowed_columns = ['id','name','address','address2','city','state','country','zip','created_at',
'updated_at','parent_id', 'manager_id']; 'updated_at','parent_id', 'manager_id'];
$locations = Location::select([ $locations = Location::with('parent', 'manager', 'childLocations')->select([
'locations.id', 'locations.id',
'locations.name', 'locations.name',
'locations.address', 'locations.address',
@ -37,7 +37,10 @@ class LocationsController extends Controller
'locations.created_at', 'locations.created_at',
'locations.updated_at', 'locations.updated_at',
'locations.currency' 'locations.currency'
])->withCount('assets')->withCount('users'); ])->withCount('locationAssets')
->withCount('assignedAssets')
->withCount('assets')
->withCount('users');
if ($request->has('search')) { if ($request->has('search')) {
$locations = $locations->TextSearch($request->input('search')); $locations = $locations->TextSearch($request->input('search'));
@ -52,7 +55,6 @@ class LocationsController extends Controller
$total = $locations->count(); $total = $locations->count();
$locations = $locations->skip($offset)->take($limit)->get(); $locations = $locations->skip($offset)->take($limit)->get();
return (new LocationsTransformer)->transformLocations($locations, $total); 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('success', (new LocationsTransformer)->transformLocation($location), trans('admin/locations/message.create.success')));
} }
return response()->json(Helper::formatStandardApiResponse('error', null, $location->getErrors())); return response()->json(Helper::formatStandardApiResponse('error', null, $location->getErrors()));
} }
/** /**
@ -109,7 +110,13 @@ class LocationsController extends Controller
$location->fill($request->all()); $location->fill($request->all());
if ($location->save()) { 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())); return response()->json(Helper::formatStandardApiResponse('error', null, $location->getErrors()));
@ -129,7 +136,6 @@ class LocationsController extends Controller
$location = Location::findOrFail($id); $location = Location::findOrFail($id);
$this->authorize('delete', $location); $this->authorize('delete', $location);
$location->delete(); $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')));
} }
} }

View file

@ -75,7 +75,7 @@ class AssetsController extends Controller
} else { } else {
$company = null; $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); $this->authorize('view', $asset);
return redirect()->route('hardware.show', $asset->id)->with('topsearch', $topsearch); return redirect()->route('hardware.show', $asset->id)->with('topsearch', $topsearch);
} }
/** /**
@ -126,9 +125,7 @@ class AssetsController extends Controller
if ($request->has('model_id')) { if ($request->has('model_id')) {
$selected_model = AssetModel::find($request->input('model_id')); $selected_model = AssetModel::find($request->input('model_id'));
$view->with('selected_model', $selected_model); $view->with('selected_model', $selected_model);
} else {
} }
return $view; return $view;
} }
@ -168,7 +165,6 @@ class AssetsController extends Controller
// Create the image (if one was chosen.) // Create the image (if one was chosen.)
if (Input::has('image')) { if (Input::has('image')) {
$image = Input::get('image'); $image = Input::get('image');
// After modification, the image is prefixed by mime info like the following: // After modification, the image is prefixed by mime info like the following:
@ -201,7 +197,6 @@ class AssetsController extends Controller
->put('default', $messageBag)); ->put('default', $messageBag));
return response()->json(['image' => $e->getMessage()], 422); 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. // Need to investigate and fix. Using static method for now.
$model = AssetModel::find($request->get('model_id')); $model = AssetModel::find($request->get('model_id'));
if ($model->fieldset) { if ($model->fieldset) {
foreach ($model->fieldset->fields as $field) { foreach ($model->fieldset->fields as $field) {
if ($field->field_encrypted=='1') { if ($field->field_encrypted=='1') {
if (Gate::allows('admin')) { if (Gate::allows('admin')) {
$asset->{$field->convertUnicodeDbSlug()} = \Crypt::encrypt($request->input($field->convertUnicodeDbSlug())); $asset->{$field->convertUnicodeDbSlug()} = \Crypt::encrypt($request->input($field->convertUnicodeDbSlug()));
} }
} else { } else {
$asset->{$field->convertUnicodeDbSlug()} = $request->input($field->convertUnicodeDbSlug()); $asset->{$field->convertUnicodeDbSlug()} = $request->input($field->convertUnicodeDbSlug());
} }
} }
} }
// Was the asset created? // Was the asset created?
if ($asset->save()) { if ($asset->save()) {
$asset->logCreate(); $asset->logCreate();
if(request('assigned_user')) { if (request('assigned_user')) {
$target = User::find(request('assigned_user')); $target = User::find(request('assigned_user'));
} elseif(request('assigned_asset')) { } elseif (request('assigned_asset')) {
$target = Asset::find(request('assigned_asset')); $target = Asset::find(request('assigned_asset'));
} elseif(request('assigned_location')) { } elseif (request('assigned_location')) {
$target = Location::find(request('assigned_location')); $target = Location::find(request('assigned_location'));
} }
if (isset($target)) { if (isset($target)) {
@ -268,15 +258,15 @@ class AssetsController extends Controller
$this->authorize($item); $this->authorize($item);
return view('hardware/edit', compact('item')) return view('hardware/edit', compact('item'))
->with('model_list', Helper::modelList()) ->with('model_list', Helper::modelList())
->with('supplier_list', Helper::suppliersList()) ->with('supplier_list', Helper::suppliersList())
->with('company_list', Helper::companyList()) ->with('company_list', Helper::companyList())
->with('locations_list', Helper::locationsList()) ->with('locations_list', Helper::locationsList())
->with('statuslabel_list', Helper::statusLabelList()) ->with('statuslabel_list', Helper::statusLabelList())
->with('assigned_to', Helper::usersList()) ->with('assigned_to', Helper::usersList())
->with('manufacturer', Helper::manufacturerList()) ->with('manufacturer', Helper::manufacturerList())
->with('statuslabel_types', Helper::statusTypeList()) ->with('statuslabel_types', Helper::statusTypeList())
->with('category', Helper::categoryList('asset')); ->with('category', Helper::categoryList('asset'));
} }
@ -291,7 +281,6 @@ class AssetsController extends Controller
public function update(AssetRequest $request, $assetId = null) public function update(AssetRequest $request, $assetId = null)
{ {
// Check if the asset exists // Check if the asset exists
if (!$asset = Asset::find($assetId)) { if (!$asset = Asset::find($assetId)) {
// Redirect to the asset management page with error // Redirect to the asset management page with error
@ -369,7 +358,6 @@ class AssetsController extends Controller
if (Gate::allows('admin')) { if (Gate::allows('admin')) {
$asset->{$field->convertUnicodeDbSlug()} = \Crypt::encrypt(e($request->input($field->convertUnicodeDbSlug()))); $asset->{$field->convertUnicodeDbSlug()} = \Crypt::encrypt(e($request->input($field->convertUnicodeDbSlug())));
} }
} else { } else {
$asset->{$field->convertUnicodeDbSlug()} = $request->input($field->convertUnicodeDbSlug()); $asset->{$field->convertUnicodeDbSlug()} = $request->input($field->convertUnicodeDbSlug());
} }
@ -385,7 +373,6 @@ class AssetsController extends Controller
\Input::flash(); \Input::flash();
\Session::flash('errors', $asset->getErrors()); \Session::flash('errors', $asset->getErrors());
return response()->json(['errors' => $asset->getErrors()], 500); return response()->json(['errors' => $asset->getErrors()], 500);
} }
/** /**
@ -407,8 +394,8 @@ class AssetsController extends Controller
$this->authorize('delete', $asset); $this->authorize('delete', $asset);
DB::table('assets') DB::table('assets')
->where('id', $asset->id) ->where('id', $asset->id)
->update(array('assigned_to' => null)); ->update(array('assigned_to' => null));
$asset->delete(); $asset->delete();
@ -447,7 +434,6 @@ class AssetsController extends Controller
->with('users_list', Helper::usersList()) ->with('users_list', Helper::usersList())
->with('assets_list', Helper::assetsList()) ->with('assets_list', Helper::assetsList())
->with('locations_list', Helper::locationsList()); ->with('locations_list', Helper::locationsList());
} }
/** /**
@ -469,11 +455,11 @@ class AssetsController extends Controller
} }
$this->authorize('checkout', $asset); $this->authorize('checkout', $asset);
if(request('assigned_user')) { if (request('assigned_user')) {
$target = User::find(request('assigned_user')); $target = User::find(request('assigned_user'));
} elseif(request('assigned_asset')) { } elseif (request('assigned_asset')) {
$target = Asset::find(request('assigned_asset')); $target = Asset::find(request('assigned_asset'));
} elseif(request('assigned_location')) { } elseif (request('assigned_location')) {
$target = Location::find(request('assigned_location')); $target = Location::find(request('assigned_location'));
} }
// $user = User::find(Input::get('assigned_to')); // $user = User::find(Input::get('assigned_to'));
@ -519,7 +505,6 @@ class AssetsController extends Controller
$this->authorize('checkin', $asset); $this->authorize('checkin', $asset);
return view('hardware/checkin', compact('asset'))->with('statusLabel_list', Helper::statusLabelList())->with('backto', $backto); 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); $this->authorize('checkin', $asset);
$admin = Auth::user(); $admin = Auth::user();
if($asset->assignedType() == Asset::USER) { if ($asset->assignedType() == Asset::USER) {
$user = $asset->assignedTo; $user = $asset->assignedTo;
} }
if (is_null($target = $asset->assignedTo)) { if (is_null($target = $asset->assignedTo)) {
@ -583,7 +568,7 @@ class AssetsController extends Controller
} }
if ($backto=='user') { 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')); 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); $asset = Asset::withTrashed()->find($assetId);
$this->authorize('view', $asset); $this->authorize('view', $asset);
$settings = Setting::getSettings(); $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 (isset($asset)) {
if (!is_null($asset->assetloc)) { if (!is_null($asset->assetloc)) {
$use_currency = $asset->assetloc->currency; $use_currency = $asset->assetloc->currency;
} else { } else {
if ($settings->default_currency!='') { if ($settings->default_currency!='') {
$use_currency = $settings->default_currency; $use_currency = $settings->default_currency;
} else { } else {
@ -629,7 +615,7 @@ class AssetsController extends Controller
); );
return view('hardware/view', compact('asset', 'qr_code', 'settings')) 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'))); 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); $size = Helper::barcodeDimensions($settings->barcode_type);
$qr_file = public_path().'/uploads/barcodes/qr-'.str_slug($asset->asset_tag).'-'.str_slug($asset->id).'.png'; $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)) { if (file_exists($qr_file)) {
$header = ['Content-type' => 'image/png']; $header = ['Content-type' => 'image/png'];
return response()->file($qr_file, $header); 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); $asset = Asset::find($assetId);
$barcode_file = public_path().'/uploads/barcodes/'.str_slug($settings->alt_barcode).'-'.str_slug($asset->asset_tag).'.png'; $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)) { if (file_exists($barcode_file)) {
$header = ['Content-type' => 'image/png']; $header = ['Content-type' => 'image/png'];
return response()->file($barcode_file, $header); return response()->file($barcode_file, $header);
@ -695,7 +678,6 @@ class AssetsController extends Controller
return response($barcode_obj->getPngData())->header('Content-type', 'image/png'); return response($barcode_obj->getPngData())->header('Content-type', 'image/png');
} }
} }
} }
/** /**
@ -762,7 +744,6 @@ class AssetsController extends Controller
*/ */
public function postImportHistory(Request $request) public function postImportHistory(Request $request)
{ {
if (!ini_get("auto_detect_line_endings")) { if (!ini_get("auto_detect_line_endings")) {
ini_set("auto_detect_line_endings", '1'); ini_set("auto_detect_line_endings", '1');
} }
@ -780,9 +761,7 @@ class AssetsController extends Controller
foreach ($results as $row) { foreach ($results as $row) {
if (is_array($row)) { if (is_array($row)) {
$row = array_change_key_case($row, CASE_LOWER); $row = array_change_key_case($row, CASE_LOWER);
$asset_tag = Helper::array_smart_fetch($row, "asset tag"); $asset_tag = Helper::array_smart_fetch($row, "asset tag");
if (!array_key_exists($asset_tag, $item)) { 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"); $item[$asset_tag][$batch_counter]['email'] = Helper::array_smart_fetch($row, "email");
if ($asset = Asset::where('asset_tag', '=', $asset_tag)->first()) { if ($asset = Asset::where('asset_tag', '=', $asset_tag)->first()) {
$item[$asset_tag][$batch_counter]['asset_id'] = $asset->id; $item[$asset_tag][$batch_counter]['asset_id'] = $asset->id;
$base_username = User::generateFormattedNameFromFullName(Setting::getSettings()->username_format, $item[$asset_tag][$batch_counter]['name']); $base_username = User::generateFormattedNameFromFullName(Setting::getSettings()->username_format, $item[$asset_tag][$batch_counter]['name']);
@ -854,12 +832,10 @@ class AssetsController extends Controller
} else { } else {
$status['error'][]['asset'][$asset_tag]['msg'] = 'Asset and user was matched but could not be saved.'; $status['error'][]['asset'][$asset_tag]['msg'] = 'Asset and user was matched but could not be saved.';
} }
} else { } else {
$item[$asset_tag][$batch_counter]['checkedout_to'] = null; $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.'; $status['error'][]['user'][Helper::array_smart_fetch($row, "name")]['msg'] = 'User does not exist so no checkin log was created.';
} }
} else { } else {
$item[$asset_tag][$batch_counter]['asset_id'] = null; $item[$asset_tag][$batch_counter]['asset_id'] = null;
$status['error'][]['asset'][$asset_tag]['msg'] = 'Asset does not exist so no match was attempted.'; $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 // Only do this if a matching user was found
if ((array_key_exists('checkedout_to', $asset_batch[$x])) && ($asset_batch[$x]['checkedout_to']!='')) { 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))) { 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'); $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; $asset_batch[$x]['real_checkin'] = $checkin_date;
@ -982,7 +957,6 @@ class AssetsController extends Controller
} }
$log->delete(); $log->delete();
return redirect()->back()->with('success', trans('admin/hardware/message.deletefile.success')); return redirect()->back()->with('success', trans('admin/hardware/message.deletefile.success'));
} }
// Prepare the error message // Prepare the error message
$error = trans('admin/hardware/message.does_not_exist', compact('id')); $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->has('bulk_actions')) {
if ($request->input('bulk_actions')=='labels') { if ($request->input('bulk_actions')=='labels') {
$count = 0; $count = 0;
return view('hardware/labels') return view('hardware/labels')
->with('assets', Asset::find($asset_ids)) ->with('assets', Asset::find($asset_ids))
->with('settings', Setting::getSettings()) ->with('settings', Setting::getSettings())
->with('count', $count) ->with('count', $count)
->with('settings', ->with('settings', Setting::getSettings());
Setting::getSettings()
);
} elseif ($request->input('bulk_actions')=='delete') { } elseif ($request->input('bulk_actions')=='delete') {
$assets = Asset::with('assignedTo', 'assetloc')->find($asset_ids); $assets = Asset::with('assignedTo', 'assetloc')->find($asset_ids);
$assets->each(function($asset) { $assets->each(function ($asset) {
$this->authorize('delete',$asset); $this->authorize('delete', $asset);
}); });
return view('hardware/bulk-delete')->with('assets', $assets); return view('hardware/bulk-delete')->with('assets', $assets);
// Bulk edit // Bulk edit
} elseif ($request->input('bulk_actions')=='edit') { } elseif ($request->input('bulk_actions')=='edit') {
return view('hardware/bulk') return view('hardware/bulk')
@ -1148,9 +1116,8 @@ class AssetsController extends Controller
} }
DB::table('assets') DB::table('assets')
->where('id', $key) ->where('id', $key)
->update($update_array); ->update($update_array);
} // endforeach } // endforeach
return redirect()->to("hardware")->with('success', trans('admin/hardware/message.update.success')); return redirect()->to("hardware")->with('success', trans('admin/hardware/message.update.success'));
// no values given, nothing to update // no values given, nothing to update
@ -1171,8 +1138,7 @@ class AssetsController extends Controller
public function postBulkDelete() public function postBulkDelete()
{ {
$this->authorize('delete', Asset::class); $this->authorize('delete', Asset::class);
if (Input::has('ids')) { if (Input::has('ids')) {
$assets = Asset::find(Input::get('ids')); $assets = Asset::find(Input::get('ids'));
foreach ($assets as $asset) { foreach ($assets as $asset) {
@ -1180,9 +1146,8 @@ class AssetsController extends Controller
$update_array['assigned_to'] = null; $update_array['assigned_to'] = null;
DB::table('assets') DB::table('assets')
->where('id', $asset->id) ->where('id', $asset->id)
->update($update_array); ->update($update_array);
} // endforeach } // endforeach
return redirect()->to("hardware")->with('success', trans('admin/hardware/message.delete.success')); return redirect()->to("hardware")->with('success', trans('admin/hardware/message.delete.success'));
// no values given, nothing to update // no values given, nothing to update
@ -1282,10 +1247,8 @@ class AssetsController extends Controller
$asset->next_audit_date = $request->input('next_audit_date'); $asset->next_audit_date = $request->input('next_audit_date');
if ($asset->save()) { 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')); return redirect()->to("hardware")->with('success', trans('admin/hardware/message.audit.success'));
} }
} }
} }

View file

@ -519,13 +519,16 @@ class LicensesController extends Controller
//Log the upload to the log //Log the upload to the log
$license->logUpload($filename, e($request->input('notes'))); $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) { 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 // Prepare the error message
$error = trans('admin/licenses/message.does_not_exist', compact('id')); $error = trans('admin/licenses/message.does_not_exist', compact('id'));

View file

@ -38,8 +38,8 @@ class LocationsTransformer
'state' => e($location->state), 'state' => e($location->state),
'country' => e($location->country), 'country' => e($location->country),
'zip' => e($location->zip), 'zip' => e($location->zip),
'assets_checkedout' => $location->assets()->count(), 'assets_checkedout' => $location->location_assets_count,
'assets_default' => $location->assignedassets()->count(), 'assets_default' => $location->assigned_assets_count,
'created_at' => Helper::getFormattedDateObject($location->created_at, 'datetime'), 'created_at' => Helper::getFormattedDateObject($location->created_at, 'datetime'),
'updated_at' => Helper::getFormattedDateObject($location->updated_at, 'datetime'), 'updated_at' => Helper::getFormattedDateObject($location->updated_at, 'datetime'),

View file

@ -4,7 +4,7 @@
<p>{{ trans('mail.a_user_canceled') }} <a href="{{ url('/') }}"> {{ $snipeSettings->site_name }}</a>. </p> <p>{{ trans('mail.a_user_canceled') }} <a href="{{ url('/') }}"> {{ $snipeSettings->site_name }}</a>. </p>
<p>{{ trans('mail.user') }} <a href="{{ url('/') }}/admin/users/{{ $user_id }}/view">{{ $requested_by }}</a><br> <p>{{ trans('mail.user') }} <a href="{{ route('users.show', $user_id) }}">{{ $requested_by }}</a><br>
{{ trans('mail.item') }} <a href="{{ $item_url }}">{{ $item_name }}</a> ({{ $item_type }}) <br> {{ trans('mail.item') }} <a href="{{ $item_url }}">{{ $item_name }}</a> ({{ $item_type }}) <br>
{{ trans('mail.canceled') }} {{ $requested_date }} {{ trans('mail.canceled') }} {{ $requested_date }}
</p> </p>

View file

@ -4,7 +4,7 @@
<p>{{ trans('mail.a_user_requested') }} <a href="{{ url('/') }}"> {{ $snipeSettings->site_name }}</a>. </p> <p>{{ trans('mail.a_user_requested') }} <a href="{{ url('/') }}"> {{ $snipeSettings->site_name }}</a>. </p>
<p>{{ trans('mail.user') }} <a href="{{ url('/') }}/admin/users/{{ $user_id }}/view">{{ $requested_by }}</a><br> <p>{{ trans('mail.user') }} <a href="{{ route('users.show', $user_id) }}">{{ $requested_by }}</a><br>
{{ trans('mail.item') }} <a href="{{ $item_url }}">{{ $item_name }}</a> ({{ $item_type }}) <br> {{ trans('mail.item') }} <a href="{{ $item_url }}">{{ $item_name }}</a> ({{ $item_type }}) <br>
{{ trans('mail.requested') }} {{ $requested_date }} {{ trans('mail.requested') }} {{ $requested_date }}
@if ($item_quantity > 1) @if ($item_quantity > 1)

View file

@ -15,7 +15,7 @@
@for($i=0; $count > $i; $i++) @for($i=0; $count > $i; $i++)
<tr> <tr>
<td> <td>
<a href="{{ url('/') }}/admin/{{ $data[$i]['type'] }}/{{ $data[$i]['id'] }}/view">{{ $data[$i]['name'] }}</a> <a href="{{ route($data[$i]['type'].'.show', $data[$i]['id']) }}">{{ $data[$i]['name'] }}</a>
</td> </td>
<td>{{ $data[$i]['type'] }}</td> <td>{{ $data[$i]['type'] }}</td>
<td>{{ $data[$i]['remaining'] }}</td> <td>{{ $data[$i]['remaining'] }}</td>