Skip to content

Commit 0bea07e

Browse files
authored
Merge pull request #16312 from snipe/small_cleanups
Small cleanups before release
2 parents cebb9d0 + 22f7a9d commit 0bea07e

File tree

15 files changed

+178
-173
lines changed

15 files changed

+178
-173
lines changed

app/Exceptions/Handler.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,11 +128,13 @@ public function render($request, Throwable $e)
128128
$model_name = last(explode('\\', $e->getModel()));
129129
$route = str_plural(strtolower(last(explode('\\', $e->getModel())))).'.index';
130130

131-
// Sigh. Fucking laravel.
131+
// Sigh.
132132
if ($route == 'assets.index') {
133133
$route = 'hardware.index';
134134
} elseif ($route == 'reporttemplates.index') {
135135
$route = 'reports/custom';
136+
} elseif ($route == 'assetmodels.index') {
137+
$route = 'models.index';
136138
} elseif ($route == 'predefinedkits.index') {
137139
$route = 'kits.index';
138140
}

app/Http/Controllers/AssetModelsController.php

Lines changed: 8 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -178,28 +178,16 @@ public function update(StoreAssetModelRequest $request, AssetModel $model) : Red
178178
* @since [v1.0]
179179
* @param int $modelId
180180
*/
181-
public function destroy($modelId) : RedirectResponse
181+
public function destroy(AssetModel $model) : RedirectResponse
182182
{
183183
$this->authorize('delete', AssetModel::class);
184-
// Check if the model exists
185-
if (is_null($model = AssetModel::find($modelId))) {
186-
return redirect()->route('models.index')->with('error', trans('admin/models/message.does_not_exist'));
187-
}
184+
188185

189186
if ($model->assets()->count() > 0) {
190187
// Throw an error that this model is associated with assets
191188
return redirect()->route('models.index')->with('error', trans('admin/models/message.assoc_users'));
192189
}
193190

194-
if ($model->image) {
195-
try {
196-
Storage::disk('public')->delete('models/'.$model->image);
197-
$model->update(['image' => null]);
198-
} catch (\Exception $e) {
199-
Log::info($e);
200-
}
201-
}
202-
203191
// Delete the model
204192
$model->delete();
205193

@@ -270,23 +258,20 @@ public function show(AssetModel $model) : View | RedirectResponse
270258
* @since [v1.0]
271259
* @param int $modelId
272260
*/
273-
public function getClone($modelId = null) : View | RedirectResponse
261+
public function getClone(AssetModel $model) : View | RedirectResponse
274262
{
275263
$this->authorize('create', AssetModel::class);
276-
// Check if the model exists
277-
if (is_null($model_to_clone = AssetModel::find($modelId))) {
278-
return redirect()->route('models.index')->with('error', trans('admin/models/message.does_not_exist'));
279-
}
280264

281-
$model = clone $model_to_clone;
265+
$cloned_model = clone $model;
282266
$model->id = null;
267+
$model->deleted_at = null;
283268

284269
// Show the page
285270
return view('models/edit')
286271
->with('depreciation_list', Helper::depreciationList())
287272
->with('item', $model)
288-
->with('model_id', $model_to_clone->id)
289-
->with('clone_model', $model_to_clone);
273+
->with('model_id', $model->id)
274+
->with('clone_model', $cloned_model);
290275
}
291276

292277

@@ -305,7 +290,7 @@ public function getCustomFields($modelId) : View
305290

306291

307292
/**
308-
* Returns a view that allows the user to bulk edit model attrbutes
293+
* Returns a view that allows the user to bulk edit model attributes
309294
*
310295
* @author [A. Gianotto] [<[email protected]>]
311296
* @since [v1.7]

app/Http/Controllers/AssetModelsFilesController.php

Lines changed: 11 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -58,11 +58,9 @@ public function store(UploadFileRequest $request, $modelId = null) : RedirectRes
5858
* @param int $fileId
5959
* @since [v1.0]
6060
*/
61-
public function show($modelId = null, $fileId = null) : StreamedResponse | Response | RedirectResponse | BinaryFileResponse
61+
public function show(AssetModel $model, $fileId = null) : StreamedResponse | Response | RedirectResponse | BinaryFileResponse
6262
{
63-
$model = AssetModel::find($modelId);
64-
// the asset is valid
65-
if (isset($model->id)) {
63+
6664
$this->authorize('view', $model);
6765

6866
if (! $log = Actionlog::find($fileId)) {
@@ -87,12 +85,6 @@ public function show($modelId = null, $fileId = null) : StreamedResponse | Respo
8785
}
8886

8987
return StorageHelper::downloader($file);
90-
}
91-
// Prepare the error message
92-
$error = trans('admin/hardware/message.does_not_exist', ['id' => $fileId]);
93-
94-
// Redirect to the hardware management page
95-
return redirect()->route('hardware.index')->with('error', $error);
9688
}
9789

9890
/**
@@ -103,29 +95,21 @@ public function show($modelId = null, $fileId = null) : StreamedResponse | Respo
10395
* @param int $fileId
10496
* @since [v1.0]
10597
*/
106-
public function destroy($modelId = null, $fileId = null) : RedirectResponse
98+
public function destroy(AssetModel $model, $fileId = null) : RedirectResponse
10799
{
108-
$model = AssetModel::find($modelId);
109-
$this->authorize('update', $model);
110100
$rel_path = 'private_uploads/assetmodels';
111-
112-
// the asset is valid
113-
if (isset($model->id)) {
114-
$this->authorize('update', $model);
115-
$log = Actionlog::find($fileId);
116-
if ($log) {
117-
if (Storage::exists($rel_path.'/'.$log->filename)) {
118-
Storage::delete($rel_path.'/'.$log->filename);
119-
}
120-
$log->delete();
121-
122-
return redirect()->back()->withFragment('files')->with('success', trans('admin/hardware/message.deletefile.success'));
101+
$this->authorize('update', $model);
102+
$log = Actionlog::find($fileId);
103+
if ($log) {
104+
if (Storage::exists($rel_path.'/'.$log->filename)) {
105+
Storage::delete($rel_path.'/'.$log->filename);
123106
}
107+
$log->delete();
124108

125109
return redirect()->back()->withFragment('files')->with('success', trans('admin/hardware/message.deletefile.success'));
126110
}
127111

128-
// Redirect to the hardware management page
129-
return redirect()->route('hardware.index')->with('error', trans('admin/hardware/message.does_not_exist'));
112+
return redirect()->back()->withFragment('files')->with('success', trans('admin/hardware/message.deletefile.success'));
113+
130114
}
131115
}

app/Http/Controllers/Users/UserFilesController.php

Lines changed: 34 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -22,43 +22,34 @@ class UserFilesController extends Controller
2222
*@author [A. Gianotto] [<[email protected]>]
2323
* @since [v1.6]
2424
*/
25-
public function store(UploadFileRequest $request, $userId = null)
25+
public function store(UploadFileRequest $request, User $user)
2626
{
27-
$user = User::find($userId);
28-
$destinationPath = config('app.private_uploads').'/users';
27+
$this->authorize('update', $user);
28+
$files = $request->file('file');
2929

30-
if (isset($user->id)) {
31-
$this->authorize('update', $user);
32-
33-
$logActions = [];
34-
$files = $request->file('file');
35-
36-
if (is_null($files)) {
37-
return redirect()->back()->with('error', trans('admin/users/message.upload.nofiles'));
38-
}
39-
foreach ($files as $file) {
40-
$file_name = $request->handleFile('private_uploads/users/', 'user-'.$user->id, $file);
41-
42-
//Log the uploaded file to the log
43-
$logAction = new Actionlog();
44-
$logAction->item_id = $user->id;
45-
$logAction->item_type = User::class;
46-
$logAction->created_by = auth()->id();
47-
$logAction->note = $request->input('notes');
48-
$logAction->target_id = null;
49-
$logAction->created_at = date("Y-m-d H:i:s");
50-
$logAction->filename = $file_name;
51-
$logAction->action_type = 'uploaded';
52-
53-
if (! $logAction->save()) {
54-
return JsonResponse::create(['error' => 'Failed validation: '.print_r($logAction->getErrors(), true)], 500);
55-
}
56-
$logActions[] = $logAction;
30+
if (is_null($files)) {
31+
return redirect()->back()->with('error', trans('admin/users/message.upload.nofiles'));
32+
}
33+
foreach ($files as $file) {
34+
$file_name = $request->handleFile('private_uploads/users/', 'user-'.$user->id, $file);
35+
36+
//Log the uploaded file to the log
37+
$logAction = new Actionlog();
38+
$logAction->item_id = $user->id;
39+
$logAction->item_type = User::class;
40+
$logAction->created_by = auth()->id();
41+
$logAction->note = $request->input('notes');
42+
$logAction->target_id = null;
43+
$logAction->created_at = date("Y-m-d H:i:s");
44+
$logAction->filename = $file_name;
45+
$logAction->action_type = 'uploaded';
46+
47+
if (! $logAction->save()) {
48+
return JsonResponse::create(['error' => 'Failed validation: '.print_r($logAction->getErrors(), true)], 500);
5749
}
58-
// dd($logActions);
59-
return redirect()->back()->withFragment('files')->with('success', trans('admin/users/message.upload.success'));
50+
51+
return redirect()->back()->withFragment('files')->with('success', trans('admin/users/message.upload.success'));
6052
}
61-
return redirect()->back()->with('error', trans('admin/users/message.upload.nofiles'));
6253

6354

6455
}
@@ -110,37 +101,29 @@ public function destroy($userId = null, $fileId = null)
110101
* @return mixed
111102
* @throws \Illuminate\Auth\Access\AuthorizationException
112103
*/
113-
public function show($userId = null, $fileId = null)
104+
public function show(User $user, $fileId = null)
114105
{
115106

116107

117108
if (empty($fileId)) {
118109
return redirect()->route('users.show')->with('error', 'Invalid file request');
119110
}
120111

121-
if ($user = User::find($userId)) {
122-
123112
$this->authorize('view', $user);
124113

125-
if ($log = Actionlog::whereNotNull('filename')->where('item_id', $user->id)->find($fileId)) {
126-
$file = 'private_uploads/users/'.$log->filename;
114+
if ($log = Actionlog::whereNotNull('filename')->where('item_id', $user->id)->find($fileId)) {
115+
$file = 'private_uploads/users/'.$log->filename;
127116

128-
try {
129-
return StorageHelper::showOrDownloadFile($file, $log->filename);
130-
} catch (\Exception $e) {
131-
return redirect()->route('users.show', ['user' => $user])->with('error', trans('general.file_not_found'));
132-
}
117+
try {
118+
return StorageHelper::showOrDownloadFile($file, $log->filename);
119+
} catch (\Exception $e) {
120+
return redirect()->route('users.show', ['user' => $user])->with('error', trans('general.file_not_found'));
133121
}
134-
135-
// The log record doesn't exist somehow
136-
return redirect()->route('users.show', ['user' => $user])->with('error', trans('general.log_record_not_found'));
137-
138-
139-
return redirect()->back()->with('error', trans('general.file_not_found'));
140122
}
141123

142-
// Redirect to the user management page if the user doesn't exist
143-
return redirect()->route('users.index')->with('error', trans('admin/users/message.user_not_found', ['id' => $userId]));
124+
// The log record doesn't exist somehow
125+
return redirect()->route('users.show', ['user' => $user])->with('error', trans('general.log_record_not_found'));
126+
144127
}
145128

146129
}

app/Http/Transformers/ActionlogsTransformer.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,7 @@ public function transformActionlog (Actionlog $actionlog, $settings = null)
146146
} elseif ($actionlog->itemType() == 'license') {
147147
$file_url = route('show.licensefile', ['licenseId' => $actionlog->item->id, 'fileId' => $actionlog->id]);
148148
} elseif ($actionlog->itemType() == 'user') {
149-
$file_url = route('show/userfile', ['userId' => $actionlog->item->id, 'fileId' => $actionlog->id]);
149+
$file_url = route('show/userfile', ['user' => $actionlog->item->id, 'fileId' => $actionlog->id]);
150150
}
151151
}
152152
}

app/Providers/BreadcrumbsServiceProvider.php

Lines changed: 25 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ public function boot()
4949
Breadcrumbs::for('hardware.index', fn (Trail $trail) =>
5050
$trail->parent('home', route('home'))
5151
->push(trans('general.assets'), route('hardware.index'))
52-
->push(request()->status.' Assets', route('hardware.index', ['status' => request()->status]))
52+
->push(request()->status.' '.trans('general.assets'), route('hardware.index', ['status' => request()->status]))
5353
);
5454

5555
} else {
@@ -81,10 +81,20 @@ public function boot()
8181
/**
8282
* Asset Model Breadcrumbs
8383
*/
84-
Breadcrumbs::for('models.index', fn (Trail $trail) =>
85-
$trail->parent('hardware.index', route('hardware.index'))
86-
->push(trans('general.asset_models'), route('models.index'))
87-
);
84+
85+
if ((request()->is('models*')) && (request()->status=='deleted')) {
86+
Breadcrumbs::for('models.index', fn (Trail $trail) =>
87+
$trail->parent('hardware.index', route('hardware.index'))
88+
->push(trans('general.asset_models'), route('models.index'))
89+
->push(trans('general.deleted_models'), route('models.index', ['status' => request()->status]))
90+
);
91+
} else {
92+
Breadcrumbs::for('models.index', fn (Trail $trail) =>
93+
$trail->parent('hardware.index', route('hardware.index'))
94+
->push(trans('general.asset_models'), route('models.index'))
95+
);
96+
}
97+
8898

8999
Breadcrumbs::for('models.create', fn (Trail $trail) =>
90100
$trail->parent('models.index', route('models.index'))
@@ -511,10 +521,16 @@ public function boot()
511521
/**
512522
* Users Breadcrumbs
513523
*/
514-
Breadcrumbs::for('users.index', fn (Trail $trail) =>
515-
$trail->parent('home', route('home'))
516-
->push(trans('general.users'), route('users.index'))
517-
);
524+
if ((request()->is('users*')) && (request()->status=='deleted')) {
525+
Breadcrumbs::for('users.index', fn(Trail $trail) => $trail->parent('home', route('home'))
526+
->push(trans('general.users'), route('users.index'))
527+
->push(trans('general.deleted_users'), route('users.index'))
528+
);
529+
} else {
530+
Breadcrumbs::for('users.index', fn(Trail $trail) => $trail->parent('home', route('home'))
531+
->push(trans('general.users'), route('users.index'))
532+
);
533+
}
518534

519535
Breadcrumbs::for('users.create', fn (Trail $trail) =>
520536
$trail->parent('users.index', route('users.index'))

resources/lang/en-US/admin/models/general.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
return array(
44
'about_models_title' => 'About Asset Models',
55
'about_models_text' => 'Asset Models are a way to group identical assets. "MBP 2013", "IPhone 6s", etc.',
6-
'deleted' => 'This model has been deleted.',
6+
'deleted' => 'This model has been deleted.',
77
'bulk_delete' => 'Bulk Delete Asset Models',
88
'bulk_delete_help' => 'Use the checkboxes below to confirm the deletion of the selected asset models. Asset models that have assets associated with them cannot be deleted until the assets are associated with a different model.',
99
'bulk_delete_warn' => 'You are about to delete one asset model.|You are about to delete :model_count asset models.',

resources/lang/en-US/general.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -597,5 +597,7 @@
597597

598598
'select_all_none' => 'Select/Unselect All',
599599
'generic_model_not_found' => 'That :model was not found or you do not have permission to access it',
600+
'deleted_models' => 'Deleted Asset Models',
601+
'deleted_users' => 'Deleted Users',
600602

601603
];

resources/views/layouts/default.blade.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -214,7 +214,7 @@
214214
</a>
215215
<ul class="dropdown-menu">
216216
@can('create', \App\Models\Asset::class)
217-
<li{!! (Request::is('hardware/create') ? ' class="active">' : '') !!}>
217+
<li{!! (Request::is('hardware/create') ? ' class="active"' : '') !!}>
218218
<a href="{{ route('hardware.create') }}" tabindex="-1">
219219
<x-icon type="assets" />
220220
{{ trans('general.asset') }}

0 commit comments

Comments
 (0)