diff --git a/app/Http/Controllers/SavedReportsController.php b/app/Http/Controllers/SavedReportsController.php index ddc611539c..92687f323d 100644 --- a/app/Http/Controllers/SavedReportsController.php +++ b/app/Http/Controllers/SavedReportsController.php @@ -2,6 +2,7 @@ namespace App\Http\Controllers; +use App\Models\SavedReport; use Illuminate\Http\Request; class SavedReportsController extends Controller @@ -10,9 +11,11 @@ class SavedReportsController extends Controller { $this->authorize('reports.view'); + $request->validate((new SavedReport)->getRules()); + $report = $request->user()->savedReports()->create([ - 'name' => $request->get('report_name'), - 'options' => $request->except(['_token', 'report_name']), + 'name' => $request->get('name'), + 'options' => $request->except(['_token', 'name']), ]); return redirect()->route('reports/custom', ['report' => $report->id]); diff --git a/app/Models/SavedReport.php b/app/Models/SavedReport.php index 2a5d59ff72..dab8486a6e 100644 --- a/app/Models/SavedReport.php +++ b/app/Models/SavedReport.php @@ -4,10 +4,12 @@ namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; +use Watson\Validating\ValidatingTrait; class SavedReport extends Model { use HasFactory; + use ValidatingTrait; /** * The attributes that should be cast. @@ -25,6 +27,10 @@ class SavedReport extends Model ]; // @todo: add $rules + protected $rules = [ + 'name' => 'required|unique:saved_reports,name', + 'options' => 'array', + ]; //we will need a bit to catch and store the name of the report. //for now the blip above is creating the name, but can be confusing if multiple are made at once diff --git a/resources/views/reports/custom.blade.php b/resources/views/reports/custom.blade.php index 3c007af500..219fc79aa5 100644 --- a/resources/views/reports/custom.blade.php +++ b/resources/views/reports/custom.blade.php @@ -375,7 +375,7 @@