From 1f7c325fd908729e6df05e2c7482aebd763d0651 Mon Sep 17 00:00:00 2001 From: didier Date: Thu, 6 Mar 2025 09:34:55 +0100 Subject: [PATCH] add filter on clause --- app/Http/Controllers/ControlController.php | 26 +++++++++++++++++++- resources/lang/de/cruds.php | 1 + resources/lang/en/cruds.php | 1 + resources/lang/fr/cruds.php | 1 + resources/views/controls/index.blade.php | 28 ++++++++++++---------- 5 files changed, 43 insertions(+), 14 deletions(-) diff --git a/app/Http/Controllers/ControlController.php b/app/Http/Controllers/ControlController.php index e20a7ba2..4d70d097 100644 --- a/app/Http/Controllers/ControlController.php +++ b/app/Http/Controllers/ControlController.php @@ -35,6 +35,7 @@ public function index(Request $request) // get all domains $domains = Domain::All(); + /* // get all attributes $attributes = []; $allAttributes = DB::table('measures')->select('attributes')->get(); @@ -47,6 +48,9 @@ public function index(Request $request) } sort($attributes); $attributes = array_unique($attributes); + */ + // get all clauses + $clauses = DB::table('measures')->select('clause')->get()->pluck("clause")->toArray(); // get domain base on his title $domain_title = $request->get('domain_title'); @@ -95,6 +99,19 @@ public function index(Request $request) $domain = $request->session()->get('domain'); } + // Clause filter + $clause = $request->get('clause'); + if ($clause !== null) { + if ($clause === 'none') { + $request->session()->forget('clause'); + $clause=null; + } else { + $request->session()->put('clause', $clause); + } + } else { + $clause = $request->session()->get('clause'); + } + // Scope filter $scope = $request->get('scope'); if ($scope !== null) { @@ -184,6 +201,11 @@ public function index(Request $request) $controls = $controls->where('measures.domain_id', '=', $domain); } + // Filter on clause + if ($clause !== null) { + $controls = $controls->where('clause','=', $clause); + } + // Filter on scope if ($scope !== null) { $controls = $controls->where('c1.scope', '=', $scope); @@ -246,6 +268,7 @@ public function index(Request $request) } // Filter on attribute + /* if ($attribute !== null) { $controls = $controls->where( 'c1.attributes', @@ -253,6 +276,7 @@ public function index(Request $request) '%' . $attribute . '%' ); } + */ // get action plan associated $controls = $controls->leftjoin('actions', 'actions.control_id', '=', 'c1.id'); @@ -301,7 +325,7 @@ public function index(Request $request) // return view return view('controls.index') ->with('controls', $controls) - ->with('attributes', $attributes) + ->with('clauses', $clauses) ->with('scopes', $scopes) ->with('domains', $domains); } diff --git a/resources/lang/de/cruds.php b/resources/lang/de/cruds.php index 20311192..2308fd2b 100644 --- a/resources/lang/de/cruds.php +++ b/resources/lang/de/cruds.php @@ -47,6 +47,7 @@ 'choose_scope' => 'Wähle Geltungsbereich', 'choose_period' => 'Wähle Periode', 'choose_attribute' => 'Wähle Attribute', + 'choose_clause' => 'Wähle Clause', 'domain' => 'Domäne', 'indicator' => 'Funktion', 'measure' => 'Maßnahme', diff --git a/resources/lang/en/cruds.php b/resources/lang/en/cruds.php index 6788c79b..5d7ae02c 100644 --- a/resources/lang/en/cruds.php +++ b/resources/lang/en/cruds.php @@ -67,6 +67,7 @@ 'choose_scope' => 'Choose scope', 'choose_period' => 'Choose period', 'choose_attribute' => 'Choose attribute', + 'choose_clause' => 'Choose clause', 'domain' => 'Domain', 'indicator' => 'Function', 'measure' => 'Measure', diff --git a/resources/lang/fr/cruds.php b/resources/lang/fr/cruds.php index c65f2c12..8703c1bf 100644 --- a/resources/lang/fr/cruds.php +++ b/resources/lang/fr/cruds.php @@ -67,6 +67,7 @@ 'choose_scope' => 'Choisir un périmètre', 'choose_period' => 'Choisir une periode', 'choose_attribute' => 'Choisir un attribut', + 'choose_clause' => 'Choisir une clause', 'clause' => 'Clause', 'clauses' => 'Clauses', 'domain' => 'Domaine', diff --git a/resources/views/controls/index.blade.php b/resources/views/controls/index.blade.php index ff85561c..79490914 100644 --- a/resources/views/controls/index.blade.php +++ b/resources/views/controls/index.blade.php @@ -19,34 +19,36 @@ @endforeach +
- + + @foreach ($clauses as $clause) @endforeach
+
- + + @foreach ($scopes as $scope) @endforeach
-
+