From 18c8b2a1d6ddae8a986ececd604b6548513229aa Mon Sep 17 00:00:00 2001 From: Luca Haid Date: Fri, 5 Dec 2025 08:31:00 +0100 Subject: [PATCH] Add AP-Name filter to linework search and improve input handling in Index.php --- Layout/default/Linework/Index.php | 15 ++++++--- application/Linework/LineworkController.php | 35 ++++++++++++++++++--- 2 files changed, 41 insertions(+), 9 deletions(-) diff --git a/Layout/default/Linework/Index.php b/Layout/default/Linework/Index.php index c3bea08a8..d96af30e1 100644 --- a/Layout/default/Linework/Index.php +++ b/Layout/default/Linework/Index.php @@ -105,8 +105,8 @@ -
- +
+ +
-
+
- + +
+ +
+ +
diff --git a/application/Linework/LineworkController.php b/application/Linework/LineworkController.php index 994dd098d..b996a8953 100644 --- a/application/Linework/LineworkController.php +++ b/application/Linework/LineworkController.php @@ -121,8 +121,33 @@ class LineworkController extends mfBaseController { }*/ //var_dump($termination_search);exit; $networks = []; - $pagination['maxItems'] = TerminationModel::count($termination_search); - foreach(TerminationModel::search($termination_search, $pagination) as $term) { + + // Store ap_name filter separately for post-processing + $ap_name_filter = null; + if(array_key_exists('ap_name', $termination_search) && $termination_search['ap_name']) { + $ap_name_filter = $termination_search['ap_name']; + unset($termination_search['ap_name']); // Remove from search as it's a workflow value + } + + if($ap_name_filter) { + $all_terminations = TerminationModel::search($termination_search, false); + $filtered_terminations = []; + + foreach($all_terminations as $term) { + $ap_name = $term->building->getWorkflowvalue('ist_anschlusspunkt_name') ?: $term->building->getWorkflowvalue('anschlusspunkt_name'); + if($ap_name && stripos($ap_name, $ap_name_filter) !== false) { + $filtered_terminations[] = $term; + } + } + + $pagination['maxItems'] = count($filtered_terminations); + $terminations = array_slice($filtered_terminations, $pagination['start'], $pagination['count']); + } else { + $pagination['maxItems'] = TerminationModel::count($termination_search); + $terminations = TerminationModel::search($termination_search, $pagination); + } + + foreach($terminations as $term) { if(!array_key_exists($term->building->network->name, $networks)) { $networks[$term->building->network->name] = []; } @@ -188,10 +213,12 @@ class LineworkController extends mfBaseController { $new_filter['id'] = $value; continue; }*/ - + + // AP-Name filter is passed through to be handled by the model + // It will filter by workflow values: ist_anschlusspunkt_name or anschlusspunkt_name $new_filter[$name] = $value; } - + return $new_filter; }