diff --git a/app/Http/Controllers/Api/MaintenancesController.php b/app/Http/Controllers/Api/MaintenancesController.php index 86f561c86c..319a7b0b18 100644 --- a/app/Http/Controllers/Api/MaintenancesController.php +++ b/app/Http/Controllers/Api/MaintenancesController.php @@ -52,6 +52,10 @@ class MaintenancesController extends Controller $maintenances->where('maintenances.created_by', '=', $request->input('created_by')); } + if ($request->filled('url')) { + $maintenances->where('maintenances.url', '=', $request->input('url')); + } + if ($request->filled('asset_maintenance_type')) { $maintenances->where('asset_maintenance_type', '=', $request->input('asset_maintenance_type')); } diff --git a/app/Http/Controllers/MaintenancesController.php b/app/Http/Controllers/MaintenancesController.php index e893b75f39..b3f287e6e7 100644 --- a/app/Http/Controllers/MaintenancesController.php +++ b/app/Http/Controllers/MaintenancesController.php @@ -78,6 +78,7 @@ class MaintenancesController extends Controller $maintenance->is_warranty = $request->input('is_warranty'); $maintenance->cost = $request->input('cost'); $maintenance->notes = $request->input('notes'); + $maintenance->url = $request->input('url'); // Save the asset maintenance data $maintenance->asset_id = $asset->id; @@ -152,6 +153,7 @@ class MaintenancesController extends Controller $maintenance->name = $request->input('name'); $maintenance->start_date = $request->input('start_date'); $maintenance->completion_date = $request->input('completion_date'); + $maintenance->url = $request->input('url'); // Todo - put this in a getter/setter? diff --git a/app/Http/Transformers/MaintenancesTransformer.php b/app/Http/Transformers/MaintenancesTransformer.php index c20c254869..05268de5ac 100644 --- a/app/Http/Transformers/MaintenancesTransformer.php +++ b/app/Http/Transformers/MaintenancesTransformer.php @@ -66,6 +66,7 @@ class MaintenancesTransformer 'id' => $assetmaintenance->supplier->id, 'name'=> e($assetmaintenance->supplier->name) ] : null, + 'url' => ($assetmaintenance->url) ? e($assetmaintenance->url) : null, 'cost' => Helper::formatCurrencyOutput($assetmaintenance->cost), 'asset_maintenance_type' => e($assetmaintenance->asset_maintenance_type), 'start_date' => Helper::getFormattedDateObject($assetmaintenance->start_date, 'date'), diff --git a/app/Models/Maintenance.php b/app/Models/Maintenance.php index 942fdb122a..40a96dcb62 100644 --- a/app/Models/Maintenance.php +++ b/app/Models/Maintenance.php @@ -38,6 +38,7 @@ class Maintenance extends SnipeModel implements ICompanyableChild 'completion_date' => 'date_format:Y-m-d|nullable|after_or_equal:start_date', 'notes' => 'string|nullable', 'cost' => 'numeric|nullable|gte:0|max:99999999999999999.99', + 'url' => 'nullable|url|max:255', ]; @@ -57,6 +58,7 @@ class Maintenance extends SnipeModel implements ICompanyableChild 'asset_maintenance_time', 'notes', 'cost', + 'url', ]; use Searchable; diff --git a/app/Presenters/MaintenancesPresenter.php b/app/Presenters/MaintenancesPresenter.php index 41ff927f67..9edd0f5035 100644 --- a/app/Presenters/MaintenancesPresenter.php +++ b/app/Presenters/MaintenancesPresenter.php @@ -111,6 +111,12 @@ class MaintenancesPresenter extends Presenter 'sortable' => true, 'title' => trans('admin/maintenances/form.completion_date'), 'formatter' => 'dateDisplayFormatter', + ], [ + 'field' => 'url', + 'searchable' => true, + 'sortable' => true, + 'title' => trans('general.url'), + 'formatter' => 'externalLinkFormatter', ], [ 'field' => 'notes', 'searchable' => true, diff --git a/database/factories/MaintenanceFactory.php b/database/factories/MaintenanceFactory.php index e07de8d24d..01adf08560 100644 --- a/database/factories/MaintenanceFactory.php +++ b/database/factories/MaintenanceFactory.php @@ -31,6 +31,7 @@ class MaintenanceFactory extends Factory 'start_date' => $this->faker->date(), 'is_warranty' => $this->faker->boolean(), 'notes' => $this->faker->paragraph(), + 'url' => $this->faker->url(), ]; } } diff --git a/database/migrations/2025_10_07_113331_add_url_to_maintenances.php b/database/migrations/2025_10_07_113331_add_url_to_maintenances.php new file mode 100644 index 0000000000..53b0e30dd4 --- /dev/null +++ b/database/migrations/2025_10_07_113331_add_url_to_maintenances.php @@ -0,0 +1,32 @@ +text('url')->after('name')->nullable()->default(null); + } + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('maintenances', function (Blueprint $table) { + if (Schema::hasColumn('maintenances', 'url')) { + $table->dropColumn('url'); + } + }); + } +}; diff --git a/resources/views/maintenances/edit.blade.php b/resources/views/maintenances/edit.blade.php index 24df4210a7..80c19377a8 100644 --- a/resources/views/maintenances/edit.blade.php +++ b/resources/views/maintenances/edit.blade.php @@ -153,6 +153,7 @@ +