diff --git a/app/Http/Controllers/BulkManufacturersController.php b/app/Http/Controllers/BulkManufacturersController.php index ad5b2d83d5..8f78b643dd 100644 --- a/app/Http/Controllers/BulkManufacturersController.php +++ b/app/Http/Controllers/BulkManufacturersController.php @@ -3,7 +3,13 @@ namespace App\Http\Controllers; use App\Actions\Manufacturers\DeleteManufacturerAction; +use App\Exceptions\ModelStillHasAccessories; +use App\Exceptions\ModelStillHasAssetModels; +use App\Exceptions\ModelStillHasAssets; use App\Exceptions\ModelStillHasChildren; +use App\Exceptions\ModelStillHasComponents; +use App\Exceptions\ModelStillHasConsumables; +use App\Exceptions\ModelStillHasLicenses; use App\Models\Manufacturer; use Illuminate\Http\Request; @@ -18,22 +24,30 @@ class BulkManufacturersController extends Controller foreach ($request->ids as $id) { $manufacturer = Manufacturer::find($id); if (is_null($manufacturer)) { - $errors[] = 'Manufacturer not found'; + $errors[] = trans('admin/manufacturers/message.delete.not_found'); continue; } try { DeleteManufacturerAction::run(manufacturer: $manufacturer); - } catch (ModelStillHasChildren $e) { - $errors[] = `{$manufacturer->name} still has models`; + } catch (ModelStillHasAssets $e) { + $errors[] = trans('admin/manufacturers/message.delete.bulk_assoc_assets', ['manufacturer_name' => $manufacturer->name]); + } catch (ModelStillHasAccessories $e) { + $errors[] = trans('admin/manufacturers/message.delete.bulk_assoc_accessories', ['manufacturer_name' => $manufacturer->name]); + } catch (ModelStillHasConsumables $e) { + $errors[] = trans('admin/manufacturers/message.delete.bulk_assoc_consumables', ['manufacturer_name' => $manufacturer->name]); + } catch (ModelStillHasComponents $e) { + $errors[] = trans('admin/manufacturers/message.delete.bulk_assoc_components', ['manufacturer_name' => $manufacturer->name]);; + } catch (ModelStillHasLicenses $e) { + $errors[] = trans('admin/manufacturers/message.delete.bulk_assoc_licenses', ['manufacturer_name' => $manufacturer->name]);; } catch (\Exception $e) { report($e); - $errors[] = 'Something went wrong'; + $errors[] = trans('general.something_went_wrong'); } } if (count($errors) > 0) { - return redirect()->route('manufacturers.index')->with('error', implode(', ', $errors)); + return redirect()->route('manufacturers.index')->with('multi_error_messages', $errors); } else { - return redirect()->route('manufacturers.index')->with('success', trans('admin/suppliers/message.delete.success')); + return redirect()->route('manufacturers.index')->with('success', trans('admin/manufacturers/message.delete.bulk_success')); } } } diff --git a/app/Presenters/ManufacturerPresenter.php b/app/Presenters/ManufacturerPresenter.php index dfefec2998..8def41abb3 100644 --- a/app/Presenters/ManufacturerPresenter.php +++ b/app/Presenters/ManufacturerPresenter.php @@ -14,7 +14,11 @@ class ManufacturerPresenter extends Presenter public static function dataTableLayout() { $layout = [ - + [ + 'field' => 'checkbox', + 'checkbox' => true, + 'titleTooltip' => trans('general.select_all_none'), + ], [ 'field' => 'id', 'searchable' => false, diff --git a/resources/lang/en-US/admin/manufacturers/message.php b/resources/lang/en-US/admin/manufacturers/message.php index 61416e0230..40ae777a81 100644 --- a/resources/lang/en-US/admin/manufacturers/message.php +++ b/resources/lang/en-US/admin/manufacturers/message.php @@ -22,9 +22,16 @@ return array( ), 'delete' => array( + 'not_found' => 'Manufacturer not found.', 'confirm' => 'Are you sure you wish to delete this manufacturer?', 'error' => 'There was an issue deleting the manufacturer. Please try again.', - 'success' => 'The Manufacturer was deleted successfully.' + 'success' => 'The Manufacturer was deleted successfully.', + 'bulk_success' => 'The Manufacturers were deleted successfully.', + 'bulk_assoc_assets' => ':manufacturer_name still has associated assets and cannot be deleted. Please update your assets to no longer reference this supplier and try again.', + 'bulk_assoc_accessories' => ':manufacturer_name still has associated accessories and cannot be deleted. Please update your accessories to no longer reference this supplier and try again.', + 'bulk_assoc_consumables' => ':manufacturer_name still has associated consumables and cannot be deleted. Please update your consumables to no longer reference this supplier and try again.', + 'bulk_assoc_components' => ':manufacturer_name still has associated components and cannot be deleted. Please update your components to no longer reference this supplier and try again.', + 'bulk_assoc_licenses' => ':manufacturer_name still has associated licenses and cannot be deleted. Please update your licenses to no longer reference this supplier and try again.', ) ); diff --git a/resources/views/manufacturers/index.blade.php b/resources/views/manufacturers/index.blade.php index c0b033468c..0e31eb2d89 100755 --- a/resources/views/manufacturers/index.blade.php +++ b/resources/views/manufacturers/index.blade.php @@ -46,6 +46,7 @@ @else + @include ('partials.manufacturer-bulk-actions') {{ trans('button.delete') }} @endcan - -