changeset 42:62953a663acc ls_dev_2025_09

changes for stubs around the base controller and filters, aswell as pagination
author luka
date Thu, 12 Nov 2026 21:17:11 -0500
parents 59eb5b4424ca
children cde7e0f145fa
files src/Generator/Controller/stubs/controller.stub src/Generator/Requests/FilterRequestGenerator.php src/Generator/Requests/stubs/filter_request.stub src/Generator/View/stubs/index.stub
diffstat 4 files changed, 37 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/src/Generator/Controller/stubs/controller.stub	Wed Nov 11 18:46:46 2026 -0500
+++ b/src/Generator/Controller/stubs/controller.stub	Thu Nov 12 21:17:11 2026 -0500
@@ -25,11 +25,10 @@
 
     public function get_data({{ filterRequest }} $request)
     {
-        $filters = $request->validated()['filters'] ?? [];
+        $validated = $request->validated() ?? [];
         $data = [];
-        $data['records'] = {{ model }}::get_data($filters);
-        $data['total_records'] = count($data['records']);
 
+        $data = array_merge($data, {{ model }}::get_data($validated));
         return $data;
     }
 
--- a/src/Generator/Requests/FilterRequestGenerator.php	Wed Nov 11 18:46:46 2026 -0500
+++ b/src/Generator/Requests/FilterRequestGenerator.php	Thu Nov 12 21:17:11 2026 -0500
@@ -44,7 +44,7 @@
      */
     protected function getStub()
     {
-        return $this->resolveStubPath('/stubs/request.stub');
+        return $this->resolveStubPath('/stubs/filter_request.stub');
     }
 
     /**
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/Generator/Requests/stubs/filter_request.stub	Thu Nov 12 21:17:11 2026 -0500
@@ -0,0 +1,33 @@
+<?php
+
+namespace {{ namespace }};
+
+use Illuminate\Foundation\Http\FormRequest;
+
+class {{ class }} extends FormRequest
+{
+    /**
+     * Determine if the user is authorized to make this request.
+     */
+    public function authorize(): bool
+    {
+        return true;
+    }
+
+    /**
+     * Get the validation rules that apply to the request.
+     *
+     * @return array<string, \Illuminate\Contracts\Validation\ValidationRule|array|string>
+     */
+    public function rules(): array
+    {
+        return [
+            'filters' => [
+                // {{ valuesForValidation }} 
+            ],
+            'page' => ['nullable', 'int', 'min:0'],
+            'page_size' => ['nullable', 'int', 'min:0'],
+            'sort' => ['nullable', 'array'],
+        ];
+    }
+}
--- a/src/Generator/View/stubs/index.stub	Wed Nov 11 18:46:46 2026 -0500
+++ b/src/Generator/View/stubs/index.stub	Thu Nov 12 21:17:11 2026 -0500
@@ -28,6 +28,7 @@
             if (el) {
                 new ServerTable(el, {
                     endpoint: '/{{ tableName }}/get_data',
+                    filters: Object.fromEntries(new URLSearchParams(location.search)),
                     columns: [
             	        {{ columnInsertPoint }}
                         {