Improve the error and success messages and linking

This commit is contained in:
Brady Wetherington 2024-09-24 17:15:39 +01:00
parent c71411465a
commit b6340532d7
2 changed files with 17 additions and 19 deletions

View file

@ -112,10 +112,10 @@ class AssetsController extends Controller
$settings = Setting::getSettings(); $settings = Setting::getSettings();
$successes = 0; $successes = [];
$failures = 0; $failures = [];
$serials = $request->input('serials'); $serials = $request->input('serials');
$last_succesful_asset = null; $asset = null;
for ($a = 1; $a <= count($asset_tags); $a++) { for ($a = 1; $a <= count($asset_tags); $a++) {
$asset = new Asset(); $asset = new Asset();
@ -202,33 +202,32 @@ class AssetsController extends Controller
$asset->checkOut($target, auth()->user(), date('Y-m-d H:i:s'), $request->input('expected_checkin', null), 'Checked out on asset creation', $request->get('name'), $location); $asset->checkOut($target, auth()->user(), date('Y-m-d H:i:s'), $request->input('expected_checkin', null), 'Checked out on asset creation', $request->get('name'), $location);
} }
$last_succesful_asset = $asset; $successes[] = "<a href='" . route('hardware.show', ['hardware' => $asset->id]) . "' style='color: white;'>" . e($asset->asset_tag) . "</a>";
$successes++;
} else { } else {
$failures++; $failures[] = join(",", $asset->getErrors()->all());
} }
} }
session()->put(['redirect_option' => $request->get('redirect_option'), 'checkout_to_type' => $request->get('checkout_to_type')]); session()->put(['redirect_option' => $request->get('redirect_option'), 'checkout_to_type' => $request->get('checkout_to_type')]);
if ($successes > 0) { if ($successes) {
if ($failures > 0) { if ($failures) {
//some succeeded, some failed //some succeeded, some failed
return redirect()->to(Helper::getRedirectOption($request, $last_succesful_asset->id, 'Assets')) return redirect()->to(Helper::getRedirectOption($request, $asset->id, 'Assets')) //FIXME - not tested
->with('success-unescaped', trans_choice('admin/hardware/message.create.multi_success_linked', $successes, ['link' => route('hardware.show', ['hardware' => $last_succesful_asset->id]), 'id', 'tag' => e($last_succesful_asset->asset_tag)])) ->with('success-unescaped', trans_choice('admin/hardware/message.create.multi_success_linked', $successes, ['links' => join(", ", $successes)]))
->with('warning', trans_choice('admin/hardware/message.create.partial_failure', $failures)); ->with('warning', trans_choice('admin/hardware/message.create.partial_failure', $failures, ['failures' => join("; ", $failures)]));
} else { } else {
if ($successes == 1) { if (count($successes) == 1) {
//the most common case, keeping it so we don't have to make every use of that translation string be trans_choice'ed //the most common case, keeping it so we don't have to make every use of that translation string be trans_choice'ed
//and re-translated //and re-translated
return redirect()->to(Helper::getRedirectOption($request, $last_succesful_asset->id, 'Assets')) return redirect()->to(Helper::getRedirectOption($request, $asset->id, 'Assets'))
->with('success-unescaped', trans('admin/hardware/message.create.success_linked', ['link' => route('hardware.show', ['hardware' => $last_succesful_asset->id]), 'id', 'tag' => e($last_succesful_asset->asset_tag)])); ->with('success-unescaped', trans('admin/hardware/message.create.success_linked', ['link' => route('hardware.show', ['hardware' => $asset->id]), 'id', 'tag' => e($asset->asset_tag)]));
} else { } else {
//multi-success //multi-success
return redirect()->to(Helper::getRedirectOption($request, $last_succesful_asset->id, 'Assets')) return redirect()->to(Helper::getRedirectOption($request, $asset->id, 'Assets'))
->with('success-unescaped', trans_choice('admin/hardware/message.create.multi_success_linked', $successes, ['link' => route('hardware.show', ['hardware' => $last_succesful_asset->id]), 'id', 'tag' => e($last_succesful_asset->asset_tag)])); ->with('success-unescaped', trans_choice('admin/hardware/message.create.multi_success_linked', $successes, ['links' => join(", ", $successes)]));
} }
} }

View file

@ -14,9 +14,8 @@ return [
'error' => 'Asset was not created, please try again. :(', 'error' => 'Asset was not created, please try again. :(',
'success' => 'Asset created successfully. :)', 'success' => 'Asset created successfully. :)',
'success_linked' => 'Asset with tag :tag was created successfully. <strong><a href=":link" style="color: white;">Click here to view</a></strong>.', 'success_linked' => 'Asset with tag :tag was created successfully. <strong><a href=":link" style="color: white;">Click here to view</a></strong>.',
'multi_success_linked' => 'Asset with tag :tag was created successfully. <strong><a href=":link" style="color: white;">Click here to view</a></strong>.|:count assets were created succesfully. The last one was :tag. <strong><a href=":link" style="color: white;">Click here to view</a></strong>.', 'multi_success_linked' => 'Asset with tag :links was created successfully.|:count assets were created succesfully. :links.',
'partial_success_linked' => 'Asset with tag :tag was created successfully. <strong><a href=":link" style="color: white;">Click here to view</a></strong>.', 'partial_failure' => 'An asset was unable to be created. Reason: :failures|:count assets were unable to be created. Reasons: :failures',
'partial_failure' => 'An asset was unable to be created.|:count assets were unable to be created.'
], ],
'update' => [ 'update' => [