From f8306cfb7fe5e5f17a8510a4920ac4cf8942f019 Mon Sep 17 00:00:00 2001 From: Frank Schubert Date: Wed, 5 Nov 2025 17:51:20 +0100 Subject: [PATCH] Added rimo update button in AdressDB/Index --- Layout/default/AddressDB/Index.php | 5 ++++ application/AddressDB/AddressDBController.php | 24 +++++++++++++++---- lib/mvcfronk/mfBase/mfBaseController.php | 14 ++++++++++- 3 files changed, 38 insertions(+), 5 deletions(-) diff --git a/Layout/default/AddressDB/Index.php b/Layout/default/AddressDB/Index.php index 0eb0cb05f..da16d14d0 100644 --- a/Layout/default/AddressDB/Index.php +++ b/Layout/default/AddressDB/Index.php @@ -189,6 +189,11 @@ can("ADBExtended") || $me->isAdmin()): ?> "> Doppelte Homes + isAdmin()): ?> + + diff --git a/application/AddressDB/AddressDBController.php b/application/AddressDB/AddressDBController.php index f8e5d4dc4..5de50426e 100644 --- a/application/AddressDB/AddressDBController.php +++ b/application/AddressDB/AddressDBController.php @@ -108,7 +108,13 @@ class AddressDBController extends mfBaseController { } $this->layout()->set("ortschaften", ADBOrtschaftModel::search($filter_filter)); } - + + if($this->request->rimoAddressUpdate) { + $this->updateAddressesInRimo(ADBHausnummerModel::search($addressdb_filter)); + unset($filter["rimoAddressUpdate"]); + $qs = http_build_query($filter); + $this->redirect("AddressDB", "index", $filter); + } } @@ -209,6 +215,13 @@ class AddressDBController extends mfBaseController { return $new_filter; } + + private function updateAddressesInRimo($addresses) { + foreach($addresses as $address) { + $address->updateAddressInRimo(); + } + $this->layout()->setFlash(count($addresses)." Adressen in Rimo aktualisiert", "success"); + } protected function viewAction() { $this->layout()->setTemplate("AddressDB/View"); @@ -941,12 +954,15 @@ class AddressDBController extends mfBaseController { if($updated) { $hausnummer->save(["no_aftersave" => true]); - if($do_rimo_update) { - $hausnummer->updateAddressInRimo(); - } $u++; } + if($do_rimo_update) { + // reload to make sure we have the latest data in caches + $hausnummer = new ADBHausnummer($hausnummer->id); + $hausnummer->updateAddressInRimo(); + } + $i++; } diff --git a/lib/mvcfronk/mfBase/mfBaseController.php b/lib/mvcfronk/mfBase/mfBaseController.php index a9cece530..80c8cf7ef 100644 --- a/lib/mvcfronk/mfBase/mfBaseController.php +++ b/lib/mvcfronk/mfBase/mfBaseController.php @@ -260,7 +260,8 @@ class mfBaseController if ($params) { if (is_array($params) && count($params)) { - $url .= (MFUSEFANCYURLS) ? "/?" : "&"; + $qs = http_build_query($params); + /*$url .= (MFUSEFANCYURLS) ? "/?" : "&"; foreach ($params as $k => $v) { $v = urlencode($v); @@ -273,10 +274,21 @@ class mfBaseController } $url = preg_replace('/&$/', '', $url); + */ } else { + $qs = $params; + /* $url .= (MFUSEFANCYURLS) ? "/?" : "&"; $url .= $params; + */ } + $url = rtrim($url, "&?"); + if(MFUSEFANCYURLS) { + $url .= "/".$qs; + } else { + $url .= "&".substr($qs, 1); + } + } if ($anker) { $url .= "#$anker";