diff --git a/Layout/default/Preorder/Index.php b/Layout/default/Preorder/Index.php index ab6daeff6..20e700bce 100644 --- a/Layout/default/Preorder/Index.php +++ b/Layout/default/Preorder/Index.php @@ -395,7 +395,16 @@ /* * Globals for map display */ - + adb_netzgebiet): ?> + var borderpoly = adb_netzgebiet->borderpoly) ? $campaign->adb_netzgebiet->borderpoly : "[]"?>; + + var borderpoly = []; + //borderpoly[0] = []; + true]) as $bp_netz): ?> + borderpoly.push(borderpoly?>); + + + var preorderMap; var preorders = []; var markers = []; @@ -408,6 +417,8 @@ }; var currentTileset = "geolandbasemap"; + + function toggleTileset() { if(currentTileset == "geolandbasemap") { currentTileset = "bmaporthofoto30cm"; @@ -466,6 +477,16 @@ function addMarkers() { + if(borderpoly) { + var border = L.polygon(borderpoly, { + fillColor: 'blue', + weight: 8, + opacity: 0.5, + color: 'violet', //Outline color + fillOpacity: 0.05 + }).addTo(preorderMap); + } + if(!Array.isArray(preorders) | !preorders.length) { return false; } @@ -545,7 +566,7 @@ }).addTo(preorderMap); } - + }); diff --git a/application/ADBNetzgebiet/ADBNetzgebietModel.php b/application/ADBNetzgebiet/ADBNetzgebietModel.php index a0449dc4f..475ac84ac 100644 --- a/application/ADBNetzgebiet/ADBNetzgebietModel.php +++ b/application/ADBNetzgebiet/ADBNetzgebietModel.php @@ -154,6 +154,15 @@ class ADBNetzgebietModel { } } + if(array_key_exists("borderpoly", $filter)) { + $borderpoly = $filter['borderpoly']; + if($borderpoly === true) { + $where .= " AND Netzgebiet.`borderpoly` IS NOT NULL"; + } elseif($borderpoly === false || $borderpoly === null) { + $where .= " AND (Netzgebiet.`borderpoly` IS NULL OR Netzgebiet.`borderpoly` = '')"; + } + } + //var_dump($filter, $where);exit; return $where; } diff --git a/application/Network/Network.php b/application/Network/Network.php index 8fc81c670..167132d1b 100644 --- a/application/Network/Network.php +++ b/application/Network/Network.php @@ -7,6 +7,7 @@ class Network extends mfBaseModel { private $roles; private $sections; private $buildings; + private $adb_netzgebiet; public function getTypeAddresses($search_type) { @@ -139,6 +140,17 @@ class Network extends mfBaseModel { return $this->buildings; } + if($name == "adb_netzgebiet") { + if(!$this->adb_netzgebiet_id) { + return null; + } + $this->adb_netzgebiet = new ADBNetzgebiet($this->adb_netzgebiet_id); + if(!$this->adb_netzgebiet->id) { + return null; + } + return $this->adb_netzgebiet; + } + $classname = ucfirst($name); $idfield = $name."_id"; $this->$name = new $classname($this->$idfield); diff --git a/application/Preordercampaign/Preordercampaign.php b/application/Preordercampaign/Preordercampaign.php index e37a3bf48..2bf6ae705 100644 --- a/application/Preordercampaign/Preordercampaign.php +++ b/application/Preordercampaign/Preordercampaign.php @@ -2,6 +2,7 @@ class Preordercampaign extends mfBaseModel { private $network; + private $adb_netzgebiet; private $preorders; private $active_preorders; private $active_preorder_count = 0; @@ -200,6 +201,11 @@ class Preordercampaign extends mfBaseModel { return $this->corsorigins; } + if($name == "adb_netzgebiet") { + if(!$this->network_id) return null; + return $this->getProperty("network")->adb_netzgebiet; + } + if($name == "creator") { $user = mfValuecache::singleton()->get("Worker-id-".$this->create_by); if($user) { diff --git a/db/migrations/20240209152923_netzgebiet_add_borderpoly.php b/db/migrations/20240209152923_netzgebiet_add_borderpoly.php new file mode 100644 index 000000000..33e42a7df --- /dev/null +++ b/db/migrations/20240209152923_netzgebiet_add_borderpoly.php @@ -0,0 +1,31 @@ +getEnvironment() == "thetool") { + + } + + if($this->getEnvironment() == "addressdb") { + $table = $this->table("Netzgebiet"); + $table->addColumn("borderpoly", "json", ["null" => true, "default" => null, "after" => "source_id"]); + $table->update(); + } + } + + public function down(): void + { + if($this->getEnvironment() == "thetool") { + + } + + if($this->getEnvironment() == "addressdb") { + $this->table("Netzgebiet")->removeColumn("borderpoly")->save(); + } + } +}